mamweb/galerie/admin.py
LEdoian d06be4ccbd Veliké přejmenovávání
Myslím, že to nefunguje, ještě nejsou změněné templaty.
A není napsaná migrace
A není to zdokumentované
2025-12-17 13:22:07 +00:00

51 lines
2 KiB
Python

from galerie.models import Soubor, Galerie
from django.contrib import admin
from django.http import HttpResponseRedirect
from django import forms
from django.db import models
def zverejnit_fotogalerii(modeladmin, request, queryset):
'''zveřejní vybranou fotogalerii i její všechny podgalerie'''
# 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=Galerie.Viditelnost.ORG)
for galerie in queryset:
galerie.zobrazit = Galerie.Viditelnost.VZDY
galerie.save()
zverejnit_fotogalerii(modeladmin, request, galerie.podgalerie.all())
zverejnit_fotogalerii.short_description = 'Zveřejnit fotogalerie'
def prepnout_fotogalerii_do_org_rezimu(modeladmin, request, queryset):
'''zneveřejni vybranou fotogalerii i její všechny podgalerie'''
queryset = queryset.filter(zobrazit=Galerie.Viditelnost.VZDY)
for galerie in queryset:
galerie.zobrazit = Galerie.Viditelnost.ORG
galerie.save()
prepnout_fotogalerii_do_org_rezimu(modeladmin, request, galerie.podgalerie.all())
prepnout_fotogalerii_do_org_rezimu.short_description = \
'Přepnout do režimu úprav (zneveřejní galerii)'
class GalerieInline(admin.TabularInline):
model = Soubor
fields = ['soubor', 'nazev', 'popisek', 'typ', 'poradi']
readonly_fields = ['nazev']
formfield_overrides = {
models.TextField: {'widget': forms.TextInput},
}
@admin.register(Soubor)
class SouborAdmin(admin.ModelAdmin):
list_display = ('soubor', 'nazev', 'popisek', 'poradi')
search_fields = ['nazev','popisek']
@admin.register(Galerie)
class GalerieAdmin(admin.ModelAdmin):
model = Galerie
fields = ('zobrazit', 'nazev', 'titulni_obrazek', 'poznamka', 'nadgalerie', 'soustredeni', 'poradi')
autocomplete_fields = ['titulni_obrazek']
list_display = ('nazev', 'soustredeni', 'nadgalerie', 'poradi', 'zobrazit', 'datum_zmeny')
inlines = [GalerieInline]
actions = [zverejnit_fotogalerii, prepnout_fotogalerii_do_org_rezimu]
save_on_top = True