Dokončena oprava výsledkovek čísla a ročníku - generování TeXu.
This commit is contained in:
parent
03696d79ab
commit
c499d823f9
5 changed files with 57 additions and 140 deletions
|
@ -1,9 +1,9 @@
|
||||||
\setlength{\tabcolsep}{3pt}
|
\setlength{\tabcolsep}{3pt}
|
||||||
\begin{longtable}{|r|l|c|r|{% for p in problemy %}c@{\hskip.5em}{% endfor %}|r|r|}\hline
|
\begin{longtable}{|r|l|c|r|{% for p in problemy %}c@{\hskip.5em}{% endfor %}|r|r|}\hline
|
||||||
& & & & \multicolumn{ {{ problemy|length}} }{c|}{\textbf{Úlohy}} & & \\\textbf{Poř.}& \textbf{Jméno}& \textbf{R.}& \raisebox{0.7mm}{$\sum_{-1}$}& {% for p in problemy %}{% if p.typ == "uloha" %}\textbf{r{{p.kod}}}&{% elif p.typ == "tema" %}\textbf{t{{p.kod}}}&{% else %}\textbf{ {{p.kod}} }&{% endif %}{% endfor %}\raisebox{0.7mm}{$\sum_0$}&\raisebox{0.7mm}{$\sum_1$}\\\hline
|
& & & & \multicolumn{ {{ problemy|length}} }{c|}{\textbf{Úlohy}} & & \\\textbf{Poř.}& \textbf{Jméno}& \textbf{R.}& \raisebox{0.7mm}{$\sum_{-1}$}& {% for p in problemy %}\textbf{ {{ p.kod_v_rocniku }} }&{% endfor %}\raisebox{0.7mm}{$\sum_0$}&\raisebox{0.7mm}{$\sum_1$}\\\hline
|
||||||
\endhead
|
\endhead
|
||||||
\hline
|
\hline
|
||||||
\endfoot
|
\endfoot
|
||||||
{% for rv in vysledkovka %}{{rv.poradi}}&{% if rv.titul %}\titul{ {{ rv.titul}}}{% endif %}{{rv.resitel.inicial_krestni}} {{rv.resitel.prijmeni}}&{{rv.resitel.rocnik|default:""}}&{{rv.body_celkem_odjakziva}}&{% for b in rv.body_ulohy %}{{b}}&{% endfor %}{{rv.body_cislo}}&{{rv.body_celkem_rocnik|default:0}}\\
|
{% for rv in radky_vysledkovky %}{{rv.poradi}}&{% if rv.titul %}\titul{ {{ rv.titul}}}{% endif %}{{rv.resitel.osoba.jmeno|slice:":1"}}. {{rv.resitel.osoba.prijmeni}}&{{rv.rocnik_resitele|default:""}}&{{rv.body_celkem_odjakziva}}&{% for b in rv.body_problemy_sezn %}{{b}}&{% endfor %}{{rv.body_cislo}}&{{rv.body_rocnik|default:0}}\\
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
\end{longtable}
|
\end{longtable}
|
||||||
|
|
|
@ -1,13 +1,12 @@
|
||||||
{% with lb="{" %}
|
{% with lb="{" %}
|
||||||
{% with rb="}" %}
|
{% with rb="}" %}
|
||||||
\setlength{\tabcolsep}{3pt}
|
\setlength{\tabcolsep}{3pt}
|
||||||
\begin{longtable}{|r|l|c|r|{% for cislo in vysledkovka.cisla %}c{% if not forloop.last %}@{\hskip.5em}{% endif %}{% endfor %}|r|}
|
\begin{longtable}{|r|l|c|r|{% for cislo in cisla %}c{% if not forloop.last %}@{\hskip.5em}{% endif %}{% endfor %}|r|}\hline
|
||||||
\hline
|
& & & & \multicolumn{{ lb }}{{ cisla|length }}}{c|}{\textbf{Číslo}} & \\\textbf{Poř.} & \textbf{Jméno} & \textbf{R.} & \raisebox{0.7mm}{$\sum_{-1}$} & {% for cislo in cisla %}\textbf{{ lb }}{{ cislo.poradi }}{{ rb }} & {% endfor %}\raisebox{0.7mm}{$\sum_1$} \\\hline
|
||||||
& & & & \multicolumn{{ lb }}{{ vysledkovka.cisla|length }}}{c|}{\textbf{Číslo}} & \\\textbf{Poř.} & \textbf{Jméno} & \textbf{R.} & \raisebox{0.7mm}{$\sum_{-1}$} & {% for cislo in vysledkovka.cisla %}\textbf{{ lb }}{{ cislo.cislo }}{{ rb }} & {% endfor %}\raisebox{0.7mm}{$\sum_1$} \\\hline
|
|
||||||
\endhead
|
\endhead
|
||||||
\hline
|
\hline
|
||||||
\endfoot
|
\endfoot
|
||||||
{% for rv in radky_vysledkovky %}{{ rv.poradi }} & {% if rv.titul %}\titul{{ lb }}{{ rv.titul }}}~{% endif %}{{ rv.resitel.osoba.jmeno|slice:":1" }}.~{{ rv.resitel.osoba.prijmeni }} & {% if rv.resitel.rocnik %}{{ rv.resitel.rocnik }}.{% endif %} & {{ rv.body_odjakziva }} {% for b in rv.body_cisla_sezn %} & {{ b }}{% endfor %} & {{ rv.body_rocnik }} \\
|
{% for rv in radky_vysledkovky %}{{ rv.poradi }} & {% if rv.titul %}\titul{{ lb }}{{ rv.titul }}}~{% endif %}{{ rv.resitel.osoba.jmeno|slice:":1" }}.~{{ rv.resitel.osoba.prijmeni }} & {% if rv.rocnik_resitele %}{{ rv.rocnik_resitele }}{% endif %} & {{ rv.body_celkem_odjakziva }} {% for b in rv.body_cisla_sezn %} & {{ b }}{% endfor %} & {{ rv.body_rocnik }} \\
|
||||||
{% endfor %}\end{longtable}
|
{% endfor %}\end{longtable}
|
||||||
{% endwith %}
|
{% endwith %}
|
||||||
{% endwith %}
|
{% endwith %}
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
{{ rv.titul }}<sup>MM</sup>
|
{{ rv.titul }}<sup>MM</sup>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{{ rv.resitel.osoba.plne_jmeno }}
|
{{ rv.resitel.osoba.plne_jmeno }}
|
||||||
<td class='border-r'>{{ rv.resitel.rocnik }}
|
<td class='border-r'>{{ rv.rocnik_resitele }}
|
||||||
<td class='border-r'>{{ rv.body_celkem_odjakziva }}
|
<td class='border-r'>{{ rv.body_celkem_odjakziva }}
|
||||||
{% for b in rv.body_cisla_sezn %}
|
{% for b in rv.body_cisla_sezn %}
|
||||||
<td class='border-r'>{{ b }}
|
<td class='border-r'>{{ b }}
|
||||||
|
|
|
@ -75,13 +75,15 @@ urlpatterns = [
|
||||||
path('aesop-export/index.csv', export.ExportIndexView.as_view(), name='seminar_export_index'),
|
path('aesop-export/index.csv', export.ExportIndexView.as_view(), name='seminar_export_index'),
|
||||||
|
|
||||||
# Stranky viditelne pouze pro orgy:
|
# Stranky viditelne pouze pro orgy:
|
||||||
#path(
|
path(
|
||||||
# 'rocnik/(?P<rocnik>\d+)/vysledkovka.tex',
|
'rocnik/<int:rocnik>/vysledkovka.tex',
|
||||||
# staff_member_required(views.RocnikVysledkovkaView.as_view()),
|
staff_member_required(views.RocnikVysledkovkaView.as_view()),
|
||||||
# name='seminar_cislo_vysledkovka'
|
name='seminar_rocnik_vysledkovka'
|
||||||
#),
|
),
|
||||||
#path('cislo/(?P<rocnik>\d+).(?P<cislo>[0-9-]+)/vysledkovka.tex',
|
path('cislo/<int:rocnik>.<int:cislo>/vysledkovka.tex',
|
||||||
# staff_member_required(views.CisloVysledkovkaView.as_view()), name='seminar_cislo_vysledkovka'),
|
staff_member_required(views.CisloVysledkovkaView.as_view()),
|
||||||
|
name='seminar_cislo_vysledkovka'
|
||||||
|
),
|
||||||
path('cislo/<int:rocnik>.<int:cislo>/obalky.pdf',
|
path('cislo/<int:rocnik>.<int:cislo>/obalky.pdf',
|
||||||
staff_member_required(views.cisloObalkyView), name='seminar_cislo_obalky'),
|
staff_member_required(views.cisloObalkyView), name='seminar_cislo_obalky'),
|
||||||
|
|
||||||
|
|
|
@ -39,6 +39,7 @@ import traceback
|
||||||
import sys
|
import sys
|
||||||
import csv
|
import csv
|
||||||
import logging
|
import logging
|
||||||
|
import time
|
||||||
|
|
||||||
|
|
||||||
def verejna_temata(rocnik):
|
def verejna_temata(rocnik):
|
||||||
|
@ -536,26 +537,26 @@ def body_resitelu_odjakziva(rocnik, resitele):
|
||||||
# Body za posledních 10 let je dobrá aproximace pro naše potřeby (výsledkovka
|
# Body za posledních 10 let je dobrá aproximace pro naše potřeby (výsledkovka
|
||||||
# s aktivními řešiteli)
|
# s aktivními řešiteli)
|
||||||
|
|
||||||
body_pred_roky = []
|
#body_pred_roky = []
|
||||||
rok = rocnik.prvni_rok
|
#rok = rocnik.prvni_rok
|
||||||
rocniky = Rocnik.objects.filter(prvni_rok__gt=rok-11)
|
#rocniky = Rocnik.objects.filter(prvni_rok__gt=rok-11)
|
||||||
for roc in rocniky:
|
#for roc in rocniky:
|
||||||
body_pred_roky.append(body_resitelu_za_rocnik(roc, resitele))
|
# body_pred_roky.append(body_resitelu_za_rocnik(roc, resitele))
|
||||||
|
#
|
||||||
for r in resitele:
|
#for r in resitele:
|
||||||
for i in range(0,10):
|
# for i in range(0,10):
|
||||||
body_odjakziva[str(r.id)] += body_pred_roky[i][str(r.id)]
|
# body_odjakziva[str(r.id)] += body_pred_roky[i][str(r.id)]
|
||||||
|
|
||||||
|
|
||||||
# Nasledující řešení je sice správné, ale moc pomalé:
|
# Nasledující řešení je sice správné, ale moc pomalé:
|
||||||
# (důsledek toho, že dotazy na joinování databázových tabulek jsou kvadratické)
|
# (důsledek toho, že dotazy na joinování databázových tabulek jsou kvadratické)
|
||||||
# for res in Reseni.objects.prefetch_related('resitele', 'hodnoceni_set').all():
|
for res in Reseni.objects.prefetch_related('resitele', 'hodnoceni_set').all():
|
||||||
# for r in res.resitele.all():
|
for r in res.resitele.all():
|
||||||
# # daný řešitel nemusí být v naší podmnožině
|
# daný řešitel nemusí být v naší podmnožině
|
||||||
# if r not in resitele: continue
|
if r not in resitele: continue
|
||||||
#
|
|
||||||
# for hodn in res.hodnoceni_set.all():
|
for hodn in res.hodnoceni_set.all():
|
||||||
# pricti_body(body_odjakziva, r, hodn.body)
|
pricti_body(body_odjakziva, r, hodn.body)
|
||||||
return body_odjakziva
|
return body_odjakziva
|
||||||
|
|
||||||
# vrátí slovník řešitel:body obsahující počty bodů zadaných řešitelů za daný ročník
|
# vrátí slovník řešitel:body obsahující počty bodů zadaných řešitelů za daný ročník
|
||||||
|
@ -566,24 +567,28 @@ def body_resitelu_za_rocnik(rocnik, aktivni_resitele):
|
||||||
body_za_rocnik[str(ar.id)] = 0
|
body_za_rocnik[str(ar.id)] = 0
|
||||||
|
|
||||||
# spočítáme body řešitelům přes všechna řešení s hodnocením v daném ročníku
|
# spočítáme body řešitelům přes všechna řešení s hodnocením v daném ročníku
|
||||||
|
print("Před dotazem:{}".format(time.time()))
|
||||||
reseni = Reseni.objects.prefetch_related('resitele', 'hodnoceni_set').filter(hodnoceni__cislo_body__rocnik=rocnik)
|
reseni = Reseni.objects.prefetch_related('resitele', 'hodnoceni_set').filter(hodnoceni__cislo_body__rocnik=rocnik)
|
||||||
|
print("Po dotazu:{}".format(time.time()))
|
||||||
for res in reseni:
|
for res in reseni:
|
||||||
for resitel in res.resitele.all():
|
for resitel in res.resitele.all():
|
||||||
for hodn in res.hodnoceni_set.all():
|
for hodn in res.hodnoceni_set.all():
|
||||||
pricti_body(body_za_rocnik, resitel, hodn.body)
|
pricti_body(body_za_rocnik, resitel, hodn.body)
|
||||||
|
print("Po for-cyklu:{}".format(time.time()))
|
||||||
return body_za_rocnik
|
return body_za_rocnik
|
||||||
|
|
||||||
class RadekVysledkovkyRocniku(object):
|
class RadekVysledkovkyRocniku(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.
|
||||||
Umožňuje snazší práci v templatu (lepší, než seznam)."""
|
Umožňuje snazší práci v templatu (lepší, než seznam)."""
|
||||||
|
|
||||||
def __init__(self, poradi, resitel, body_cisla_sezn, body_rocnik, body_odjakziva):
|
def __init__(self, poradi, resitel, body_cisla_sezn, body_rocnik, body_odjakziva, rok):
|
||||||
self.poradi = poradi
|
self.poradi = poradi
|
||||||
self.resitel = resitel
|
self.resitel = resitel
|
||||||
|
self.rocnik_resitele = resitel.rocnik(rok)
|
||||||
self.body_rocnik = body_rocnik
|
self.body_rocnik = body_rocnik
|
||||||
self.body_celkem_odjakziva = body_odjakziva
|
self.body_celkem_odjakziva = body_odjakziva
|
||||||
self.body_cisla_sezn = body_cisla_sezn
|
self.body_cisla_sezn = body_cisla_sezn
|
||||||
self.titul = resitel.get_titul(body_odjakziva)
|
elf.titul = resitel.get_titul(body_odjakziva)
|
||||||
|
|
||||||
def vysledkovka_rocniku(rocnik, jen_verejne=True):
|
def vysledkovka_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
|
||||||
|
@ -632,7 +637,8 @@ def vysledkovka_rocniku(rocnik, jen_verejne=True):
|
||||||
Resitel.objects.get(id=ar_id), # řešitel (z id)
|
Resitel.objects.get(id=ar_id), # řešitel (z id)
|
||||||
body_cisla_sezn, # seznam bodů za čísla
|
body_cisla_sezn, # seznam bodů za čísla
|
||||||
setrizene_body[i], # body za ročník (spočítané výše s pořadím)
|
setrizene_body[i], # body za ročník (spočítané výše s pořadím)
|
||||||
resitel_odjakzivabody_slov[ar_id]) # body odjakživa
|
resitel_odjakzivabody_slov[ar_id], # body odjakživa
|
||||||
|
rocnik) # ročník semináře pro získání ročníku řešitele
|
||||||
print("{}: číslobody - {}, ročníkbody - {},"
|
print("{}: číslobody - {}, ročníkbody - {},"
|
||||||
"odjakživabody - {}".format(radek.resitel, radek.body_cisla_sezn,
|
"odjakživabody - {}".format(radek.resitel, radek.body_cisla_sezn,
|
||||||
radek.body_rocnik, radek.body_celkem_odjakziva))
|
radek.body_rocnik, radek.body_celkem_odjakziva))
|
||||||
|
@ -643,59 +649,6 @@ def vysledkovka_rocniku(rocnik, jen_verejne=True):
|
||||||
return radky_vysledkovky
|
return radky_vysledkovky
|
||||||
|
|
||||||
|
|
||||||
#vyberu vsechny vysledky z rocniku
|
|
||||||
# cisla_v_rocniku = VysledkyKCisluZaRocnik.objects.filter(cislo__rocnik=rocnik).order_by('cislo')
|
|
||||||
# if jen_verejne:
|
|
||||||
# cisla_v_rocniku = cisla_v_rocniku.filter(cislo__verejna_vysledkovka=True)
|
|
||||||
#
|
|
||||||
# #pokud žádné nejsou, výsledkovka se nezobrazí
|
|
||||||
# if not cisla_v_rocniku:
|
|
||||||
# return None
|
|
||||||
#
|
|
||||||
# #vybere vsechny vysledky z posledniho (verejneho) cisla a setridi sestupne dle bodu
|
|
||||||
# vysledky = list(cisla_v_rocniku.filter(cislo = cisla_v_rocniku[0].poradi).order_by('-body', 'resitel__prijmeni', 'resitel__jmeno').select_related('resitel'))
|
|
||||||
#
|
|
||||||
# class Vysledkovka:
|
|
||||||
# def __init__(self):
|
|
||||||
# self.rocnik = rocnik.rocnik
|
|
||||||
# self.radky = []
|
|
||||||
# self.cisla = []
|
|
||||||
#
|
|
||||||
# vysledkovka = Vysledkovka()
|
|
||||||
# vysledkovka.cisla = (rocnik.verejne_vysledkovky_cisla() if jen_verejne else rocnik.cisla.all().order_by('cislo'))
|
|
||||||
#
|
|
||||||
# # doplníme některé údaje do řádků výsledkovky pro řešitele ve skupině
|
|
||||||
# for poradi, v in zip(sloupec_s_poradim(vysledky), vysledky):
|
|
||||||
# v.poradi = poradi
|
|
||||||
# v.resitel.rocnik = v.resitel.rocnik(rocnik)
|
|
||||||
#
|
|
||||||
# verejne_vysl_odjakziva = VysledkyKCisluOdjakziva.objects.filter(cislo__rocnik=rocnik, cislo=cisla_v_rocniku[0].poradi)
|
|
||||||
# if jen_verejne:
|
|
||||||
# verejne_vysl_odjakziva = verejne_vysl_odjakziva.filter(cislo__verejna_vysledkovka=True)
|
|
||||||
#
|
|
||||||
# v.body_odjakziva = verejne_vysl_odjakziva.filter(resitel = v.resitel)[0].body
|
|
||||||
# v.titul = v.resitel.get_titul(v.body_odjakziva)
|
|
||||||
# v.body_rocnik = v.body
|
|
||||||
# v.body_cisla = []
|
|
||||||
#
|
|
||||||
# #pokud pro dany rok a cislo nema resitel vysledky, ma defaultne 0
|
|
||||||
# for cis in vysledkovka.cisla:
|
|
||||||
# if not jen_verejne or cis.verejna_vysledkovka:
|
|
||||||
# #seznam vysledku se spravnym rocnikem a cislem pro resitele
|
|
||||||
# #zobrazim jen je-li vysledkovka verejna
|
|
||||||
# body_za_cislo = VysledkyZaCislo.objects.filter(cislo__rocnik=rocnik).filter(cislo = cis).filter(resitel = v.resitel)
|
|
||||||
# if body_za_cislo:
|
|
||||||
# #neprazdne vysledky by mely obsahovat prave jeden vysledek
|
|
||||||
# v.body_cisla.append(body_za_cislo[0].body)
|
|
||||||
# else:
|
|
||||||
# #resitel nema za cislo body
|
|
||||||
# v.body_cisla.append(0)
|
|
||||||
#
|
|
||||||
# vysledkovka.radky.append(v)
|
|
||||||
#
|
|
||||||
# return vysledkovka
|
|
||||||
|
|
||||||
|
|
||||||
class RocnikView(generic.DetailView):
|
class RocnikView(generic.DetailView):
|
||||||
model = Rocnik
|
model = Rocnik
|
||||||
template_name = 'seminar/archiv/rocnik.html'
|
template_name = 'seminar/archiv/rocnik.html'
|
||||||
|
@ -723,7 +676,8 @@ class RocnikView(generic.DetailView):
|
||||||
context['cisla_s_neverejnymi'] = cisla_rocniku(context["rocnik"], jen_verejne=False)
|
context['cisla_s_neverejnymi'] = cisla_rocniku(context["rocnik"], jen_verejne=False)
|
||||||
context['cisla'] = cisla_rocniku(context["rocnik"])
|
context['cisla'] = cisla_rocniku(context["rocnik"])
|
||||||
context['radky_vysledkovky'] = vysledkovka_rocniku(context["rocnik"])
|
context['radky_vysledkovky'] = vysledkovka_rocniku(context["rocnik"])
|
||||||
context['radky_vysledkovky_s_neverejnymi'] = vysledkovka_rocniku(context["rocnik"], jen_verejne=False)
|
context['radky_vysledkovky_s_neverejnymi'] = vysledkovka_rocniku(
|
||||||
|
context["rocnik"], jen_verejne=False)
|
||||||
context['hlavni_problemy_v_rocniku'] = hlavni_problemy_rocniku(context["rocnik"])
|
context['hlavni_problemy_v_rocniku'] = hlavni_problemy_rocniku(context["rocnik"])
|
||||||
context['hlavni_problemy_v_rocniku_s_neverejnymi'] = hlavni_problemy_rocniku(context["rocnik"], jen_verejne=False)
|
context['hlavni_problemy_v_rocniku_s_neverejnymi'] = hlavni_problemy_rocniku(context["rocnik"], jen_verejne=False)
|
||||||
|
|
||||||
|
@ -754,8 +708,9 @@ class RadekVysledkovkyCisla(object):
|
||||||
Umožňuje snazší práci v templatu (lepší, než seznam)."""
|
Umožňuje snazší práci v templatu (lepší, než seznam)."""
|
||||||
|
|
||||||
def __init__(self, poradi, resitel, body_problemy_sezn,
|
def __init__(self, poradi, resitel, body_problemy_sezn,
|
||||||
body_cislo, body_rocnik, body_odjakziva):
|
body_cislo, body_rocnik, body_odjakziva, rok):
|
||||||
self.resitel = resitel
|
self.resitel = resitel
|
||||||
|
self.rocnik_resitele = resitel.rocnik(rok)
|
||||||
self.body_cislo = body_cislo
|
self.body_cislo = body_cislo
|
||||||
self.body_rocnik = body_rocnik
|
self.body_rocnik = body_rocnik
|
||||||
self.body_celkem_odjakziva = body_odjakziva
|
self.body_celkem_odjakziva = body_odjakziva
|
||||||
|
@ -826,7 +781,6 @@ def secti_body_za_cislo(cislo, aktivni_resitele, hlavni_problemy=None):
|
||||||
pricti_body(cislobody, resitel, body)
|
pricti_body(cislobody, resitel, body)
|
||||||
pricti_body(nadproblem_slovnik, resitel, body)
|
pricti_body(nadproblem_slovnik, resitel, body)
|
||||||
return hlavni_problemy_slovnik, cislobody
|
return hlavni_problemy_slovnik, cislobody
|
||||||
|
|
||||||
|
|
||||||
def vysledkovka_cisla(cislo, context=None):
|
def vysledkovka_cisla(cislo, context=None):
|
||||||
if context is None:
|
if context is None:
|
||||||
|
@ -874,14 +828,14 @@ def vysledkovka_cisla(cislo, context=None):
|
||||||
problemy, # seznam bodů za hlavní problémy čísla
|
problemy, # seznam bodů za hlavní problémy čísla
|
||||||
cislobody[ar_id], # body za číslo
|
cislobody[ar_id], # body za číslo
|
||||||
setrizeni_resitele_body[i], # body za ročník (spočítané výše s pořadím)
|
setrizeni_resitele_body[i], # body za ročník (spočítané výše s pořadím)
|
||||||
resitel_odjakzivabody_slov[ar_id]) # body odjakživa
|
resitel_odjakzivabody_slov[ar_id], # body odjakživa
|
||||||
|
cislo.rocnik) # ročník semináře pro zjištění ročníku řešitele
|
||||||
print("{}: body za problémy - {}, číslobody - {}, ročníkbody - {}, odjakživabody - {}".format(radek.resitel,
|
print("{}: body za problémy - {}, číslobody - {}, ročníkbody - {}, odjakživabody - {}".format(radek.resitel,
|
||||||
radek.body_problemy_sezn, radek.body_cislo, radek.body_rocnik, radek.body_celkem_odjakziva))
|
radek.body_problemy_sezn, radek.body_cislo, radek.body_rocnik, radek.body_celkem_odjakziva))
|
||||||
radky_vysledkovky.append(radek)
|
radky_vysledkovky.append(radek)
|
||||||
print("Přikládám {}-tý řádek.".format(i))
|
print("Přikládám {}-tý řádek.".format(i))
|
||||||
i += 1
|
i += 1
|
||||||
|
|
||||||
print("Následuje předávání do kontextu.")
|
|
||||||
# vytahané informace předáváme do kontextu
|
# vytahané informace předáváme do kontextu
|
||||||
context['cislo'] = cislo
|
context['cislo'] = cislo
|
||||||
context['radky_vysledkovky'] = radky_vysledkovky
|
context['radky_vysledkovky'] = radky_vysledkovky
|
||||||
|
@ -917,43 +871,6 @@ class CisloView(generic.DetailView):
|
||||||
# vrátíme context (aktuálně obsahuje jen věci ohledně výsledkovky
|
# vrátíme context (aktuálně obsahuje jen věci ohledně výsledkovky
|
||||||
return vysledkovka_cisla(cislo, context)
|
return vysledkovka_cisla(cislo, context)
|
||||||
|
|
||||||
# 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
|
|
||||||
# problem_index = {}
|
|
||||||
# for i in range(len(problemy)):
|
|
||||||
# #umoznuje zjistit index podle id problemu
|
|
||||||
#
|
|
||||||
# vysledky_resitele = {}
|
|
||||||
# vysledkovka = []
|
|
||||||
#
|
|
||||||
# # doplníme některé údaje do řádků výsledkovky pro řešitele ve skupině
|
|
||||||
# for poradi, v in zip(sloupec_s_poradim(vysledky), vysledky):
|
|
||||||
# v.poradi = poradi
|
|
||||||
# v.body_celkem_rocnik = v.body
|
|
||||||
# v.body_celkem_odjakziva = VysledkyKCisluOdjakziva.objects.get(resitel=v.resitel, cislo=context['cislo']).body
|
|
||||||
# v.resitel.rocnik = v.resitel.rocnik(v.cislo.rocnik)
|
|
||||||
#
|
|
||||||
# # je tady '', aby se nezobrazovala 0, pokud se řešitel o řešení úlohy ani nepokusil
|
|
||||||
# v.body_ulohy = [''] * len(problemy)
|
|
||||||
#
|
|
||||||
# v.titul = v.resitel.get_titul(v.body_celkem_odjakziva)
|
|
||||||
#
|
|
||||||
# body_cislo_q = VysledkyZaCislo.objects.filter(resitel=v.resitel, cislo=context['cislo'])
|
|
||||||
# v.body_cislo = body_cislo_q[0].body if body_cislo_q else 0
|
|
||||||
#
|
|
||||||
# vysledkovka.append(v)
|
|
||||||
#
|
|
||||||
# # připravíme si odkaz na řádek, abychom do něj mohli doplnit body za jednotlivé úlohy
|
|
||||||
# vysledky_resitele[v.resitel.id] = v
|
|
||||||
#
|
|
||||||
# # za každé řešení doplníme k příslušnému řešiteli a úloze body
|
|
||||||
# for r in reseni:
|
|
||||||
# vysledky_resitele[r.resitel.id].body_ulohy[problem_index[r.problem.id]] = r.body
|
|
||||||
#
|
|
||||||
# context['vysledkovka'] = vysledkovka
|
|
||||||
# context['problemy'] = problemy
|
|
||||||
# context['v_cisle_zadane'] = v_cisle_zadane
|
|
||||||
# context['resene_problemy'] = resene_problemy
|
|
||||||
|
|
||||||
class ArchivTemataView(generic.ListView):
|
class ArchivTemataView(generic.ListView):
|
||||||
model = Problem
|
model = Problem
|
||||||
|
@ -962,19 +879,18 @@ class ArchivTemataView(generic.ListView):
|
||||||
|
|
||||||
### Generovani vysledkovky
|
### Generovani vysledkovky
|
||||||
|
|
||||||
#class CisloVysledkovkaView(CisloView):i
|
class CisloVysledkovkaView(CisloView):
|
||||||
# poradi | titul. jmeno prijmeni | ulohy | za cislo | celkem | odjakziva
|
"View vytvořené pro stránku zobrazující výsledkovku čísla v TeXu."
|
||||||
#
|
|
||||||
#
|
model = Cislo
|
||||||
#
|
template_name = 'seminar/archiv/cislo_vysledkovka.tex'
|
||||||
# model = Cislo
|
#content_type = 'application/x-tex; charset=UTF8'
|
||||||
# template_name = 'seminar/archiv/cislo_vysledkovka.tex'
|
#umozni rovnou stahnout TeXovsky dokument
|
||||||
# #content_type = 'application/x-tex; charset=UTF8'
|
content_type = 'text/plain; charset=UTF8'
|
||||||
# #umozni rovnou stahnout TeXovsky dokument
|
#vypise na stranku textovy obsah vyTeXane vysledkovky k okopirovani
|
||||||
# content_type = 'text/plain; charset=UTF8'
|
|
||||||
# #vypise na stranku textovy obsah vyTeXane vysledkovky k okopirovani
|
|
||||||
#
|
|
||||||
class RocnikVysledkovkaView(RocnikView):
|
class RocnikVysledkovkaView(RocnikView):
|
||||||
|
"View vytvořené pro stránku zobrazující výsledkovku ročníku v TeXu."
|
||||||
model = Rocnik
|
model = Rocnik
|
||||||
template_name = 'seminar/archiv/rocnik_vysledkovka.tex'
|
template_name = 'seminar/archiv/rocnik_vysledkovka.tex'
|
||||||
#content_type = 'application/x-tex; charset=UTF8'
|
#content_type = 'application/x-tex; charset=UTF8'
|
||||||
|
|
Loading…
Reference in a new issue