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