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... | ||||
| 		# 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
	
	 Pavel "LEdoian" Turinsky
						Pavel "LEdoian" Turinsky