Rozpracovany model konfer + parcialni generovatko nazvu.
This commit is contained in:
		
							parent
							
								
									8102c1e256
								
							
						
					
					
						commit
						ac2d42e7ec
					
				
					 2 changed files with 46 additions and 3 deletions
				
			
		|  | @ -240,5 +240,6 @@ LOGGING = { | ||||||
| # MaM specific | # MaM specific | ||||||
| 
 | 
 | ||||||
| SEMINAR_RESENI_DIR = os.path.join(BASE_DIR, 'media', 'reseni') | 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_PDF_DIR = os.path.join(BASE_DIR, 'media', 'korektury','pdf') | ||||||
| KOREKTURY_IMG_DIR = os.path.join(BASE_DIR, 'media', 'korektury','img') | KOREKTURY_IMG_DIR = os.path.join(BASE_DIR, 'media', 'korektury','img') | ||||||
|  |  | ||||||
|  | @ -16,6 +16,7 @@ from imagekit.processors import ResizeToFit, Transpose | ||||||
| 
 | 
 | ||||||
| from PIL import Image | from PIL import Image | ||||||
| import os | import os | ||||||
|  | from functools import partial | ||||||
| from cStringIO import StringIO | from cStringIO import StringIO | ||||||
| from django.core.files.base import ContentFile | from django.core.files.base import ContentFile | ||||||
| 
 | 
 | ||||||
|  | @ -544,13 +545,13 @@ class Reseni(SeminarModelBase): | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| # PrilohaReseni method | # PrilohaReseni method | ||||||
| def generate_filename(self, filename): | def generate_filename(self, filename, directory): | ||||||
|     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(settings.SEMINAR_RESENI_DIR, datedir, fname) |     return os.path.join(directory, datedir, fname) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @reversion.register(ignore_duplicate_revisions=True) | @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) |     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, |     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') | ||||||
|  | @ -734,6 +735,47 @@ class Soustredeni_Organizatori(models.Model): | ||||||
|         # NOTE: Poteciální DB HOG bez select_related |         # 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 | @python_2_unicode_compatible | ||||||
| class VysledkyBase(SeminarModelBase): | class VysledkyBase(SeminarModelBase): | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue