Uprava modelu: ucast na soustredeni, poznamky u modelu
This commit is contained in:
parent
f9ad5a799f
commit
57f674a51c
4 changed files with 146 additions and 10 deletions
18
seminar/migrations/0012_remove_soustredeni_ucastnici.py
Normal file
18
seminar/migrations/0012_remove_soustredeni_ucastnici.py
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import models, migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('seminar', '0011_alter_timestamp_def'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RemoveField(
|
||||||
|
model_name='soustredeni',
|
||||||
|
name='ucastnici',
|
||||||
|
),
|
||||||
|
]
|
|
@ -0,0 +1,36 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import models, migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('seminar', '0012_remove_soustredeni_ucastnici'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Soustredeni_Ucastnici',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(serialize=False, primary_key=True)),
|
||||||
|
('poznamka', models.CharField(default=b'', help_text='Neve\u0159ejn\xe1 pozn\xe1mka k \xfa\u010dasti (plain text)', max_length=64, verbose_name='neve\u0159ejn\xe1 pozn\xe1mka', blank=True)),
|
||||||
|
('resitel', models.ForeignKey(verbose_name='\u0159e\u0161itel', to='seminar.Resitel')),
|
||||||
|
('soustredeni', models.ForeignKey(verbose_name='soust\u0159ed\u011bn\xed', to='seminar.Soustredeni')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'ordering': ['soustredeni', 'resitel'],
|
||||||
|
'db_table': 'seminar_soustredeni_ucastnici',
|
||||||
|
'verbose_name': '\xda\u010dast na soust\u0159ed\u011bn\xed',
|
||||||
|
'verbose_name_plural': '\xda\u010dasti na soust\u0159ed\u011bn\xed',
|
||||||
|
},
|
||||||
|
bases=(models.Model,),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='soustredeni',
|
||||||
|
name='ucastnici',
|
||||||
|
field=models.ManyToManyField(help_text='Seznam \xfa\u010dastn\xedk\u016f soust\u0159ed\u011bn\xed', to='seminar.Resitel', verbose_name='\xfa\u010dastn\xedci soust\u0159ed\u011bn\xed', through='seminar.Soustredeni_Ucastnici'),
|
||||||
|
preserve_default=True,
|
||||||
|
),
|
||||||
|
]
|
56
seminar/migrations/0014_uprava_poznamek.py
Normal file
56
seminar/migrations/0014_uprava_poznamek.py
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import models, migrations
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('seminar', '0013_soustredeni_ucastnici_through_model'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='cislo',
|
||||||
|
name='poznamka',
|
||||||
|
field=models.CharField(default=b'', help_text='Neve\u0159ejn\xe1 pozn\xe1mka k \u010d\xedslu (plain text)', max_length=128, verbose_name='neve\u0159ejn\xe1 pozn\xe1mka', blank=True),
|
||||||
|
preserve_default=True,
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='prilohareseni',
|
||||||
|
name='poznamka',
|
||||||
|
field=models.CharField(default=b'', help_text='Neve\u0159ejn\xe1 pozn\xe1mka k p\u0159\xedloze \u0159e\u0161en\xed (plain text), nap\u0159. o p\u016fvodu', max_length=128, verbose_name='neve\u0159ejn\xe1 pozn\xe1mka', blank=True),
|
||||||
|
preserve_default=True,
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='problem',
|
||||||
|
name='text_problemu_org',
|
||||||
|
field=models.TextField(verbose_name='neve\u0159ejn\xe9 zad\xe1n\xed a organiz\xe1torsk\xe9 a pozn\xe1mky', blank=True),
|
||||||
|
preserve_default=True,
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='reseni',
|
||||||
|
name='poznamka',
|
||||||
|
field=models.CharField(default=b'', help_text='Neve\u0159ejn\xe1 pozn\xe1mka k \u0159e\u0161en\xed (plain text)', max_length=128, verbose_name='neve\u0159ejn\xe1 pozn\xe1mka', blank=True),
|
||||||
|
preserve_default=True,
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='resitel',
|
||||||
|
name='poznamka',
|
||||||
|
field=models.TextField(default=b'', help_text='Neve\u0159ejn\xe1 pozn\xe1mka k \u0159e\u0161iteli (plain text)', verbose_name='neve\u0159ejn\xe1 pozn\xe1mka', blank=True),
|
||||||
|
preserve_default=True,
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='skola',
|
||||||
|
name='poznamka',
|
||||||
|
field=models.TextField(default=b'', help_text='Neve\u0159ejn\xe1 pozn\xe1mka ke \u0161kole (plain text)', verbose_name='neve\u0159ejn\xe1 pozn\xe1mka', blank=True),
|
||||||
|
preserve_default=True,
|
||||||
|
),
|
||||||
|
migrations.AlterField(
|
||||||
|
model_name='soustredeni_ucastnici',
|
||||||
|
name='poznamka',
|
||||||
|
field=models.CharField(default=b'', help_text='Neve\u0159ejn\xe1 pozn\xe1mka k \xfa\u010dasti (plain text)', max_length=128, verbose_name='neve\u0159ejn\xe1 pozn\xe1mka', blank=True),
|
||||||
|
preserve_default=True,
|
||||||
|
),
|
||||||
|
]
|
|
@ -96,7 +96,7 @@ class Skola(SeminarModelBase):
|
||||||
je_zs = models.BooleanField(u'základní stupeň', default=True)
|
je_zs = models.BooleanField(u'základní stupeň', default=True)
|
||||||
je_ss = models.BooleanField(u'střední stupeň', default=True)
|
je_ss = models.BooleanField(u'střední stupeň', default=True)
|
||||||
|
|
||||||
poznamka = models.TextField(u'neveřejná poznámka', blank=True,
|
poznamka = models.TextField(u'neveřejná poznámka', blank=True, default='',
|
||||||
help_text=u'Neveřejná poznámka ke škole (plain text)')
|
help_text=u'Neveřejná poznámka ke škole (plain text)')
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
|
@ -170,7 +170,7 @@ class Resitel(SeminarModelBase):
|
||||||
stat = CountryField(u'stát', default='CZ',
|
stat = CountryField(u'stát', default='CZ',
|
||||||
help_text=u'ISO 3166-1 kód země velkými písmeny (CZ, SK, ...)')
|
help_text=u'ISO 3166-1 kód země velkými písmeny (CZ, SK, ...)')
|
||||||
|
|
||||||
poznamka = models.TextField(u'neveřejná poznámka', blank=True,
|
poznamka = models.TextField(u'neveřejná poznámka', blank=True, default='',
|
||||||
help_text=u'Neveřejná poznámka k řešiteli (plain text)')
|
help_text=u'Neveřejná poznámka k řešiteli (plain text)')
|
||||||
|
|
||||||
# Staré (do 2015) MAMOPER.MM_RIESITELIA.ID z DAKOS -- jen u importovaných záznamů
|
# Staré (do 2015) MAMOPER.MM_RIESITELIA.ID z DAKOS -- jen u importovaných záznamů
|
||||||
|
@ -256,6 +256,9 @@ class Cislo(SeminarModelBase):
|
||||||
|
|
||||||
verejne_db = models.BooleanField(u'číslo zveřejněno', db_column='verejne', default=False)
|
verejne_db = models.BooleanField(u'číslo zveřejněno', db_column='verejne', default=False)
|
||||||
|
|
||||||
|
poznamka = models.CharField(u'neveřejná poznámka', blank=True, max_length=128, default='',
|
||||||
|
help_text=u'Neveřejná poznámka k číslu (plain text)')
|
||||||
|
|
||||||
def kod(self):
|
def kod(self):
|
||||||
return u'%s.%s' % (self.rocnik.rocnik, self.cislo)
|
return u'%s.%s' % (self.rocnik.rocnik, self.cislo)
|
||||||
kod.short_description = u'Kód čísla'
|
kod.short_description = u'Kód čísla'
|
||||||
|
@ -327,7 +330,7 @@ class Problem(SeminarModelBase):
|
||||||
|
|
||||||
zamereni = TaggableManager(verbose_name=u'zaměření', help_text='Zaměření M/F/I/O problému, příp. další tagy', blank=True)
|
zamereni = TaggableManager(verbose_name=u'zaměření', help_text='Zaměření M/F/I/O problému, příp. další tagy', blank=True)
|
||||||
|
|
||||||
text_problemu_org = models.TextField(u'organizátorský (neveřejný) text', blank=True)
|
text_problemu_org = models.TextField(u'neveřejné zadání a organizátorské a poznámky', blank=True)
|
||||||
|
|
||||||
text_problemu = models.TextField(u'veřejný text zadání a řešení', blank=True)
|
text_problemu = models.TextField(u'veřejný text zadání a řešení', blank=True)
|
||||||
|
|
||||||
|
@ -354,7 +357,7 @@ class Problem(SeminarModelBase):
|
||||||
u'"DOZ:xxx" (MAMOPER.MM_DOZ), "ZAD:rocnik.cislo.uloha.typ" (MAMOPER.MM_ZADANIA), "ULOHA:xxx" (MAMOPER.MM_ULOHY)'))
|
u'"DOZ:xxx" (MAMOPER.MM_DOZ), "ZAD:rocnik.cislo.uloha.typ" (MAMOPER.MM_ZADANIA), "ULOHA:xxx" (MAMOPER.MM_ULOHY)'))
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return force_unicode(u'%s (%s)' % (self.nazev, self.stav))
|
return force_unicode(u'%s' % (self.nazev, ))
|
||||||
|
|
||||||
def kod_v_rocniku(self):
|
def kod_v_rocniku(self):
|
||||||
if self.typ == self.TYP_ULOHA:
|
if self.typ == self.TYP_ULOHA:
|
||||||
|
@ -404,8 +407,8 @@ class Reseni(SeminarModelBase):
|
||||||
]
|
]
|
||||||
forma = models.CharField(u'forma řešení', max_length=16, choices=FORMA_CHOICES, blank=False, default=FORMA_PAPIR)
|
forma = models.CharField(u'forma řešení', max_length=16, choices=FORMA_CHOICES, blank=False, default=FORMA_PAPIR)
|
||||||
|
|
||||||
poznamka = models.TextField(u'neveřejná poznámka', blank=True,
|
poznamka = models.CharField(u'neveřejná poznámka', blank=True, max_length=128, default='',
|
||||||
help_text=u'Neveřejná poznámka k řešení (plain text, editace v detailu řešení)')
|
help_text=u'Neveřejná poznámka k řešení (plain text)')
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return force_unicode(u"%s: %s (%sb)" % (self.resitel.plne_jmeno(), self.problem.nazev, self.body))
|
return force_unicode(u"%s: %s (%sb)" % (self.resitel.plne_jmeno(), self.problem.nazev, self.body))
|
||||||
|
@ -418,7 +421,7 @@ def generate_filename(self, filename):
|
||||||
fname = "%s_%s" % (
|
fname = "%s_%s" % (
|
||||||
timezone.now().strftime('%Y-%m-%d-%H:%M'),
|
timezone.now().strftime('%Y-%m-%d-%H:%M'),
|
||||||
clean)
|
clean)
|
||||||
return os.path.join(settings.SEMINAR_RESENI_DIRNAME, datedir, fname)
|
return os.path.join(settings.SEMINAR_RESENI_DIR, datedir, fname)
|
||||||
|
|
||||||
|
|
||||||
@reversion.register(ignore_duplicate_revisions=True)
|
@reversion.register(ignore_duplicate_revisions=True)
|
||||||
|
@ -440,7 +443,7 @@ class PrilohaReseni(SeminarModelBase):
|
||||||
|
|
||||||
soubor = models.FileField(u'soubor', upload_to = generate_filename)
|
soubor = models.FileField(u'soubor', upload_to = generate_filename)
|
||||||
|
|
||||||
poznamka = models.TextField(u'neveřejná poznámka', blank=True,
|
poznamka = models.CharField(u'neveřejná poznámka', blank=True, max_length=128, default='',
|
||||||
help_text=u'Neveřejná poznámka k příloze řešení (plain text), např. o původu')
|
help_text=u'Neveřejná poznámka k příloze řešení (plain text), např. o původu')
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
|
@ -474,10 +477,10 @@ class Soustredeni(SeminarModelBase):
|
||||||
help_text=u'Místo (název obce, volitelně též objektu')
|
help_text=u'Místo (název obce, volitelně též objektu')
|
||||||
|
|
||||||
ucastnici = models.ManyToManyField(Resitel, verbose_name=u'účastníci soustředění',
|
ucastnici = models.ManyToManyField(Resitel, verbose_name=u'účastníci soustředění',
|
||||||
help_text=u'Seznam účastníků soustředění', db_table='seminar_soustredeni_ucastnici')
|
help_text=u'Seznam účastníků soustředění', through='Soustredeni_Ucastnici')
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return force_unicode(u'%s (%s)' % (self.misto, self.datum_zacatek))
|
return force_unicode(u'%s (%s)' % (self.misto, self.datum_zacatku))
|
||||||
|
|
||||||
def verejne(self):
|
def verejne(self):
|
||||||
return self.verejne_db
|
return self.verejne_db
|
||||||
|
@ -487,6 +490,29 @@ class Soustredeni(SeminarModelBase):
|
||||||
return reverse('seminar_soustredeni', kwargs={'pk': self.id})
|
return reverse('seminar_soustredeni', kwargs={'pk': self.id})
|
||||||
|
|
||||||
|
|
||||||
|
@python_2_unicode_compatible
|
||||||
|
class Soustredeni_Ucastnici(models.Model):
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
db_table = 'seminar_soustredeni_ucastnici'
|
||||||
|
verbose_name = u'Účast na soustředění'
|
||||||
|
verbose_name_plural = u'Účasti na soustředění'
|
||||||
|
ordering = ['soustredeni', 'resitel']
|
||||||
|
|
||||||
|
# Interní ID
|
||||||
|
id = models.AutoField(primary_key = True)
|
||||||
|
|
||||||
|
resitel = models.ForeignKey(Resitel, verbose_name=u'řešitel')
|
||||||
|
|
||||||
|
soustredeni = models.ForeignKey(Soustredeni, verbose_name=u'soustředění')
|
||||||
|
|
||||||
|
poznamka = models.CharField(u'neveřejná poznámka', max_length=128, blank=True, default='',
|
||||||
|
help_text=u'Neveřejná poznámka k účasti (plain text)')
|
||||||
|
|
||||||
|
def __str__(self):
|
||||||
|
return force_unicode(u'%s na %s' % (self.resitel, self.soustredeni, ))
|
||||||
|
|
||||||
|
|
||||||
@python_2_unicode_compatible
|
@python_2_unicode_compatible
|
||||||
class VysledkyBase(SeminarModelBase):
|
class VysledkyBase(SeminarModelBase):
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue