Browse Source

Přidání zapomenutého filtrování hodnocení do deadlinu a příprava na TeX

pull/3/head
Jonas Havelka 2 years ago
parent
commit
0069382f51
  1. 21
      vysledkovky/utils.py

21
vysledkovky/utils.py

@ -245,6 +245,18 @@ class VysledkovkaCisla(Vysledkovka):
def hlavni_problemy(self) -> list[m.Problem]: def hlavni_problemy(self) -> list[m.Problem]:
return hlavni_problemy_f(self.problemy) return hlavni_problemy_f(self.problemy)
# Není cached, protože si myslím, že queryset lze použít ve for jen jednou.
@property
def hodnoceni_do_cisla(self):
hodnoceni = m.Hodnoceni.objects.prefetch_related(
'problem', 'reseni', 'reseni__resitele')
if self.jen_verejne:
hodnoceni = hodnoceni.filter(deadline_body__verejna_vysledkovka=True)
return hodnoceni.filter(
deadline_body__cislo=self.cislo,
deadline_body__deadline__lte=self.do_deadlinu.deadline
)
@cached_property @cached_property
def problemy_s_body_za_cislo(self): def problemy_s_body_za_cislo(self):
@ -265,8 +277,7 @@ class VysledkovkaCisla(Vysledkovka):
hlavni_problemy_slovnik[-1][ar.id] = "" hlavni_problemy_slovnik[-1][ar.id] = ""
hodnoceni_do_cisla = m.Hodnoceni.objects.prefetch_related( hodnoceni_do_cisla = self.hodnoceni_do_cisla
'problem', 'reseni', 'reseni__resitele').filter(deadline_body__cislo=self.cislo)
for hodnoceni in hodnoceni_do_cisla: for hodnoceni in hodnoceni_do_cisla:
prob = hodnoceni.problem prob = hodnoceni.problem
@ -343,11 +354,7 @@ class VysledkovkaCisla(Vysledkovka):
temata = set(t.id for t in self.temata_a_spol) temata = set(t.id for t in self.temata_a_spol)
hodnoceni = m.Hodnoceni.objects.prefetch_related( hodnoceni_do_cisla = self.hodnoceni_do_cisla
'problem', 'reseni', 'reseni__resitele')
if self.jen_verejne:
hodnoceni = hodnoceni.filter(deadline_body__verejna_vysledkovka=True)
hodnoceni_do_cisla = hodnoceni.filter(deadline_body__cislo=self.cislo)
for hodnoceni in hodnoceni_do_cisla: for hodnoceni in hodnoceni_do_cisla:
prob = hodnoceni.problem prob = hodnoceni.problem

Loading…
Cancel
Save