Změna klíčů ve slovnících ze stringu obsahujícího id na id.
This commit is contained in:
		
							parent
							
								
									6ce6ce9a46
								
							
						
					
					
						commit
						e402f6c386
					
				
					 1 changed files with 15 additions and 15 deletions
				
			
		|  | @ -410,7 +410,7 @@ def body_resitelu_odjakziva(rocnik, resitele): | |||
| 	body_odjakziva = {} | ||||
| 
 | ||||
| 	for r in resitele: | ||||
| 		body_odjakziva[str(r.id)] = 0 | ||||
| 		body_odjakziva[r.id] = 0 | ||||
| ######################################################################### | ||||
| # POZOR! Aktuálně počítá jen za posledních 10 let od zadaného ročníku   # | ||||
| ######################################################################### | ||||
|  | @ -425,7 +425,7 @@ def body_resitelu_odjakziva(rocnik, resitele): | |||
|         # | ||||
| 	#for r in resitele: | ||||
| 	#	for i in range(0,10): | ||||
| 	#		body_odjakziva[str(r.id)] += body_pred_roky[i][str(r.id)] | ||||
| 	#		body_odjakziva[r.id] += body_pred_roky[i][r.id] | ||||
| 
 | ||||
| 
 | ||||
| # Nasledující řešení je sice správné, ale moc pomalé: | ||||
|  | @ -444,7 +444,7 @@ def body_resitelu_za_rocnik(rocnik, aktivni_resitele): | |||
| 	body_za_rocnik = {} | ||||
| 	# inicializujeme na 0 pro všechny aktivní řešitele | ||||
| 	for ar in aktivni_resitele: | ||||
| 		body_za_rocnik[str(ar.id)] = 0 | ||||
| 		body_za_rocnik[ar.id] = 0 | ||||
| 	 | ||||
| 	# spočítáme body řešitelům přes všechna řešení s hodnocením v daném ročníku | ||||
| 	print("Před dotazem:{}".format(time.time()))	 | ||||
|  | @ -468,7 +468,7 @@ class RadekVysledkovkyRocniku(object): | |||
| 		self.body_rocnik = body_rocnik | ||||
| 		self.body_celkem_odjakziva = body_odjakziva | ||||
| 		self.body_cisla_sezn = body_cisla_sezn | ||||
| 		elf.titul = resitel.get_titul(body_odjakziva) | ||||
| 		self.titul = resitel.get_titul(body_odjakziva) | ||||
| 
 | ||||
| def vysledkovka_rocniku(rocnik, jen_verejne=True): | ||||
| 	"""Přebírá ročník (např. context["rocnik"]) a vrací výsledkovou listinu ve | ||||
|  | @ -488,7 +488,7 @@ def vysledkovka_rocniku(rocnik, jen_verejne=True): | |||
| 	for cislo in cisla: | ||||
| 		# získáme body za číslo | ||||
| 		_, cislobody = secti_body_za_cislo(cislo, aktivni_resitele) | ||||
| 		body_cisla_slov[str(cislo.id)] = cislobody | ||||
| 		body_cisla_slov[cislo.id] = cislobody | ||||
| 
 | ||||
| 	# získáme body za ročník, seznam obsahuje dvojice (řešitel_id, body) setřízené sestupně | ||||
| 	resitel_rocnikbody_sezn = secti_body_za_rocnik(rocnik, aktivni_resitele) | ||||
|  | @ -509,7 +509,7 @@ def vysledkovka_rocniku(rocnik, jen_verejne=True): | |||
| 		# seznam počtu bodů daného řešitele pro jednotlivá čísla | ||||
| 		body_cisla_sezn = [] | ||||
| 		for cislo in cisla: | ||||
| 			body_cisla_sezn.append(body_cisla_slov[str(cislo.id)][str(ar_id)]) | ||||
| 			body_cisla_sezn.append(body_cisla_slov[cislo.id][ar_id]) | ||||
| 
 | ||||
| 		# vytáhneme informace pro daného řešitele | ||||
| 		radek = RadekVysledkovkyRocniku( | ||||
|  | @ -605,10 +605,10 @@ def pricti_body(slovnik, resitel, body): | |||
| 	# daného řešitele, předěláme na 0 | ||||
| 	# (v dalším kroku přičteme reálný počet bodů), | ||||
| 	# rozlišujeme tím mezi 0 a neodevzdaným řešením | ||||
| 	if slovnik[str(resitel.id)] == "": | ||||
| 		slovnik[str(resitel.id)] = 0 | ||||
| 	if slovnik[resitel.id] == "": | ||||
| 		slovnik[resitel.id] = 0 | ||||
| 	 | ||||
| 	slovnik[str(resitel.id)] += body | ||||
| 	slovnik[resitel.id] += body | ||||
| 
 | ||||
| def secti_body_za_rocnik(rocnik, aktivni_resitele): | ||||
| 	# spočítáme všem řešitelům jejich body za ročník | ||||
|  | @ -628,16 +628,16 @@ def secti_body_za_cislo(cislo, aktivni_resitele, hlavni_problemy=None): | |||
| 
 | ||||
| 	hlavni_problemy_slovnik = {} | ||||
| 	for hp in hlavni_problemy: | ||||
| 		hlavni_problemy_slovnik[str(hp.id)] = {} | ||||
| 		hlavni_problemy_slovnik[hp.id] = {} | ||||
| 
 | ||||
| 	# zakládání prázdných záznamů pro řešitele | ||||
| 	cislobody = {} | ||||
| 	for ar in aktivni_resitele: | ||||
| 		# řešitele převedeme na řetězec pomocí unikátního id | ||||
| 		cislobody[str(ar.id)] = "" | ||||
| 		cislobody[ar.id] = "" | ||||
| 		for hp in hlavni_problemy: | ||||
| 			slovnik = hlavni_problemy_slovnik[str(hp.id)] | ||||
| 			slovnik[str(ar.id)] = "" | ||||
| 			slovnik = hlavni_problemy_slovnik[hp.id] | ||||
| 			slovnik[ar.id] = "" | ||||
| 	 | ||||
| 	# vezmeme všechna řešení s body do daného čísla | ||||
| 	reseni_do_cisla = Reseni.objects.prefetch_related('problem', 'resitele',  | ||||
|  | @ -650,7 +650,7 @@ def secti_body_za_cislo(cislo, aktivni_resitele, hlavni_problemy=None): | |||
| 		# řešení může řešit více problémů | ||||
| 		for prob in list(reseni.problem.all()): | ||||
| 			nadproblem = hlavni_problem(prob) | ||||
| 			nadproblem_slovnik = hlavni_problemy_slovnik[str(nadproblem.id)] | ||||
| 			nadproblem_slovnik = hlavni_problemy_slovnik[nadproblem.id] | ||||
| 			 | ||||
| 			# a mít více hodnocení | ||||
| 			for hodn in list(reseni.hodnoceni_set.all()): | ||||
|  | @ -700,7 +700,7 @@ def vysledkovka_cisla(cislo, context=None): | |||
| 		# získáme seznam bodů za problémy pro daného řešitele | ||||
| 		problemy = [] 		 | ||||
| 		for hp in hlavni_problemy: | ||||
| 			problemy.append(hlavni_problemy_slovnik[str(hp.id)][ar_id]) | ||||
| 			problemy.append(hlavni_problemy_slovnik[hp.id][ar_id]) | ||||
| 		# vytáhneme informace pro daného řešitele | ||||
| 		radek = RadekVysledkovkyCisla( | ||||
| 			poradi[i], # pořadí | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Anet
						Anet