Browse Source

Odměny

zadavatko_problemu
Jonas Havelka 2 years ago
parent
commit
c7332119ac
  1. 3
      seminar/models/tvorba.py
  2. 22
      seminar/templates/seminar/archiv/odmeny.html
  3. 40
      seminar/views/views_all.py

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

22
seminar/templates/seminar/archiv/odmeny.html

@ -3,13 +3,29 @@
{% block content %}
<h1>
{% block nadpis1a %}
Odměny {{ cislo }}
Odměny
{% endblock %}
</h1>
<h2>Od prvního deadlinu {{ from_cislo }} do prvního deadlinu {{ to_cislo }}</h2>
<ul>
{% for z in zmeny_prvni_prvni %}
<li> {{z.jmeno}}: {{z.ftitul}} &rarr; {{z.ttitul}}</li>
{% endfor %}
</ul>
<h2>Od {{ from_cislo }} do prvního deadlinu {{ to_cislo }} (pro první číslo)</h2>
<ul>
{% for z in zmeny_posledni_prvni %}
<li> {{z.jmeno}}: {{z.ftitul}} &rarr; {{z.ttitul}}</li>
{% endfor %}
</ul>
<h2>Od prvního deadlinu {{ from_cislo }} do {{ to_cislo }} (pro poslední číslo)</h2>
<ul>
{% for z in zmeny %}
{% for z in zmeny_prvni_posledni %}
<li> {{z.jmeno}}: {{z.ftitul}} &rarr; {{z.ttitul}}</li>
{% endfor %}
</ul>
</ul>
{% endblock content %}

40
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

Loading…
Cancel
Save