import django.forms
from django.contrib import admin
from django.forms import widgets
from django.db import models

from django_ckeditor_5.widgets import CKEditor5Widget

import soustredeni.models as m


class SoustredeniUcastniciInline(admin.TabularInline):
	model = m.Soustredeni_Ucastnici
	extra = 1
	fields = ['resitel','poznamka']
	autocomplete_fields = ['resitel']
	ordering = ['resitel__osoba__jmeno', 'resitel__osoba__prijmeni']
	formfield_overrides = {
		models.TextField: {'widget': widgets.TextInput}
	}

	def get_queryset(self,request):
		qs = super().get_queryset(request)
		return qs.select_related('resitel','soustredeni')


class SoustredeniOrganizatoriInline(admin.TabularInline):
	model = m.Soustredeni.organizatori.through
	extra = 1
	fields = ['organizator','poznamka']
	autocomplete_fields = ['organizator']
	ordering = ['organizator__osoba__jmeno','organizator__osoba__prijmeni']
	formfield_overrides = {
		models.TextField: {'widget': widgets.TextInput}
	}

	def get_queryset(self,request):
		qs = super().get_queryset(request)
		return qs.select_related('organizator', 'soustredeni')


class SoustredeniAdminForm(django.forms.ModelForm):
	class Meta:
		model = m.Soustredeni
		widgets = {
			'text': CKEditor5Widget,
		}
		fields = '__all__'

@admin.register(m.Soustredeni)
class SoustredeniAdmin(admin.ModelAdmin):
	form = SoustredeniAdminForm
	inline_type = 'tabular'
	inlines = [SoustredeniUcastniciInline, SoustredeniOrganizatoriInline]