Prepsani pocitani bodu v rocniku, aby se nepouzivaly Nody.
This commit is contained in:
parent
430d696c35
commit
75cf0e188f
1 changed files with 14 additions and 30 deletions
|
@ -334,15 +334,15 @@ def body_resitele_v_cisle(resitel, cislo):
|
||||||
return body_resitele
|
return body_resitele
|
||||||
|
|
||||||
# spočítá součet všech bodů řešitele za daný rok (nebo jen do daného čísla včetně)
|
# spočítá součet všech bodů řešitele za daný rok (nebo jen do daného čísla včetně)
|
||||||
def body_resitele_v_rocniku(resitel, rocnik_node, do_cisla=None):
|
def body_resitele_v_rocniku(resitel, rocnik, do_cisla=None):
|
||||||
# pokud do_cisla=None, tak do posledního čísla v ročníku
|
# pokud do_cisla=None, tak do posledního čísla v ročníku
|
||||||
# do_cisla je objekt Cislo
|
# do_cisla je objekt Cislo
|
||||||
cislo_node = rocnik_node.firstChild
|
cisla = rocnik.cisla
|
||||||
body = 0
|
body = 0
|
||||||
while not (cislo_node == None or cislo_node.cislo == do_cisla.CisloNode.next):
|
for cislo in cisla:
|
||||||
|
if cislo == do_cisla: break
|
||||||
# druhá část zaručuje, že máme výsledky do daného čísla včetně
|
# druhá část zaručuje, že máme výsledky do daného čísla včetně
|
||||||
body = body + body_resitele_v_cisle(resitel, cislo_node.cislo)
|
body = body + body_resitele_v_cisle(resitel, cislo_node.cislo)
|
||||||
cislo_node = cislo_node.next
|
|
||||||
return body
|
return body
|
||||||
|
|
||||||
#def vysledkovka_rocniku(rocnik, jen_verejne=True):
|
#def vysledkovka_rocniku(rocnik, jen_verejne=True):
|
||||||
|
@ -458,11 +458,14 @@ class VysledkyResitele(object):
|
||||||
resitel_jmeno = resitel.osoba.jmeno
|
resitel_jmeno = resitel.osoba.jmeno
|
||||||
resitel_prijmeni = resitel.osoba.prijmeni
|
resitel_prijmeni = resitel.osoba.prijmeni
|
||||||
body = {}
|
body = {}
|
||||||
body_cislo = 0
|
body_rocnik = 0
|
||||||
|
|
||||||
def body_za_cislo(self):
|
def body_za_cislo(self):
|
||||||
return sum(body.values())
|
return sum(body.values())
|
||||||
|
|
||||||
|
def body_za_rocnik(self):
|
||||||
|
return body_rocnik
|
||||||
|
|
||||||
class CisloView(generic.DetailView):
|
class CisloView(generic.DetailView):
|
||||||
model = Cislo
|
model = Cislo
|
||||||
template_name = 'seminar/archiv/cislo.html'
|
template_name = 'seminar/archiv/cislo.html'
|
||||||
|
@ -497,37 +500,18 @@ class CisloView(generic.DetailView):
|
||||||
#.filter(hodnoceni_set__rocnik__eq=cislo_rocnik)
|
#.filter(hodnoceni_set__rocnik__eq=cislo_rocnik)
|
||||||
radky_vysledkovky = []
|
radky_vysledkovky = []
|
||||||
for ar in aktivni_resitele:
|
for ar in aktivni_resitele:
|
||||||
|
# získáme výsledky řešitele - součty přes jednotlivé hlavní problémy
|
||||||
vr = VysledkyResitele(ar)
|
vr = VysledkyResitele(ar)
|
||||||
for h in hlavni_problemy:
|
# ukládání součtu bodů za všechny hlavní problémy => součet bodů za číslo
|
||||||
body = body_resitele_problemu_v_cisle(h, ar, cislo)
|
vr.body_cislo = body_resitele_v_cisle(ar, cislo)
|
||||||
# vr.body[h.kod_v_rocniku] = body
|
# výpočet bodů za ročník do daného čísla (aby fungovalo i pro starší čísla)
|
||||||
vr.body_cislo = vr.body_cislo + body
|
vr.body_rocnik = body_resitele_v_rocniku(ar, cislo.rocnik, cislo)
|
||||||
radky_vysledkovky.append(vr)
|
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: seřadit řešitele podle bodů v daném ročníku
|
||||||
## řazení viz fce výše - pochopit a případně přepsat
|
## řazení viz fce výše - pochopit a případně přepsat
|
||||||
## počet bodů udělat ve fce body_resitele_v_rocniku
|
|
||||||
|
|
||||||
|
|
||||||
# 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
|
|
||||||
# v čísle skutečně zadány
|
|
||||||
# typy_skutecne_zadanych = [Problem.TYP_ULOHA, Problem.TYP_SERIAL, Problem.TYP_ORG_CLANEK]
|
|
||||||
# v_cisle_zadane = Problem.objects.filter(cislo_zadani=context['cislo']).filter(typ__in=typy_skutecne_zadanych).order_by('kod')
|
|
||||||
|
|
||||||
# resene_problemy = Problem.objects.filter(cislo_reseni=context['cislo']).filter(typ__in=typy_skutecne_zadanych).order_by('cislo_zadani__cislo', 'kod')
|
|
||||||
#
|
|
||||||
# poradi_typu = {
|
|
||||||
# Problem.TYP_ULOHA: 1,
|
|
||||||
|
|
||||||
# Problem.TYP_SERIAL: 2,
|
|
||||||
# Problem.TYP_ORG_CLANEK: 3,
|
|
||||||
# Problem.TYP_TEMA: 4,
|
|
||||||
# Problem.TYP_RES_CLANEK: 5
|
|
||||||
# }
|
|
||||||
# problemy = sorted(set(r.problem for r in reseni), key=lambda x:(poradi_typu[x.typ], x.kod_v_rocniku()))
|
# problemy = sorted(set(r.problem for r in reseni), key=lambda x:(poradi_typu[x.typ], x.kod_v_rocniku()))
|
||||||
# #setridi problemy podle typu a poradi zadani
|
# #setridi problemy podle typu a poradi zadani
|
||||||
# problem_index = {}
|
# problem_index = {}
|
||||||
|
|
Loading…
Reference in a new issue