|
|
@ -245,6 +245,18 @@ class VysledkovkaCisla(Vysledkovka): |
|
|
|
def hlavni_problemy(self) -> list[m.Problem]: |
|
|
|
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 |
|
|
|
def problemy_s_body_za_cislo(self): |
|
|
|
|
|
|
@ -265,8 +277,7 @@ class VysledkovkaCisla(Vysledkovka): |
|
|
|
|
|
|
|
hlavni_problemy_slovnik[-1][ar.id] = "" |
|
|
|
|
|
|
|
hodnoceni_do_cisla = m.Hodnoceni.objects.prefetch_related( |
|
|
|
'problem', 'reseni', 'reseni__resitele').filter(deadline_body__cislo=self.cislo) |
|
|
|
hodnoceni_do_cisla = self.hodnoceni_do_cisla |
|
|
|
|
|
|
|
for hodnoceni in hodnoceni_do_cisla: |
|
|
|
prob = hodnoceni.problem |
|
|
@ -343,11 +354,7 @@ class VysledkovkaCisla(Vysledkovka): |
|
|
|
|
|
|
|
temata = set(t.id for t in self.temata_a_spol) |
|
|
|
|
|
|
|
hodnoceni = m.Hodnoceni.objects.prefetch_related( |
|
|
|
'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) |
|
|
|
hodnoceni_do_cisla = self.hodnoceni_do_cisla |
|
|
|
|
|
|
|
for hodnoceni in hodnoceni_do_cisla: |
|
|
|
prob = hodnoceni.problem |
|
|
|