Viditelnost galerie jako enum
This commit is contained in:
parent
1dd332675f
commit
efb395e15a
3 changed files with 19 additions and 20 deletions
|
|
@ -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.contrib import admin
|
||||||
from django.http import HttpResponseRedirect
|
from django.http import HttpResponseRedirect
|
||||||
from django import forms
|
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:
|
# 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
|
# VŽDY/ÚČASTNÍKŮM/ORGŮM) a úpravy (bool), přičemž během úprav se zobrazuje
|
||||||
# jen orgům?
|
# jen orgům?
|
||||||
queryset = queryset.filter(zobrazit=ORG)
|
queryset = queryset.filter(zobrazit=Galerie.Viditelnost.ORG)
|
||||||
for galerie in queryset:
|
for galerie in queryset:
|
||||||
galerie.zobrazit = VZDY
|
galerie.zobrazit = Galerie.Viditelnost.VZDY
|
||||||
galerie.save()
|
galerie.save()
|
||||||
zverejnit_fotogalerii(modeladmin, request,
|
zverejnit_fotogalerii(modeladmin, request,
|
||||||
Galerie.objects.filter(galerie_up = galerie))
|
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):
|
def prepnout_fotogalerii_do_org_rezimu(modeladmin, request, queryset):
|
||||||
'''zneveřejni vybranou fotogalerii i její všechny podgalerie'''
|
'''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:
|
for galerie in queryset:
|
||||||
galerie.zobrazit = ORG
|
galerie.zobrazit = Galerie.Viditelnost.ORG
|
||||||
galerie.save()
|
galerie.save()
|
||||||
prepnout_fotogalerii_do_org_rezimu(modeladmin, request,
|
prepnout_fotogalerii_do_org_rezimu(modeladmin, request,
|
||||||
Galerie.objects.filter(galerie_up = galerie))
|
Galerie.objects.filter(galerie_up = galerie))
|
||||||
|
|
|
||||||
|
|
@ -8,17 +8,6 @@ import os
|
||||||
from soustredeni.models import Soustredeni
|
from soustredeni.models import Soustredeni
|
||||||
from galerie.utils import top_galerie
|
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í
|
# 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
|
# až se ty migrace někdy squashnou, tak by mělo být možné funkce smazat
|
||||||
def obrazek_filename_maly():
|
def obrazek_filename_maly():
|
||||||
|
|
@ -47,7 +36,7 @@ def galerie_filename(self, filename):
|
||||||
return os.path.join(*cesta)
|
return os.path.join(*cesta)
|
||||||
|
|
||||||
class Soubor(models.Model):
|
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,
|
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.")
|
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):
|
class Typ(models.TextChoices):
|
||||||
|
|
@ -91,14 +80,19 @@ class Soubor(models.Model):
|
||||||
case self.Typ.NEVIM: return typy.DummyBazmek(self)
|
case self.Typ.NEVIM: return typy.DummyBazmek(self)
|
||||||
case _: raise ValueError("Neznámý typ obrázku, bug v kódu!")
|
case _: raise ValueError("Neznámý typ obrázku, bug v kódu!")
|
||||||
|
|
||||||
|
|
||||||
class Galerie(models.Model):
|
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')
|
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_vytvoreni = models.DateTimeField('Datum vytvoření', auto_now_add = True)
|
||||||
datum_zmeny = models.DateTimeField('Datum poslední změny', auto_now = True)
|
datum_zmeny = models.DateTimeField('Datum poslední změny', auto_now = True)
|
||||||
poznamka = models.TextField('neveřejná poznámka', blank = True, null = 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)
|
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,
|
galerie_up = models.ForeignKey('Galerie', blank = True, null = True,
|
||||||
on_delete=models.PROTECT)
|
on_delete=models.PROTECT)
|
||||||
soustredeni = models.ForeignKey(Soustredeni, blank = True, null = True,
|
soustredeni = models.ForeignKey(Soustredeni, blank = True, null = True,
|
||||||
|
|
|
||||||
|
|
@ -8,10 +8,15 @@ from datetime import datetime
|
||||||
from galerie.utils import top_galerie
|
from galerie.utils import top_galerie
|
||||||
from personalni.utils import resitel_uzivatele
|
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 soustredeni.models import Soustredeni
|
||||||
from galerie.forms import KomentarForm, NewGalerieForm
|
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
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue