|
|
@ -379,13 +379,14 @@ class ProblemView(generic.DetailView): |
|
|
|
|
|
|
|
|
|
|
|
class VysledkyResitele(object): |
|
|
|
#resitel_jmeno = models.CharField('jméno řešitele', max_length=256) |
|
|
|
#resitel_prijmeni = CharField('příjmení', max_length=256) |
|
|
|
"Pro daného řešitele ukládá počet bodů za jednotlivé úlohy a celkový |
|
|
|
počet bodů za číslo." |
|
|
|
|
|
|
|
def __init__(self, jmeno, prijmeni): |
|
|
|
resitel_jmeno = jmeno |
|
|
|
resitel_prijmeni = prijmeni |
|
|
|
body = {} |
|
|
|
body_cislo = 0 |
|
|
|
|
|
|
|
def body_za_cislo(self): |
|
|
|
return sum(body.values()) |
|
|
@ -460,14 +461,21 @@ class CisloView(generic.DetailView): |
|
|
|
aktivni_resitele = Resitel.objects.filter( |
|
|
|
rok_maturity__gte=context['rocnik'].druhy_rok()) |
|
|
|
#.filter(hodnoceni_set__rocnik__eq=cislo_rocnik) |
|
|
|
udaje_vysledkovky = {} |
|
|
|
radky_vysledkovky = [] |
|
|
|
for ar in aktivni_resitele: |
|
|
|
vr = VysledkyResitele(ar.jmeno, ar.prijmeni) |
|
|
|
for h in hlavni_problemy: |
|
|
|
vr.body[h.id] = vysledky_resitele_problemu(h, ar, cislo) |
|
|
|
for h in hlavni_problemy: |
|
|
|
body = vysledky_resitele_problemu(h, ar, cislo) |
|
|
|
vr.body[h.kod_v_rocniku] = body |
|
|
|
vr.body_cislo = vr.body_cislo + body |
|
|
|
radky_vysledkovky.append(vr) |
|
|
|
|
|
|
|
## TODO: spočítat počet bodů řešitele v daném ročníku a seřadit je podle toho |
|
|
|
## TODO: možná použít tyto funkce i v RocnikVysledkovkaView (a umístit sem nebo tam)? |
|
|
|
|
|
|
|
|
|
|
|
vysledky = VysledkyKCisluZaRocnik.objects.filter(cislo = context['cislo']).\ |
|
|
|
order_by('-body', 'resitel__prijmeni', 'resitel__jmeno') |
|
|
|
# vysledky = VysledkyKCisluZaRocnik.objects.filter(cislo = context['cislo']).\ |
|
|
|
# order_by('-body', 'resitel__prijmeni', 'resitel__jmeno') |
|
|
|
# reseni = Reseni.objects.filter(cislo_body = context['cislo']).select_related("resitel") |
|
|
|
|
|
|
|
# typy úloh, které se mají zobrazovat u čísla, tj. těch, které byly |
|
|
|