Move vysledkovek do aplikace vysledkovky
This commit is contained in:
parent
ef68d3fb75
commit
61b6f4bfd9
15 changed files with 159 additions and 153 deletions
|
@ -7,7 +7,7 @@ from django.utils.encoding import force_text
|
||||||
|
|
||||||
from .utils import default_ovvpfile
|
from .utils import default_ovvpfile
|
||||||
from seminar.models import Rocnik, Soustredeni
|
from seminar.models import Rocnik, Soustredeni
|
||||||
from seminar.views import vysledkovka
|
from vysledkovky import utils
|
||||||
from seminar.utils import aktivniResitele
|
from seminar.utils import aktivniResitele
|
||||||
|
|
||||||
class ExportIndexView(generic.View):
|
class ExportIndexView(generic.View):
|
||||||
|
@ -66,8 +66,8 @@ class ExportRocnikView(generic.View):
|
||||||
rocnik = get_object_or_404(Rocnik, prvni_rok=pr, exportovat=True)
|
rocnik = get_object_or_404(Rocnik, prvni_rok=pr, exportovat=True)
|
||||||
cislo = rocnik.posledni_zverejnena_vysledkovka_cislo()
|
cislo = rocnik.posledni_zverejnena_vysledkovka_cislo()
|
||||||
resitele = aktivniResitele(cislo, True)
|
resitele = aktivniResitele(cislo, True)
|
||||||
slovnik_body = vysledkovka.secti_body_za_rocnik(cislo, resitele, False)
|
slovnik_body = utils.secti_body_za_rocnik(cislo, resitele, False)
|
||||||
setrizeni_resitele, body = vysledkovka.setrid_resitele_a_body(slovnik_body)
|
setrizeni_resitele, body = utils.setrid_resitele_a_body(slovnik_body)
|
||||||
|
|
||||||
of = default_ovvpfile('MaM.rocnik', rocnik)
|
of = default_ovvpfile('MaM.rocnik', rocnik)
|
||||||
of.headers['comment'] = u'MaM-Web export aktivnich resitelu rocniku {rocnik} do cisla {cislo}'.format(rocnik=rocnik, cislo=cislo)
|
of.headers['comment'] = u'MaM-Web export aktivnich resitelu rocniku {rocnik} do cisla {cislo}'.format(rocnik=rocnik, cislo=cislo)
|
||||||
|
|
|
@ -139,6 +139,8 @@ INSTALLED_APPS = (
|
||||||
'api',
|
'api',
|
||||||
'aesop',
|
'aesop',
|
||||||
'odevzdavatko',
|
'odevzdavatko',
|
||||||
|
'vysledkovky',
|
||||||
|
|
||||||
# Admin upravy:
|
# Admin upravy:
|
||||||
|
|
||||||
# 'material',
|
# 'material',
|
||||||
|
|
|
@ -58,34 +58,7 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if cislo.verejna_vysledkovka or user.is_staff %}
|
{% if cislo.verejna_vysledkovka or user.is_staff %}
|
||||||
<table class='vysledkovka'>
|
{% include "vysledkovky/vysledkovka_cisla.html" %}
|
||||||
<tr class='border-b'>
|
|
||||||
<th class='border-r'>#
|
|
||||||
<th class='border-r'>Jméno #}
|
|
||||||
{# problémy by měly být veřejné, když je veřejná výsledkovka #}
|
|
||||||
{# {% for p in problemy %}
|
|
||||||
<th class='border-r'><a href="{{ p.verejne_url }}">{{ p.kod_v_rocniku }}</a>
|
|
||||||
{% endfor %}
|
|
||||||
<th class='border-r'>Za číslo</sup>
|
|
||||||
<th class='border-r'>Za ročník
|
|
||||||
<th class='border-r'>Odjakživa
|
|
||||||
{% for rv in radky_vysledkovky %}
|
|
||||||
<tr>
|
|
||||||
<td class='border-r'>{% autoescape off %}{{ rv.poradi }}{% endautoescape %}
|
|
||||||
<th class='border-r'>
|
|
||||||
{% if rv.resitel.titul != "" %}
|
|
||||||
{{ rv.resitel.titul }}<sup>MM</sup>
|
|
||||||
{% endif %}
|
|
||||||
{{ rv.resitel.osoba.plne_jmeno }}
|
|
||||||
{% for b in rv.hlavni_problemy_body %}
|
|
||||||
<td class='border-r'>{{ b }}
|
|
||||||
{% endfor %}
|
|
||||||
<td class='border-r'>{{ rv.body_cislo }}
|
|
||||||
<td class='border-r'><b>{{ rv.body_rocnik }}</b>
|
|
||||||
<td class='border-r'>{{ rv.body_celkem_odjakziva }}
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
</table>
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if not cislo.verejna_vysledkovka and user.is_staff %}
|
{% if not cislo.verejna_vysledkovka and user.is_staff %}
|
||||||
|
|
|
@ -79,73 +79,7 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if cislo.verejna_vysledkovka or user.je_org %}
|
{% if cislo.verejna_vysledkovka or user.je_org %}
|
||||||
<table class='vysledkovka'>
|
{% include "vysledkovky/vysledkovka_cisla.html" %}
|
||||||
<tr class='border-b'>
|
|
||||||
<th class='border-r'>#
|
|
||||||
<th class='border-r'>Jméno
|
|
||||||
{% for p in problemy %}
|
|
||||||
<th class='border-r' id="problem{{ forloop.counter }}">{# <a href="{{ p.verejne_url }}"> #}{{ p.kod_v_rocniku }}{# </a> #}
|
|
||||||
|
|
||||||
{# TODELETE #}
|
|
||||||
{% for podproblemy in podproblemy_iter.next %}
|
|
||||||
<th class='border-r podproblem{{ forloop.parentloop.counter }} podproblem'>{# <a href="{{ podproblemy.verejne_url }}"> #}{{ podproblemy.kod_v_rocniku }}{# </a> #}
|
|
||||||
{% endfor %}
|
|
||||||
{# TODELETE #}
|
|
||||||
|
|
||||||
{% endfor %}
|
|
||||||
{% if ostatni %}<th class='border-r'>Ostatní {% endif %}
|
|
||||||
|
|
||||||
{# TODELETE #}
|
|
||||||
{% for podproblemy in podproblemy_iter.next %}
|
|
||||||
<th class='border-r podproblem{{ problemy.len }} podproblem'>{# <a href="{{ podproblemy.verejne_url }}"> #}{{ podproblemy.kod_v_rocniku }}{# </a> #}
|
|
||||||
{% endfor %}
|
|
||||||
{# TODELETE #}
|
|
||||||
|
|
||||||
|
|
||||||
<th class='border-r'>Za číslo
|
|
||||||
<th class='border-r'>Za ročník
|
|
||||||
<th class='border-r'>Odjakživa
|
|
||||||
{% for rv in radky_vysledkovky %}
|
|
||||||
<tr>
|
|
||||||
<td class='border-r'>{% autoescape off %}{{ rv.poradi }}{% endautoescape %}
|
|
||||||
<th class='border-r'>
|
|
||||||
{% if rv.titul %}
|
|
||||||
{{ rv.titul }}<sup>MM</sup>
|
|
||||||
{% endif %}
|
|
||||||
{{ rv.resitel.osoba.plne_jmeno }}
|
|
||||||
{% for b in rv.body_problemy_sezn %}
|
|
||||||
<td class='border-r'>{{ b }}
|
|
||||||
|
|
||||||
{# TODELETE #}
|
|
||||||
{% for body_podproblemu in rv.body_podproblemy_iter.next %}
|
|
||||||
<td class='border-r podproblem{{ forloop.parentloop.counter }} podproblem'>{{ body_podproblemu }}
|
|
||||||
{% endfor %}
|
|
||||||
{# TODELETE #}
|
|
||||||
|
|
||||||
{% endfor %}
|
|
||||||
<td class='border-r'>{{ rv.body_cislo }}
|
|
||||||
<td class='border-r'><b>{{ rv.body_rocnik }}</b>
|
|
||||||
<td class='border-r'>{{ rv.body_celkem_odjakziva }}
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
</table>
|
|
||||||
|
|
||||||
{# TODELETE #}
|
|
||||||
<script>
|
|
||||||
{% for p in problemy %}
|
|
||||||
$(".podproblem{{ forloop.counter }}").css("display", "none")
|
|
||||||
$("#problem{{ forloop.counter }}")[0].addEventListener('mouseover', podproblem{{ forloop.counter }})
|
|
||||||
$("#problem{{ forloop.counter }}")[0].addEventListener('mouseout', podproblem{{ forloop.counter }}end)
|
|
||||||
function podproblem{{ forloop.counter }}(event) {
|
|
||||||
$(".podproblem{{ forloop.counter }}").css("display", "")
|
|
||||||
}
|
|
||||||
function podproblem{{ forloop.counter }}end(event) {
|
|
||||||
$(".podproblem{{ forloop.counter }}").css("display", "none")
|
|
||||||
}
|
|
||||||
{% endfor %}
|
|
||||||
</script>
|
|
||||||
{# TODELETE #}
|
|
||||||
|
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if not cislo.verejna_vysledkovka and user.je_org %}
|
{% if not cislo.verejna_vysledkovka and user.je_org %}
|
||||||
|
|
|
@ -72,17 +72,13 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<h2>Výsledková listina</h2>
|
<h2>Výsledková listina</h2>
|
||||||
{% include "seminar/vysledkovka_rocnik.html" %}
|
{% include "vysledkovky/vysledkovka_rocnik.html" %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if user.je_org %}
|
{% if user.je_org %}
|
||||||
<div class='mam-org-only'>
|
<div class='mam-org-only'>
|
||||||
<h2>Výsledková listina včetně neveřejných bodů</h2>
|
<h2>Výsledková listina včetně neveřejných bodů</h2>
|
||||||
{% with radky_vysledkovky_s_neverejnymi as radky_vysledkovky %}
|
{% include "vysledkovky/vysledkovka_rocnik_neverejna.html" %}
|
||||||
{% with cisla_s_neverejnymi as cisla %}
|
|
||||||
{% include "seminar/vysledkovka_rocnik.html" %}
|
|
||||||
{% endwith %}
|
|
||||||
{% endwith %}
|
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
</h1>
|
</h1>
|
||||||
|
|
||||||
{% if radky_vysledkovky %}
|
{% if radky_vysledkovky %}
|
||||||
{% include "seminar/vysledkovka_rocnik.html" %}
|
{% include "vysledkovky/vysledkovka_rocnik.html" %}
|
||||||
{% else %}
|
{% else %}
|
||||||
<p>V tomto ročníku zatím žádné výsledky nejsou.</p>
|
<p>V tomto ročníku zatím žádné výsledky nejsou.</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -22,11 +22,7 @@
|
||||||
{% if user.je_org and vysledkovka_s_neverejnymi %}
|
{% if user.je_org and vysledkovka_s_neverejnymi %}
|
||||||
<div class='mam-org-only'>
|
<div class='mam-org-only'>
|
||||||
<h1>Výsledky včetně neveřejných</h1>
|
<h1>Výsledky včetně neveřejných</h1>
|
||||||
{% with vysledkovka_s_neverejnymi as radky_vysledkovky %}
|
{% include "vysledkovky/vysledkovka_rocnik_neverejna.html" %}
|
||||||
{% with cisla_s_neverejnymi as cisla %}
|
|
||||||
{% include "seminar/vysledkovka_rocnik.html" %}
|
|
||||||
{% endwith %}
|
|
||||||
{% endwith %}
|
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,8 @@ from seminar.forms import PrihlaskaForm, ProfileEditForm, PoMaturiteProfileEditF
|
||||||
import seminar.forms as f
|
import seminar.forms as f
|
||||||
import seminar.templatetags.treenodes as tnltt
|
import seminar.templatetags.treenodes as tnltt
|
||||||
import seminar.views.views_rest as vr
|
import seminar.views.views_rest as vr
|
||||||
from seminar.views.vysledkovka import vysledkovka_rocniku, vysledkovka_cisla, body_resitelu
|
from vysledkovky.utils import body_resitelu
|
||||||
|
from vysledkovky.views import vysledkovka_rocniku, vysledkovka_cisla
|
||||||
|
|
||||||
from datetime import date, datetime
|
from datetime import date, datetime
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
|
@ -487,31 +488,34 @@ def ZadaniAktualniVysledkovkaView(request):
|
||||||
nastaveni = get_object_or_404(Nastaveni)
|
nastaveni = get_object_or_404(Nastaveni)
|
||||||
# Aktualni verejna vysledkovka
|
# Aktualni verejna vysledkovka
|
||||||
rocnik = nastaveni.aktualni_rocnik
|
rocnik = nastaveni.aktualni_rocnik
|
||||||
vysledkovka = vysledkovka_rocniku(rocnik)
|
context = vysledkovka_rocniku(
|
||||||
cisla = cisla_rocniku(rocnik)
|
rocnik=rocnik,
|
||||||
|
request=request,
|
||||||
|
sneverejnou=True
|
||||||
|
)
|
||||||
|
|
||||||
# kdyz neni verejna vysledkovka, tak zobraz starou
|
# kdyz neni verejna vysledkovka, tak zobraz starou
|
||||||
if not vysledkovka or not any(map(lambda it: it.verejna_vysledkovka, cisla)):
|
if len(context['cisla']) == 0:
|
||||||
try:
|
try:
|
||||||
minuly_rocnik = Rocnik.objects.get(
|
minuly_rocnik = Rocnik.objects.get(
|
||||||
prvni_rok=(rocnik.prvni_rok-1))
|
prvni_rok=(rocnik.prvni_rok-1))
|
||||||
rocnik = minuly_rocnik
|
rocnik = minuly_rocnik
|
||||||
vysledkovka = vysledkovka_rocniku(minuly_rocnik)
|
|
||||||
cisla = cisla_rocniku(minuly_rocnik)
|
# Přepíšeme prázdnou výsledkovku výsledkovkou z minulého ročníku
|
||||||
|
context = vysledkovka_rocniku(
|
||||||
|
rocnik=rocnik,
|
||||||
|
context=context,
|
||||||
|
request=request,
|
||||||
|
sneverejnou=True
|
||||||
|
)
|
||||||
except ObjectDoesNotExist:
|
except ObjectDoesNotExist:
|
||||||
pass
|
pass
|
||||||
# vysledkovka s neverejnyma vysledkama
|
|
||||||
vysledkovka_s_neverejnymi = vysledkovka_rocniku(nastaveni.aktualni_rocnik, jen_verejne=False)
|
context['rocnik'] = rocnik
|
||||||
cisla_s_neverejnymi = cisla_rocniku(nastaveni.aktualni_rocnik, jen_verejne=False)
|
|
||||||
return render(
|
return render(
|
||||||
request,
|
request,
|
||||||
'seminar/zadani/AktualniVysledkovka.html',
|
'seminar/zadani/AktualniVysledkovka.html',
|
||||||
{
|
context
|
||||||
'rocnik': rocnik,
|
|
||||||
'radky_vysledkovky': vysledkovka,
|
|
||||||
'cisla': cisla,
|
|
||||||
'vysledkovka_s_neverejnymi': vysledkovka_s_neverejnymi,
|
|
||||||
'cisla_s_neverejnymi': cisla_s_neverejnymi,
|
|
||||||
}
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -655,18 +659,12 @@ class RocnikView(generic.DetailView):
|
||||||
def get_context_data(self, **kwargs):
|
def get_context_data(self, **kwargs):
|
||||||
start = time.time()
|
start = time.time()
|
||||||
context = super(RocnikView, self).get_context_data(**kwargs)
|
context = super(RocnikView, self).get_context_data(**kwargs)
|
||||||
|
context = vysledkovka_rocniku(
|
||||||
# vysledkovka = True zajistí vykreslení,
|
rocnik=context["rocnik"],
|
||||||
# zkontrolovat, kdy se má a nemá vykreslovat
|
context=context,
|
||||||
cisla = cisla_rocniku(context["rocnik"])
|
request=self.request,
|
||||||
context['vysledkovka'] = any(map(lambda it: it.verejna_vysledkovka, cisla))
|
sneverejnou=True
|
||||||
if self.request.user.je_org:
|
)
|
||||||
context['cisla_s_neverejnymi'] = cisla_rocniku(context["rocnik"], jen_verejne=False)
|
|
||||||
context['radky_vysledkovky_s_neverejnymi'] = vysledkovka_rocniku(context["rocnik"], jen_verejne=False)
|
|
||||||
context['hlavni_problemy_v_rocniku_s_neverejnymi'] = hlavni_problemy_f(problemy_rocniku(context["rocnik"], jen_verejne=False))
|
|
||||||
context['cisla'] = cisla
|
|
||||||
context['radky_vysledkovky'] = vysledkovka_rocniku(context["rocnik"])
|
|
||||||
context['hlavni_problemy_v_rocniku'] = hlavni_problemy_f(problemy_rocniku(context["rocnik"]))
|
|
||||||
end = time.time()
|
end = time.time()
|
||||||
print("Kontext:", end-start)
|
print("Kontext:", end-start)
|
||||||
|
|
||||||
|
|
3
vysledkovky/__init__.py
Normal file
3
vysledkovky/__init__.py
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
"""
|
||||||
|
Obsahuje výsledkovky a vše, co se týká sčítání bodů.
|
||||||
|
"""
|
5
vysledkovky/apps.py
Normal file
5
vysledkovky/apps.py
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
from django.apps import AppConfig
|
||||||
|
|
||||||
|
|
||||||
|
class VysledkovkyConfig(AppConfig):
|
||||||
|
name = 'vysledkovky'
|
0
vysledkovky/migrations/__init__.py
Normal file
0
vysledkovky/migrations/__init__.py
Normal file
66
vysledkovky/templates/vysledkovky/vysledkovka_cisla.html
Normal file
66
vysledkovky/templates/vysledkovky/vysledkovka_cisla.html
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
<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' id="problem{{ forloop.counter }}">{# <a href="{{ p.verejne_url }}"> #}{{ p.kod_v_rocniku }}{# </a> #}
|
||||||
|
|
||||||
|
{# TODELETE #}
|
||||||
|
{% for podproblemy in podproblemy_iter.next %}
|
||||||
|
<th class='border-r podproblem{{ forloop.parentloop.counter }} podproblem'>{# <a href="{{ podproblemy.verejne_url }}"> #}{{ podproblemy.kod_v_rocniku }}{# </a> #}
|
||||||
|
{% endfor %}
|
||||||
|
{# TODELETE #}
|
||||||
|
|
||||||
|
{% endfor %}
|
||||||
|
{% if ostatni %}<th class='border-r'>Ostatní {% endif %}
|
||||||
|
|
||||||
|
{# TODELETE #}
|
||||||
|
{% for podproblemy in podproblemy_iter.next %}
|
||||||
|
<th class='border-r podproblem{{ problemy.len }} podproblem'>{# <a href="{{ podproblemy.verejne_url }}"> #}{{ podproblemy.kod_v_rocniku }}{# </a> #}
|
||||||
|
{% endfor %}
|
||||||
|
{# TODELETE #}
|
||||||
|
|
||||||
|
|
||||||
|
<th class='border-r'>Za číslo
|
||||||
|
<th class='border-r'>Za ročník
|
||||||
|
<th class='border-r'>Odjakživa
|
||||||
|
{% for rv in radky_vysledkovky %}
|
||||||
|
<tr>
|
||||||
|
<td class='border-r'>{% autoescape off %}{{ rv.poradi }}{% endautoescape %}
|
||||||
|
<th class='border-r'>
|
||||||
|
{% if rv.titul %}
|
||||||
|
{{ rv.titul }}<sup>MM</sup>
|
||||||
|
{% endif %}
|
||||||
|
{{ rv.resitel.osoba.plne_jmeno }}
|
||||||
|
{% for b in rv.body_problemy_sezn %}
|
||||||
|
<td class='border-r'>{{ b }}
|
||||||
|
|
||||||
|
{# TODELETE #}
|
||||||
|
{% for body_podproblemu in rv.body_podproblemy_iter.next %}
|
||||||
|
<td class='border-r podproblem{{ forloop.parentloop.counter }} podproblem'>{{ body_podproblemu }}
|
||||||
|
{% endfor %}
|
||||||
|
{# TODELETE #}
|
||||||
|
|
||||||
|
{% endfor %}
|
||||||
|
<td class='border-r'>{{ rv.body_cislo }}
|
||||||
|
<td class='border-r'><b>{{ rv.body_rocnik }}</b>
|
||||||
|
<td class='border-r'>{{ rv.body_celkem_odjakziva }}
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</table>
|
||||||
|
|
||||||
|
{# TODELETE #}
|
||||||
|
<script>
|
||||||
|
{% for p in problemy %}
|
||||||
|
$(".podproblem{{ forloop.counter }}").css("display", "none")
|
||||||
|
$("#problem{{ forloop.counter }}")[0].addEventListener('mouseover', podproblem{{ forloop.counter }})
|
||||||
|
$("#problem{{ forloop.counter }}")[0].addEventListener('mouseout', podproblem{{ forloop.counter }}end)
|
||||||
|
function podproblem{{ forloop.counter }}(event) {
|
||||||
|
$(".podproblem{{ forloop.counter }}").css("display", "")
|
||||||
|
}
|
||||||
|
function podproblem{{ forloop.counter }}end(event) {
|
||||||
|
$(".podproblem{{ forloop.counter }}").css("display", "none")
|
||||||
|
}
|
||||||
|
{% endfor %}
|
||||||
|
</script>
|
||||||
|
{# TODELETE #}
|
|
@ -0,0 +1 @@
|
||||||
|
{% include "vysledkovky/vysledkovka_rocnik.html" with radky_vysledkovky=radky_vysledkovky_s_neverejnymi cisla=cisla_s_neverejnymi %}
|
|
@ -2,7 +2,6 @@ import seminar.models as m
|
||||||
from django.db.models import Q, Sum, Count
|
from django.db.models import Q, Sum, Count
|
||||||
from seminar.utils import aktivniResitele, resi_v_rocniku, cisla_rocniku, hlavni_problem, hlavni_problemy_f, problemy_cisla, podproblemy_v_cislu
|
from seminar.utils import aktivniResitele, resi_v_rocniku, cisla_rocniku, hlavni_problem, hlavni_problemy_f, problemy_cisla, podproblemy_v_cislu
|
||||||
import time
|
import time
|
||||||
### Výsledky
|
|
||||||
|
|
||||||
ROCNIK_ZRUSENI_TEMAT = 25
|
ROCNIK_ZRUSENI_TEMAT = 25
|
||||||
|
|
||||||
|
@ -142,7 +141,7 @@ def setrid_resitele_a_body(slov_resitel_body):
|
||||||
setrizene_body = [dvojice[1] for dvojice in slov_resitel_body]
|
setrizene_body = [dvojice[1] for dvojice in slov_resitel_body]
|
||||||
return setrizeni_resitele_id, setrizene_body
|
return setrizeni_resitele_id, setrizene_body
|
||||||
|
|
||||||
def vysledkovka_rocniku(rocnik, jen_verejne=True):
|
def data_vysledkovky_rocniku(rocnik, jen_verejne=True):
|
||||||
""" Přebírá ročník (např. context["rocnik"]) a vrací výsledkovou listinu ve
|
""" Přebírá ročník (např. context["rocnik"]) a vrací výsledkovou listinu ve
|
||||||
formě vhodné pro šablonu "seminar/vysledkovka_rocniku.html"
|
formě vhodné pro šablonu "seminar/vysledkovka_rocniku.html"
|
||||||
"""
|
"""
|
||||||
|
@ -197,7 +196,7 @@ def vysledkovka_rocniku(rocnik, jen_verejne=True):
|
||||||
end = time.time()
|
end = time.time()
|
||||||
print("Vysledkovka rocniku",end-start)
|
print("Vysledkovka rocniku",end-start)
|
||||||
|
|
||||||
return radky_vysledkovky
|
return radky_vysledkovky, cisla
|
||||||
|
|
||||||
class RadekVysledkovkyCisla(object):
|
class RadekVysledkovkyCisla(object):
|
||||||
"""Obsahuje věci, které se hodí vědět při konstruování výsledkovky.
|
"""Obsahuje věci, které se hodí vědět při konstruování výsledkovky.
|
||||||
|
@ -372,9 +371,7 @@ class FixedIterator:
|
||||||
# TODELETE
|
# TODELETE
|
||||||
|
|
||||||
|
|
||||||
def vysledkovka_cisla(cislo, context=None):
|
def data_vysledkovky_cisla(cislo):
|
||||||
if context is None:
|
|
||||||
context = {}
|
|
||||||
problemy = problemy_cisla(cislo)
|
problemy = problemy_cisla(cislo)
|
||||||
hlavni_problemy = hlavni_problemy_f(problemy)
|
hlavni_problemy = hlavni_problemy_f(problemy)
|
||||||
## TODO možná chytřeji vybírat aktivní řešitele
|
## TODO možná chytřeji vybírat aktivní řešitele
|
||||||
|
@ -453,13 +450,11 @@ def vysledkovka_cisla(cislo, context=None):
|
||||||
i += 1
|
i += 1
|
||||||
|
|
||||||
# vytahané informace předáváme do kontextu
|
# vytahané informace předáváme do kontextu
|
||||||
context['cislo'] = cislo
|
|
||||||
context['radky_vysledkovky'] = radky_vysledkovky
|
|
||||||
context['problemy'] = temata_a_spol
|
|
||||||
context['ostatni'] = je_nejake_ostatni
|
|
||||||
pt = [podproblemy[it.id] for it in temata_a_spol]+[podproblemy[-1]]
|
pt = [podproblemy[it.id] for it in temata_a_spol]+[podproblemy[-1]]
|
||||||
context['podproblemy'] = pt
|
return (
|
||||||
context['podproblemy_iter'] = FixedIterator(pt.__iter__()) # TODELETE
|
radky_vysledkovky,
|
||||||
#context['v_cisle_zadane'] = TODO
|
temata_a_spol,
|
||||||
#context['resene_problemy'] = resene_problemy
|
je_nejake_ostatni,
|
||||||
return context
|
pt,
|
||||||
|
FixedIterator(pt.__iter__())
|
||||||
|
)
|
37
vysledkovky/views.py
Normal file
37
vysledkovky/views.py
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
from .utils import data_vysledkovky_cisla, \
|
||||||
|
data_vysledkovky_rocniku
|
||||||
|
|
||||||
|
|
||||||
|
def vysledkovka_cisla(cislo, context=None):
|
||||||
|
if context is None:
|
||||||
|
context = {}
|
||||||
|
context['cislo'] = cislo
|
||||||
|
|
||||||
|
(
|
||||||
|
context['radky_vysledkovky'],
|
||||||
|
context['problemy'],
|
||||||
|
context['ostatni'],
|
||||||
|
context['podproblemy'],
|
||||||
|
context['podproblemy_iter']
|
||||||
|
) = data_vysledkovky_cisla(cislo)
|
||||||
|
return context
|
||||||
|
|
||||||
|
|
||||||
|
def vysledkovka_rocniku(rocnik, context=None, request=None, sneverejnou=False):
|
||||||
|
if context is None:
|
||||||
|
context = {}
|
||||||
|
|
||||||
|
(
|
||||||
|
context['radky_vysledkovky'],
|
||||||
|
context['cisla']
|
||||||
|
) = data_vysledkovky_rocniku(rocnik)
|
||||||
|
|
||||||
|
context['vysledkovka'] = len(context['cisla']) != 0
|
||||||
|
|
||||||
|
if sneverejnou and request and request.user.je_org:
|
||||||
|
(
|
||||||
|
context['radky_vysledkovky_s_neverejnymi'],
|
||||||
|
context['cisla_s_neverejnymi']
|
||||||
|
) = data_vysledkovky_rocniku(rocnik, jen_verejne=False)
|
||||||
|
|
||||||
|
return context
|
Loading…
Reference in a new issue