from django.contrib import admin
from django.utils.translation import gettext_lazy as _
from pagetools.admin import PagelikeAdmin
from pagetools.menus.admin import EntrieableAdmin
from pagetools.menus.models import MenuEntry
from pagetools.menus.utils import entrieable_auto_populated
from pagetools.pages.models import Page # , DynFormField, PageDynFormField
[docs]class BasePageAdmin(EntrieableAdmin, PagelikeAdmin):
readonly_fields = ("status_changed",)
list_display = ("title", "lang", "slug", "status")
list_filter = ("lang", "status")
search_fields = ("title", "content")
save_as = True
[docs]class PageAdmin(BasePageAdmin):
fieldsets = (
(
"",
{
"fields": [
"lang",
"status",
"title",
"slug",
"description",
"content",
]
},
),
(
_("Included form"),
{
"fields": [
"included_form",
"email_receivers",
]
},
),
(
_("Protection"),
{
"fields": [
"login_required",
]
},
),
(
_("Show in menus"),
{
"fields": [
"menus",
]
},
),
(
_("Pagetype"),
{
"fields": [
"pagetype",
]
},
),
)
[docs] class Meta:
model = Page
admin.site.register(Page, PageAdmin)
[docs]def pages_auto_entries():
return [MenuEntry(title=p.title, content_object=p) for p in Page.public.all()]
entrieable_auto_populated("All pages", pages_auto_entries)