From ac2d42e7ec4cc2161f9e771b9aff7e3bb95e237a Mon Sep 17 00:00:00 2001 From: Tomas 'Jethro' Pokorny Date: Fri, 8 Jan 2016 13:01:03 +0100 Subject: [PATCH] Rozpracovany model konfer + parcialni generovatko nazvu. --- mamweb/settings_common.py | 1 + seminar/models.py | 48 ++++++++++++++++++++++++++++++++++++--- 2 files changed, 46 insertions(+), 3 deletions(-) diff --git a/mamweb/settings_common.py b/mamweb/settings_common.py index d3eaabb5..81850341 100644 --- a/mamweb/settings_common.py +++ b/mamweb/settings_common.py @@ -240,5 +240,6 @@ LOGGING = { # MaM specific SEMINAR_RESENI_DIR = os.path.join(BASE_DIR, 'media', 'reseni') +SEMINAR_KONFERY_DIR = os.path.join(BASE_DIR, 'media', 'konfery') KOREKTURY_PDF_DIR = os.path.join(BASE_DIR, 'media', 'korektury','pdf') KOREKTURY_IMG_DIR = os.path.join(BASE_DIR, 'media', 'korektury','img') diff --git a/seminar/models.py b/seminar/models.py index d54a5868..fe54f967 100644 --- a/seminar/models.py +++ b/seminar/models.py @@ -16,6 +16,7 @@ from imagekit.processors import ResizeToFit, Transpose from PIL import Image import os +from functools import partial from cStringIO import StringIO from django.core.files.base import ContentFile @@ -544,13 +545,13 @@ class Reseni(SeminarModelBase): # PrilohaReseni method -def generate_filename(self, filename): +def generate_filename(self, filename, directory): 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(settings.SEMINAR_RESENI_DIR, datedir, fname) + return os.path.join(directory, datedir, fname) @reversion.register(ignore_duplicate_revisions=True) @@ -570,7 +571,7 @@ class PrilohaReseni(SeminarModelBase): timestamp = models.DateTimeField(u'vytvořeno', default=timezone.now, blank=True, editable=False) - soubor = models.FileField(u'soubor', upload_to = generate_filename) + soubor = models.FileField(u'soubor', upload_to = partial(generate_filename,directory=settings.SEMINAR_RESENI_DIR)) 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') @@ -734,6 +735,47 @@ class Soustredeni_Organizatori(models.Model): # 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 #TODO + 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)) + + + + + @python_2_unicode_compatible class VysledkyBase(SeminarModelBase):