@ -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