fix výsledkovka (více hodnocení 1 řešení)
This commit is contained in:
parent
4032ff8fa5
commit
8ff70cb5f7
1 changed files with 16 additions and 15 deletions
|
@ -282,31 +282,32 @@ def secti_body_za_cislo(cislo, aktivni_resitele, hlavni_problemy=None):
|
|||
# vezmeme všechna řešení s body do daného čísla
|
||||
reseni_do_cisla = m.Reseni.objects.prefetch_related('problem', 'resitele',
|
||||
'hodnoceni_set').filter(hodnoceni__cislo_body=cislo)
|
||||
|
||||
|
||||
reseni_do_cisla = set(reseni_do_cisla) # odstranění duplikátů (pokud má řešení více ohodnocení)
|
||||
|
||||
start = time.time()
|
||||
# projdeme všechna řešení do čísla a přičteme body každému řešiteli do celkových
|
||||
# bodů i do bodů za problém
|
||||
for reseni in reseni_do_cisla:
|
||||
|
||||
# řešení může řešit více problémů
|
||||
for prob in list(reseni.problem.all()):
|
||||
# řešení může mít více hodnocení
|
||||
for hodn in list(reseni.hodnoceni_set.all()):
|
||||
prob = hodn.problem
|
||||
nadproblem = hlavni_problem(prob)
|
||||
if ne_clanek_ne_konfera(nadproblem):
|
||||
nadproblem_slovnik = hlavni_problemy_slovnik[nadproblem.id]
|
||||
else:
|
||||
nadproblem_slovnik = hlavni_problemy_slovnik[-1]
|
||||
|
||||
# a mít více hodnocení
|
||||
for hodn in list(reseni.hodnoceni_set.all()):
|
||||
body = hodn.body
|
||||
|
||||
# a mít více řešitelů
|
||||
for resitel in list(reseni.resitele.all()):
|
||||
if resitel not in aktivni_resitele:
|
||||
print("Skipping {}".format(resitel.id))
|
||||
continue
|
||||
pricti_body(cislobody, resitel, body)
|
||||
pricti_body(nadproblem_slovnik, resitel, body)
|
||||
|
||||
body = hodn.body
|
||||
|
||||
# a mít více řešitelů
|
||||
for resitel in list(reseni.resitele.all()):
|
||||
if resitel not in aktivni_resitele:
|
||||
print("Skipping {}".format(resitel.id))
|
||||
continue
|
||||
pricti_body(cislobody, resitel, body)
|
||||
pricti_body(nadproblem_slovnik, resitel, body)
|
||||
end = time.time()
|
||||
print("for cykly:", end-start)
|
||||
return hlavni_problemy_slovnik, cislobody
|
||||
|
|
Loading…
Reference in a new issue