|
|
@ -242,13 +242,11 @@ def secti_body_za_cislo(cislo, aktivni_resitele, hlavni_problemy=None): |
|
|
|
hlavni_problemy = hlavni_problemy_cisla(cislo) |
|
|
|
|
|
|
|
def ne_clanek_ne_konfera(problem): |
|
|
|
return not(isinstance(problem.get_real_instance(), m.Clanek) or isinstance(problem.get_real_instance(), m.Konfera)) |
|
|
|
inst = problem.get_real_instance() |
|
|
|
return not(isinstance(inst, m.Clanek) or isinstance(inst, m.Konfera)) |
|
|
|
|
|
|
|
temata_a_spol = list(filter(ne_clanek_ne_konfera, hlavni_problemy)) |
|
|
|
|
|
|
|
def cosi(problem): |
|
|
|
return problem.id |
|
|
|
|
|
|
|
hlavni_problemy_slovnik = {} |
|
|
|
for hp in temata_a_spol: |
|
|
|
hlavni_problemy_slovnik[hp.id] = {} |
|
|
@ -389,7 +387,6 @@ def vysledkovka_cisla(cislo, context=None): |
|
|
|
|
|
|
|
# řešitelé setřídění podle bodů za číslo sestupně |
|
|
|
setrizeni_resitele_id = [dvojice[0] for dvojice in resitel_rocnikbody_sezn] |
|
|
|
setrizeni_resitele = [m.Resitel.objects.get(id=i) for i in setrizeni_resitele_id] |
|
|
|
|
|
|
|
# spočítáme pořadí řešitelů |
|
|
|
setrizeni_resitele_body = [dvojice[1] for dvojice in resitel_rocnikbody_sezn] |
|
|
@ -400,6 +397,7 @@ def vysledkovka_cisla(cislo, context=None): |
|
|
|
i = 0 |
|
|
|
|
|
|
|
def ne_clanek_ne_konfera(problem): |
|
|
|
|
|
|
|
return not(isinstance(problem.get_real_instance(), m.Clanek) or isinstance(problem.get_real_instance(), m.Konfera)) |
|
|
|
|
|
|
|
temata_a_spol = list(filter(ne_clanek_ne_konfera, hlavni_problemy)) |
|
|
@ -415,6 +413,11 @@ def vysledkovka_cisla(cislo, context=None): |
|
|
|
|
|
|
|
je_nejake_ostatni = len(hlavni_problemy) - len(temata_a_spol) > 0 |
|
|
|
|
|
|
|
setrizeni_resitele_slovnik = {} |
|
|
|
setrizeni_resitele = m.Resitel.objects.filter(id__in=setrizeni_resitele_id).select_related('osoba') |
|
|
|
for r in setrizeni_resitele: |
|
|
|
setrizeni_resitele_slovnik[r.id] = r |
|
|
|
|
|
|
|
for ar_id in setrizeni_resitele_id: |
|
|
|
# získáme seznam bodů za problémy pro daného řešitele |
|
|
|
body_problemy = [] |
|
|
@ -428,7 +431,7 @@ def vysledkovka_cisla(cislo, context=None): |
|
|
|
# vytáhneme informace pro daného řešitele |
|
|
|
radek = RadekVysledkovkyCisla( |
|
|
|
poradi[i], # pořadí |
|
|
|
m.Resitel.objects.get(id=ar_id), # řešitel (z id) |
|
|
|
setrizeni_resitele_slovnik[ar_id], # řešitel (z id) |
|
|
|
body_problemy, # seznam bodů za hlavní problémy čísla |
|
|
|
cislobody[ar_id], # body za číslo |
|
|
|
setrizeni_resitele_body[i], # body za ročník (spočítané výše s pořadím) |
|
|
|