Pridan model pro konfery.
This commit is contained in:
		
							parent
							
								
									bfa4f81310
								
							
						
					
					
						commit
						80bb6bd0b6
					
				
					 2 changed files with 146 additions and 64 deletions
				
			
		
							
								
								
									
										70
									
								
								seminar/migrations/0041_konfery.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								seminar/migrations/0041_konfery.py
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,70 @@ | ||||||
|  | # -*- coding: utf-8 -*- | ||||||
|  | from __future__ import unicode_literals | ||||||
|  | 
 | ||||||
|  | from django.db import migrations, models | ||||||
|  | import django.db.models.deletion | ||||||
|  | import seminar.models | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class Migration(migrations.Migration): | ||||||
|  | 
 | ||||||
|  |     dependencies = [ | ||||||
|  |         ('seminar', '0040_pohadka_nepovinny_autor'), | ||||||
|  |     ] | ||||||
|  | 
 | ||||||
|  |     operations = [ | ||||||
|  |         migrations.CreateModel( | ||||||
|  |             name='Konfera', | ||||||
|  |             fields=[ | ||||||
|  |                 ('id', models.AutoField(serialize=False, primary_key=True)), | ||||||
|  |                 ('nazev', models.CharField(help_text='N\xe1zev konfery', max_length=40, verbose_name='n\xe1zev konfery')), | ||||||
|  |                 ('popis', models.TextField(help_text='Popis konfery k zobrazen\xed na webu', verbose_name='popis konfery', blank=True)), | ||||||
|  |                 ('abstrakt', models.TextField(help_text='Abstrakt konfery tak, jak byl uveden ve sborn\xedku', verbose_name='abstrakt', blank=True)), | ||||||
|  |                 ('org_poznamka', models.TextField(help_text='Neve\u0159ejn\xe1 pozn\xe1mka ke konfe\u0159e(plain text)', verbose_name='neve\u0159ejn\xe1 pozn\xe1mka', blank=True)), | ||||||
|  |                 ('typ_prezentace', models.CharField(default=b'veletrh', max_length=16, verbose_name='typ prezentace', choices=[(b'veletrh', 'Veletrh (postery)'), (b'prezentace', 'Prezentace (p\u0159edn\xe1\u0161ka)')])), | ||||||
|  |                 ('prezentace', models.FileField(help_text='Prezentace nebo fotka posteru', upload_to=seminar.models.generate_filename_konfera, verbose_name='prezentace')), | ||||||
|  |                 ('materialy', models.FileField(help_text='Dal\u0161\xed materi\xe1ly ke konfe\u0159e zabalen\xe9 do jednoho souboru', upload_to=seminar.models.generate_filename_konfera, verbose_name='materialy')), | ||||||
|  |                 ('organizator', models.ForeignKey(related_name='konfery', on_delete=django.db.models.deletion.SET_NULL, verbose_name='organiz\xe1tor', to='seminar.Organizator', null=True)), | ||||||
|  |             ], | ||||||
|  |             options={ | ||||||
|  |                 'db_table': 'seminar_konfera', | ||||||
|  |                 'verbose_name': 'Konfera', | ||||||
|  |                 'verbose_name_plural': 'Konfery', | ||||||
|  |             }, | ||||||
|  |         ), | ||||||
|  |         migrations.CreateModel( | ||||||
|  |             name='Konfery_Ucastnici', | ||||||
|  |             fields=[ | ||||||
|  |                 ('id', models.AutoField(serialize=False, primary_key=True)), | ||||||
|  |                 ('poznamka', models.TextField(help_text='Neve\u0159ejn\xe1 pozn\xe1mka k \xfa\u010dasti (plain text)', verbose_name='neve\u0159ejn\xe1 pozn\xe1mka', blank=True)), | ||||||
|  |                 ('konfera', models.ForeignKey(verbose_name='konfera', to='seminar.Konfera')), | ||||||
|  |                 ('resitel', models.ForeignKey(verbose_name='\u0159e\u0161itel', to='seminar.Resitel')), | ||||||
|  |             ], | ||||||
|  |             options={ | ||||||
|  |                 'ordering': ['konfera', 'resitel'], | ||||||
|  |                 'db_table': 'seminar_konfery_ucastnici', | ||||||
|  |                 'verbose_name': '\xda\u010dast na konfe\u0159e', | ||||||
|  |                 'verbose_name_plural': '\xda\u010dasti na konfe\u0159e', | ||||||
|  |             }, | ||||||
|  |         ), | ||||||
|  |         migrations.AlterField( | ||||||
|  |             model_name='problem', | ||||||
|  |             name='typ', | ||||||
|  |             field=models.CharField(default=b'uloha', max_length=32, verbose_name='typ probl\xe9mu', choices=[(b'uloha', '\xdaloha'), (b'tema', 'T\xe9ma'), (b'serial', 'Seri\xe1l'), (b'konfera', 'Konfera'), (b'org-clanek', 'Organiz\xe1torsk\xfd \u010dl\xe1nek'), (b'res-clanek', '\u0158e\u0161itelsk\xfd \u010dl\xe1nek')]), | ||||||
|  |         ), | ||||||
|  |         migrations.AddField( | ||||||
|  |             model_name='konfera', | ||||||
|  |             name='prispevek', | ||||||
|  |             field=models.ForeignKey(related_name='konfery', on_delete=django.db.models.deletion.SET_NULL, verbose_name='p\u0159\xedsp\u011bvek do \u010d\xedsla', to='seminar.Problem', help_text='\xda\u010dastnick\xfd p\u0159\xedp\u011bvek o konfe\u0159e', null=True), | ||||||
|  |         ), | ||||||
|  |         migrations.AddField( | ||||||
|  |             model_name='konfera', | ||||||
|  |             name='soustredeni', | ||||||
|  |             field=models.ForeignKey(related_name='konfery', on_delete=django.db.models.deletion.SET_NULL, verbose_name='soust\u0159ed\u011bn\xed', to='seminar.Soustredeni', null=True), | ||||||
|  |         ), | ||||||
|  |         migrations.AddField( | ||||||
|  |             model_name='konfera', | ||||||
|  |             name='ucastnici', | ||||||
|  |             field=models.ManyToManyField(help_text='Seznam \xfa\u010dastn\xedk\u016f konfery', to='seminar.Resitel', verbose_name='\xfa\u010dastn\xedci konfery', through='seminar.Konfery_Ucastnici'), | ||||||
|  |         ), | ||||||
|  |     ] | ||||||
|  | @ -16,7 +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 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 | ||||||
| 
 | 
 | ||||||
