Initial commit
This commit is contained in:
76
env/lib/python3.10/site-packages/wagtail/admin/panels/page_utils.py
vendored
Normal file
76
env/lib/python3.10/site-packages/wagtail/admin/panels/page_utils.py
vendored
Normal file
@@ -0,0 +1,76 @@
|
||||
from django.conf import settings
|
||||
from django.utils.translation import gettext_lazy
|
||||
|
||||
from wagtail.admin.forms.pages import WagtailAdminPageForm
|
||||
from wagtail.models import Page
|
||||
from wagtail.utils.decorators import cached_classmethod
|
||||
|
||||
from .comment_panel import CommentPanel
|
||||
from .field_panel import FieldPanel
|
||||
from .group import MultiFieldPanel, ObjectList, TabbedInterface
|
||||
from .publishing_panel import PublishingPanel
|
||||
from .title_field_panel import TitleFieldPanel
|
||||
|
||||
|
||||
def set_default_page_edit_handlers(cls):
|
||||
cls.content_panels = [
|
||||
TitleFieldPanel("title"),
|
||||
]
|
||||
|
||||
cls.promote_panels = [
|
||||
MultiFieldPanel(
|
||||
[
|
||||
FieldPanel("slug"),
|
||||
FieldPanel("seo_title"),
|
||||
FieldPanel("search_description"),
|
||||
],
|
||||
gettext_lazy("For search engines"),
|
||||
),
|
||||
MultiFieldPanel(
|
||||
[
|
||||
FieldPanel("show_in_menus"),
|
||||
],
|
||||
gettext_lazy("For site menus"),
|
||||
),
|
||||
]
|
||||
|
||||
cls.settings_panels = [
|
||||
PublishingPanel(),
|
||||
]
|
||||
|
||||
if getattr(settings, "WAGTAILADMIN_COMMENTS_ENABLED", True):
|
||||
cls.settings_panels.append(CommentPanel())
|
||||
|
||||
cls.base_form_class = WagtailAdminPageForm
|
||||
|
||||
|
||||
set_default_page_edit_handlers(Page)
|
||||
|
||||
|
||||
@cached_classmethod
|
||||
def _get_page_edit_handler(cls):
|
||||
"""
|
||||
Get the panel to use in the Wagtail admin when editing this page type.
|
||||
"""
|
||||
if hasattr(cls, "edit_handler"):
|
||||
edit_handler = cls.edit_handler
|
||||
else:
|
||||
# construct a TabbedInterface made up of content_panels, promote_panels
|
||||
# and settings_panels, skipping any which are empty
|
||||
tabs = []
|
||||
|
||||
if cls.content_panels:
|
||||
tabs.append(ObjectList(cls.content_panels, heading=gettext_lazy("Content")))
|
||||
if cls.promote_panels:
|
||||
tabs.append(ObjectList(cls.promote_panels, heading=gettext_lazy("Promote")))
|
||||
if cls.settings_panels:
|
||||
tabs.append(
|
||||
ObjectList(cls.settings_panels, heading=gettext_lazy("Settings"))
|
||||
)
|
||||
|
||||
edit_handler = TabbedInterface(tabs, base_form_class=cls.base_form_class)
|
||||
|
||||
return edit_handler.bind_to_model(cls)
|
||||
|
||||
|
||||
Page.get_edit_handler = _get_page_edit_handler
|
||||
Reference in New Issue
Block a user