Browse Source

Merge branch 'python3' of gimli.ms.mff.cuni.cz:/akce/mam/git/mamweb into python3

export_seznamu_prednasek
Anet 6 years ago
parent
commit
3007ac3433
  1. 2
      requirements.txt
  2. 27
      seminar/models.py

2
requirements.txt

@ -12,7 +12,7 @@ Unidecode==1.0.22
# Django and modules # Django and modules
Django==1.11.15 Django>=1.11.17,<2.0
#django-bootstrap-sass #django-bootstrap-sass
django-mptt==0.9.1 django-mptt==0.9.1
django-reversion==2.0.13 django-reversion==2.0.13

27
seminar/models.py

@ -561,7 +561,9 @@ class Soustredeni(SeminarModelBase):
class Problem(SeminarModelBase): class Problem(SeminarModelBase):
class Meta: class Meta:
abstract = True # Není abstraktní, protože se na něj jinak nedají dělat ForeignKeys.
# TODO: Udělat to polymorfní (pomocí django-polymorphic), abychom dostali po těch vazbách přímo tu úlohu/témátko vč. fieldů, které nejsou součástí modelu Problem?
#abstract = True
verbose_name = 'Problém' verbose_name = 'Problém'
verbose_name_plural = 'Problémy' verbose_name_plural = 'Problémy'
ordering = ['nazev'] ordering = ['nazev']
@ -574,7 +576,7 @@ class Problem(SeminarModelBase):
# Problém má podproblémy # Problém má podproblémy
nadproblem = models.ForeignKey('self', verbose_name='nadřazený problém', nadproblem = models.ForeignKey('self', verbose_name='nadřazený problém',
related_name='nadproblem', null=True, blank=True) related_name='nadproblem_%(class)s', null=True, blank=True)
STAV_NAVRH = 'navrh' STAV_NAVRH = 'navrh'
STAV_ZADANY = 'zadany' STAV_ZADANY = 'zadany'
@ -595,13 +597,13 @@ class Problem(SeminarModelBase):
autor = models.ForeignKey(Organizator, verbose_name='autor problému', autor = models.ForeignKey(Organizator, verbose_name='autor problému',
related_name='autor_problemu', null=True, blank=True) related_name='autor_problemu_%(class)s', null=True, blank=True)
garant = models.ForeignKey(Organizator, verbose_name='garant zadaného problému', garant = models.ForeignKey(Organizator, verbose_name='garant zadaného problému',
related_name='garant_problemu', null=True, blank=True) related_name='garant_problemu_%(class)s', null=True, blank=True)
opravovatele = models.ManyToManyField(Organizator, verbose_name='opravovatelé', opravovatele = models.ManyToManyField(Organizator, verbose_name='opravovatelé',
null=True, blank=True, related_name='opravovatele_uloh') null=True, blank=True, related_name='opravovatele_%(class)s')
kod = models.CharField('lokální kód', max_length=32, blank=True, default='', kod = models.CharField('lokální kód', max_length=32, blank=True, default='',
help_text='Číslo/kód úlohy v čísle nebo kód tématu/článku/seriálu v ročníku') help_text='Číslo/kód úlohy v čísle nebo kód tématu/článku/seriálu v ročníku')
@ -660,7 +662,7 @@ class Tema(Problem):
] ]
typ = models.CharField('Typ tématu', max_length=16, choices=TEMA_CHOICES, blank=False, default=TEMA_TEMA) typ = models.CharField('Typ tématu', max_length=16, choices=TEMA_CHOICES, blank=False, default=TEMA_TEMA)
rocnik = models.ForeignKey(Rocnik, verbose_name='ročník', related_name='rocnik',blank=True, null=True) rocnik = models.ForeignKey(Rocnik, verbose_name='ročník',blank=True, null=True)
def kod_v_rocniku(self): def kod_v_rocniku(self):
if self.stav == 'zadany': if self.stav == 'zadany':
@ -675,7 +677,7 @@ class Clanek(Problem):
verbose_name = 'Článek' verbose_name = 'Článek'
verbose_name_plural = 'Články' verbose_name_plural = 'Články'
cislo = models.ForeignKey(Cislo, verbose_name='číslo', related_name='cislo', blank=True, null=True) cislo = models.ForeignKey(Cislo, verbose_name='číslo', blank=True, null=True)
def kod_v_rocniku(self): def kod_v_rocniku(self):
if self.stav == 'zadany': if self.stav == 'zadany':
# Nemělo by být potřeba # Nemělo by být potřeba
@ -706,9 +708,9 @@ class Uloha(Problem):
verbose_name_plural = 'Úlohy' verbose_name_plural = 'Úlohy'
zadani = models.ForeignKey(Text, verbose_name='veřejné zadání', related_name='zadani', blank=True, null=True) zadani = models.ForeignKey(Text, verbose_name='veřejné zadání', blank=True, null=True)
vzorak = models.ForeignKey(Text, verbose_name='vzorové řešení', related_name='vzorak', blank=True, null=True) vzorak = models.ForeignKey(Text, verbose_name='vzorové řešení', blank=True, null=True)
cislo_zadani = models.ForeignKey(Cislo, verbose_name='číslo zadání', blank=True, null=True, related_name='zadane_ulohy') cislo_zadani = models.ForeignKey(Cislo, verbose_name='číslo zadání', blank=True, null=True, related_name='zadane_ulohy')
@ -738,7 +740,8 @@ class Reseni(SeminarModelBase):
db_table = 'seminar_reseni' db_table = 'seminar_reseni'
verbose_name = 'Řešení' verbose_name = 'Řešení'
verbose_name_plural = 'Řešení' verbose_name_plural = 'Řešení'
ordering = ['-problem_id', 'resitel'] #ordering = ['-problem', 'resitele'] # FIXME: Takhle to chceme, ale nefunguje to.
ordering = ['-cas_doruceni']
# Interní ID # Interní ID
id = models.AutoField(primary_key = True) id = models.AutoField(primary_key = True)
@ -765,10 +768,10 @@ class Reseni(SeminarModelBase):
default=FORMA_EMAIL) default=FORMA_EMAIL)
text_cely = models.ForeignKey(Text, verbose_name='Plná verze textu řešení', text_cely = models.ForeignKey(Text, verbose_name='Plná verze textu řešení',
blank=True, null=True) blank=True, null=True, related_name="reseni_cely_set")
text_zkraceny = models.ManyToManyField(Text, verbose_name='zkrácené verze řešení', text_zkraceny = models.ManyToManyField(Text, verbose_name='zkrácené verze řešení',
help_text='Seznam úryvků z řešení') help_text='Seznam úryvků z řešení',related_name="reseni_zkraceny_set")
poznamka = models.TextField('neveřejná poznámka', blank=True, poznamka = models.TextField('neveřejná poznámka', blank=True,
help_text='Neveřejná poznámka k řešení (plain text)') help_text='Neveřejná poznámka k řešení (plain text)')

Loading…
Cancel
Save