mamweb/personalni/models/skola.py

82 lines
2.2 KiB
Python

from reversion import revisions as reversion
from django.db import models
from django_countries.fields import CountryField
from mamweb.models.base import SeminarModelBase
from .osoba import Osoba
#
# Mělo by být částečně vytaženo z Aesopa
# viz https://ovvp.mff.cuni.cz/wiki/aesop/export-skol.
#
@reversion.register(ignore_duplicates=True)
class Skola(SeminarModelBase):
class Meta:
db_table = 'seminar_skoly'
verbose_name = 'Škola'
verbose_name_plural = 'Školy'
ordering = ['mesto', 'nazev']
# Interní ID
id = models.AutoField(primary_key=True)
# Aesopi ID "izo:..." nebo "aesop:..."
# NULL znamená v exportu do aesopa "ufo"
aesop_id = models.CharField(
'Aesop ID', max_length=32, blank=True, default='',
help_text='Aesopi ID typu "izo:..." nebo "aesop:..."',
)
# IZO školy (jen české školy)
izo = models.CharField(
'IZO', max_length=32, blank=True,
help_text='IZO školy (jen české školy)',
)
# Celý název školy
nazev = models.CharField(
'název', max_length=256,
help_text='Celý název školy',
)
# Zkraceny nazev pro zobrazení ve výsledkovce, volitelné.
# Není v Aesopovi, musíme vytvářet sami.
kratky_nazev = models.CharField(
'zkrácený název', max_length=256, blank=True,
help_text="Zkrácený název pro zobrazení ve výsledkovce",
)
# Ulice může být jen číslo
ulice = models.CharField('ulice', max_length=256)
mesto = models.CharField('město', max_length=256)
psc = models.CharField('PSČ', max_length=32)
# ISO 3166-1 dvojznakovy kod zeme velkym pismem (CZ, SK)
# Ekvivalentní s CharField(max_length=2, default='CZ', ...)
stat = CountryField(
'stát', default='CZ',
help_text='ISO 3166-1 kód země velkými písmeny (CZ, SK, ...)',
)
# Jaké vzdělání škpla poskytuje?
je_zs = models.BooleanField('základní stupeň', default=True)
je_ss = models.BooleanField('střední stupeň', default=True)
poznamka = models.TextField(
'neveřejná poznámka', blank=True,
help_text='Neveřejná poznámka ke škole (plain text)',
)
kontaktni_osoba = models.ForeignKey(
Osoba, verbose_name='Kontaktní osoba',
blank=True, null=True, on_delete=models.SET_NULL,
)
def __str__(self):
return '{}, {}, {}'.format(self.nazev, self.ulice, self.mesto)