diff --git a/galerie/admin.py b/galerie/admin.py index 88d21215..a2c70452 100644 --- a/galerie/admin.py +++ b/galerie/admin.py @@ -1,4 +1,4 @@ -from galerie.models import Soubor, Galerie, VZDY, ORG, UCASTNIK +from galerie.models import Soubor, Galerie from django.contrib import admin from django.http import HttpResponseRedirect from django import forms @@ -9,9 +9,9 @@ def zverejnit_fotogalerii(modeladmin, request, queryset): # TODO: rozbíjí práva. Čistší je mít separátně práva (zobrazit: # VŽDY/ÚČASTNÍKŮM/ORGŮM) a úpravy (bool), přičemž během úprav se zobrazuje # jen orgům? - queryset = queryset.filter(zobrazit=ORG) + queryset = queryset.filter(zobrazit=Galerie.Viditelnost.ORG) for galerie in queryset: - galerie.zobrazit = VZDY + galerie.zobrazit = Galerie.Viditelnost.VZDY galerie.save() zverejnit_fotogalerii(modeladmin, request, Galerie.objects.filter(galerie_up = galerie)) @@ -20,9 +20,9 @@ def zverejnit_fotogalerii(modeladmin, request, queryset): def prepnout_fotogalerii_do_org_rezimu(modeladmin, request, queryset): '''zneveřejni vybranou fotogalerii i její všechny podgalerie''' - queryset = queryset.filter(zobrazit=VZDY) + queryset = queryset.filter(zobrazit=Galerie.Viditelnost.VZDY) for galerie in queryset: - galerie.zobrazit = ORG + galerie.zobrazit = Galerie.Viditelnost.ORG galerie.save() prepnout_fotogalerii_do_org_rezimu(modeladmin, request, Galerie.objects.filter(galerie_up = galerie)) diff --git a/galerie/models.py b/galerie/models.py index f94ba34a..4dd59cd5 100644 --- a/galerie/models.py +++ b/galerie/models.py @@ -8,17 +8,6 @@ import os from soustredeni.models import Soustredeni from galerie.utils import top_galerie -VZDY=0 -ORG=1 -# Pozor, diskontinuita, tady bylo `NIKDY` -UCASTNIK=3 -# TODO: Enum! -VIDITELNOST = ( - (VZDY, 'Vždy'), - (ORG, 'Organizátorům'), - (UCASTNIK, 'Účastníkům a orgům'), -) - # tyhle funkce jsou tady jen kvůli starým migracím, které se na ně odkazují # až se ty migrace někdy squashnou, tak by mělo být možné funkce smazat def obrazek_filename_maly(): @@ -47,7 +36,7 @@ def galerie_filename(self, filename): return os.path.join(*cesta) class Soubor(models.Model): - # „originál“ (modulo max. velikost uploadu na web FIXME!) + #: „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/soubor. Ideální je, aby alespoň jeden rozměr měl alespoň 500px.") class Typ(models.TextChoices): @@ -91,14 +80,19 @@ class Soubor(models.Model): case self.Typ.NEVIM: return typy.DummyBazmek(self) case _: raise ValueError("Neznámý typ obrázku, bug v kódu!") - class Galerie(models.Model): + class Viditelnost(models.IntegerChoices): + VZDY = 0, 'Vždy' + ORG = 1, 'Organizátorům' + # Diskontinuita: 2 bylo „NIKDY“ + UCASTNIK = 3, 'Účastníkům a orgům' + nazev = models.CharField('Název galerie', max_length=100, help_text='Např. "Soustředění Bratrouchov 2025" nebo "Pondělí", ukazuje se v cestičce') datum_vytvoreni = models.DateTimeField('Datum vytvoření', auto_now_add = True) datum_zmeny = models.DateTimeField('Datum poslední změny', auto_now = True) poznamka = models.TextField('neveřejná poznámka', blank = True, null = True) titulni_obrazek = models.ForeignKey(Soubor, blank = True, null = True, related_name = "+", on_delete = models.SET_NULL) - zobrazit = models.IntegerField('Zobrazit?', default = ORG, choices = VIDITELNOST) + zobrazit = models.IntegerField('Zobrazit?', default = Viditelnost.ORG, choices = Viditelnost.choices) # TODO: Dj5 už stačí `choices = Viditelnost` galerie_up = models.ForeignKey('Galerie', blank = True, null = True, on_delete=models.PROTECT) soustredeni = models.ForeignKey(Soustredeni, blank = True, null = True, diff --git a/galerie/views.py b/galerie/views.py index 8468530c..72de88e5 100644 --- a/galerie/views.py +++ b/galerie/views.py @@ -8,10 +8,15 @@ from datetime import datetime from galerie.utils import top_galerie from personalni.utils import resitel_uzivatele -from galerie.models import Soubor, Galerie, VZDY, ORG, UCASTNIK +from galerie.models import Soubor, Galerie from soustredeni.models import Soustredeni from galerie.forms import KomentarForm, NewGalerieForm +# Tohle byl import a používá se to tu relativně extensivně, tak asi nedává smysl všude psát prefix `Galerie.Viditelnost.` +VZDY = Galerie.Viditelnost.VZDY +ORG = Galerie.Viditelnost.ORG +UCASTNIK = Galerie.Viditelnost.UCASTNIK + import logging logger = logging.getLogger(__name__)