From cbffa328871fdb819aad9f6931352ec5cc8205c2 Mon Sep 17 00:00:00 2001 From: "Pavel \"LEdoian\" Turinsky" Date: Mon, 5 May 2025 15:17:35 +0200 Subject: [PATCH] =?UTF-8?q?Tipov=C3=A1n=C3=AD=20typ=C5=AF=20+=20drobn?= =?UTF-8?q?=C3=A9=20=C3=BApravy=20Admina?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- galerie/admin.py | 2 +- galerie/typy.py | 21 ++++++++++++++++++--- galerie/views.py | 2 ++ 3 files changed, 21 insertions(+), 4 deletions(-) diff --git a/galerie/admin.py b/galerie/admin.py index 1eacbf60..a04cf6d9 100644 --- a/galerie/admin.py +++ b/galerie/admin.py @@ -30,7 +30,7 @@ def prepnout_fotogalerii_do_org_rezimu(modeladmin, request, queryset): class GalerieInline(admin.TabularInline): model = Obrazek - fields = ['soubor', 'nazev', 'popis', 'poradi'] + fields = ['soubor', 'nazev', 'popis', 'typ', 'poradi'] readonly_fields = ['nazev'] formfield_overrides = { models.TextField: {'widget': forms.TextInput}, diff --git a/galerie/typy.py b/galerie/typy.py index e4f62cbb..7b27dbc8 100644 --- a/galerie/typy.py +++ b/galerie/typy.py @@ -8,6 +8,9 @@ Doporučené použití: TODO import abc from datetime import datetime +import logging + +logger = logging.getLogger(__name__) from django.utils.safestring import mark_safe, SafeString from django.utils.html import format_html, format_html_join @@ -90,13 +93,25 @@ class Obrazek(ZobrazitelnyBazmek): class Video(ZobrazitelnyBazmek): - ... + def zobrazit(self, **kwargs): + return r'Takhle se jednou zobrazí videjko…' + def zmenseny_nahled(self, **kwargs): + return r'Takhle se jednou zobrazí videjko…' class DummyBazmek(ZobrazitelnyBazmek): + # FIXME: hezčí blokovější elementy! def zobrazit(self, **kwargs): return r'Tohle zobrazit neumím :-(' def zmenseny_nahled(self, **kwargs): return r'Tohle zobrazit neumím :-(' - -def tipniTyp(soubor) -> DbObrazek.Typ: ... +def tipniTyp(soubor) -> DbObrazek.Typ: + from PIL import Image, UnidentifiedImageError + try: + Image.open(soubor) + return DbObrazek.Typ.OBRAZEK + except UnidentifiedImageError: + return DbObrazek.Typ.NEVIM + logger.warning("Nepodařilo se tipnout typ nečekaným způsobem!") + return DbObrazek.Typ.NEVIM + diff --git a/galerie/views.py b/galerie/views.py index ee2fc1ec..9bc9f8ed 100644 --- a/galerie/views.py +++ b/galerie/views.py @@ -184,9 +184,11 @@ def new_galerie(request, galerie, soustredeni): gal.save() # zpracovani obrazku v galerii + from galerie.typy import tipniTyp for obr in request.FILES.getlist('obr'): o = Obrazek() o.soubor = obr + o.typ = tipniTyp(obr) o.nazev = str(obr) o.galerie = gal o.save()