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})
|
||||
|
||||
# má OneToOneField nejvýše s:
|
||||
# Resitel
|
||||
# Prijemce
|
||||
# Organizator
|
||||
|
||||
def plne_jmeno(self):
|
||||
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)
|
||||
|
||||
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):
|
||||
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,
|
||||
help_text='Pdf čísla, které si mohou řešitelé stáhnout')
|
||||
|
||||
# má OneToOneField s:
|
||||
# CisloNode
|
||||
|
||||
def kod(self):
|
||||
return '%s.%s' % (self.rocnik.rocnik, self.cislo)
|
||||
|
@ -560,7 +571,10 @@ class Problem(SeminarModelBase):
|
|||
|
||||
class Meta:
|
||||
# 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
|
||||
db_table = 'seminar_problemy'
|
||||
verbose_name = 'Problém'
|
||||
|
@ -678,6 +692,10 @@ class Clanek(Problem):
|
|||
verbose_name_plural = 'Články'
|
||||
|
||||
cislo = models.ForeignKey(Cislo, verbose_name='číslo', blank=True, null=True)
|
||||
|
||||
# má OneToOneField s:
|
||||
# ClanekNode
|
||||
|
||||
def kod_v_rocniku(self):
|
||||
if self.stav == 'zadany':
|
||||
# Nemělo by být potřeba
|
||||
|
@ -698,8 +716,12 @@ class Text(SeminarModelBase):
|
|||
do_cisla = models.TextField('text do čísla', blank=True,
|
||||
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)
|
||||
|
||||
|
||||
|
||||
class Uloha(Problem):
|
||||
class Meta:
|
||||
|
@ -720,6 +742,10 @@ class Uloha(Problem):
|
|||
max_body = models.DecimalField(max_digits=8, decimal_places=1, verbose_name='maximum bodů',
|
||||
blank=True, null=True)
|
||||
|
||||
# má OneToOneField s:
|
||||
# UlohaZadaniNode
|
||||
# UlohaVzorakNode
|
||||
|
||||
def kod_v_rocniku(self):
|
||||
if self.stav == 'zadany':
|
||||
name="{}.u{}".format(self.cislo_zadani.cislo,self.kod)
|
||||
|
@ -729,7 +755,6 @@ class Uloha(Problem):
|
|||
return '<Není zadaný>'
|
||||
|
||||
|
||||
|
||||
@reversion.register(ignore_duplicates=True)
|
||||
class Reseni(SeminarModelBase):
|
||||
|
||||
|
@ -776,6 +801,9 @@ class Reseni(SeminarModelBase):
|
|||
zverejneno = models.BooleanField('řešení zveřejněno', default=False,
|
||||
help_text='Udává, zda je řešení zveřejněno')
|
||||
|
||||
# má OneToOneField s:
|
||||
# Konfera
|
||||
|
||||
def __str__(self):
|
||||
return "{}: {}".format(self.resitel.osoba.plne_jmeno(), self.problem.nazev)
|
||||
# NOTE: Potenciální DB HOG (bez select_related)
|
||||
|
@ -897,6 +925,9 @@ class Pohadka(SeminarModelBase):
|
|||
editable=False
|
||||
)
|
||||
|
||||
# má OneToOneField s:
|
||||
# PohadkaNode
|
||||
|
||||
def __str__(self):
|
||||
uryvek = self.text if len(self.text) < 50 else self.text[:(50-3)]+"..."
|
||||
return uryvek
|
||||
|
@ -1001,6 +1032,9 @@ class Konfera(models.Model):
|
|||
help_text = 'Další materiály ke konfeře zabalené do jednoho souboru',
|
||||
upload_to = generate_filename_konfera, blank=True)
|
||||
|
||||
# má OneToOneField s:
|
||||
# KonferaNode
|
||||
|
||||
def __str__(self):
|
||||
return "{}: ({})".format(self.nazev, self.soustredeni)
|
||||
|
||||
|
|
Loading…
Reference in a new issue