Testovaci view na cislo a vysledkovka s daty z VIEW
This commit is contained in:
parent
1421438c9c
commit
557c1d55e1
3 changed files with 70 additions and 1 deletions
32
seminar/templates/seminar/cislo.html
Normal file
32
seminar/templates/seminar/cislo.html
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
{% extends "base.html" %}
|
||||||
|
{% load staticfiles sekizai_tags %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<div>
|
||||||
|
<h2>Číslo {{ cislo }} [id {{ cislo.id}}]</h2>
|
||||||
|
|
||||||
|
<table class='vysledkovka'>
|
||||||
|
<tr class='border-b'>
|
||||||
|
<th class='border-r'>#
|
||||||
|
<th class='border-r'>Jméno
|
||||||
|
{% for p in problemy %}
|
||||||
|
<th class='border-r'>{{ p.cislo_zadani.cislo }}.{{ p.kod }}
|
||||||
|
{% endfor %}
|
||||||
|
<th class='border-r'>Sum
|
||||||
|
<th>Celkem
|
||||||
|
{% for rv in vysledkovka %}
|
||||||
|
<tr>
|
||||||
|
<td class='border-r'>{{ rv.poradi }}
|
||||||
|
<th class='border-r'>{{ rv.resitel.plne_jmeno }} [{{ rv.resitel.id }}]
|
||||||
|
{% for b in rv.body %}
|
||||||
|
<td class='border-r'>{{ b }}
|
||||||
|
{% endfor %}
|
||||||
|
<td class='border-r'>{{ rv.vysledek.body |default:0 }}
|
||||||
|
<td>{{ rv.vysledek.body_celkem }}
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</table>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
{% endblock content %}
|
||||||
|
|
|
@ -3,4 +3,5 @@ from . import views
|
||||||
|
|
||||||
urlpatterns = patterns('',
|
urlpatterns = patterns('',
|
||||||
url(r'^problem/(?P<pk>\d+)/$', views.ProblemView.as_view(), name='problem'),
|
url(r'^problem/(?P<pk>\d+)/$', views.ProblemView.as_view(), name='problem'),
|
||||||
|
url(r'^cislo/(?P<pk>\d+)/$', views.CisloView.as_view(), name='cislo'),
|
||||||
)
|
)
|
||||||
|
|
|
@ -2,7 +2,7 @@ from django.shortcuts import get_object_or_404, render
|
||||||
from django.http import HttpResponseRedirect
|
from django.http import HttpResponseRedirect
|
||||||
from django.core.urlresolvers import reverse
|
from django.core.urlresolvers import reverse
|
||||||
from django.views import generic
|
from django.views import generic
|
||||||
from .models import Problem, Cislo
|
from .models import Problem, Cislo, Reseni, VysledkyKCislu
|
||||||
|
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
|
|
||||||
|
@ -10,8 +10,44 @@ class ProblemView(generic.DetailView):
|
||||||
model = Problem
|
model = Problem
|
||||||
template_name = 'seminar/problem.html'
|
template_name = 'seminar/problem.html'
|
||||||
|
|
||||||
|
class RadekVysledkovky(object):
|
||||||
|
pass
|
||||||
|
|
||||||
class CisloView(generic.DetailView):
|
class CisloView(generic.DetailView):
|
||||||
model = Cislo
|
model = Cislo
|
||||||
template_name = 'seminar/cislo.html'
|
template_name = 'seminar/cislo.html'
|
||||||
|
def get_context_data(self, **kwargs):
|
||||||
|
context = super(CisloView, self).get_context_data(**kwargs)
|
||||||
|
|
||||||
|
vysledky = VysledkyKCislu.objects.filter(cislo = context['cislo']).select_related("resitel")
|
||||||
|
reseni = Reseni.objects.filter(cislo_body = context['cislo']).select_related("resitel")
|
||||||
|
|
||||||
|
problemy = sorted(list(set([r.problem for r in reseni])), key=lambda x:x.kod)
|
||||||
|
problem_index = {}
|
||||||
|
for i in range(len(problemy)):
|
||||||
|
problem_index[problemy[i].id] = i
|
||||||
|
|
||||||
|
vysledky_resitele = {}
|
||||||
|
vysledkovka = []
|
||||||
|
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.poradi = ''
|
||||||
|
if posledni_body > v.body_celkem:
|
||||||
|
posledni_body = v.body_celkem
|
||||||
|
tv.poradi = vi + 1
|
||||||
|
vysledky_resitele[v.resitel.id] = tv
|
||||||
|
vysledkovka.append(tv)
|
||||||
|
|
||||||
|
for r in reseni:
|
||||||
|
vysledky_resitele[r.resitel.id].body[problem_index[r.problem.id]] = r.body
|
||||||
|
|
||||||
|
context['vysledkovka'] = vysledkovka
|
||||||
|
context['problemy'] = problemy
|
||||||
|
return context
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue