#self.problemy = list(filter(lambda problem: problem.rocnik() == self.aktualni_rocnik, self.problemy)) # DB HOG? # FIXME: některé problémy nemají ročník....
# NOTE: Protože řešení odkazuje přímo na Problém a QuerySet na Hodnocení je nepolymorfní, musíme porovnávat taky s nepolymorfními Problémy.
@ -121,8 +125,8 @@ class TabulkaOdevzdanychReseniView(ListView):
@ -143,11 +147,11 @@ class TabulkaOdevzdanychReseniView(ListView):
forresitelinhodnoceni.reseni.resitele.all():
pridej_reseni(resitel,hodnoceni)
hodnoty:list[list[tuple[Decimal,list[tuple[m.Reseni,m.Hodnoceni]]]]]=[]# Seznam řádků výsledné tabulky podle self.resitele, v každém řádku buňky v pořadí podle self.problemy + jejich součty, v každé buňce seznam řešení k danému řešiteli a problému.
resitele_do_tabulky:list[m.Resitel]=[]
hodnoty:list[list[tuple[Decimal,list[tuple[Reseni,Hodnoceni]]]]]=[]# Seznam řádků výsledné tabulky podle self.resitele, v každém řádku buňky v pořadí podle self.problemy + jejich součty, v každé buňce seznam řešení k danému řešiteli a problému.
resitele_do_tabulky:list[Resitel]=[]
forresitelinself.resitele:
dostal_body=False
resiteluv_radek:list[tuple[Decimal,list[tuple[m.Reseni,m.Hodnoceni]]]]=[]# podle pořadí v self.problemy
resiteluv_radek:list[tuple[Decimal,list[tuple[Reseni,Hodnoceni]]]]=[]# podle pořadí v self.problemy
('poznamka',models.TextField(blank=True,help_text='Neveřejná poznámka k příloze řešení (plain text), např. o původu',verbose_name='neveřejná poznámka')),
@ -1284,7 +1287,7 @@ class Migration(migrations.Migration):
migrations.AddField(
model_name='cislo',
name='pdf',
field=models.FileField(blank=True,help_text='Pdf čísla, které si mohou řešitelé stáhnout',null=True,upload_to=seminar.models.cislo_pdf_filename,verbose_name='pdf'),
field=models.FileField(blank=True,help_text='Pdf čísla, které si mohou řešitelé stáhnout',null=True,upload_to=cislo_pdf_filename,verbose_name='pdf'),
),
migrations.AlterField(
model_name='problem',
@ -1361,8 +1364,8 @@ class Migration(migrations.Migration):
('abstrakt',models.TextField(blank=True,help_text='Abstrakt konfery tak, jak byl uveden ve sborníku',verbose_name='abstrakt')),
('org_poznamka',models.TextField(blank=True,help_text='Neveřejná poznámka ke konfeře(plain text)',verbose_name='neveřejná poznámka')),
('prezentace',models.FileField(help_text='Prezentace nebo fotka posteru',upload_to=seminar.models.generate_filename_konfera,verbose_name='prezentace')),
('materialy',models.FileField(help_text='Další materiály ke konfeře zabalené do jednoho souboru',upload_to=seminar.models.generate_filename_konfera,verbose_name='materialy')),
('prezentace',models.FileField(help_text='Prezentace nebo fotka posteru',upload_to=generate_filename_konfera,verbose_name='prezentace')),
('materialy',models.FileField(help_text='Další materiály ke konfeře zabalené do jednoho souboru',upload_to=generate_filename_konfera,verbose_name='materialy')),
@ -1400,12 +1403,12 @@ class Migration(migrations.Migration):
migrations.AlterField(
model_name='konfera',
name='materialy',
field=models.FileField(blank=True,help_text='Další materiály ke konfeře zabalené do jednoho souboru',upload_to=seminar.models.generate_filename_konfera,verbose_name='materialy'),
field=models.FileField(blank=True,help_text='Další materiály ke konfeře zabalené do jednoho souboru',upload_to=generate_filename_konfera,verbose_name='materialy'),
),
migrations.AlterField(
model_name='konfera',
name='prezentace',
field=models.FileField(blank=True,help_text='Prezentace nebo fotka posteru',upload_to=seminar.models.generate_filename_konfera,verbose_name='prezentace'),
field=models.FileField(blank=True,help_text='Prezentace nebo fotka posteru',upload_to=generate_filename_konfera,verbose_name='prezentace'),
),
migrations.AddField(
model_name='konfera',
@ -2648,12 +2651,12 @@ class Migration(migrations.Migration):
migrations.AlterField(
model_name='cislo',
name='pdf',
field=models.FileField(blank=True,help_text='PDF čísla, které si mohou řešitelé stáhnout',null=True,upload_to=seminar.models.cislo_pdf_filename,verbose_name='pdf'),
field=models.FileField(blank=True,help_text='PDF čísla, které si mohou řešitelé stáhnout',null=True,upload_to=cislo_pdf_filename,verbose_name='pdf'),
),
migrations.AddField(
model_name='cislo',
name='titulka_nahled',
field=models.ImageField(blank=True,help_text='Obrázek titulní strany, generuje se automaticky',null=True,upload_to=seminar.models.cislo_png_filename,verbose_name='Obrázek titulní strany'),
field=models.ImageField(blank=True,help_text='Obrázek titulní strany, generuje se automaticky',null=True,upload_to=cislo_png_filename,verbose_name='Obrázek titulní strany'),
@ -14,7 +14,7 @@ class Migration(migrations.Migration):
migrations.AddField(
model_name='cislo',
name='pdf',
field=models.FileField(help_text='Pdf \u010d\xedsla, kter\xe9 si mohou \u0159e\u0161itel\xe9 st\xe1hnout',upload_to=seminar.models.cislo_pdf_filename,null=True,verbose_name='pdf'),
field=models.FileField(help_text='Pdf \u010d\xedsla, kter\xe9 si mohou \u0159e\u0161itel\xe9 st\xe1hnout',upload_to=cislo_pdf_filename,null=True,verbose_name='pdf'),
@ -2,7 +2,8 @@ from __future__ import unicode_literals
fromdjango.dbimportmodels,migrations
importdjango_countries.fields
importseminar.models
fromtvorba.modelsimportcislo_pdf_filename
classMigration(migrations.Migration):
@ -25,7 +26,7 @@ class Migration(migrations.Migration):
migrations.AlterField(
model_name='cislo',
name='pdf',
field=models.FileField(help_text='Pdf \u010d\xedsla, kter\xe9 si mohou \u0159e\u0161itel\xe9 st\xe1hnout',upload_to=seminar.models.cislo_pdf_filename,null=True,verbose_name='pdf',blank=True),
field=models.FileField(help_text='Pdf \u010d\xedsla, kter\xe9 si mohou \u0159e\u0161itel\xe9 st\xe1hnout',upload_to=cislo_pdf_filename,null=True,verbose_name='pdf',blank=True),
('prezentace',models.FileField(help_text='Prezentace nebo fotka posteru',upload_to=seminar.models.generate_filename_konfera,verbose_name='prezentace')),
('materialy',models.FileField(help_text='Dal\u0161\xed materi\xe1ly ke konfe\u0159e zabalen\xe9 do jednoho souboru',upload_to=seminar.models.generate_filename_konfera,verbose_name='materialy')),
('prezentace',models.FileField(help_text='Prezentace nebo fotka posteru',upload_to=generate_filename_konfera,verbose_name='prezentace')),
('materialy',models.FileField(help_text='Dal\u0161\xed materi\xe1ly ke konfe\u0159e zabalen\xe9 do jednoho souboru',upload_to=generate_filename_konfera,verbose_name='materialy')),
@ -15,12 +15,12 @@ class Migration(migrations.Migration):
migrations.AlterField(
model_name='konfera',
name='materialy',
field=models.FileField(help_text='Dal\u0161\xed materi\xe1ly ke konfe\u0159e zabalen\xe9 do jednoho souboru',upload_to=seminar.models.generate_filename_konfera,verbose_name='materialy',blank=True),
field=models.FileField(help_text='Dal\u0161\xed materi\xe1ly ke konfe\u0159e zabalen\xe9 do jednoho souboru',upload_to=generate_filename_konfera,verbose_name='materialy',blank=True),
),
migrations.AlterField(
model_name='konfera',
name='prezentace',
field=models.FileField(help_text='Prezentace nebo fotka posteru',upload_to=seminar.models.generate_filename_konfera,verbose_name='prezentace',blank=True),
field=models.FileField(help_text='Prezentace nebo fotka posteru',upload_to=generate_filename_konfera,verbose_name='prezentace',blank=True),
@ -19,6 +20,6 @@ class Migration(migrations.Migration):
migrations.AlterField(
model_name='cislo',
name='pdf',
field=models.FileField(blank=True,help_text='PDF čísla, které si mohou řešitelé stáhnout',null=True,upload_to=seminar.models.cislo_pdf_filename,verbose_name='pdf'),
field=models.FileField(blank=True,help_text='PDF čísla, které si mohou řešitelé stáhnout',null=True,upload_to=cislo_pdf_filename,verbose_name='pdf'),
@ -14,6 +14,6 @@ class Migration(migrations.Migration):
migrations.AlterField(
model_name='cislo',
name='titulka_nahled',
field=models.ImageField(blank=True,help_text='Obrázek titulní strany, generuje se automaticky',null=True,upload_to=seminar.models.cislo_png_filename,verbose_name='Obrázek titulní strany'),
field=models.ImageField(blank=True,help_text='Obrázek titulní strany, generuje se automaticky',null=True,upload_to=cislo_png_filename,verbose_name='Obrázek titulní strany'),
@ -14,6 +15,6 @@ class Migration(migrations.Migration):
migrations.AlterField(
model_name='cislo',
name='pdf',
field=models.FileField(blank=True,help_text='PDF čísla, které si mohou řešitelé stáhnout',null=True,storage=seminar.models.tvorba.OverwriteStorage(),upload_to=seminar.models.tvorba.cislo_pdf_filename,verbose_name='pdf'),
field=models.FileField(blank=True,help_text='PDF čísla, které si mohou řešitelé stáhnout',null=True,storage=various.models.OverwriteStorage(),upload_to=cislo_pdf_filename,verbose_name='pdf'),
('poznamka',models.TextField(blank=True,help_text='Neveřejná poznámka k číslu (plain text)',verbose_name='neveřejná poznámka')),
('pdf',models.FileField(blank=True,help_text='PDF čísla, které si mohou řešitelé stáhnout',null=True,storage=seminar.models.tvorba.OverwriteStorage(),upload_to=tvorba.models.cislo_pdf_filename,verbose_name='pdf')),
('pdf',models.FileField(blank=True,help_text='PDF čísla, které si mohou řešitelé stáhnout',null=True,storage=various.models.OverwriteStorage(),upload_to=tvorba.models.cislo_pdf_filename,verbose_name='pdf')),
('titulka_nahled',models.ImageField(blank=True,help_text='Obrázek titulní strany, generuje se automaticky',null=True,upload_to=tvorba.models.cislo_png_filename,verbose_name='Obrázek titulní strany')),
<li><ahref="{% url "seminar_rocnik_titul"rocnik=cislo.rocnik.rocnik%}"download="posledni_tituly.tex">Tituly do závěrečného čísla (TeX, 2. deadline předchozího čísla a oba tohoto)</a></li>
<li><ahref="{% url "seminar_rocnik_posledni_vysledkovka"rocnik=cislo.rocnik.rocnik%}"download>Výsledkovka závěrečného čísla ročníku (TeX, 2. deadline předchozího čísla a oba tohoto)</a></li>
<li><ahref="{% url "tvorba_cislo_titul"rocnik=cislo.rocnik.rocnikcislo=cislo.poradi%}"download>Tituly (TeX, 2. deadline předchozího čísla a 1.deadline tohoto)</a></li>
<li><ahref="{% url "tvorba_cislo_vysledkovka"rocnik=cislo.rocnik.rocnikcislo=cislo.poradi%}"download>Výsledkovka (TeX, 2. deadline předchozího čísla a 1.deadline tohoto)</a></li>
<li>{% if prevcislo %}<ahref="{% url "tvorba_archiv_odmeny"trocnik=cislo.rocnik.rocniktcislo=cislo.poradifrocnik=prevcislo.rocnik.rocnikfcislo=prevcislo.poradi%}">Odměny</a>{% else %}Pro toto číslo neumíme spočítat odměny.{% endif %}{# FIXME (Jediné číslo, kde toto neumíme je to úplně první.) #}</li>
<li><ahref="{% url "tvorba_rocnik_titul"rocnik=cislo.rocnik.rocnik%}"download="posledni_tituly.tex">Tituly do závěrečného čísla (TeX, 2. deadline předchozího čísla a oba tohoto)</a></li>
<li><ahref="{% url "tvorba_rocnik_posledni_vysledkovka"rocnik=cislo.rocnik.rocnik%}"download>Výsledkovka závěrečného čísla ročníku (TeX, 2. deadline předchozího čísla a oba tohoto)</a></li>
# # FIXME: Teď vždycky zobrazujeme i vzorák! Možná by bylo hezčí/lepší mít to stejně jako pro Téma: procházet jen dosažitelné z Ročníku / čísla / whatever