From dd0872cc83fc010989ce828b7baf36f3c42297b3 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Tue, 21 Jan 2025 23:52:30 +0100 Subject: [PATCH] =?UTF-8?q?Inicialzujeme=20osy=20na=20spr=C3=A1vnou=20sadu?= =?UTF-8?q?=20objekt=C5=AF,=20snad?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- odevzdavatko/views.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/odevzdavatko/views.py b/odevzdavatko/views.py index 2518767f..e0ff7727 100644 --- a/odevzdavatko/views.py +++ b/odevzdavatko/views.py @@ -108,6 +108,11 @@ class TabulkaOdevzdanychReseniView(ListView): # NOTE: Protože řešení odkazuje přímo na Problém a QuerySet na Hodnocení je nepolymorfní, musíme porovnávat taky s nepolymorfními Problémy. self.problemy = self.problemy.non_polymorphic().distinct() + # self.problemy jsou teď už správně, zrelevantníme self.reseni a self.resitele + self.reseni = self.reseni.filter(problem__in=self.problemy).distinct() + if resitele == FiltrForm.RESITELE_RELEVANTNI: + self.resitele = self.resitele.filter(reseni__in=self.reseni).distinct() + self.reseni = self.reseni.filter(cas_doruceni__date__gt=reseni_od, cas_doruceni__date__lte=reseni_do) if jen_neobodovane: self.reseni = self.reseni.filter(hodnoceni__body__isnull=True) @@ -121,6 +126,7 @@ class TabulkaOdevzdanychReseniView(ListView): qs = qs.filter(problem__in=self.problemy, reseni__in=self.reseni, reseni__resitele__in=self.resitele).select_related('reseni', 'problem').prefetch_related('reseni__resitele__osoba').distinct() # FIXME tohle je ošklivé, na špatném místě a pomalé. Ale moc mě štvalo, že musím hledat správná místa v tabulce. self.problemy = self.problemy.filter(id__in=qs.values("problem__id")) + # TODO: liší se nějak od `self.problemy = self.problemy.filter(hodnoceni__in=qs)`? return qs def get_context_data(self, *args, **kwargs):