|
@ -31,36 +31,54 @@ def obrazek_filename_velky(): |
|
|
def obrazek_filename(self, filename): |
|
|
def obrazek_filename(self, filename): |
|
|
gal = self.galerie |
|
|
gal = self.galerie |
|
|
cislo_gal = force_unicode(gal.pk) |
|
|
cislo_gal = force_unicode(gal.pk) |
|
|
cesta = "" |
|
|
|
|
|
while(not gal.soustredeni): |
|
|
# najdi kořenovou galerii |
|
|
|
|
|
while (gal.galerie_up): |
|
|
gal = gal.galerie_up |
|
|
gal = gal.galerie_up |
|
|
return os.path.join('Galerie', "soustredeni_" + force_unicode(gal.soustredeni.pk), "galerie_" + cislo_gal, "velky", force_unicode(self.nazev)) |
|
|
|
|
|
|
|
|
# soustředění je v cestě jen pokud galerie pod nějaké patří |
|
|
|
|
|
cesta = ( |
|
|
|
|
|
['Galerie'] + |
|
|
|
|
|
(["soustredeni_" + force_unicode(gal.soustredeni.pk)] if gal.soustredeni else []) + |
|
|
|
|
|
["galerie_" + cislo_gal, force_unicode(self.nazev)] |
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
return os.path.join(*cesta) |
|
|
|
|
|
|
|
|
class Obrazek(models.Model): |
|
|
class Obrazek(models.Model): |
|
|
obrazek_velky = models.ImageField(upload_to=obrazek_filename, |
|
|
obrazek_velky = models.ImageField(upload_to=obrazek_filename, |
|
|
help_text = "Lze vložit libovolně velký obrázek. Ideální je, aby alespoň jeden rozměr měl alespoň 500px.") |
|
|
help_text = "Lze vložit libovolně velký obrázek. Ideální je, aby alespoň jeden rozměr měl alespoň 500px.") |
|
|
obrazek_stredni = ImageSpecField(source='obrazek_velky', |
|
|
obrazek_stredni = ImageSpecField(source='obrazek_velky', |
|
|
processors=[Transpose(Transpose.AUTO), ResizeToFit(900, 675, upscale=False)], |
|
|
processors=[Transpose(Transpose.AUTO), ResizeToFit(900, 675, upscale=False)], |
|
|
options={'quality': 95}) |
|
|
options={'quality': 95}) |
|
|
obrazek_maly = ImageSpecField(source='obrazek_velky', |
|
|
obrazek_maly = ImageSpecField(source='obrazek_velky', |
|
|
processors=[Transpose(Transpose.AUTO), ResizeToFit(167, 167, upscale=False)], |
|
|
processors=[Transpose(Transpose.AUTO), ResizeToFit(167, 167, upscale=False)], |
|
|
options={'quality': 95}) |
|
|
options={'quality': 95}) |
|
|
nazev = models.CharField('Název', max_length=50, blank = True, null = True) |
|
|
nazev = models.CharField('Název', max_length=50, blank=True, null=True) |
|
|
popis = models.TextField('Popis', blank = True, null = True) |
|
|
popis = models.TextField('Popis', blank=True, null=True) |
|
|
datum_vlozeni = models.DateTimeField('Datum vložení', auto_now_add = True) |
|
|
datum_vlozeni = models.DateTimeField('Datum vložení', auto_now_add=True) |
|
|
galerie = models.ForeignKey('Galerie', blank=True, null=True) |
|
|
galerie = models.ForeignKey('Galerie', blank=True, null=True) |
|
|
poradi = models.IntegerField('Pořadí', blank = True, null = True) |
|
|
poradi = models.IntegerField('Pořadí', blank=True, null=True) |
|
|
def __unicode__(self): |
|
|
|
|
|
return self.nazev + " -- " + unicode(self.obrazek_velky.name) |
|
|
def __unicode__(self): |
|
|
class Meta: |
|
|
return unicode(self.obrazek_velky.name) |
|
|
verbose_name = 'Obrázek' |
|
|
|
|
|
verbose_name_plural = 'Obrázky' |
|
|
class Meta: |
|
|
ordering = ['nazev'] |
|
|
verbose_name = 'Obrázek' |
|
|
|
|
|
verbose_name_plural = 'Obrázky' |
|
|
def obrazek_maly_tag(self): |
|
|
ordering = ['nazev'] |
|
|
return u'<img src="{}">'.format(self.obrazek_maly.url) |
|
|
|
|
|
obrazek_maly_tag.short_description = "Náhled" |
|
|
def obrazek_maly_tag(self): |
|
|
obrazek_maly_tag.allow_tags = True |
|
|
return u'<img src="{}">'.format(self.obrazek_maly.url) |
|
|
|
|
|
obrazek_maly_tag.short_description = "Náhled" |
|
|
|
|
|
obrazek_maly_tag.allow_tags = True |
|
|
|
|
|
|
|
|
|
|
|
def save(self, *args, **kwargs): |
|
|
|
|
|
# obrázek potřebuje název, protože se z něj generuje cesta pro jeho uložení |
|
|
|
|
|
# (a pak se podle něj taky řadí) |
|
|
|
|
|
if self.nazev is None: |
|
|
|
|
|
self.nazev = os.path.basename(self.obrazek_velky.name) |
|
|
|
|
|
super(Obrazek, self).save(*args, **kwargs) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|