seminar | pridan prispevek k tematum + uprava neprovedenych migraci
Pridan prispevek k tematum. Docasne jsem se vratil zpet od reseni s partial, protoze me nefunguji migrace, tvari se to jakoze to neni serializovatelne. Zakomentovany model konfery, protoze k nemu chybi migrace.
This commit is contained in:
parent
07d79b0cc5
commit
0b56226c5f
2 changed files with 110 additions and 66 deletions
29
seminar/migrations/0037_prispevek.py
Normal file
29
seminar/migrations/0037_prispevek.py
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('seminar', '0036_add_org_to_soustredeni'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.CreateModel(
|
||||||
|
name='Prispevek',
|
||||||
|
fields=[
|
||||||
|
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
||||||
|
('nazev', models.CharField(max_length=200, verbose_name=b'N\xc3\xa1zev')),
|
||||||
|
('text_org', models.TextField(null=True, verbose_name=b'Orgovsk\xc3\xbd text', blank=True)),
|
||||||
|
('text_resitel', models.TextField(null=True, verbose_name=b'\xc5\x98e\xc5\xa1itelsk\xc3\xbd text', blank=True)),
|
||||||
|
('zverejnit', models.BooleanField(verbose_name=b'Zve\xc5\x99ejnit?')),
|
||||||
|
('problem', models.ForeignKey(verbose_name=b'Probl\xc3\xa9m', to='seminar.Problem')),
|
||||||
|
('reseni', models.OneToOneField(null=True, blank=True, to='seminar.Reseni', verbose_name=b'\xc5\x98e\xc5\xa1en\xc3\xad')),
|
||||||
|
],
|
||||||
|
options={
|
||||||
|
'abstract': False,
|
||||||
|
},
|
||||||
|
),
|
||||||
|
]
|
|
@ -545,13 +545,17 @@ class Reseni(SeminarModelBase):
|
||||||
|
|
||||||
|
|
||||||
# PrilohaReseni method
|
# PrilohaReseni method
|
||||||
def generate_filename(self, filename, directory):
|
# TODO vyresit partial, tak aby slo migrovat
|
||||||
|
#def generate_filename(self, filename, directory):
|
||||||
|
def generate_filename(self, filename):
|
||||||
clean = filename.replace('/','-').replace('\0', '')
|
clean = filename.replace('/','-').replace('\0', '')
|
||||||
datedir = timezone.now().strftime('%Y-%m')
|
datedir = timezone.now().strftime('%Y-%m')
|
||||||
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(directory, datedir, fname)
|
return os.path.join(settings.SEMINAR_RESENI_DIR, datedir, fname)
|
||||||
|
# TODO vyresit partial tak, aby slo migrovat
|
||||||
|
# return os.path.join(directory, datedir, fname)
|
||||||
|
|
||||||
|
|
||||||
@reversion.register(ignore_duplicate_revisions=True)
|
@reversion.register(ignore_duplicate_revisions=True)
|
||||||
|
@ -571,7 +575,9 @@ class PrilohaReseni(SeminarModelBase):
|
||||||
|
|
||||||
timestamp = models.DateTimeField(u'vytvořeno', default=timezone.now, blank=True, editable=False)
|
timestamp = models.DateTimeField(u'vytvořeno', default=timezone.now, blank=True, editable=False)
|
||||||
|
|
||||||
soubor = models.FileField(u'soubor', upload_to = partial(generate_filename,directory=settings.SEMINAR_RESENI_DIR))
|
#soubor = models.FileField(u'soubor', upload_to = partial(generate_filename,directory=settings.SEMINAR_RESENI_DIR)))
|
||||||
|
# TODO vyresit partial tak, aby slo migrovat
|
||||||
|
soubor = models.FileField(u'soubor', upload_to = generate_filename)
|
||||||
|
|
||||||
poznamka = models.TextField(u'neveřejná poznámka', blank=True,
|
poznamka = models.TextField(u'neveřejná poznámka', blank=True,
|
||||||
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')
|
||||||
|
@ -579,6 +585,15 @@ class PrilohaReseni(SeminarModelBase):
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return force_unicode(self.soubor)
|
return force_unicode(self.soubor)
|
||||||
|
|
||||||
|
@reversion.register(ignore_duplicate_revisions=True)
|
||||||
|
class Prispevek(SeminarModelBase):
|
||||||
|
problem = models.ForeignKey(Problem, verbose_name='Problém') # TODO autokompleet
|
||||||
|
nazev = models.CharField('Název', max_length=200)
|
||||||
|
reseni = models.OneToOneField(Reseni, verbose_name='Řešení',
|
||||||
|
blank = True, null = True)
|
||||||
|
text_org = models.TextField('Orgovský text', blank = True, null = True)
|
||||||
|
text_resitel = models.TextField('Řešitelský text', blank = True, null = True)
|
||||||
|
zverejnit = models.BooleanField('Zveřejnit?')
|
||||||
|
|
||||||
@reversion.register(ignore_duplicate_revisions=True)
|
@reversion.register(ignore_duplicate_revisions=True)
|
||||||
@python_2_unicode_compatible
|
@python_2_unicode_compatible
|
||||||
|
@ -736,69 +751,69 @@ class Soustredeni_Organizatori(models.Model):
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@reversion.register(ignore_duplicate_revisions=True)
|
#@reversion.register(ignore_duplicate_revisions=True)
|
||||||
@python_2_unicode_compatible
|
#@python_2_unicode_compatible
|
||||||
class Konfera(models.Model):
|
#class Konfera(models.Model):
|
||||||
class Meta:
|
# class Meta:
|
||||||
db_table = 'seminar_konfera'
|
# db_table = 'seminar_konfera'
|
||||||
verbose_name = u'Konfera'
|
# verbose_name = u'Konfera'
|
||||||
verbose_name_plural = u'Konfery'
|
# verbose_name_plural = u'Konfery'
|
||||||
# Interní ID
|
# # Interní ID
|
||||||
id = models.AutoField(primary_key = True)
|
# id = models.AutoField(primary_key = True)
|
||||||
nazev = models.CharField(u'název konfery', max_length=40, help_text = u'Název konfery')
|
# nazev = models.CharField(u'název konfery', max_length=40, help_text = u'Název konfery')
|
||||||
popis = models.TextField(u'popis konfery', blank=True,
|
# popis = models.TextField(u'popis konfery', blank=True,
|
||||||
help_text=u'Popis konfery k zobrazení na webu')
|
# help_text=u'Popis konfery k zobrazení na webu')
|
||||||
abstrakt = models.TextField(u'abstrakt', blank=True,
|
# abstrakt = models.TextField(u'abstrakt', blank=True,
|
||||||
help_text=u'Abstrakt konfery tak, jak byl uveden ve sborníku')
|
# help_text=u'Abstrakt konfery tak, jak byl uveden ve sborníku')
|
||||||
organizator = models.ForeignKey(Organizator, verbose_name=u'organizátor', related_name='konfery',
|
# organizator = models.ForeignKey(Organizator, verbose_name=u'organizátor', related_name='konfery',
|
||||||
on_delete = models.SET_NULL, null=True)
|
# on_delete = models.SET_NULL, null=True)
|
||||||
ucastnici = models.ManyToManyField(Resitel, verbose_name=u'účastníci konfery',
|
# ucastnici = models.ManyToManyField(Resitel, verbose_name=u'účastníci konfery',
|
||||||
help_text=u'Seznam účastníků konfery', through='Konfery_Ucastnici')
|
# help_text=u'Seznam účastníků konfery', through='Konfery_Ucastnici')
|
||||||
soustredeni = models.ForeignKey(Soustredeni, verbose_name=u'soustředění', related_name='konfery',
|
# soustredeni = models.ForeignKey(Soustredeni, verbose_name=u'soustředění', related_name='konfery',
|
||||||
on_delete = models.SET_NULL, null=True)
|
# on_delete = models.SET_NULL, null=True)
|
||||||
org_poznamka = models.TextField(u'neveřejná poznámka', blank=True,
|
# org_poznamka = models.TextField(u'neveřejná poznámka', blank=True,
|
||||||
help_text=u'Neveřejná poznámka ke konfeře(plain text)')
|
# help_text=u'Neveřejná poznámka ke konfeře(plain text)')
|
||||||
#prispevek #TODO
|
# #prispevek #TODO
|
||||||
TYP_VELETRH = 'veletrh'
|
# TYP_VELETRH = 'veletrh'
|
||||||
TYP_PREZENTACE = 'prezentace'
|
# TYP_PREZENTACE = 'prezentace'
|
||||||
TYP_CHOICES = [
|
# TYP_CHOICES = [
|
||||||
(TYP_VELETRH, u'Veletrh (postery)'),
|
# (TYP_VELETRH, u'Veletrh (postery)'),
|
||||||
(TYP_PREZENTACE, u'Prezentace (přednáška)'),
|
# (TYP_PREZENTACE, u'Prezentace (přednáška)'),
|
||||||
]
|
# ]
|
||||||
typ_prezentace = models.CharField(u'typ prezentace', max_length=16, choices=TYP_CHOICES, blank=False, default=TYP_VELETRH)
|
# typ_prezentace = models.CharField(u'typ prezentace', max_length=16, choices=TYP_CHOICES, blank=False, default=TYP_VELETRH)
|
||||||
prezentace = models.FileField(u'prezentace',help_text = u'Prezentace nebo fotka posteru',
|
# prezentace = models.FileField(u'prezentace',help_text = u'Prezentace nebo fotka posteru',
|
||||||
upload_to = partial(generate_filename,directory=settings.SEMINAR_KONFERY_DIR))
|
# upload_to = partial(generate_filename,directory=settings.SEMINAR_KONFERY_DIR))
|
||||||
materialy = models.FileField(u'materialy',help_text = u'Další materiály ke konfeře zabalené do jednoho souboru',
|
# materialy = models.FileField(u'materialy',help_text = u'Další materiály ke konfeře zabalené do jednoho souboru',
|
||||||
upload_to = partial(generate_filename,directory=settings.SEMINAR_KONFERY_DIR))
|
# upload_to = partial(generate_filename,directory=settings.SEMINAR_KONFERY_DIR))
|
||||||
|
#
|
||||||
def __str__(self):
|
# def __str__(self):
|
||||||
return force_unicode(u"%s: (%s)" % (self.nazev, self.soustredeni))
|
# return force_unicode(u"%s: (%s)" % (self.nazev, self.soustredeni))
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#
|
||||||
@reversion.register(ignore_duplicate_revisions=True)
|
#@reversion.register(ignore_duplicate_revisions=True)
|
||||||
@python_2_unicode_compatible
|
#@python_2_unicode_compatible
|
||||||
class Konfery_Ucastnici(models.Model):
|
#class Konfery_Ucastnici(models.Model):
|
||||||
|
#
|
||||||
class Meta:
|
# class Meta:
|
||||||
db_table = 'seminar_konfery_ucastnici'
|
# db_table = 'seminar_konfery_ucastnici'
|
||||||
verbose_name = u'Účast na konfeře'
|
# verbose_name = u'Účast na konfeře'
|
||||||
verbose_name_plural = u'Účasti na konfeře'
|
# verbose_name_plural = u'Účasti na konfeře'
|
||||||
ordering = ['konfera', 'resitel']
|
# ordering = ['konfera', 'resitel']
|
||||||
|
#
|
||||||
# Interní ID
|
# # Interní ID
|
||||||
id = models.AutoField(primary_key = True)
|
# id = models.AutoField(primary_key = True)
|
||||||
|
#
|
||||||
resitel = models.ForeignKey(Resitel, verbose_name=u'řešitel')
|
# resitel = models.ForeignKey(Resitel, verbose_name=u'řešitel')
|
||||||
|
#
|
||||||
konfera = models.ForeignKey(Konfera, verbose_name=u'konfera')
|
# konfera = models.ForeignKey(Konfera, verbose_name=u'konfera')
|
||||||
|
#
|
||||||
poznamka = models.TextField(u'neveřejná poznámka', blank=True,
|
# poznamka = models.TextField(u'neveřejná poznámka', blank=True,
|
||||||
help_text=u'Neveřejná poznámka k účasti (plain text)')
|
# help_text=u'Neveřejná poznámka k účasti (plain text)')
|
||||||
|
#
|
||||||
def __str__(self):
|
# def __str__(self):
|
||||||
return force_unicode(u'%s na %s' % (self.resitel, self.konfera, ))
|
# return force_unicode(u'%s na %s' % (self.resitel, self.konfera, ))
|
||||||
# NOTE: Poteciální DB HOG bez select_related
|
# # NOTE: Poteciální DB HOG bez select_related
|
||||||
|
|
||||||
|
|
||||||
@python_2_unicode_compatible
|
@python_2_unicode_compatible
|
||||||
|
|
Loading…
Reference in a new issue