|
|
@ -430,11 +430,12 @@ def sloupec_s_poradim(seznam_s_body): |
|
|
|
def __soucet_resitele_problemu(problem, resitel, cislo, soucet): |
|
|
|
# sečteme body za daný problém přes všechna řešení daného problému |
|
|
|
# od daného řešitele |
|
|
|
reseni_resitele = problem.hodnoceni_set.filter(reseni__resitele=resitel, |
|
|
|
reseni_resitele = Reseni.objects.filter(resitele__in=resitel) |
|
|
|
hodnoceni_resitele = problem.hodnoceni.filter(reseni__in=reseni_resitele, |
|
|
|
cislo_body=cislo) |
|
|
|
# XXX chyba na řádku výše - řešení může mít více řešitelů, asi chceme contains |
|
|
|
# nebo in |
|
|
|
for r in reseni_resitele: |
|
|
|
for r in hodnoceni_resitele: |
|
|
|
soucet += r.body |
|
|
|
|
|
|
|
# a přičteme k tomu hodnocení všech podproblémů |
|
|
@ -450,7 +451,8 @@ def body_resitele_problemu_v_cisle(problem, resitel, cislo): |
|
|
|
|
|
|
|
# vrátí list všech problémů s body v daném čísle, které již nemají nadproblém |
|
|
|
def hlavni_problemy_cisla(cislo): |
|
|
|
hodnoceni = cislo.hodnoceni.select_related('problem', 'reseni').all() # hodnocení, která se vážou k danému číslu |
|
|
|
hodnoceni = cislo.hodnoceni.select_related('problem', 'reseni').all() |
|
|
|
# hodnocení, která se vážou k danému číslu |
|
|
|
|
|
|
|
reseni = [h.reseni for h in hodnoceni] |
|
|
|
problemy = [h.problem for h in hodnoceni] |
|
|
@ -585,7 +587,8 @@ class RocnikView(generic.DetailView): |
|
|
|
|
|
|
|
#context['vysledkovka'] = vysledkovka_rocniku(context["rocnik"]) |
|
|
|
#context['vysledkovka_s_neverejnymi'] = vysledkovka_rocniku(context["rocnik"], jen_verejne=False) |
|
|
|
context['temata_v_rocniku'] = verejna_temata(context["rocnik"]) |
|
|
|
#context['temata_v_rocniku'] = verejna_temata(context["rocnik"]) |
|
|
|
# FIXME: opravit vylistování témat v ročníku |
|
|
|
|
|
|
|
return context |
|
|
|
|
|
|
|