1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- from django import forms
- from wagtail.blocks import (
- CharBlock,
- ChoiceBlock,
- FloatBlock,
- ListBlock,
- RichTextBlock,
- StreamBlock,
- StructBlock,
- )
- from wagtail.contrib.table_block.blocks import TableBlock
- from wagtail.contrib.typed_table_block.blocks import TypedTableBlock
- from wagtail.embeds.blocks import EmbedBlock
- from wagtail.images.blocks import ImageChooserBlock
- from bakerydemo.base.blocks import BlockQuote, HeadingBlock, ImageBlock
- class RecipeStepBlock(StructBlock):
- text = RichTextBlock(features=["bold", "italic", "link"])
- difficulty = ChoiceBlock(
- widget=forms.RadioSelect,
- choices=[("S", "Small"), ("M", "Medium"), ("L", "Large")],
- default="S",
- )
- class Meta:
- template = "blocks/recipe_step_block.html"
- icon = "tick"
- class RecipeStreamBlock(StreamBlock):
- """
- Define the custom blocks that `StreamField` will utilize
- """
- heading_block = HeadingBlock(group="Content")
- paragraph_block = RichTextBlock(
- icon="pilcrow", template="blocks/paragraph_block.html", group="Content"
- )
- block_quote = BlockQuote(group="Content")
- table_block = TableBlock(group="Content")
- typed_table_block = TypedTableBlock(
- [
- ("text", CharBlock()),
- ("numeric", FloatBlock()),
- ("rich_text", RichTextBlock()),
- ("image", ImageChooserBlock()),
- ],
- group="Content",
- )
- image_block = ImageBlock(group="Media")
- embed_block = EmbedBlock(
- help_text="Insert an embed URL e.g https://www.youtube.com/watch?v=SGJFWirQ3ks",
- icon="media",
- template="blocks/embed_block.html",
- group="Media",
- )
- ingredients_list = ListBlock(
- RichTextBlock(features=["bold", "italic", "link"]),
- min_num=2,
- max_num=10,
- icon="list-ol",
- group="Cooking",
- )
- steps_list = ListBlock(
- RecipeStepBlock(),
- min_num=2,
- max_num=10,
- icon="tasks",
- group="Cooking",
- )
|