|
@ -7,7 +7,7 @@ from django.contrib import auth |
|
|
from django.utils import timezone |
|
|
from django.utils import timezone |
|
|
from django.conf import settings |
|
|
from django.conf import settings |
|
|
from django.utils.encoding import python_2_unicode_compatible |
|
|
from django.utils.encoding import python_2_unicode_compatible |
|
|
from django.utils.encoding import force_unicode |
|
|
from django.utils.encoding import force_text |
|
|
from django.utils.text import slugify |
|
|
from django.utils.text import slugify |
|
|
from django.core.urlresolvers import reverse |
|
|
from django.core.urlresolvers import reverse |
|
|
from django.core.cache import cache |
|
|
from django.core.cache import cache |
|
@ -50,62 +50,6 @@ class SeminarModelBase(models.Model): |
|
|
# viz https://ovvp.mff.cuni.cz/wiki/aesop/export-skol. |
|
|
# viz https://ovvp.mff.cuni.cz/wiki/aesop/export-skol. |
|
|
# |
|
|
# |
|
|
|
|
|
|
|
|
@reversion.register(ignore_duplicates=True) |
|
|
|
|
|
@python_2_unicode_compatible |
|
|
|
|
|
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) |
|
|
|
|
|
|
|
|
|
|
|
def __str__(self): |
|
|
|
|
|
return force_unicode('%s, %s, %s' % (self.nazev, self.ulice, self.mesto)) |
|
|
|
|
|
|
|
|
|
|
|
@reversion.register(ignore_duplicates=True) |
|
|
@reversion.register(ignore_duplicates=True) |
|
|
@python_2_unicode_compatible |
|
|
@python_2_unicode_compatible |
|
|
class Osoba(SeminarModelBase): |
|
|
class Osoba(SeminarModelBase): |
|
@ -185,6 +129,63 @@ class Osoba(SeminarModelBase): |
|
|
def __str__(self): |
|
|
def __str__(self): |
|
|
return force_unicode("Osoba({})".format(self.plne_jmeno())) |
|
|
return force_unicode("Osoba({})".format(self.plne_jmeno())) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@reversion.register(ignore_duplicates=True) |
|
|
|
|
|
@python_2_unicode_compatible |
|
|
|
|
|
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) |
|
|
|
|
|
|
|
|
|
|
|
def __str__(self): |
|
|
|
|
|
return force_unicode('%s, %s, %s' % (self.nazev, self.ulice, self.mesto)) |
|
|
|
|
|
|
|
|
class Prijemce(SeminarModelBase): |
|
|
class Prijemce(SeminarModelBase): |
|
|
class Meta: |
|
|
class Meta: |
|
|
db_table = 'seminar_prijemce' |
|
|
db_table = 'seminar_prijemce' |
|
@ -798,7 +799,7 @@ class Pohadka(SeminarModelBase): |
|
|
class Organizator(SeminarModelBase): |
|
|
class Organizator(SeminarModelBase): |
|
|
# zmena dedicnosti z models.Model na SeminarModelBase, potencialni vznik bugu |
|
|
# zmena dedicnosti z models.Model na SeminarModelBase, potencialni vznik bugu |
|
|
|
|
|
|
|
|
osoba = models.ForeignKey(Osoba, verbose_name='osoba', related_name='org' |
|
|
osoba = models.ForeignKey(Osoba, verbose_name='osoba', related_name='org', |
|
|
help_text='osobní údaje organizátora', null=False, blank=False) |
|
|
help_text='osobní údaje organizátora', null=False, blank=False) |
|
|
|
|
|
|
|
|
vytvoreno = models.DateTimeField( |
|
|
vytvoreno = models.DateTimeField( |
|
@ -1042,8 +1043,8 @@ class Obrazek(SeminarModelBase): |
|
|
na_web = models.ImageField('obrázek na web', upload_to='obrazky/%Y/%m/%d/', |
|
|
na_web = models.ImageField('obrázek na web', upload_to='obrazky/%Y/%m/%d/', |
|
|
null=True, blank=True) |
|
|
null=True, blank=True) |
|
|
|
|
|
|
|
|
text = models.ForeignKey(Text, verbose_name='text', help_text='text, ve kterém |
|
|
text = models.ForeignKey(Text, verbose_name='text', |
|
|
se obrázek vyskytuje', null=False, blank=False) |
|
|
help_text='text, ve kterém se obrázek vyskytuje', null=False, blank=False) |
|
|
|
|
|
|
|
|
do_cisla_barevny = models.FileField('barevný obrázek do čísla', |
|
|
do_cisla_barevny = models.FileField('barevný obrázek do čísla', |
|
|
help_text = 'Barevná verze obrázku do čísla', |
|
|
help_text = 'Barevná verze obrázku do čísla', |
|
|