From 428d1c5db9178e54401aff07d88da61b6cfb094d Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Tue, 16 Mar 2021 20:06:45 +0100 Subject: [PATCH] =?UTF-8?q?Odevzd=C3=A1v=C3=A1tko:=20Implementov=C3=A1ni?= =?UTF-8?q?=20"Relevantn=C3=AD=20=C5=99e=C5=A1itel=C3=A9"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- seminar/views/odevzdavatko.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/seminar/views/odevzdavatko.py b/seminar/views/odevzdavatko.py index 7cc95d77..5458a8ca 100644 --- a/seminar/views/odevzdavatko.py +++ b/seminar/views/odevzdavatko.py @@ -66,9 +66,10 @@ class TabulkaOdevzdanychReseniView(ListView): # Filtrujeme! aktualni_rocnik = m.Nastaveni.get_solo().aktualni_rocnik # .get_solo() vrátí tu jedinou instanci + self.chteni_resitele = resitele # Zapamatování pro get_context_data if resitele == FiltrForm.RESITELE_RELEVANTNI: - logger.warning("Někdo chtěl v tabulce jen relevantní řešitele a měl smůlu :-(") - resitele = FiltrForm.RESITELE_LETOSNI # Fall-through + # TODO: Zkontrolovat, že resi_v_rocniku vrací QuerySet (jinak asi bude žrát spoustu zdrojů zbytečně) + self.resitele = resi_v_rocniku(aktualni_rocnik) # Prvotní sada, pokud nebude mít body, odstraní se v get_context_data elif resitele == FiltrForm.RESITELE_LETOSNI: self.resitele = resi_v_rocniku(aktualni_rocnik) @@ -119,16 +120,20 @@ class TabulkaOdevzdanychReseniView(ListView): pridej_reseni(hodnoceni.problem, resitel, hodnoceni.body, hodnoceni.reseni.cas_doruceni) hodnoty = [] + resitele_do_tabulky = [] for resitel in self.resitele: + dostal_body = False resiteluv_radek = [] for problem in self.problemy: if problem in tabulka and resitel in tabulka[problem]: resiteluv_radek.append(tabulka[problem][resitel]) + dostal_body = True else: resiteluv_radek.append(None) - hodnoty.append(resiteluv_radek) - ctx['radky'] = list(zip(self.resitele, hodnoty)) - + if self.chteni_resitele != FiltrForm.RESITELE_RELEVANTNI or dostal_body: + hodnoty.append(resiteluv_radek) + resitele_do_tabulky.append(resitel) + ctx['radky'] = list(zip(resitele_do_tabulky, hodnoty)) ctx['filtr'] = FiltrForm(initial=self.request.GET) # Pro použití hacku na automatické {{form.media}} v template: ctx['form'] = ctx['filtr']