Browse Source

Tituly

zadavatko_problemu
Jonas Havelka 2 years ago
parent
commit
eed3ed4dd0
  1. 1
      seminar/templates/seminar/archiv/rocnik.html
  2. 5
      seminar/urls.py
  3. 14
      seminar/views/views_all.py

1
seminar/templates/seminar/archiv/rocnik.html

@ -120,6 +120,7 @@
{% if user.je_org %}
<div class='mam-org-only'>
<p><a href='vysledkovka.tex' download>Výsledkovka ročníku (LaTeX, včetně neveřejných)</a></p>
<a href="tituly.tex" download>Tituly (TeX, do konce ročníku = pro poslední číslo)</a>
{# FIXME: Sice to sem asi nepatří sémanticky, ale bylo to nejjednodušší… #}
<p><a href='{% url 'seminar_rocnik_resitele_csv' rocnik=rocnik.rocnik %}' download>CSV export řešitelů</a></p>
<h2>Výsledková listina včetně neveřejných bodů</h2>

5
seminar/urls.py

@ -72,6 +72,11 @@ urlpatterns = [
org_required(views.resiteleRocnikuCsvExportView),
name='seminar_rocnik_resitele_csv'
),
path(
'rocnik/<int:rocnik>/tituly.tex',
org_required(views.TitulyViewRocnik),
name='seminar_rocnik_titul'
),
path(
'cislo/<int:rocnik>.<str:cislo>/vysledkovka.tex',
org_required(views.CisloVysledkovkaView.as_view()),

14
seminar/views/views_all.py

@ -11,7 +11,9 @@ from django.core.exceptions import PermissionDenied
import seminar.models as s
import seminar.models as m
from seminar.models import Problem, Cislo, Reseni, Nastaveni, Rocnik, Organizator, Resitel, Novinky, Tema, Clanek # Tohle je stare a chceme se toho zbavit. Pouzivejte s.ToCoChci
from seminar.models import Problem, Cislo, Reseni, Nastaveni, Rocnik, \
Organizator, Resitel, Novinky, Tema, Clanek, \
Deadline # Tohle je stare a chceme se toho zbavit. Pouzivejte s.ToCoChci
#from .models import VysledkyZaCislo, VysledkyKCisluZaRocnik, VysledkyKCisluOdjakziva
from seminar import utils
from treenode import treelib
@ -541,17 +543,23 @@ def oldObalkovaniView(request, rocnik, cislo):
### Tituly
def TitulyViewRocnik(request, rocnik):
return TitulyView(request, rocnik, None)
def TitulyView(request, rocnik, cislo):
""" View pro stažení makra titulů v TeXu."""
rocnik_obj = Rocnik.objects.get(rocnik = rocnik)
resitele = Resitel.objects.filter(rok_maturity__gte = rocnik_obj.prvni_rok)
cislo_obj = Cislo.objects.get(rocnik = rocnik_obj, poradi = cislo)
asciijmena = []
jmenovci = False # detekuje, zda jsou dva řešitelé jmenovci (modulo nabodeníčka),
# pokud ano, vrátí se jako true
slovnik_s_body = body_resitelu(resitele, cislo_obj)
if cislo is not None:
cislo_obj = Cislo.objects.get(rocnik=rocnik_obj, poradi=cislo)
slovnik_s_body = body_resitelu(do=cislo_obj.zlomovy_deadline_pro_papirove_cislo())
else:
slovnik_s_body = body_resitelu(do=Deadline.objects.filter(cislo__rocnik=rocnik_obj).last())
for resitel in resitele:
resitel.titul = resitel.get_titul(slovnik_s_body[resitel.id])

Loading…
Cancel
Save