Browse Source

models.py: prehozeni trid, odkomentovani funkci. Sebehne na tom make run.

export_seznamu_prednasek
Anet 6 years ago
parent
commit
8972dbb34d
  1. 267
      seminar/models.py

267
seminar/models.py

@ -449,6 +449,112 @@ class Cislo(SeminarModelBase):
return None return None
return c return c
@reversion.register(ignore_duplicates=True)
@python_2_unicode_compatible
class Organizator(SeminarModelBase):
# zmena dedicnosti z models.Model na SeminarModelBase, potencialni vznik bugu
osoba = models.ForeignKey(Osoba, verbose_name='osoba', related_name='org',
help_text='osobní údaje organizátora', null=False, blank=False)
vytvoreno = models.DateTimeField(
'Vytvořeno',
default=timezone.now,
blank=True,
editable=False
)
organizuje_od = models.DateTimeField('Organizuje od', blank=False, null=False)
organizuje_do = models.DateTimeField('Organizuje do', blank=True, null=True)
studuje = models.CharField('Studium aj.', max_length = 256,
null = True, blank = True,
help_text=u"Např. 'Studuje Obecnou fyziku (Bc.), 3. ročník', "
"'Vystudovala Diskrétní modely a algoritmy (Mgr.)' nebo "
"'Přednáší na MFF'")
strucny_popis_organizatora = models.TextField('Stručný popis organizátora',
null = True, blank = True)
skola = models.CharField('Škola, kterou studuje', max_length = 256, null=True, blank=True,
help_text=u"Škola, např. MFF, VŠCHT, VUT, ... prostě aby se nemuselo psát do studuje"
"školu, ale jen obor, možnost zobrazit zvlášť")
def __str__(self):
if self.osoba.prezdivka:
return u"%s '%s' %s".format(self.osoba.jmeno,
self.osoba.prezdivka,
self.osoba.prijmeni)
else:
return u"%s %s".format(self.osoba.jmeno, self.osoba.prijmeni)
class Meta:
verbose_name = 'Organizátor'
verbose_name_plural = 'Organizátoři'
@reversion.register(ignore_duplicates=True)
@python_2_unicode_compatible
class Soustredeni(SeminarModelBase):
class Meta:
db_table = 'seminar_soustredeni'
verbose_name = 'Soustředění'
verbose_name_plural = 'Soustředění'
ordering = ['-rocnik__rocnik', '-datum_zacatku']
# Interní ID
id = models.AutoField(primary_key = True)
rocnik = models.ForeignKey(Rocnik, verbose_name='ročník', related_name='soustredeni')
datum_zacatku = models.DateField('datum začátku', blank=True, null=True,
help_text='První den soustředění')
datum_konce = models.DateField('datum konce', blank=True, null=True,
help_text='Poslední den soustředění')
verejne_db = models.BooleanField('soustředění zveřejněno', db_column='verejne', default=False)
misto = models.CharField('místo soustředění', max_length=256, blank=True, default='',
help_text='Místo (název obce, volitelně též objektu')
ucastnici = models.ManyToManyField(Resitel, verbose_name='účastníci soustředění',
help_text='Seznam účastníků soustředění', through='Soustredeni_Ucastnici')
organizatori = models.ManyToManyField(Organizator,
verbose_name='Organizátoři soustředění',
help_text='Seznam organizátorů soustředění',
through='Soustredeni_Organizatori')
text = models.TextField('text k soustředění (HTML)', blank=True, default='')
TYP_JARNI = 'jarni'
TYP_PODZIMNI = 'podzimni'
TYP_VIKEND = 'vikend'
TYP_CHOICES = [
(TYP_JARNI, 'Jarní soustředění'),
(TYP_PODZIMNI, 'Podzimní soustředění'),
(TYP_VIKEND, 'Víkendový sraz'),
]
typ = models.CharField('typ akce', max_length=16, choices=TYP_CHOICES, blank=False, default=TYP_PODZIMNI)
exportovat = models.BooleanField('export do AESOPa', db_column='exportovat', default=False,
help_text='Exportuje se jen podle tohoto flagu (ne veřejnosti)')
def __str__(self):
return force_unicode('%s (%s)'.format(self.misto, self.datum_zacatku))
def verejne(self):
return self.verejne_db
verejne.boolean = True
def verejne_url(self):
#return reverse('seminar_soustredeni', kwargs={'pk': self.id})
return reverse('seminar_seznam_soustredeni')
@reversion.register(ignore_duplicates=True) @reversion.register(ignore_duplicates=True)
@python_2_unicode_compatible @python_2_unicode_compatible
@ -467,7 +573,7 @@ class Problem(SeminarModelBase):
nazev = models.CharField('název', max_length=256) nazev = models.CharField('název', max_length=256)
# Problém má podproblémy # Problém má podproblémy
nadproblem = models.ForeignKey(Problem, 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', null=True, blank=True)
STAV_NAVRH = 'navrh' STAV_NAVRH = 'navrh'
@ -578,6 +684,21 @@ class Clanek(Problem):
return force_unicode("c{}".format(self.kod)) return force_unicode("c{}".format(self.kod))
return '<Není zadaný>' return '<Není zadaný>'
class Text(SeminarModelBase):
class Meta:
db_table = 'seminar_texty'
verbose_name = 'text'
verbose_name_plural = 'texty'
na_web = models.TextField('text na web', blank=True,
help_text='Text ke zveřejnění na webu')
do_cisla = models.TextField('text do čísla', blank=True,
help_text='Text ke zveřejnění v čísle')
# obrázky mají návaznost opačným směrem (vazba z druhé strany)
class Uloha(Problem): class Uloha(Problem):
class Meta: class Meta:
db_table = 'seminar_ulohy' db_table = 'seminar_ulohy'
@ -671,7 +792,7 @@ class Hodnoceni(SeminarModelBase):
class Meta: class Meta:
db_table = 'seminar_hodnoceni' db_table = 'seminar_hodnoceni'
verbose_name = 'Hodnocení' verbose_name = 'Hodnocení'
verbose_name_plular = 'Hodnocení' verbose_name_plural = 'Hodnocení'
# Interní ID # Interní ID
id = models.AutoField(primary_key = True) id = models.AutoField(primary_key = True)
@ -707,20 +828,18 @@ class Hodnoceni(SeminarModelBase):
# podle adresáře řešíme takto. # podle adresáře řešíme takto.
## ##
## FIXME: Budeme řešit později, pokud to bude potřeba. def generate_filename_konfera(self, filename):
#def generate_filename_konfera(self, filename): return os.path.join(
# return os.path.join( settings.SEMINAR_KONFERY_DIR,
# settings.SEMINAR_KONFERY_DIR, aux_generate_filename(self, filename)
# aux_generate_filename(self, filename) )
# )
## ##
## FIXME: Budeme řešit později, pokud to bude potřeba. def generate_filename(self, filename):
#def generate_filename(self, filename): return os.path.join(
# return os.path.join( settings.SEMINAR_RESENI_DIR,
# settings.SEMINAR_RESENI_DIR, aux_generate_filename(self, filename)
# aux_generate_filename(self, filename) )
# )
@reversion.register(ignore_duplicates=True) @reversion.register(ignore_duplicates=True)
@ -794,112 +913,6 @@ class Pohadka(SeminarModelBase):
return force_unicode(uryvek) return force_unicode(uryvek)
@reversion.register(ignore_duplicates=True)
@python_2_unicode_compatible
class Organizator(SeminarModelBase):
# zmena dedicnosti z models.Model na SeminarModelBase, potencialni vznik bugu
osoba = models.ForeignKey(Osoba, verbose_name='osoba', related_name='org',
help_text='osobní údaje organizátora', null=False, blank=False)
vytvoreno = models.DateTimeField(
'Vytvořeno',
default=timezone.now,
blank=True,
editable=False
)
organizuje_od = models.DateTimeField('Organizuje od', blank=False, null=False)
organizuje_do = models.DateTimeField('Organizuje do', blank=True, null=True)
studuje = models.CharField('Studium aj.', max_length = 256,
null = True, blank = True,
help_text=u"Např. 'Studuje Obecnou fyziku (Bc.), 3. ročník', "
"'Vystudovala Diskrétní modely a algoritmy (Mgr.)' nebo "
"'Přednáší na MFF'")
strucny_popis_organizatora = models.TextField('Stručný popis organizátora',
null = True, blank = True)
skola = models.CharField('Škola, kterou studuje', max_length = 256, null=True, blank=True,
help_text=u"Škola, např. MFF, VŠCHT, VUT, ... prostě aby se nemuselo psát do studuje"
"školu, ale jen obor, možnost zobrazit zvlášť")
def __str__(self):
if self.osoba.prezdivka:
return u"%s '%s' %s".format(self.osoba.jmeno,
self.osoba.prezdivka,
self.osoba.prijmeni)
else:
return u"%s %s".format(self.osoba.jmeno, self.osoba.prijmeni)
class Meta:
verbose_name = 'Organizátor'
verbose_name_plural = 'Organizátoři'
@reversion.register(ignore_duplicates=True)
@python_2_unicode_compatible
class Soustredeni(SeminarModelBase):
class Meta:
db_table = 'seminar_soustredeni'
verbose_name = 'Soustředění'
verbose_name_plural = 'Soustředění'
ordering = ['-rocnik__rocnik', '-datum_zacatku']
# Interní ID
id = models.AutoField(primary_key = True)
rocnik = models.ForeignKey(Rocnik, verbose_name='ročník', related_name='soustredeni')
datum_zacatku = models.DateField('datum začátku', blank=True, null=True,
help_text='První den soustředění')
datum_konce = models.DateField('datum konce', blank=True, null=True,
help_text='Poslední den soustředění')
verejne_db = models.BooleanField('soustředění zveřejněno', db_column='verejne', default=False)
misto = models.CharField('místo soustředění', max_length=256, blank=True, default='',
help_text='Místo (název obce, volitelně též objektu')
ucastnici = models.ManyToManyField(Resitel, verbose_name='účastníci soustředění',
help_text='Seznam účastníků soustředění', through='Soustredeni_Ucastnici')
organizatori = models.ManyToManyField(Organizator,
verbose_name='Organizátoři soustředění',
help_text='Seznam organizátorů soustředění',
through='Soustredeni_Organizatori')
text = models.TextField('text k soustředění (HTML)', blank=True, default='')
TYP_JARNI = 'jarni'
TYP_PODZIMNI = 'podzimni'
TYP_VIKEND = 'vikend'
TYP_CHOICES = [
(TYP_JARNI, 'Jarní soustředění'),
(TYP_PODZIMNI, 'Podzimní soustředění'),
(TYP_VIKEND, 'Víkendový sraz'),
]
typ = models.CharField('typ akce', max_length=16, choices=TYP_CHOICES, blank=False, default=TYP_PODZIMNI)
exportovat = models.BooleanField('export do AESOPa', db_column='exportovat', default=False,
help_text='Exportuje se jen podle tohoto flagu (ne veřejnosti)')
def __str__(self):
return force_unicode('%s (%s)'.format(self.misto, self.datum_zacatku))
def verejne(self):
return self.verejne_db
verejne.boolean = True
def verejne_url(self):
#return reverse('seminar_soustredeni', kwargs={'pk': self.id})
return reverse('seminar_seznam_soustredeni')
@reversion.register(ignore_duplicates=True) @reversion.register(ignore_duplicates=True)
@python_2_unicode_compatible @python_2_unicode_compatible
class Soustredeni_Ucastnici(SeminarModelBase): class Soustredeni_Ucastnici(SeminarModelBase):
@ -1054,20 +1067,6 @@ class Obrazek(SeminarModelBase):
help_text = 'Černobílá verze obrázku do čísla', help_text = 'Černobílá verze obrázku do čísla',
upload_to = 'obrazky/%Y/%m/%d/', blank=True, null=True) upload_to = 'obrazky/%Y/%m/%d/', blank=True, null=True)
class Text(SeminarModelBase):
class Meta:
db_table = 'seminar_texty'
verbose_name = 'text'
verbose_name_plular = 'texty'
na_web = models.TextField('text na web', blank=True,
help_text='Text ke zveřejnění na webu')
do_cisla = models.TextField('text do čísla', blank=True,
help_text='Text ke zveřejnění v čísle')
# obrázky mají návaznost opačným směrem (vazba z druhé strany)
## FIXME: Logiku přesunout do views. ## FIXME: Logiku přesunout do views.
#@python_2_unicode_compatible #@python_2_unicode_compatible
#class VysledkyBase(SeminarModelBase): #class VysledkyBase(SeminarModelBase):

Loading…
Cancel
Save