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 = {} | 	body_odjakziva = {} | ||||||
| 
 | 
 | ||||||
| 	for r in resitele: | 	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   # | # 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 r in resitele: | ||||||
| 	#	for i in range(0,10): | 	#	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é: | # 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 = {} | 	body_za_rocnik = {} | ||||||
| 	# inicializujeme na 0 pro všechny aktivní řešitele | 	# inicializujeme na 0 pro všechny aktivní řešitele | ||||||
| 	for ar in aktivni_resitele: | 	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 | 	# 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()))	 | 	print("Před dotazem:{}".format(time.time()))	 | ||||||
|  | @ -468,7 +468,7 @@ class RadekVysledkovkyRocniku(object): | ||||||
| 		self.body_rocnik = body_rocnik | 		self.body_rocnik = body_rocnik | ||||||
| 		self.body_celkem_odjakziva = body_odjakziva | 		self.body_celkem_odjakziva = body_odjakziva | ||||||
| 		self.body_cisla_sezn = body_cisla_sezn | 		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): | def vysledkovka_rocniku(rocnik, jen_verejne=True): | ||||||
| 	"""Přebírá ročník (např. context["rocnik"]) a vrací výsledkovou listinu ve | 	"""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: | 	for cislo in cisla: | ||||||
| 		# získáme body za číslo | 		# získáme body za číslo | ||||||
| 		_, cislobody = secti_body_za_cislo(cislo, aktivni_resitele) | 		_, 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ě | 	# 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) | 	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 | 		# seznam počtu bodů daného řešitele pro jednotlivá čísla | ||||||
| 		body_cisla_sezn = [] | 		body_cisla_sezn = [] | ||||||
| 		for cislo in cisla: | 		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 | 		# vytáhneme informace pro daného řešitele | ||||||
| 		radek = RadekVysledkovkyRocniku( | 		radek = RadekVysledkovkyRocniku( | ||||||
|  | @ -605,10 +605,10 @@ def pricti_body(slovnik, resitel, body): | ||||||
| 	# daného řešitele, předěláme na 0 | 	# daného řešitele, předěláme na 0 | ||||||
| 	# (v dalším kroku přičteme reálný počet bodů), | 	# (v dalším kroku přičteme reálný počet bodů), | ||||||
| 	# rozlišujeme tím mezi 0 a neodevzdaným řešením | 	# rozlišujeme tím mezi 0 a neodevzdaným řešením | ||||||
| 	if slovnik[str(resitel.id)] == "": | 	if slovnik[resitel.id] == "": | ||||||
| 		slovnik[str(resitel.id)] = 0 | 		slovnik[resitel.id] = 0 | ||||||
| 	 | 	 | ||||||
| 	slovnik[str(resitel.id)] += body | 	slovnik[resitel.id] += body | ||||||
| 
 | 
 | ||||||
| def secti_body_za_rocnik(rocnik, aktivni_resitele): | def secti_body_za_rocnik(rocnik, aktivni_resitele): | ||||||
| 	# spočítáme všem řešitelům jejich body za ročník | 	# 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 = {} | 	hlavni_problemy_slovnik = {} | ||||||
| 	for hp in hlavni_problemy: | 	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 | 	# zakládání prázdných záznamů pro řešitele | ||||||
| 	cislobody = {} | 	cislobody = {} | ||||||
| 	for ar in aktivni_resitele: | 	for ar in aktivni_resitele: | ||||||
| 		# řešitele převedeme na řetězec pomocí unikátního id | 		# řešitele převedeme na řetězec pomocí unikátního id | ||||||
| 		cislobody[str(ar.id)] = "" | 		cislobody[ar.id] = "" | ||||||
| 		for hp in hlavni_problemy: | 		for hp in hlavni_problemy: | ||||||
| 			slovnik = hlavni_problemy_slovnik[str(hp.id)] | 			slovnik = hlavni_problemy_slovnik[hp.id] | ||||||
| 			slovnik[str(ar.id)] = "" | 			slovnik[ar.id] = "" | ||||||
| 	 | 	 | ||||||
| 	# vezmeme všechna řešení s body do daného čísla | 	# vezmeme všechna řešení s body do daného čísla | ||||||
| 	reseni_do_cisla = Reseni.objects.prefetch_related('problem', 'resitele',  | 	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ů | 		# řešení může řešit více problémů | ||||||
| 		for prob in list(reseni.problem.all()): | 		for prob in list(reseni.problem.all()): | ||||||
| 			nadproblem = hlavni_problem(prob) | 			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í | 			# a mít více hodnocení | ||||||
| 			for hodn in list(reseni.hodnoceni_set.all()): | 			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 | 		# získáme seznam bodů za problémy pro daného řešitele | ||||||
| 		problemy = [] 		 | 		problemy = [] 		 | ||||||
| 		for hp in hlavni_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 | 		# vytáhneme informace pro daného řešitele | ||||||
| 		radek = RadekVysledkovkyCisla( | 		radek = RadekVysledkovkyCisla( | ||||||
| 			poradi[i], # pořadí | 			poradi[i], # pořadí | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Anet
						Anet