Browse Source

Změna klíčů ve slovnících ze stringu obsahujícího id na id.

middleware_test
Anet 5 years ago
parent
commit
e402f6c386
  1. 30
      seminar/views/views_all.py

30
seminar/views/views_all.py

@ -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…
Cancel
Save