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
	
	 Bc. Petr Pecha
						Bc. Petr Pecha