|  | @ -402,12 +402,14 @@ class Problem(SeminarModelBase): | ||||||
|     TYP_ULOHA = 'uloha' |     TYP_ULOHA = 'uloha' | ||||||
|     TYP_TEMA = 'tema' |     TYP_TEMA = 'tema' | ||||||
|     TYP_SERIAL = 'serial' |     TYP_SERIAL = 'serial' | ||||||
|  |     TYP_KONFERA = 'konfera' | ||||||
|     TYP_ORG_CLANEK = 'org-clanek' |     TYP_ORG_CLANEK = 'org-clanek' | ||||||
|     TYP_RES_CLANEK = 'res-clanek' |     TYP_RES_CLANEK = 'res-clanek' | ||||||
|     TYP_CHOICES = [ |     TYP_CHOICES = [ | ||||||
|         (TYP_ULOHA, u'Úloha'), |         (TYP_ULOHA, u'Úloha'), | ||||||
|         (TYP_TEMA, u'Téma'), |         (TYP_TEMA, u'Téma'), | ||||||
|         (TYP_SERIAL, u'Seriál'), |         (TYP_SERIAL, u'Seriál'), | ||||||
|  |         (TYP_KONFERA, u'Konfera'), | ||||||
|         (TYP_ORG_CLANEK, u'Organizátorský článek'), |         (TYP_ORG_CLANEK, u'Organizátorský článek'), | ||||||
|         (TYP_RES_CLANEK, u'Řešitelský článek'), |         (TYP_RES_CLANEK, u'Řešitelský článek'), | ||||||
|         ] |         ] | ||||||
|  | @ -547,6 +549,7 @@ class Reseni(SeminarModelBase): | ||||||
| # PrilohaReseni method | # PrilohaReseni method | ||||||
| # TODO vyresit partial, tak aby slo migrovat | # TODO vyresit partial, tak aby slo migrovat | ||||||
| #def generate_filename(self, filename, directory): | #def generate_filename(self, filename, directory): | ||||||
|  | # Django 1.9 podporuje partial | ||||||
| def generate_filename(self, filename): | 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') | ||||||
|  | @ -554,10 +557,18 @@ def generate_filename(self, filename): | ||||||
|         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(settings.SEMINAR_RESENI_DIR, datedir, fname) | ||||||
|  | def generate_filename_konfera(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(settings.SEMINAR_KONFERY_DIR, datedir, fname) | ||||||
| # TODO vyresit partial tak, aby slo migrovat | # TODO vyresit partial tak, aby slo migrovat | ||||||
| #    return os.path.join(directory, datedir, fname) | #    return os.path.join(directory, datedir, fname) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
| @reversion.register(ignore_duplicate_revisions=True) | @reversion.register(ignore_duplicate_revisions=True) | ||||||
| @python_2_unicode_compatible | @python_2_unicode_compatible | ||||||
| class PrilohaReseni(SeminarModelBase): | class PrilohaReseni(SeminarModelBase): | ||||||
|  | @ -811,69 +822,70 @@ 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 = models.ForeignKey(Problem, verbose_name=u'příspěvek do čísla', related_name='konfery', | ||||||
| #    TYP_VELETRH = 'veletrh' |         help_text=u'Účastnický přípěvek o konfeře',on_delete = models.SET_NULL, null=True) | ||||||
| #    TYP_PREZENTACE = 'prezentace' |     TYP_VELETRH = 'veletrh' | ||||||
| #    TYP_CHOICES = [ |     TYP_PREZENTACE = 'prezentace' | ||||||
| #        (TYP_VELETRH, u'Veletrh (postery)'), |     TYP_CHOICES = [ | ||||||
| #        (TYP_PREZENTACE, u'Prezentace (přednáška)'), |         (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',  |     typ_prezentace = models.CharField(u'typ prezentace', max_length=16, choices=TYP_CHOICES, blank=False, default=TYP_VELETRH) | ||||||
| #            upload_to = partial(generate_filename,directory=settings.SEMINAR_KONFERY_DIR)) |     prezentace = models.FileField(u'prezentace',help_text = u'Prezentace nebo fotka posteru',  | ||||||
| #    materialy = models.FileField(u'materialy',help_text = u'Další materiály ke konfeře zabalené do jednoho souboru',  |             upload_to = generate_filename_konfera) | ||||||
| #            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 = generate_filename_konfera) | ||||||
| #    def __str__(self): | 
 | ||||||
| #        return force_unicode(u"%s: (%s)" % (self.nazev, self.soustredeni)) |     def __str__(self): | ||||||
| # |         return force_unicode(u"%s: (%s)" % (self.nazev, self.soustredeni)) | ||||||
| # | 
 | ||||||
| # | 
 | ||||||
| #@reversion.register(ignore_duplicate_revisions=True) | 
 | ||||||
| #@python_2_unicode_compatible | @reversion.register(ignore_duplicate_revisions=True) | ||||||
| #class Konfery_Ucastnici(models.Model): | @python_2_unicode_compatible | ||||||
| # | class Konfery_Ucastnici(models.Model): | ||||||
| #    class Meta: | 
 | ||||||
| #        db_table = 'seminar_konfery_ucastnici' |     class Meta: | ||||||
| #        verbose_name = u'Účast na konfeře' |         db_table = 'seminar_konfery_ucastnici' | ||||||
| #        verbose_name_plural = u'Účasti na konfeře' |         verbose_name = u'Účast na konfeře' | ||||||
| #        ordering = ['konfera', 'resitel'] |         verbose_name_plural = u'Účasti na konfeře' | ||||||
| # |         ordering = ['konfera', 'resitel'] | ||||||
| #    # Interní ID | 
 | ||||||
| #    id = models.AutoField(primary_key = True) |     # Interní ID | ||||||
| # |     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, | 
 | ||||||
| #        help_text=u'Neveřejná poznámka k účasti (plain text)') |     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, )) |     def __str__(self): | ||||||
| #        # NOTE: Poteciální DB HOG bez select_related |         return force_unicode(u'%s na %s' % (self.resitel, self.konfera, )) | ||||||
|  |         # NOTE: Poteciální DB HOG bez select_related | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @python_2_unicode_compatible | @python_2_unicode_compatible | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue