models.py: OneToOneFieldy do komentářů, zalámání textu
This commit is contained in:
parent
f89e696fe3
commit
4f2e56ce06
1 changed files with 37 additions and 3 deletions
|
@ -115,6 +115,11 @@ class Osoba(SeminarModelBase):
|
||||||
],
|
],
|
||||||
options={'quality': 95})
|
options={'quality': 95})
|
||||||
|
|
||||||
|
# má OneToOneField nejvýše s:
|
||||||
|
# Resitel
|
||||||
|
# Prijemce
|
||||||
|
# Organizator
|
||||||
|
|
||||||
def plne_jmeno(self):
|
def plne_jmeno(self):
|
||||||
return '{} {}'.format(self.jmeno, self.prijmeni)
|
return '{} {}'.format(self.jmeno, self.prijmeni)
|
||||||
|
|
||||||
|
@ -314,7 +319,11 @@ class Rocnik(SeminarModelBase):
|
||||||
rocnik = models.IntegerField('číslo ročníku', db_index=True, unique=True)
|
rocnik = models.IntegerField('číslo ročníku', db_index=True, unique=True)
|
||||||
|
|
||||||
exportovat = models.BooleanField('export do AESOPa', db_column='exportovat', default=False,
|
exportovat = models.BooleanField('export do AESOPa', db_column='exportovat', default=False,
|
||||||
help_text='Exportuje se jen podle tohoto flagu (ne veřejnosti), a to jen čísla s veřejnou výsledkovkou')
|
help_text='Exportuje se jen podle tohoto flagu (ne veřejnosti),'
|
||||||
|
' a to jen čísla s veřejnou výsledkovkou')
|
||||||
|
|
||||||
|
# má OneToOneField s:
|
||||||
|
# RocnikNode
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return '{} ({}/{})'.format(self.rocnik, self.prvni_rok, self.prvni_rok+1)
|
return '{} ({}/{})'.format(self.rocnik, self.prvni_rok, self.prvni_rok+1)
|
||||||
|
@ -409,6 +418,8 @@ class Cislo(SeminarModelBase):
|
||||||
pdf = models.FileField('pdf', upload_to=cislo_pdf_filename, null=True, blank=True,
|
pdf = models.FileField('pdf', upload_to=cislo_pdf_filename, null=True, blank=True,
|
||||||
help_text='Pdf čísla, které si mohou řešitelé stáhnout')
|
help_text='Pdf čísla, které si mohou řešitelé stáhnout')
|
||||||
|
|
||||||
|
# má OneToOneField s:
|
||||||
|
# CisloNode
|
||||||
|
|
||||||
def kod(self):
|
def kod(self):
|
||||||
return '%s.%s' % (self.rocnik.rocnik, self.cislo)
|
return '%s.%s' % (self.rocnik.rocnik, self.cislo)
|
||||||
|
@ -560,7 +571,10 @@ class Problem(SeminarModelBase):
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
# Není abstraktní, protože se na něj jinak nedají dělat ForeignKeys.
|
# 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?
|
# 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
|
#abstract = True
|
||||||
db_table = 'seminar_problemy'
|
db_table = 'seminar_problemy'
|
||||||
verbose_name = 'Problém'
|
verbose_name = 'Problém'
|
||||||
|
@ -678,6 +692,10 @@ class Clanek(Problem):
|
||||||
verbose_name_plural = 'Články'
|
verbose_name_plural = 'Články'
|
||||||
|
|
||||||
cislo = models.ForeignKey(Cislo, verbose_name='číslo', blank=True, null=True)
|
cislo = models.ForeignKey(Cislo, verbose_name='číslo', blank=True, null=True)
|
||||||
|
|
||||||
|
# má OneToOneField s:
|
||||||
|
# ClanekNode
|
||||||
|
|
||||||
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
|
||||||
|
@ -698,8 +716,12 @@ class Text(SeminarModelBase):
|
||||||
do_cisla = models.TextField('text do čísla', blank=True,
|
do_cisla = models.TextField('text do čísla', blank=True,
|
||||||
help_text='Text ke zveřejnění v čísle')
|
help_text='Text ke zveřejnění v čísle')
|
||||||
|
|
||||||
|
# má OneToOneField s:
|
||||||
|
# Reseni (je u něj jako reseni_cele)
|
||||||
|
|
||||||
# obrázky mají návaznost opačným směrem (vazba z druhé strany)
|
# obrázky mají návaznost opačným směrem (vazba z druhé strany)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class Uloha(Problem):
|
class Uloha(Problem):
|
||||||
class Meta:
|
class Meta:
|
||||||
|
@ -720,6 +742,10 @@ class Uloha(Problem):
|
||||||
max_body = models.DecimalField(max_digits=8, decimal_places=1, verbose_name='maximum bodů',
|
max_body = models.DecimalField(max_digits=8, decimal_places=1, verbose_name='maximum bodů',
|
||||||
blank=True, null=True)
|
blank=True, null=True)
|
||||||
|
|
||||||
|
# má OneToOneField s:
|
||||||
|
# UlohaZadaniNode
|
||||||
|
# UlohaVzorakNode
|
||||||
|
|
||||||
def kod_v_rocniku(self):
|
def kod_v_rocniku(self):
|
||||||
if self.stav == 'zadany':
|
if self.stav == 'zadany':
|
||||||
name="{}.u{}".format(self.cislo_zadani.cislo,self.kod)
|
name="{}.u{}".format(self.cislo_zadani.cislo,self.kod)
|
||||||
|
@ -729,7 +755,6 @@ class Uloha(Problem):
|
||||||
return '<Není zadaný>'
|
return '<Není zadaný>'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@reversion.register(ignore_duplicates=True)
|
@reversion.register(ignore_duplicates=True)
|
||||||
class Reseni(SeminarModelBase):
|
class Reseni(SeminarModelBase):
|
||||||
|
|
||||||
|
@ -776,6 +801,9 @@ class Reseni(SeminarModelBase):
|
||||||
zverejneno = models.BooleanField('řešení zveřejněno', default=False,
|
zverejneno = models.BooleanField('řešení zveřejněno', default=False,
|
||||||
help_text='Udává, zda je řešení zveřejněno')
|
help_text='Udává, zda je řešení zveřejněno')
|
||||||
|
|
||||||
|
# má OneToOneField s:
|
||||||
|
# Konfera
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return "{}: {}".format(self.resitel.osoba.plne_jmeno(), self.problem.nazev)
|
return "{}: {}".format(self.resitel.osoba.plne_jmeno(), self.problem.nazev)
|
||||||
# NOTE: Potenciální DB HOG (bez select_related)
|
# NOTE: Potenciální DB HOG (bez select_related)
|
||||||
|
@ -897,6 +925,9 @@ class Pohadka(SeminarModelBase):
|
||||||
editable=False
|
editable=False
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# má OneToOneField s:
|
||||||
|
# PohadkaNode
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
uryvek = self.text if len(self.text) < 50 else self.text[:(50-3)]+"..."
|
uryvek = self.text if len(self.text) < 50 else self.text[:(50-3)]+"..."
|
||||||
return uryvek
|
return uryvek
|
||||||
|
@ -1001,6 +1032,9 @@ class Konfera(models.Model):
|
||||||
help_text = 'Další materiály ke konfeře zabalené do jednoho souboru',
|
help_text = 'Další materiály ke konfeře zabalené do jednoho souboru',
|
||||||
upload_to = generate_filename_konfera, blank=True)
|
upload_to = generate_filename_konfera, blank=True)
|
||||||
|
|
||||||
|
# má OneToOneField s:
|
||||||
|
# KonferaNode
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return "{}: ({})".format(self.nazev, self.soustredeni)
|
return "{}: ({})".format(self.nazev, self.soustredeni)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue