Komentare k pocitani vysledkovky
This commit is contained in:
parent
7542adb996
commit
c75fe27a60
1 changed files with 10 additions and 1 deletions
|
@ -74,23 +74,31 @@ class CisloView(generic.DetailView):
|
|||
def get_context_data(self, **kwargs):
|
||||
context = super(CisloView, self).get_context_data(**kwargs)
|
||||
|
||||
# Vysledky k cislu: seznam objektu typu (cislo, resitel, body [v tom cisle], body_celkem [od zac. rocniku])
|
||||
vysledky = VysledkyKCislu.objects.filter(cislo = context['cislo']).order_by('-body_celkem').select_related("resitel")
|
||||
|
||||
reseni = Reseni.objects.filter(cislo_body = context['cislo']).select_related("resitel")
|
||||
|
||||
# seznam problemu s nejakymi body v tomto cisle
|
||||
problemy = sorted(list(set([r.problem for r in reseni])), key=lambda x:(0 if x.typ==Problem.TYP_ULOHA else 1,x.kod))
|
||||
# cislo sloupecku pro problem (inverzni funkce)
|
||||
problem_index = {}
|
||||
for i in range(len(problemy)):
|
||||
problem_index[problemy[i].id] = i
|
||||
|
||||
# pomocna mapa Resitel: RadekVysledkovky
|
||||
vysledky_resitele = {}
|
||||
# radky vysledkovky, seznam objektu RadekVysledkovky
|
||||
vysledkovka = []
|
||||
# posledni pocet bodu, pro detekci stejnych mist
|
||||
posledni_body = 100000
|
||||
|
||||
for vi in range(len(vysledky)):
|
||||
v = vysledky[vi]
|
||||
tv = RadekVysledkovky()
|
||||
tv.resitel = v.resitel
|
||||
tv.vysledek = v
|
||||
tv.body = ['']*len(problemy)
|
||||
tv.body = ['']*len(problemy) # misto pro body za jednotlive uloy
|
||||
tv.poradi = ''
|
||||
if posledni_body > v.body_celkem:
|
||||
posledni_body = v.body_celkem
|
||||
|
@ -98,6 +106,7 @@ class CisloView(generic.DetailView):
|
|||
vysledky_resitele[v.resitel.id] = tv
|
||||
vysledkovka.append(tv)
|
||||
|
||||
# doplneni bodu za jednotliva reseni lidi do RadekVysledkovky.body
|
||||
for r in reseni:
|
||||
vysledky_resitele[r.resitel.id].body[problem_index[r.problem.id]] = r.body
|
||||
|
||||
|
|
Loading…
Reference in a new issue