From e182785e48625b670978e13b5b82ca90e750de3b Mon Sep 17 00:00:00 2001 From: MaM Web user Date: Wed, 20 Sep 2023 01:11:03 +0200 Subject: [PATCH] =?UTF-8?q?P=C5=99id=C3=A1ny=20akce=20pro=20p=C5=99egenero?= =?UTF-8?q?v=C3=A1n=C3=AD=20deadlin=C5=AF=20do=20Admina?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Nikdo o tom neví, a když se o tom dozví, tak se buď nic nezmění, nebo to bylo tak dávno, že si toho nikdo nevšimne :-D Ale na testování se to hodí… Also: někde jsem přepsal mezery na taby. --- seminar/admin.py | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/seminar/admin.py b/seminar/admin.py index e88af140..2ce7b2f5 100644 --- a/seminar/admin.py +++ b/seminar/admin.py @@ -12,16 +12,22 @@ from django.utils.safestring import mark_safe import seminar.models as m admin.site.register(m.Rocnik) - -admin.site.register(m.Deadline) admin.site.register(m.ZmrazenaVysledkovka) +@admin.register(m.Deadline) +class DeadlineAdmin(admin.ModelAdmin): + actions = ['pregeneruj_vysledkovku'] -class DeadlineAdminInline(admin.TabularInline): - model = m.Deadline - extra = 0 + def pregeneruj_vysledkovku(self, req, qs): + for deadline in qs: + deadline.vygeneruj_vysledkovku() + pregeneruj_vysledkovku.short_description = 'Přegeneruj výsledkovky vybraných deadlinů' +class DeadlineAdminInline(admin.TabularInline): + model = m.Deadline + extra = 0 + class CisloForm(ModelForm): class Meta: model = m.Cislo @@ -71,7 +77,7 @@ class CisloForm(ModelForm): @admin.register(m.Cislo) class CisloAdmin(admin.ModelAdmin): form = CisloForm - actions = ['force_publish'] + actions = ['force_publish', 'pregeneruj_vysledkovky'] inlines = (DeadlineAdminInline,) def force_publish(self,request,queryset): @@ -111,6 +117,12 @@ class CisloAdmin(admin.ModelAdmin): force_publish.short_description = 'Zveřejnit vybraná čísla a všechny návrhy úloh v nich učinit zadanými' + def pregeneruj_vysledkovky(self, req, qs): + for cislo in qs: + for deadline in cislo.deadline_v_cisle.all(): + deadline.vygeneruj_vysledkovku() + pregeneruj_vysledkovky.short_description = 'Přegenerovat výsledkovky všech deadlinů vybraných čísel' + @admin.register(m.Problem) class ProblemAdmin(PolymorphicParentModelAdmin):