From 0069382f516269c68c69b594e73a1d4f13fd5af9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jon=C3=A1=C5=A1=20Havelka?= Date: Sun, 2 Oct 2022 21:03:07 +0200 Subject: [PATCH] =?UTF-8?q?P=C5=99id=C3=A1n=C3=AD=20zapomenut=C3=A9ho=20fi?= =?UTF-8?q?ltrov=C3=A1n=C3=AD=20hodnocen=C3=AD=20do=20deadlinu=20a=20p?= =?UTF-8?q?=C5=99=C3=ADprava=20na=20TeX?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vysledkovky/utils.py | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/vysledkovky/utils.py b/vysledkovky/utils.py index 012c8609..e6be09da 100644 --- a/vysledkovky/utils.py +++ b/vysledkovky/utils.py @@ -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