import logging from django.db import models from wagtail.admin.edit_handlers import FieldPanel, TabbedInterface, ObjectList, StreamFieldPanel from wagtail.core.fields import StreamField from wagtail.images.blocks import ImageChooserBlock from book.blocks import TextBlock, BasicKnowledgeBlock, StudentEntryBlock from core.wagtail_utils import StrictHierarchyPage logger = logging.getLogger(__name__) class ContentBlock(StrictHierarchyPage): class Meta: verbose_name = 'Inhaltsblock' verbose_name_plural = 'Inhaltsblöcke' contents = StreamField([ ('text_block', TextBlock(icon='doc-full')), ('basic_knowledge', BasicKnowledgeBlock(icon='placeholder')), ('student_entry', StudentEntryBlock(icon='download')), ('image_block', ImageChooserBlock(icon='image')), ('task', TextBlock(icon='tick')) ], null=True, blank=True) type = models.CharField( max_length=100, choices=( ('plain', 'Normal'), ('yellow', 'Gelb'), ('green', 'Grün'), ('blue', 'Blau'), ) ) content_panels = [ FieldPanel('title', classname="full title"), FieldPanel('type'), StreamFieldPanel('contents') ] settings_panels = [ FieldPanel('slug') ] edit_handler = TabbedInterface([ ObjectList(content_panels, heading='Content'), ObjectList(settings_panels, heading='Settings'), ]) template = 'generic_page.html' parent_page_types = ['book.Chapter']