From 23aede313e24c0d961e1bb00a9330bb15920fea0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20Koci=C3=A1n?= Date: Thu, 17 Dec 2015 23:25:54 +0100 Subject: [PATCH 1/3] =?UTF-8?q?Galerie:=20fix=20nahr=C3=A1v=C3=A1n=C3=AD?= =?UTF-8?q?=20fotek=20p=C5=99es=20admin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Obrázek si při save() vyplní název * obrazek_filename() nespoléhá na to, že je každá galerie pod nějakým soustředěním --- galerie/models.py | 72 +++++++++++++++++++++++++++++------------------ 1 file changed, 45 insertions(+), 27 deletions(-) diff --git a/galerie/models.py b/galerie/models.py index 4c08c4f2..3cc4b682 100644 --- a/galerie/models.py +++ b/galerie/models.py @@ -31,36 +31,54 @@ def obrazek_filename_velky(): def obrazek_filename(self, filename): gal = self.galerie cislo_gal = force_unicode(gal.pk) - cesta = "" - while(not gal.soustredeni): + + # najdi kořenovou galerii + while (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): - 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.") - obrazek_stredni = ImageSpecField(source='obrazek_velky', - processors=[Transpose(Transpose.AUTO), ResizeToFit(900, 675, upscale=False)], - options={'quality': 95}) - obrazek_maly = ImageSpecField(source='obrazek_velky', - processors=[Transpose(Transpose.AUTO), ResizeToFit(167, 167, upscale=False)], - options={'quality': 95}) - nazev = models.CharField('Název', max_length=50, blank = True, null = True) - popis = models.TextField('Popis', blank = True, null = True) - datum_vlozeni = models.DateTimeField('Datum vložení', auto_now_add = True) - galerie = models.ForeignKey('Galerie', blank=True, null=True) - poradi = models.IntegerField('Pořadí', blank = True, null = True) - def __unicode__(self): - return self.nazev + " -- " + unicode(self.obrazek_velky.name) - class Meta: - verbose_name = 'Obrázek' - verbose_name_plural = 'Obrázky' - ordering = ['nazev'] - - def obrazek_maly_tag(self): - return u''.format(self.obrazek_maly.url) - obrazek_maly_tag.short_description = "Náhled" - obrazek_maly_tag.allow_tags = True + 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.") + obrazek_stredni = ImageSpecField(source='obrazek_velky', + processors=[Transpose(Transpose.AUTO), ResizeToFit(900, 675, upscale=False)], + options={'quality': 95}) + obrazek_maly = ImageSpecField(source='obrazek_velky', + processors=[Transpose(Transpose.AUTO), ResizeToFit(167, 167, upscale=False)], + options={'quality': 95}) + nazev = models.CharField('Název', max_length=50, blank=True, null=True) + popis = models.TextField('Popis', blank=True, null=True) + datum_vlozeni = models.DateTimeField('Datum vložení', auto_now_add=True) + galerie = models.ForeignKey('Galerie', blank=True, null=True) + poradi = models.IntegerField('Pořadí', blank=True, null=True) + + def __unicode__(self): + return unicode(self.obrazek_velky.name) + + class Meta: + verbose_name = 'Obrázek' + verbose_name_plural = 'Obrázky' + ordering = ['nazev'] + + def obrazek_maly_tag(self): + return u''.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) From ec6f988e517aa63008e52fe8a8a76ec94f223e64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20Koci=C3=A1n?= Date: Thu, 17 Dec 2015 23:46:23 +0100 Subject: [PATCH 2/3] =?UTF-8?q?GalerieNahled:=20title=20n=C3=A1hledu=20je?= =?UTF-8?q?=20popis=20obr=C3=A1zku?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit a ne "Zobrazit tuto fotografii" --- galerie/templates/galerie/GalerieNahled.html | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/galerie/templates/galerie/GalerieNahled.html b/galerie/templates/galerie/GalerieNahled.html index bb475b50..8d4aa38f 100644 --- a/galerie/templates/galerie/GalerieNahled.html +++ b/galerie/templates/galerie/GalerieNahled.html @@ -78,7 +78,11 @@ Galerie {{galerie.nazev}} {% if obrazky %}
{% for obrazek in obrazky %} - From dbc5b84ce8e2040600fbcf9792a8bddc89630069 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mat=C4=9Bj=20Koci=C3=A1n?= Date: Fri, 18 Dec 2015 15:57:40 +0100 Subject: [PATCH 3/3] =?UTF-8?q?Galerie:=20drobn=C3=A9=20=C3=BApravy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * rozumnější zmenšování náhledu podgalerie * max 22 znaků z názvu podgalerie v náhledu, plný název v title --- galerie/templates/galerie/GalerieNahled.html | 24 +++++++++++++------- mamweb/static/css/mamweb.css | 8 +++++++ 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/galerie/templates/galerie/GalerieNahled.html b/galerie/templates/galerie/GalerieNahled.html index 8d4aa38f..7d9313fc 100644 --- a/galerie/templates/galerie/GalerieNahled.html +++ b/galerie/templates/galerie/GalerieNahled.html @@ -43,18 +43,22 @@ Galerie {{galerie.nazev}} {% endif %} {% if podgalerie %} + {% with 22 as max_delka_nazvu %}
{% for galerie in podgalerie %} - + max_delka_nazvu %} + title="{{ galerie.nazev }}" + {% endif %} + class="podgalerie_nahled"> {% if galerie.titulni_obrazek %} - {% with galerie.titulni_obrazek.obrazek_maly as obrazek %} - - {% endwith %} + {% with galerie.titulni_obrazek.obrazek_maly as obrazek %} + + {% endwith %} {% endif %} -
- {{ galerie }} +
+ {{ galerie|truncatechars:max_delka_nazvu }}
{% if user.is_staff and galerie.zobrazit > 0 %} @@ -66,6 +70,7 @@ Galerie {{galerie.nazev}} {% endif %} {% endfor %}
+ {% endwith %} {% endif %} {% endif %} {% if user.is_staff and galerie.zobrazit > 0 %} @@ -84,6 +89,9 @@ Galerie {{galerie.nazev}} {% endif %} href="./{{obrazek.pk}}#nahoru" class="galerie_nahled"> diff --git a/mamweb/static/css/mamweb.css b/mamweb/static/css/mamweb.css index 8b1ef07d..a8f48643 100644 --- a/mamweb/static/css/mamweb.css +++ b/mamweb/static/css/mamweb.css @@ -613,6 +613,14 @@ div.zadani_azad_termin { .podgalerie_nahled img { margin-top: 20px; margin-bottom: 15px; + max-height: 125px; + max-width: 167px; +} + +.podgalerie_nahled .nazev_galerie { + position: absolute; + width: 100%; + top: 160px; } /* plus a minus tlacitka */