Admin | pridano upravovani resitelu a orgu na sous.
This commit is contained in:
		
							parent
							
								
									6f179f17f5
								
							
						
					
					
						commit
						853ba68139
					
				
					 1 changed files with 52 additions and 4 deletions
				
			
		|  | @ -1,11 +1,14 @@ | ||||||
| from django.contrib import admin | from django.contrib import admin | ||||||
| from django.contrib.auth.models import Permission | from django.contrib.auth.models import Permission | ||||||
|  | from django.db import models | ||||||
|  | from django.forms import widgets | ||||||
| 
 | 
 | ||||||
| from polymorphic.admin import PolymorphicParentModelAdmin, PolymorphicChildModelAdmin, PolymorphicChildModelFilter | from polymorphic.admin import PolymorphicParentModelAdmin, PolymorphicChildModelAdmin, PolymorphicChildModelFilter | ||||||
| from reversion.admin import VersionAdmin | from reversion.admin import VersionAdmin | ||||||
| from django_reverse_admin import ReverseModelAdmin | from django_reverse_admin import ReverseModelAdmin | ||||||
| from solo.admin import SingletonModelAdmin | from solo.admin import SingletonModelAdmin | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
| # Todo: reversion | # Todo: reversion | ||||||
| 
 | 
 | ||||||
| import seminar.models as m | import seminar.models as m | ||||||
|  | @ -14,8 +17,6 @@ admin.site.register(m.Skola) | ||||||
| admin.site.register(m.Prijemce) | admin.site.register(m.Prijemce) | ||||||
| admin.site.register(m.Rocnik) | admin.site.register(m.Rocnik) | ||||||
| admin.site.register(m.Cislo) | admin.site.register(m.Cislo) | ||||||
| admin.site.register(m.Organizator) |  | ||||||
| admin.site.register(m.Soustredeni) |  | ||||||
| 
 | 
 | ||||||
| @admin.register(m.Osoba) | @admin.register(m.Osoba) | ||||||
| class OsobaAdmin(admin.ModelAdmin): | class OsobaAdmin(admin.ModelAdmin): | ||||||
|  | @ -42,7 +43,14 @@ class OsobaAdmin(admin.ModelAdmin): | ||||||
| 			org.save() | 			org.save() | ||||||
| 	udelej_orgem.short_description = "Udělej vybraných osob organizátory" | 	udelej_orgem.short_description = "Udělej vybraných osob organizátory" | ||||||
| 
 | 
 | ||||||
|  | @admin.register(m.Organizator) | ||||||
|  | class OrganizatorAdmin(admin.ModelAdmin): | ||||||
|  | 	search_fields = ['osoba__jmeno', 'osoba__prijmeni', 'prezdivka'] | ||||||
| 			 | 			 | ||||||
|  | @admin.register(m.Resitel) | ||||||
|  | class ResitelAdmin(admin.ModelAdmin): | ||||||
|  | 	search_fields = ['jmeno', 'prijmeni', 'prezdivka'] | ||||||
|  | 	ordering = ('osoba__jmeno','osoba__prijmeni') | ||||||
| 
 | 
 | ||||||
| @admin.register(m.Problem) | @admin.register(m.Problem) | ||||||
| class ProblemAdmin(PolymorphicParentModelAdmin): | class ProblemAdmin(PolymorphicParentModelAdmin): | ||||||
|  | @ -74,15 +82,55 @@ class KonferaAdmin(PolymorphicChildModelAdmin): | ||||||
| 	base_model = m.Konfera | 	base_model = m.Konfera | ||||||
| 	show_in_index = True | 	show_in_index = True | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
| class TextAdminInline(admin.TabularInline): | class TextAdminInline(admin.TabularInline): | ||||||
| 	model = m.Text | 	model = m.Text | ||||||
|  | 	formfield_overrides = { | ||||||
|  | 		models.TextField: {'widget': widgets.TextInput} | ||||||
|  | 	} | ||||||
| 	exclude = ['text_zkraceny_set','text_zkraceny'] | 	exclude = ['text_zkraceny_set','text_zkraceny'] | ||||||
|  | 
 | ||||||
| admin.site.register(m.Text) | admin.site.register(m.Text) | ||||||
| 
 | 
 | ||||||
| class ResitelInline(admin.TabularInline): | class ResitelInline(admin.TabularInline): | ||||||
| 	model = m.Resitel | 	model = m.Resitel | ||||||
| 	extra = 1 | 	extra = 1 | ||||||
| admin.site.register(m.Resitel) | 
 | ||||||
|  | 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__prijmeni'] | ||||||
|  | 	formfield_overrides = { | ||||||
|  | 		models.TextField: {'widget': widgets.TextInput} | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	def get_queryset(self,request): | ||||||
|  | 		qs = super().get_queryset(request) | ||||||
|  | 		return qs.select_related('organizator', 'soustredeni') | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | @admin.register(m.Soustredeni) | ||||||
|  | class SoustredeniAdmin(admin.ModelAdmin): | ||||||
|  | 	model = m.Soustredeni | ||||||
|  | 	inline_type = 'tabular' | ||||||
|  | 	inlines = [SoustredeniUcastniciInline, SoustredeniOrganizatoriInline] | ||||||
|  | 
 | ||||||
| 
 | 
 | ||||||
| class PrilohaReseniInline(admin.TabularInline): | class PrilohaReseniInline(admin.TabularInline): | ||||||
| 	model = m.PrilohaReseni | 	model = m.PrilohaReseni | ||||||
|  | @ -92,6 +140,7 @@ admin.site.register(m.PrilohaReseni) | ||||||
| class Reseni_ResiteleInline(admin.TabularInline): | class Reseni_ResiteleInline(admin.TabularInline): | ||||||
| 	model = m.Reseni_Resitele | 	model = m.Reseni_Resitele | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
| @admin.register(m.Reseni) | @admin.register(m.Reseni) | ||||||
| class ReseniAdmin(ReverseModelAdmin): | class ReseniAdmin(ReverseModelAdmin): | ||||||
| 	base_model = m.Reseni | 	base_model = m.Reseni | ||||||
|  | @ -106,7 +155,6 @@ admin.site.register(m.Hodnoceni) | ||||||
| admin.site.register(m.Pohadka) | admin.site.register(m.Pohadka) | ||||||
| admin.site.register(m.Obrazek) | admin.site.register(m.Obrazek) | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| # Polymorfismus pro stromy | # Polymorfismus pro stromy | ||||||
| # TODO: Inlines podle https://django-polymorphic.readthedocs.io/en/stable/admin.html | # TODO: Inlines podle https://django-polymorphic.readthedocs.io/en/stable/admin.html | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue