Oprava odevzdávací tabulky
Chyběly správně inicializace ročníku
This commit is contained in:
parent
ca495456db
commit
e46d5a20c1
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...
|
# 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...
|
# 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.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_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]
|
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...
|
# 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.problemy = m.Problem.objects.all()
|
||||||
self.reseni = m.Reseni.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:
|
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():
|
if form.is_valid():
|
||||||
fcd = form.cleaned_data
|
fcd = form.cleaned_data
|
||||||
resitele = fcd["resitele"]
|
resitele = fcd["resitele"]
|
||||||
|
@ -66,7 +66,7 @@ class TabulkaOdevzdanychReseniView(ListView):
|
||||||
reseni_do = fcd["reseni_do"]
|
reseni_do = fcd["reseni_do"]
|
||||||
jen_neobodovane = fcd["neobodovane"]
|
jen_neobodovane = fcd["neobodovane"]
|
||||||
else:
|
else:
|
||||||
initial = FiltrForm.gen_initial(aktualni_rocnik)
|
initial = FiltrForm.gen_initial(self.aktualni_rocnik)
|
||||||
resitele = initial['resitele']
|
resitele = initial['resitele']
|
||||||
problemy = initial['problemy']
|
problemy = initial['problemy']
|
||||||
reseni_od = initial['reseni_od'][0]
|
reseni_od = initial['reseni_od'][0]
|
||||||
|
@ -76,22 +76,22 @@ class TabulkaOdevzdanychReseniView(ListView):
|
||||||
|
|
||||||
# Chceme jen letošní problémy
|
# Chceme jen letošní problémy
|
||||||
# FIXME: Neexistuje metoda, jak dostat starší 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
|
self.chteni_resitele = resitele # Zapamatování pro get_context_data
|
||||||
if resitele == FiltrForm.RESITELE_RELEVANTNI:
|
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ší.
|
# 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?
|
# 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:
|
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:
|
if problemy == FiltrForm.PROBLEMY_MOJE:
|
||||||
org = m.Organizator.objects.get(osoba__user=self.request.user)
|
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)
|
self.problemy = self.problemy.filter(Q(autor=org)|Q(garant=org)|Q(opravovatele=org), stav=m.Problem.STAV_ZADANY)
|
||||||
elif problemy == FiltrForm.PROBLEMY_LETOSNI:
|
elif problemy == FiltrForm.PROBLEMY_LETOSNI:
|
||||||
self.problemy = self.problemy.filter(stav=m.Problem.STAV_ZADANY)
|
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.
|
# 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()
|
self.problemy = self.problemy.non_polymorphic()
|
||||||
|
|
||||||
|
@ -148,7 +148,7 @@ class TabulkaOdevzdanychReseniView(ListView):
|
||||||
hodnoty.append(resiteluv_radek)
|
hodnoty.append(resiteluv_radek)
|
||||||
resitele_do_tabulky.append(resitel)
|
resitele_do_tabulky.append(resitel)
|
||||||
ctx['radky'] = list(zip(resitele_do_tabulky, hodnoty))
|
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:
|
# Pro použití hacku na automatické {{form.media}} v template:
|
||||||
ctx['form'] = ctx['filtr']
|
ctx['form'] = ctx['filtr']
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue