From c7332119ac06b2855eee84c3f92c412b62ad57e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Thu, 6 Oct 2022 10:35:14 +0200 Subject: [PATCH] =?UTF-8?q?Odm=C4=9Bny?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/models/tvorba.py | 3 ++ seminar/templates/seminar/archiv/odmeny.html | 22 +++++++++-- seminar/views/views_all.py | 40 ++++++++++++++------ 3 files changed, 51 insertions(+), 14 deletions(-) diff --git a/seminar/models/tvorba.py b/seminar/models/tvorba.py index 9178c511..452a75e7 100644 --- a/seminar/models/tvorba.py +++ b/seminar/models/tvorba.py @@ -331,6 +331,9 @@ class Cislo(SeminarModelBase): def zlomovy_deadline_pro_papirove_cislo(self): return Deadline.objects.filter(Q(typ=Deadline.TYP_PRVNI) | Q(typ=Deadline.TYP_PRVNI_A_SOUS), cislo=self).first() + @property + def posledni_deadline(self): + return self.deadline_v_cisle.all().last() class Deadline(SeminarModelBase): class Meta: diff --git a/seminar/templates/seminar/archiv/odmeny.html b/seminar/templates/seminar/archiv/odmeny.html index 1c2fb249..aa5ffb7f 100644 --- a/seminar/templates/seminar/archiv/odmeny.html +++ b/seminar/templates/seminar/archiv/odmeny.html @@ -3,13 +3,29 @@ {% block content %}

{% block nadpis1a %} - Odměny {{ cislo }} + Odměny {% endblock %}

+ +

Od prvního deadlinu {{ from_cislo }} do prvního deadlinu {{ to_cislo }}

+ + +

Od {{ from_cislo }} do prvního deadlinu {{ to_cislo }} (pro první číslo)

+ + +

Od prvního deadlinu {{ from_cislo }} do {{ to_cislo }} (pro poslední číslo)

+ {% endblock content %} diff --git a/seminar/views/views_all.py b/seminar/views/views_all.py index 965e6c82..6c05b77a 100644 --- a/seminar/views/views_all.py +++ b/seminar/views/views_all.py @@ -477,17 +477,35 @@ class OdmenyView(generic.TemplateView): fromcislo = Cislo.objects.get(rocnik=self.kwargs.get('frocnik'), poradi=self.kwargs.get('fcislo')) tocislo = Cislo.objects.get(rocnik=self.kwargs.get('trocnik'), poradi=self.kwargs.get('tcislo')) resitele = aktivniResitele(tocislo) - frombody = body_resitelu(resitele, fromcislo) - tobody = body_resitelu(resitele, tocislo) - outlist = [] - for (aid, tbody) in tobody.items(): - fbody = frombody.get(aid,0) - resitel = Resitel.objects.get(pk=aid) - ftitul = resitel.get_titul(fbody) - ttitul = resitel.get_titul(tbody) - if ftitul != ttitul: - outlist.append({'jmeno': resitel.osoba.plne_jmeno(), 'ftitul': ftitul, 'ttitul': ttitul}) - context['zmeny'] = outlist + + def get_diff(from_deadline: Deadline, to_deadline: Deadline): + frombody = body_resitelu(resitele=resitele, jen_verejne=False, do=from_deadline) + tobody = body_resitelu(resitele=resitele, jen_verejne=False, do=to_deadline) + outlist = [] + for (aid, tbody) in tobody.items(): + fbody = frombody.get(aid,0) + resitel = Resitel.objects.get(pk=aid) + ftitul = resitel.get_titul(fbody) + ttitul = resitel.get_titul(tbody) + if ftitul != ttitul: + outlist.append({'jmeno': resitel.osoba.plne_jmeno(), 'ftitul': ftitul, 'ttitul': ttitul}) + return outlist + + context["from_cislo"] = fromcislo + context["to_cislo"] = tocislo + context["zmeny_prvni_prvni"] = get_diff( + fromcislo.zlomovy_deadline_pro_papirove_cislo(), + tocislo.zlomovy_deadline_pro_papirove_cislo() + ) + context["zmeny_prvni_posledni"] = get_diff( + fromcislo.zlomovy_deadline_pro_papirove_cislo(), + tocislo.posledni_deadline + ) + context["zmeny_posledni_prvni"] = get_diff( + fromcislo.posledni_deadline, + tocislo.zlomovy_deadline_pro_papirove_cislo() + ) + return context