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
|
||||
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', '')
|
||||
datedir = timezone.now().strftime('%Y-%m')
|
||||
fname = "%s_%s" % (
|
||||
timezone.now().strftime('%Y-%m-%d-%H:%M'),
|
||||
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)
|
||||
|
@ -571,7 +575,9 @@ class PrilohaReseni(SeminarModelBase):
|
|||
|
||||
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,
|
||||
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):
|
||||
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)
|
||||
@python_2_unicode_compatible
|
||||
|
@ -736,69 +751,69 @@ class Soustredeni_Organizatori(models.Model):
|
|||
|
||||
|
||||
|
||||
@reversion.register(ignore_duplicate_revisions=True)
|
||||
@python_2_unicode_compatible
|
||||
class Konfera(models.Model):
|
||||
class Meta:
|
||||
db_table = 'seminar_konfera'
|
||||
verbose_name = u'Konfera'
|
||||
verbose_name_plural = u'Konfery'
|
||||
# Interní ID
|
||||
id = models.AutoField(primary_key = True)
|
||||
nazev = models.CharField(u'název konfery', max_length=40, help_text = u'Název konfery')
|
||||
popis = models.TextField(u'popis konfery', blank=True,
|
||||
help_text=u'Popis konfery k zobrazení na webu')
|
||||
abstrakt = models.TextField(u'abstrakt', blank=True,
|
||||
help_text=u'Abstrakt konfery tak, jak byl uveden ve sborníku')
|
||||
organizator = models.ForeignKey(Organizator, verbose_name=u'organizátor', related_name='konfery',
|
||||
on_delete = models.SET_NULL, null=True)
|
||||
ucastnici = models.ManyToManyField(Resitel, verbose_name=u'účastníci konfery',
|
||||
help_text=u'Seznam účastníků konfery', through='Konfery_Ucastnici')
|
||||
soustredeni = models.ForeignKey(Soustredeni, verbose_name=u'soustředění', related_name='konfery',
|
||||
on_delete = models.SET_NULL, null=True)
|
||||
org_poznamka = models.TextField(u'neveřejná poznámka', blank=True,
|
||||
help_text=u'Neveřejná poznámka ke konfeře(plain text)')
|
||||
#prispevek #TODO
|
||||
TYP_VELETRH = 'veletrh'
|
||||
TYP_PREZENTACE = 'prezentace'
|
||||
TYP_CHOICES = [
|
||||
(TYP_VELETRH, u'Veletrh (postery)'),
|
||||
(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)
|
||||
prezentace = models.FileField(u'prezentace',help_text = u'Prezentace nebo fotka posteru',
|
||||
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',
|
||||
upload_to = partial(generate_filename,directory=settings.SEMINAR_KONFERY_DIR))
|
||||
|
||||
def __str__(self):
|
||||
return force_unicode(u"%s: (%s)" % (self.nazev, self.soustredeni))
|
||||
|
||||
|
||||
|
||||
@reversion.register(ignore_duplicate_revisions=True)
|
||||
@python_2_unicode_compatible
|
||||
class Konfery_Ucastnici(models.Model):
|
||||
|
||||
class Meta:
|
||||
db_table = 'seminar_konfery_ucastnici'
|
||||
verbose_name = u'Účast na konfeře'
|
||||
verbose_name_plural = u'Účasti na konfeře'
|
||||
ordering = ['konfera', 'resitel']
|
||||
|
||||
# Interní ID
|
||||
id = models.AutoField(primary_key = True)
|
||||
|
||||
resitel = models.ForeignKey(Resitel, verbose_name=u'řešitel')
|
||||
|
||||
konfera = models.ForeignKey(Konfera, verbose_name=u'konfera')
|
||||
|
||||
poznamka = models.TextField(u'neveřejná poznámka', blank=True,
|
||||
help_text=u'Neveřejná poznámka k účasti (plain text)')
|
||||
|
||||
def __str__(self):
|
||||
return force_unicode(u'%s na %s' % (self.resitel, self.konfera, ))
|
||||
# NOTE: Poteciální DB HOG bez select_related
|
||||
#@reversion.register(ignore_duplicate_revisions=True)
|
||||
#@python_2_unicode_compatible
|
||||
#class Konfera(models.Model):
|
||||
# class Meta:
|
||||
# db_table = 'seminar_konfera'
|
||||
# verbose_name = u'Konfera'
|
||||
# verbose_name_plural = u'Konfery'
|
||||
# # Interní ID
|
||||
# id = models.AutoField(primary_key = True)
|
||||
# nazev = models.CharField(u'název konfery', max_length=40, help_text = u'Název konfery')
|
||||
# popis = models.TextField(u'popis konfery', blank=True,
|
||||
# help_text=u'Popis konfery k zobrazení na webu')
|
||||
# abstrakt = models.TextField(u'abstrakt', blank=True,
|
||||
# help_text=u'Abstrakt konfery tak, jak byl uveden ve sborníku')
|
||||
# organizator = models.ForeignKey(Organizator, verbose_name=u'organizátor', related_name='konfery',
|
||||
# on_delete = models.SET_NULL, null=True)
|
||||
# ucastnici = models.ManyToManyField(Resitel, verbose_name=u'účastníci konfery',
|
||||
# help_text=u'Seznam účastníků konfery', through='Konfery_Ucastnici')
|
||||
# soustredeni = models.ForeignKey(Soustredeni, verbose_name=u'soustředění', related_name='konfery',
|
||||
# on_delete = models.SET_NULL, null=True)
|
||||
# org_poznamka = models.TextField(u'neveřejná poznámka', blank=True,
|
||||
# help_text=u'Neveřejná poznámka ke konfeře(plain text)')
|
||||
# #prispevek #TODO
|
||||
# TYP_VELETRH = 'veletrh'
|
||||
# TYP_PREZENTACE = 'prezentace'
|
||||
# TYP_CHOICES = [
|
||||
# (TYP_VELETRH, u'Veletrh (postery)'),
|
||||
# (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)
|
||||
# prezentace = models.FileField(u'prezentace',help_text = u'Prezentace nebo fotka posteru',
|
||||
# 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',
|
||||
# upload_to = partial(generate_filename,directory=settings.SEMINAR_KONFERY_DIR))
|
||||
#
|
||||
# def __str__(self):
|
||||
# return force_unicode(u"%s: (%s)" % (self.nazev, self.soustredeni))
|
||||
#
|
||||
#
|
||||
#
|
||||
#@reversion.register(ignore_duplicate_revisions=True)
|
||||
#@python_2_unicode_compatible
|
||||
#class Konfery_Ucastnici(models.Model):
|
||||
#
|
||||
# class Meta:
|
||||
# db_table = 'seminar_konfery_ucastnici'
|
||||
# verbose_name = u'Účast na konfeře'
|
||||
# verbose_name_plural = u'Účasti na konfeře'
|
||||
# ordering = ['konfera', 'resitel']
|
||||
#
|
||||
# # Interní ID
|
||||
# id = models.AutoField(primary_key = True)
|
||||
#
|
||||
# resitel = models.ForeignKey(Resitel, verbose_name=u'řešitel')
|
||||
#
|
||||
# konfera = models.ForeignKey(Konfera, verbose_name=u'konfera')
|
||||
#
|
||||
# poznamka = models.TextField(u'neveřejná poznámka', blank=True,
|
||||
# help_text=u'Neveřejná poznámka k účasti (plain text)')
|
||||
#
|
||||
# def __str__(self):
|
||||
# return force_unicode(u'%s na %s' % (self.resitel, self.konfera, ))
|
||||
# # NOTE: Poteciální DB HOG bez select_related
|
||||
|
||||
|
||||
@python_2_unicode_compatible
|
||||
|
|
Loading…
Reference in a new issue