92 lines
2.5 KiB
Python
92 lines
2.5 KiB
Python
from reversion import revisions as reversion
|
|
|
|
from django.db import models
|
|
from django.urls import reverse
|
|
|
|
from mamweb.models.base import SeminarModelBase
|
|
|
|
from personalni.models.resitel import Resitel
|
|
from personalni.models.organizator import Organizator
|
|
from tvorba.models.rocnik import Rocnik
|
|
|
|
|
|
@reversion.register(ignore_duplicates=True)
|
|
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',
|
|
on_delete=models.PROTECT,
|
|
)
|
|
|
|
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_VYLET = 'vylet'
|
|
TYP_CHOICES = [
|
|
(TYP_JARNI, 'Jarní soustředění'),
|
|
(TYP_PODZIMNI, 'Podzimní soustředění'),
|
|
(TYP_VIKEND, 'Víkendový sraz'),
|
|
(TYP_VYLET, 'Výlet'),
|
|
]
|
|
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 '{} ({})'.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')
|