diff --git a/seminar/views/views_all.py b/seminar/views/views_all.py index 1ac106d5..71eeb1b1 100644 --- a/seminar/views/views_all.py +++ b/seminar/views/views_all.py @@ -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í