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):