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