From 200553413a44e6995a19ca0bb3f81781a710fbea Mon Sep 17 00:00:00 2001 From: Ramon Wenger Date: Mon, 4 Apr 2022 17:33:54 +0200 Subject: [PATCH] Refactor default settings panel --- server/books/models/book.py | 8 ++------ server/books/models/chapter.py | 8 ++------ server/books/models/contentblock.py | 8 ++------ server/books/models/module.py | 8 ++------ server/books/models/topic.py | 7 ++----- server/core/wagtail_utils.py | 9 +++++++++ 6 files changed, 19 insertions(+), 29 deletions(-) diff --git a/server/books/models/book.py b/server/books/models/book.py index bf88bc17..3ff2b705 100644 --- a/server/books/models/book.py +++ b/server/books/models/book.py @@ -2,7 +2,7 @@ import logging from wagtail.admin.edit_handlers import FieldPanel, TabbedInterface, ObjectList -from core.wagtail_utils import StrictHierarchyPage +from core.wagtail_utils import StrictHierarchyPage, get_default_settings logger = logging.getLogger(__name__) @@ -16,13 +16,9 @@ class Book(StrictHierarchyPage): FieldPanel('title', classname="full title") ] - settings_panels = [ - FieldPanel('slug') - ] - edit_handler = TabbedInterface([ ObjectList(content_panels, heading='Content'), - ObjectList(settings_panels, heading='Settings'), + get_default_settings() ]) template = 'generic_page.html' diff --git a/server/books/models/chapter.py b/server/books/models/chapter.py index e3a7e382..269c8b63 100644 --- a/server/books/models/chapter.py +++ b/server/books/models/chapter.py @@ -3,7 +3,7 @@ import logging from django.db import models from wagtail.admin.edit_handlers import FieldPanel, TabbedInterface, ObjectList -from core.wagtail_utils import StrictHierarchyPage +from core.wagtail_utils import StrictHierarchyPage, get_default_settings from users.models import SchoolClass logger = logging.getLogger(__name__) @@ -21,13 +21,9 @@ class Chapter(StrictHierarchyPage): FieldPanel('description', classname="full description"), ] - settings_panels = [ - FieldPanel('slug') - ] - edit_handler = TabbedInterface([ ObjectList(content_panels, heading='Content'), - ObjectList(settings_panels, heading='Settings'), + get_default_settings() ]) template = 'generic_page.html' diff --git a/server/books/models/contentblock.py b/server/books/models/contentblock.py index bae27e2c..95302431 100644 --- a/server/books/models/contentblock.py +++ b/server/books/models/contentblock.py @@ -5,8 +5,8 @@ from wagtail.admin.edit_handlers import FieldPanel, TabbedInterface, ObjectList, from wagtail.core.blocks import StreamBlock from wagtail.core.fields import StreamField from wagtail.images.blocks import ImageChooserBlock -from wagtail.admin.edit_handlers import CommentPanel +from core.wagtail_utils import get_default_settings from books.blocks import TextBlock, BasicKnowledgeBlock, LinkBlock, VideoBlock, DocumentBlock, \ ImageUrlBlock, AssignmentBlock, InfogramBlock, GeniallyBlock, SubtitleBlock, SurveyBlock, ModuleRoomSlugBlock, \ ThinglinkBlock, InstructionBlock @@ -81,14 +81,10 @@ class ContentBlock(StrictHierarchyPage): StreamFieldPanel('contents') ] - settings_panels = [ - FieldPanel('slug'), - CommentPanel() - ] # edit_handler = TabbedInterface([ ObjectList(content_panels, heading='Content'), - ObjectList(settings_panels, heading='Settings'), + get_default_settings() ]) parent_page_types = ['books.Chapter'] diff --git a/server/books/models/module.py b/server/books/models/module.py index 2dd67d30..c58456e1 100644 --- a/server/books/models/module.py +++ b/server/books/models/module.py @@ -8,7 +8,7 @@ from wagtail.core.fields import RichTextField from wagtail.images.edit_handlers import ImageChooserPanel from core.constants import DEFAULT_RICH_TEXT_FEATURES -from core.wagtail_utils import StrictHierarchyPage +from core.wagtail_utils import StrictHierarchyPage, get_default_settings from users.models import SchoolClass @@ -42,13 +42,9 @@ class Module(StrictHierarchyPage): FieldPanel('intro'), ] - settings_panels = [ - FieldPanel('slug') - ] - edit_handler = TabbedInterface([ ObjectList(content_panels, heading='Content'), - ObjectList(settings_panels, heading='Settings'), + get_default_settings() ]) template = 'generic_page.html' diff --git a/server/books/models/topic.py b/server/books/models/topic.py index c4918a14..6dc96ad6 100644 --- a/server/books/models/topic.py +++ b/server/books/models/topic.py @@ -5,7 +5,7 @@ from wagtail.admin.edit_handlers import FieldPanel, TabbedInterface, ObjectList from wagtail.core.fields import RichTextField from core.constants import DEFAULT_RICH_TEXT_FEATURES -from core.wagtail_utils import StrictHierarchyPage +from core.wagtail_utils import StrictHierarchyPage, get_default_settings logger = logging.getLogger(__name__) @@ -30,13 +30,10 @@ class Topic(StrictHierarchyPage): FieldPanel('description'), ] - settings_panels = [ - FieldPanel('slug') - ] edit_handler = TabbedInterface([ ObjectList(content_panels, heading='Content'), - ObjectList(settings_panels, heading='Settings'), + get_default_settings() ]) template = 'generic_page.html' diff --git a/server/core/wagtail_utils.py b/server/core/wagtail_utils.py index 8269b6c9..ed144a0d 100644 --- a/server/core/wagtail_utils.py +++ b/server/core/wagtail_utils.py @@ -1,4 +1,6 @@ from django.contrib import admin +from wagtail.admin.edit_handlers import CommentPanel +from wagtail.admin.edit_handlers import FieldPanel, ObjectList from wagtail.core.models import Page @@ -29,3 +31,10 @@ def wagtail_parent_filter(parent_cls, child_cls): return child_cls.objects.filter(id__in=parent.get_child_ids()).live() return ParentValueFilter + + +def get_default_settings(): + return ObjectList([ + FieldPanel('slug'), + CommentPanel() + ], heading='Settings')