Merge branch 'develop' into test
This commit is contained in:
commit
24841a2e29
2 changed files with 11 additions and 11 deletions
|
@ -415,9 +415,9 @@ class OdevzdavatkoTabulkaFiltrForm(forms.Form):
|
|||
# choices jako parametr Select widgetu neumí brát callable, jen iterable, takže si pro jednoduchost můžu rovnou uložit výsledek sem...
|
||||
# A "sem" znamená do libovolné metody, protože jinak se jedná o kód, který django spustí při inicializaci a protože potřebujeme databázi, tak by spadnul při vyrábění testdat...
|
||||
self.terminy = self.gen_terminy(rocnik)
|
||||
self.fields['reseni_od'].widget = forms.Select(choices=self.gen_terminy())
|
||||
self.fields['reseni_od'].widget = forms.Select(choices=self.gen_terminy(rocnik))
|
||||
self.fields['reseni_od'].initial = self.terminy[-2]
|
||||
self.fields['reseni_do'].widget = forms.Select(choices=self.gen_terminy())
|
||||
self.fields['reseni_do'].widget = forms.Select(choices=self.gen_terminy(rocnik))
|
||||
self.fields['reseni_do'].initial = self.terminy[-1]
|
||||
|
||||
# NOTE: Initial definuji pro jednotlivé fieldy, aby to bylo tady a nebylo potřeba to řešit ve views...
|
||||
|
|
|
@ -53,11 +53,11 @@ class TabulkaOdevzdanychReseniView(ListView):
|
|||
self.problemy = m.Problem.objects.all()
|
||||
self.reseni = m.Reseni.objects.all()
|
||||
|
||||
aktualni_rocnik = m.Nastaveni.get_solo().aktualni_rocnik # .get_solo() vrátí tu jedinou instanci
|
||||
self.aktualni_rocnik = m.Nastaveni.get_solo().aktualni_rocnik # .get_solo() vrátí tu jedinou instanci
|
||||
if 'rocnik' in self.kwargs:
|
||||
aktualni_rocnik = m.Rocnik.objects.get(rocnik=self.kwargs['rocnik'])
|
||||
self.aktualni_rocnik = m.Rocnik.objects.get(rocnik=self.kwargs['rocnik'])
|
||||
|
||||
form = FiltrForm(self.request.GET, rocnik=aktualni_rocnik)
|
||||
form = FiltrForm(self.request.GET, rocnik=self.aktualni_rocnik)
|
||||
if form.is_valid():
|
||||
fcd = form.cleaned_data
|
||||
resitele = fcd["resitele"]
|
||||
|
@ -66,7 +66,7 @@ class TabulkaOdevzdanychReseniView(ListView):
|
|||
reseni_do = fcd["reseni_do"]
|
||||
jen_neobodovane = fcd["neobodovane"]
|
||||
else:
|
||||
initial = FiltrForm.gen_initial(aktualni_rocnik)
|
||||
initial = FiltrForm.gen_initial(self.aktualni_rocnik)
|
||||
resitele = initial['resitele']
|
||||
problemy = initial['problemy']
|
||||
reseni_od = initial['reseni_od'][0]
|
||||
|
@ -76,22 +76,22 @@ class TabulkaOdevzdanychReseniView(ListView):
|
|||
|
||||
# Chceme jen letošní problémy
|
||||
# FIXME: Neexistuje metoda, jak dostat starší problémy…
|
||||
self.problemy = self.problemy.filter(Q(Tema___rocnik=aktualni_rocnik) | Q(Uloha___cislo_zadani__rocnik = aktualni_rocnik) | Q(Clanek___cislo__rocnik = aktualni_rocnik) | Q(Konfera___soustredeni__rocnik = aktualni_rocnik))
|
||||
self.problemy = self.problemy.filter(Q(Tema___rocnik=self.aktualni_rocnik) | Q(Uloha___cislo_zadani__rocnik = self.aktualni_rocnik) | Q(Clanek___cislo__rocnik = self.aktualni_rocnik) | Q(Konfera___soustredeni__rocnik = self.aktualni_rocnik))
|
||||
|
||||
self.chteni_resitele = resitele # Zapamatování pro get_context_data
|
||||
if resitele == FiltrForm.RESITELE_RELEVANTNI:
|
||||
# Nejde použít utils.resi_v_rocniku, protože noví řešitelé mohou mít neobodované řešení a takoví technicky zatím neřeší.
|
||||
# Proto používám neodmaturovavší řešitele, TODO: Chceme to takhle nebo jinak?
|
||||
self.resitele = self.resitele.filter(rok_maturity__gt=aktualni_rocnik.prvni_rok) # Prvotní sada, pokud nebude mít body, odstraní se v get_context_data
|
||||
self.resitele = self.resitele.filter(rok_maturity__gt=self.aktualni_rocnik.prvni_rok) # Prvotní sada, pokud nebude mít body, odstraní se v get_context_data
|
||||
elif resitele == FiltrForm.RESITELE_NEODMATUROVAVSI:
|
||||
self.resitele = self.resitele.filter(rok_maturity__gt=aktualni_rocnik.prvni_rok)
|
||||
self.resitele = self.resitele.filter(rok_maturity__gt=self.aktualni_rocnik.prvni_rok)
|
||||
|
||||
if problemy == FiltrForm.PROBLEMY_MOJE:
|
||||
org = m.Organizator.objects.get(osoba__user=self.request.user)
|
||||
self.problemy = self.problemy.filter(Q(autor=org)|Q(garant=org)|Q(opravovatele=org), stav=m.Problem.STAV_ZADANY)
|
||||
elif problemy == FiltrForm.PROBLEMY_LETOSNI:
|
||||
self.problemy = self.problemy.filter(stav=m.Problem.STAV_ZADANY)
|
||||
#self.problemy = list(filter(lambda problem: problem.rocnik() == aktualni_rocnik, self.problemy)) # DB HOG? # FIXME: některé problémy nemají ročník....
|
||||
#self.problemy = list(filter(lambda problem: problem.rocnik() == self.aktualni_rocnik, self.problemy)) # DB HOG? # FIXME: některé problémy nemají ročník....
|
||||
# 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()
|
||||
|
||||
|
@ -148,7 +148,7 @@ class TabulkaOdevzdanychReseniView(ListView):
|
|||
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, rocnik=self.aktualni_rocnik)
|
||||
# Pro použití hacku na automatické {{form.media}} v template:
|
||||
ctx['form'] = ctx['filtr']
|
||||
|
||||
|
|
Loading…
Reference in a new issue