Galerie: Obrázek přejmenován na Soubor

This commit is contained in:
Pavel "LEdoian" Turinsky 2025-11-18 18:42:27 +01:00
parent d07d4daf04
commit 3e18f51550
4 changed files with 18 additions and 18 deletions

View file

@ -1,4 +1,4 @@
from galerie.models import Obrazek, Galerie, VZDY, ORG, NIKDY, UCASTNIK
from galerie.models import Soubor, Galerie, VZDY, ORG, NIKDY, UCASTNIK
from django.contrib import admin
from django.http import HttpResponseRedirect
from django import forms
@ -29,14 +29,14 @@ def prepnout_fotogalerii_do_org_rezimu(modeladmin, request, queryset):
'Přepnout do režimu úprav (zneveřejní galerii)'
class GalerieInline(admin.TabularInline):
model = Obrazek
model = Soubor
fields = ['soubor', 'nazev', 'popis', 'typ', 'poradi']
readonly_fields = ['nazev']
formfield_overrides = {
models.TextField: {'widget': forms.TextInput},
}
class ObrazekAdmin(admin.ModelAdmin):
class SouborAdmin(admin.ModelAdmin):
list_display = ('soubor', 'nazev', 'popis', 'poradi')
search_fields = ['nazev','popis']
@ -50,5 +50,5 @@ class GalerieAdmin(admin.ModelAdmin):
save_on_top = True
ordering = ['galerie_up__nazev', 'poradi']
admin.site.register(Obrazek, ObrazekAdmin)
admin.site.register(Soubor, SouborAdmin)
admin.site.register(Galerie, GalerieAdmin)

View file

@ -46,8 +46,7 @@ def galerie_filename(self, filename):
return os.path.join(*cesta)
# Technicky misnomer: takový `Obrazek` může být i videjko a výhledově i něco dalšího…
class Obrazek(models.Model):
class Soubor(models.Model):
# „originál“ (modulo max. velikost uploadu na web FIXME!)
soubor = models.FileField(upload_to=galerie_filename,
help_text = "Lze vložit libovolně velký obrázek. Ideální je, aby alespoň jeden rozměr měl alespoň 500px.")
@ -71,6 +70,7 @@ class Obrazek(models.Model):
class Meta:
verbose_name = 'Obrázek'
verbose_name_plural = 'Obrázky'
db_table = 'galerie_obrazek' # FIXME: přejmenovat
ordering = ['nazev'] #FIXME: zohlednit pořadí a asi i příslušnost ke galerii
def save(self, *args, **kwargs):
@ -78,7 +78,7 @@ class Obrazek(models.Model):
# (a pak se podle něj taky řadí)
if self.nazev is None:
self.nazev = os.path.basename(self.soubor.name)
super(Obrazek, self).save(*args, **kwargs)
super().save(*args, **kwargs)
def jako_bazmek(self):
"""
@ -97,7 +97,7 @@ class Galerie(models.Model):
datum_vytvoreni = models.DateTimeField('Datum vytvoření', auto_now_add = True)
datum_zmeny = models.DateTimeField('Datum poslední změny', auto_now = True)
popis = models.TextField('Popis', blank = True, null = True)
titulni_obrazek = models.ForeignKey(Obrazek, blank = True, null = True, related_name = "+", on_delete = models.SET_NULL)
titulni_obrazek = models.ForeignKey(Soubor, blank = True, null = True, related_name = "+", on_delete = models.SET_NULL)
zobrazit = models.IntegerField('Zobrazit?', default = ORG, choices = VIDITELNOST)
galerie_up = models.ForeignKey('Galerie', blank = True, null = True,
on_delete=models.PROTECT)

View file

@ -25,7 +25,7 @@ from imagekit.processors import ResizeToFit, Transpose
HTML = str | SafeString
from galerie.models import Obrazek as DbObrazek
from galerie.models import Soubor
class ZobrazitelnyBazmek(abc.ABC):
def __init__(self, db_objekt):
@ -128,13 +128,13 @@ class DummyBazmek(ZobrazitelnyBazmek):
attrs = _fmt_attrs(kwargs)
return format_html(r'<img src="{}" {} />', self.placeholder, attrs)
def tipniTyp(soubor) -> DbObrazek.Typ:
def tipniTyp(soubor) -> Soubor.Typ:
from PIL import Image, UnidentifiedImageError
try:
Image.open(soubor)
return DbObrazek.Typ.OBRAZEK
return Soubor.Typ.OBRAZEK
except UnidentifiedImageError:
return DbObrazek.Typ.NEVIM
return Soubor.Typ.NEVIM
logger.warning("Nepodařilo se tipnout typ nečekaným způsobem!")
return DbObrazek.Typ.NEVIM
return Soubor.Typ.NEVIM

View file

@ -8,7 +8,7 @@ from datetime import datetime
from galerie.utils import top_galerie
from personalni.utils import resitel_uzivatele
from galerie.models import Obrazek, Galerie, VZDY, ORG, UCASTNIK, NIKDY
from galerie.models import Soubor, Galerie, VZDY, ORG, UCASTNIK, NIKDY
from soustredeni.models import Soustredeni
from galerie.forms import KomentarForm, NewGalerieForm
@ -56,7 +56,7 @@ def nahled(request, pk, soustredeni):
podgalerie = Galerie.objects.filter(galerie_up = galerie).order_by('poradi')
podgalerie = podgalerie.filter(zobrazit__in=galerie_ke_zobrazeni(soustredeni, request))
obrazky = galerie.obrazek_set.all().order_by('poradi', 'nazev')
obrazky = galerie.soubor_set.all().order_by('poradi', 'nazev')
ma_se_zobrazit = zobrazit(galerie, request)
if not ma_se_zobrazit: raise Http404("Galerie sice existuje, ale my se tváříme, že ne :-D")
@ -95,10 +95,10 @@ def detail(request, pk, fotka, soustredeni):
soustredeni = top_galerie(galerie).soustredeni
ma_se_zobrazit = zobrazit(galerie, request)
if not ma_se_zobrazit: raise Http404("Obrázek neukážu!")
obrazek = get_object_or_404(Obrazek, pk=fotka)
obrazek = get_object_or_404(Soubor, pk=fotka)
# Pořadí není povinné. FIXME: `nazev` je zavádějící… Ale tohle je kanonické pořadí obrázků v galerii…
obrazky = galerie.obrazek_set.all().order_by('poradi', 'nazev')
obrazky = galerie.soubor_set.all().order_by('poradi', 'nazev')
obrazky = list(obrazky)
index_obrazku = obrazky.index(obrazek)
# Podle mě se nemůže stát, že by volání výš selhalo, kdyžtak shodí web. (původně to byl explicitně ošetřený stav dávající 404)
@ -186,7 +186,7 @@ def new_galerie(request, galerie, soustredeni):
# zpracovani obrazku v galerii
from galerie.typy import tipniTyp
for obr in request.FILES.getlist('obr'):
o = Obrazek()
o = Soubor()
o.soubor = obr
o.typ = tipniTyp(obr)
o.nazev = str(obr)