Odevzdávátko: Implementováni "Relevantní řešitelé"
This commit is contained in:
parent
4f04efd519
commit
428d1c5db9
1 changed files with 10 additions and 5 deletions
|
@ -66,9 +66,10 @@ class TabulkaOdevzdanychReseniView(ListView):
|
||||||
|
|
||||||
# Filtrujeme!
|
# Filtrujeme!
|
||||||
aktualni_rocnik = m.Nastaveni.get_solo().aktualni_rocnik # .get_solo() vrátí tu jedinou instanci
|
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:
|
if resitele == FiltrForm.RESITELE_RELEVANTNI:
|
||||||
logger.warning("Někdo chtěl v tabulce jen relevantní řešitele a měl smůlu :-(")
|
# TODO: Zkontrolovat, že resi_v_rocniku vrací QuerySet (jinak asi bude žrát spoustu zdrojů zbytečně)
|
||||||
resitele = FiltrForm.RESITELE_LETOSNI # Fall-through
|
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:
|
elif resitele == FiltrForm.RESITELE_LETOSNI:
|
||||||
self.resitele = resi_v_rocniku(aktualni_rocnik)
|
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)
|
pridej_reseni(hodnoceni.problem, resitel, hodnoceni.body, hodnoceni.reseni.cas_doruceni)
|
||||||
|
|
||||||
hodnoty = []
|
hodnoty = []
|
||||||
|
resitele_do_tabulky = []
|
||||||
for resitel in self.resitele:
|
for resitel in self.resitele:
|
||||||
|
dostal_body = False
|
||||||
resiteluv_radek = []
|
resiteluv_radek = []
|
||||||
for problem in self.problemy:
|
for problem in self.problemy:
|
||||||
if problem in tabulka and resitel in tabulka[problem]:
|
if problem in tabulka and resitel in tabulka[problem]:
|
||||||
resiteluv_radek.append(tabulka[problem][resitel])
|
resiteluv_radek.append(tabulka[problem][resitel])
|
||||||
|
dostal_body = True
|
||||||
else:
|
else:
|
||||||
resiteluv_radek.append(None)
|
resiteluv_radek.append(None)
|
||||||
hodnoty.append(resiteluv_radek)
|
if self.chteni_resitele != FiltrForm.RESITELE_RELEVANTNI or dostal_body:
|
||||||
ctx['radky'] = list(zip(self.resitele, hodnoty))
|
hodnoty.append(resiteluv_radek)
|
||||||
|
resitele_do_tabulky.append(resitel)
|
||||||
|
ctx['radky'] = list(zip(resitele_do_tabulky, hodnoty))
|
||||||
ctx['filtr'] = FiltrForm(initial=self.request.GET)
|
ctx['filtr'] = FiltrForm(initial=self.request.GET)
|
||||||
# Pro použití hacku na automatické {{form.media}} v template:
|
# Pro použití hacku na automatické {{form.media}} v template:
|
||||||
ctx['form'] = ctx['filtr']
|
ctx['form'] = ctx['filtr']
|
||||||
|
|
Loading…
Reference in a new issue