testapp/models.py (24 lines of code) (raw):

from django.db import models from wagtail import blocks from wagtail.admin.panels import FieldPanel from wagtail.documents.blocks import DocumentChooserBlock from wagtail.fields import StreamField from wagtail.images.blocks import ImageChooserBlock from wagtail.models import Page, TranslatableMixin from wagtail.snippets.models import register_snippet class BodyBlock(blocks.StreamBlock): heading = blocks.CharBlock( form_classname="title", icon="title", ) paragraph = blocks.RichTextBlock() document = DocumentChooserBlock() image = ImageChooserBlock() class InfoPage(Page): body = StreamField(BodyBlock(), use_json_field=True) content_panels = Page.content_panels + [ FieldPanel("body"), ] @register_snippet class InfoSnippet(TranslatableMixin): content = models.TextField()