@ -57,17 +57,19 @@ class TabulkaOdevzdanychReseniView(ListView):
reseni_od = fcd [ " reseni_od " ]
reseni_od = fcd [ " reseni_od " ]
reseni_do = fcd [ " reseni_do " ]
reseni_do = fcd [ " reseni_do " ]
else :
else :
resitele = FiltrForm . get_initial_for_field ( FormFiltr . resitele , " resitele " )
initial = FiltrForm . gen_initial ( )
problemy = FiltrForm . get_initial_for_field ( FormFiltr . problemy , " problemy " )
resitele = initial [ ' resitele ' ]
resitele_od = FiltrForm . get_initial_for_field ( FormFiltr . resitele_od , " resitele_od " )
problemy = initial [ ' problemy ' ]
resitele_do = FiltrForm . get_initial_for_field ( FormFiltr . resitele_do , " resitele_do " )
reseni_od = initial [ ' reseni_od ' ] [ 0 ]
reseni_do = initial [ ' reseni_do ' ] [ 0 ]
# 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 )
@ -118,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 ' ]