Merge branch 'master' into stable
This commit is contained in:
commit
ce41953aea
11 changed files with 90 additions and 65 deletions
18
korektury/migrations/0009_trizeni_korektur_v_seznamu.py
Normal file
18
korektury/migrations/0009_trizeni_korektur_v_seznamu.py
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('korektury', '0008_auto_20151229_1556'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AlterModelOptions(
|
||||||
|
name='korekturovanepdf',
|
||||||
|
options={'ordering': ['-cas'], 'verbose_name': 'PDF k oprav\xe1m', 'verbose_name_plural': 'PDF k oprav\xe1m'},
|
||||||
|
),
|
||||||
|
]
|
|
@ -23,6 +23,7 @@ def generate_filename(self, filename):
|
||||||
#@python_2_unicode_compatible
|
#@python_2_unicode_compatible
|
||||||
class KorekturovanePDF(models.Model):
|
class KorekturovanePDF(models.Model):
|
||||||
class Meta:
|
class Meta:
|
||||||
|
ordering = ['-cas']
|
||||||
db_table = 'korekturovane_cislo'
|
db_table = 'korekturovane_cislo'
|
||||||
verbose_name = u'PDF k opravám'
|
verbose_name = u'PDF k opravám'
|
||||||
verbose_name_plural = u'PDF k opravám'
|
verbose_name_plural = u'PDF k opravám'
|
||||||
|
|
|
@ -10,7 +10,7 @@ urlpatterns = [
|
||||||
|
|
||||||
# Admin a nastroje
|
# Admin a nastroje
|
||||||
url(r'^admin/', include(admin.site.urls)), # NOQA
|
url(r'^admin/', include(admin.site.urls)), # NOQA
|
||||||
url(r'^ckeditor/', include('ckeditor_uploader.urls')),
|
url(r'^ckeditor/', include('ckeditor.urls')),
|
||||||
url(r'^autocomplete/', include('autocomplete_light.urls')),
|
url(r'^autocomplete/', include('autocomplete_light.urls')),
|
||||||
|
|
||||||
# Seminarova aplikace (ma vlastni podadresare)
|
# Seminarova aplikace (ma vlastni podadresare)
|
||||||
|
|
|
@ -18,7 +18,7 @@ django-reversion==1.10.0
|
||||||
django-sekizai==0.9.0
|
django-sekizai==0.9.0
|
||||||
django-countries==3.4.1
|
django-countries==3.4.1
|
||||||
django-solo==1.1.1
|
django-solo==1.1.1
|
||||||
django-ckeditor==5.0.2
|
django-ckeditor<=4.4.5
|
||||||
django-flat-theme==1.1.3
|
django-flat-theme==1.1.3
|
||||||
django-taggit==0.17.6
|
django-taggit==0.17.6
|
||||||
django-autocomplete-light==2.2.10
|
django-autocomplete-light==2.2.10
|
||||||
|
|
|
@ -28,14 +28,15 @@
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
{% if user.is_staff %}
|
{% if user.is_staff %}
|
||||||
<div class="mam-org-only">
|
<div class="mam-org-only">
|
||||||
<h3> Orgovské odkazy </h3>
|
<h3> Orgovské odkazy </h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li><a href="obalky.pdf">Obálky (PDF)</a></li>
|
<li><a href="obalky.pdf">Obálky (PDF)</a></li>
|
||||||
<li><a href="tituly.tex">Tituly (TeX)</a></li>
|
<li><a href="tituly.tex">Tituly (TeX)</a></li>
|
||||||
<li><a href="vysledkovka.tex">Výsledkovka (TeX)</a></li>
|
<li><a href="vysledkovka.tex">Výsledkovka (TeX)</a></li>
|
||||||
</ul>
|
<li><a href="obalkovani">Obálkování</a></li>
|
||||||
</div>
|
</ul>
|
||||||
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% if cislo.verejna_vysledkovka %}
|
{% if cislo.verejna_vysledkovka %}
|
||||||
|
@ -61,7 +62,7 @@
|
||||||
{% for rv in vysledkovka %}
|
{% for rv in vysledkovka %}
|
||||||
<tr>
|
<tr>
|
||||||
<td class='border-r'>{% autoescape off %}{{ rv.poradi }}{% endautoescape %}
|
<td class='border-r'>{% autoescape off %}{{ rv.poradi }}{% endautoescape %}
|
||||||
<th class='border-r'>
|
<th class='border-r'>
|
||||||
{% if rv.titul %}
|
{% if rv.titul %}
|
||||||
{{ rv.titul }}<sup>MM</sup>
|
{{ rv.titul }}<sup>MM</sup>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
33
seminar/templates/seminar/archiv/cislo_obalkovani.html
Normal file
33
seminar/templates/seminar/archiv/cislo_obalkovani.html
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
{% extends "seminar/archiv/base.html" %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<h1>
|
||||||
|
{% block nadpis1a %}{% block nadpis1b %}
|
||||||
|
Obálkování {{ cislo }}
|
||||||
|
{% endblock %}{% endblock %}
|
||||||
|
</h1>
|
||||||
|
|
||||||
|
Obálkovat se budou tyto problémy:
|
||||||
|
<ul>
|
||||||
|
{% for p in problemy %}
|
||||||
|
|
||||||
|
<li> {{ p.kod_v_rocniku }} {{ p }}
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
{% for r in reseni %}
|
||||||
|
{% ifchanged r.resitel %}
|
||||||
|
{% if not forloop.first %}
|
||||||
|
</ul>
|
||||||
|
{% endif %}
|
||||||
|
<h4>{{ r.resitel }}</h4>
|
||||||
|
<ul>
|
||||||
|
{% endifchanged %}
|
||||||
|
|
||||||
|
<li>
|
||||||
|
{{ r.problem.kod_v_rocniku }} {{ r.problem.nazev }} ({{ r.body }})
|
||||||
|
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
{% endblock content %}
|
|
@ -4,6 +4,6 @@
|
||||||
\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 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}}\\
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
\end{longtable}
|
\end{longtable}
|
||||||
|
|
|
@ -1,22 +0,0 @@
|
||||||
|
|
||||||
{% extends "seminar/archiv/base.html" %}
|
|
||||||
|
|
||||||
{% block content %}
|
|
||||||
<h1> K obálkování </h1>
|
|
||||||
<table>
|
|
||||||
<th>
|
|
||||||
<td>Jméno</td>
|
|
||||||
{% for u in ulohy %}
|
|
||||||
<td>{{u.nazev}}
|
|
||||||
{% endfor %}
|
|
||||||
</th>
|
|
||||||
{% for row in kdoco %}
|
|
||||||
<tr>
|
|
||||||
{% for cell in row%}
|
|
||||||
<td>{{cell}}</td>
|
|
||||||
{% endfor %}
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
</table>
|
|
||||||
{% endblock content %}
|
|
||||||
|
|
|
@ -7,8 +7,14 @@
|
||||||
{% load tex %}
|
{% load tex %}
|
||||||
|
|
||||||
{% for r in resitele %}
|
{% for r in resitele %}
|
||||||
{% spaceless %}
|
{% if r.titul == '' %}
|
||||||
\def\{{r.ascii}}{\titul{{r.titul|sloz}}\relax}
|
{% spaceless %}
|
||||||
{% endspaceless %}
|
\def\{{r.ascii}}{}
|
||||||
|
{% endspaceless %}
|
||||||
|
{% else %}
|
||||||
|
{% spaceless %}
|
||||||
|
\def\{{r.ascii}}{\titul{{r.titul|sloz}}\relax}
|
||||||
|
{% endspaceless %}
|
||||||
|
{% endif %}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endautoescape %}
|
{% endautoescape %}
|
||||||
|
|
|
@ -36,17 +36,17 @@ urlpatterns = [
|
||||||
url(r'^aesop-export/index.csv$', export.ExportIndexView.as_view(), name='seminar_export_index'),
|
url(r'^aesop-export/index.csv$', export.ExportIndexView.as_view(), name='seminar_export_index'),
|
||||||
|
|
||||||
#### Stranky viditelne pouze pro orgy:
|
#### Stranky viditelne pouze pro orgy:
|
||||||
url(r'^cislo/(?P<rocnik>\d+).(?P<cislo>\d+)/vysledkovka.tex$',
|
url(r'^cislo/(?P<rocnik>\d+).(?P<cislo>[0-9-]+)/vysledkovka.tex$',
|
||||||
staff_member_required(views.CisloVysledkovkaView.as_view()), name='seminar_cislo_vysledkovka'),
|
staff_member_required(views.CisloVysledkovkaView.as_view()), name='seminar_cislo_vysledkovka'),
|
||||||
url(r'^cislo/(?P<rocnik>\d+).(?P<cislo>\d+)/obalky.pdf$',
|
url(r'^cislo/(?P<rocnik>\d+).(?P<cislo>[0-9-]+)/obalky.pdf$',
|
||||||
staff_member_required(views.cisloObalkyView), name='seminar_cislo_obalky'),
|
staff_member_required(views.cisloObalkyView), name='seminar_cislo_obalky'),
|
||||||
|
|
||||||
url(r'^cislo/(?P<rocnik>\d+).(?P<cislo>\d+)/tituly.tex$',
|
url(r'^cislo/(?P<rocnik>\d+).(?P<cislo>[0-9-]+)/tituly.tex$',
|
||||||
staff_member_required(views.TitulyView), name='seminar_cislo_titul'),
|
staff_member_required(views.TitulyView), name='seminar_cislo_titul'),
|
||||||
url(r'^stav$',
|
url(r'^stav$',
|
||||||
staff_member_required(views.StavDatabazeView), name='stav_databaze'),
|
staff_member_required(views.StavDatabazeView), name='stav_databaze'),
|
||||||
url(r'^cislo/(?P<rocnik>\d+).(?P<cislo>\d+)/resitel_uloha.html$',
|
url(r'^cislo/(?P<rocnik>\d+).(?P<cislo>[0-9-]+)/obalkovani$',
|
||||||
staff_member_required(views.resitelUlohaView),name='seminar_cislo_resitel_uloha'),
|
staff_member_required(views.obalkovaniView), name='seminar_cislo_resitel_obalkovani'),
|
||||||
url(r'^soustredeni/(?P<soustredeni>\d+)/obalky.pdf',
|
url(r'^soustredeni/(?P<soustredeni>\d+)/obalky.pdf',
|
||||||
staff_member_required(views.soustredeniObalkyView),name='seminar_soustredeni_obalky'),
|
staff_member_required(views.soustredeniObalkyView), name='seminar_soustredeni_obalky'),
|
||||||
]
|
]
|
||||||
|
|
|
@ -131,7 +131,7 @@ def sloupec_s_poradim(vysledky):
|
||||||
poradi_l += ["{}.".format(lepsich_resitelu + 1)]
|
poradi_l += ["{}.".format(lepsich_resitelu + 1)]
|
||||||
# je-li účastníků se stejným počtem bodů víc, pořadí (rozsah X.-Y.) je jen u prvního
|
# je-li účastníků se stejným počtem bodů víc, pořadí (rozsah X.-Y.) je jen u prvního
|
||||||
else:
|
else:
|
||||||
poradi_l += [u"{}. – {}.".format(lepsich_resitelu + 1, lepsich_resitelu + len(skupina))] + [""] * (len(skupina)-1)
|
poradi_l += [u"{}.–{}.".format(lepsich_resitelu + 1, lepsich_resitelu + len(skupina))] + [""] * (len(skupina)-1)
|
||||||
lepsich_resitelu += len(skupina)
|
lepsich_resitelu += len(skupina)
|
||||||
#pomlcka je opravdu pomlcka v unicode!!dulezite pro vysledkovku v TeXu
|
#pomlcka je opravdu pomlcka v unicode!!dulezite pro vysledkovku v TeXu
|
||||||
|
|
||||||
|
@ -404,27 +404,15 @@ def obalkyView(request,resitele):
|
||||||
shutil.rmtree(tempdir)
|
shutil.rmtree(tempdir)
|
||||||
return response
|
return response
|
||||||
|
|
||||||
def resitelUlohaView(request,rocnik,cislo):
|
def obalkovaniView(request, rocnik, cislo):
|
||||||
rocnik = Rocnik.objects.get(rocnik=rocnik)
|
rocnik = Rocnik.objects.get(rocnik=rocnik)
|
||||||
cislo = Cislo.objects.get(rocnik=rocnik,cislo=cislo)
|
cislo = Cislo.objects.get(rocnik=rocnik, cislo=cislo)
|
||||||
reseni = Reseni.objects.filter(cislo_body=cislo).order_by('resitel')
|
|
||||||
# TODO: Nasledujici 4 radky jsou fuj. Znate neco lepsiho?
|
|
||||||
resitele = list(set([r.resitel for r in reseni]))
|
|
||||||
resitele.sort(key=lambda r: (r.prijmeni,r.jmeno))
|
|
||||||
ulohy = list(set([r.problem for r in reseni]))
|
|
||||||
ulohy.sort(key=lambda u: (u.typ,u.kod))
|
|
||||||
|
|
||||||
kdoco = []
|
reseni = Reseni.objects.filter(cislo_body=cislo)
|
||||||
for r in resitele:
|
serazena_reseni = sorted(reseni, key=lambda r: (r.resitel.prijmeni, r.resitel.jmeno, r.problem.typ, r.problem.kod))
|
||||||
res_ulohy = [r.jmeno+" "+r.prijmeni]
|
|
||||||
for u in ulohy:
|
problemy = sorted(set(r.problem for r in reseni), key=lambda p: (p.typ, p.kod))
|
||||||
try:
|
return render(request, 'seminar/archiv/cislo_obalkovani.html', {'cislo': cislo, 'problemy': problemy, 'reseni': serazena_reseni})
|
||||||
rsni = reseni.get(resitel=r,problem=u)
|
|
||||||
res_ulohy.append(rsni.body)
|
|
||||||
except ObjectDoesNotExist:
|
|
||||||
res_ulohy.append("")
|
|
||||||
kdoco.append(res_ulohy)
|
|
||||||
return render(request, 'seminar/archiv/resitel_uloha.html',{'ulohy':ulohy,'kdoco':kdoco})
|
|
||||||
|
|
||||||
### Tituly
|
### Tituly
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue