#self.problemy = list(filter(lambda problem: problem.rocnik() == self.aktualni_rocnik, self.problemy)) # DB HOG? # FIXME: některé problémy nemají ročník....
#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.
# 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.
@ -164,7 +166,7 @@ class TabulkaOdevzdanychReseniView(ListView):
# Pro použití hacku na automatické {{form.media}} v template:
# Pro použití hacku na automatické {{form.media}} v template:
# errors.append(ValidationError('Problém %s není zadaný ani vyřešený', code=problem))
# errors.append(ValidationError('Problém %s není zadaný ani vyřešený', code=problem))
# if errors:
# if errors:
# errors.append(ValidationError(mark_safe('<b>Pokud chceš učinit všechny problémy, co nejsou zadané ani vyřešené, zadanými a číslo zveřejnit, můžeš to udělat pomocí akce v <a href="/admin/seminar/cislo">seznamu čísel</a></b>')))
# errors.append(ValidationError(mark_safe('<b>Pokud chceš učinit všechny problémy, co nejsou zadané ani vyřešené, zadanými a číslo zveřejnit, můžeš to udělat pomocí akce v <a href="/admin/seminar/cislo">seznamu čísel</a></b>')))
('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')),
('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 +1286,7 @@ class Migration(migrations.Migration):
migrations.AddField(
migrations.AddField(
model_name='cislo',
model_name='cislo',
name='pdf',
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(
migrations.AlterField(
model_name='problem',
model_name='problem',
@ -1361,8 +1363,8 @@ class Migration(migrations.Migration):
('abstrakt',models.TextField(blank=True,help_text='Abstrakt konfery tak, jak byl uveden ve sborníku',verbose_name='abstrakt')),
('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')),
('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')),
('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=seminar.models.generate_filename_konfera,verbose_name='materialy')),
('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 +1402,12 @@ class Migration(migrations.Migration):
migrations.AlterField(
migrations.AlterField(
model_name='konfera',
model_name='konfera',
name='materialy',
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(
migrations.AlterField(
model_name='konfera',
model_name='konfera',
name='prezentace',
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(
migrations.AddField(
model_name='konfera',
model_name='konfera',
@ -2648,12 +2650,12 @@ class Migration(migrations.Migration):
migrations.AlterField(
migrations.AlterField(
model_name='cislo',
model_name='cislo',
name='pdf',
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(
migrations.AddField(
model_name='cislo',
model_name='cislo',
name='titulka_nahled',
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(
migrations.AddField(
model_name='cislo',
model_name='cislo',
name='pdf',
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,7 @@ from __future__ import unicode_literals
fromdjango.dbimportmodels,migrations
fromdjango.dbimportmodels,migrations
importdjango_countries.fields
importdjango_countries.fields
importseminar.models
fromseminar.models.tvorbaimportcislo_pdf_filename
classMigration(migrations.Migration):
classMigration(migrations.Migration):
@ -25,7 +25,7 @@ class Migration(migrations.Migration):
migrations.AlterField(
migrations.AlterField(
model_name='cislo',
model_name='cislo',
name='pdf',
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')),
('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=seminar.models.generate_filename_konfera,verbose_name='materialy')),
('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(
migrations.AlterField(
model_name='konfera',
model_name='konfera',
name='materialy',
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(
migrations.AlterField(
model_name='konfera',
model_name='konfera',
name='prezentace',
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 +19,6 @@ class Migration(migrations.Migration):
migrations.AlterField(
migrations.AlterField(
model_name='cislo',
model_name='cislo',
name='pdf',
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(
migrations.AlterField(
model_name='cislo',
model_name='cislo',
name='titulka_nahled',
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 +14,6 @@ class Migration(migrations.Migration):
migrations.AlterField(
migrations.AlterField(
model_name='cislo',
model_name='cislo',
name='pdf',
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=OverwriteStorage(),upload_to=cislo_pdf_filename,verbose_name='pdf'),
# # 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
# # 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