Skip to content
Snippets Groups Projects
blocks.py 1.86 KiB
Newer Older
  • Learn to ignore specific revisions
  • from wagtail.core import blocks
    from wagtail.documents.blocks import DocumentChooserBlock
    from wagtail.embeds.blocks import EmbedBlock
    from wagtail.images.blocks import ImageChooserBlock
    from wagtail.snippets.blocks import SnippetChooserBlock
    
    Todd Dembrey's avatar
    Todd Dembrey committed
    
    
    class ImageBlock(blocks.StructBlock):
        image = ImageChooserBlock()
        caption = blocks.CharBlock(required=False)
    
        class Meta:
            icon = "image"
            template = "blocks/image_block.html"
    
    
    
    class DocumentBlock(blocks.StructBlock):
        document = DocumentChooserBlock()
        title = blocks.CharBlock(required=False)
    
        class Meta:
            icon = "doc-full-inverse"
            template = "blocks/document_block.html"
    
    
    
    Todd Dembrey's avatar
    Todd Dembrey committed
    class QuoteBlock(blocks.StructBlock):
        quote = blocks.CharBlock(classname="title")
    
        attribution = blocks.CharBlock(required=False)
    
        job_title = blocks.CharBlock(required=False)
    
    Todd Dembrey's avatar
    Todd Dembrey committed
    
        class Meta:
            icon = "openquote"
            template = "blocks/quote_block.html"
    
    
    
    class BoxBlock(blocks.StructBlock):
        box_content = blocks.RichTextBlock()
        box_class = blocks.CharBlock(required=False)
    
        class Meta:
            icon = "placeholder"
            template = "blocks/box_block.html"
    
    
    class ApplyLinkBlock(blocks.StructBlock):
        application = blocks.PageChooserBlock()
    
        class Meta:
            icon = "link"
            template = "blocks/apply_link_block.html"
    
    
    Todd Dembrey's avatar
    Todd Dembrey committed
    # Main streamfield block to be inherited by Pages
    class StoryBlock(blocks.StreamBlock):
    
        heading = blocks.CharBlock(classname="full title", icon='title')
    
    Todd Dembrey's avatar
    Todd Dembrey committed
        paragraph = blocks.RichTextBlock()
    
        box = BoxBlock()
        Apply_link = ApplyLinkBlock()
    
    Todd Dembrey's avatar
    Todd Dembrey committed
        image = ImageBlock()
        quote = QuoteBlock()
        embed = EmbedBlock()
        call_to_action = SnippetChooserBlock(
            'utils.CallToActionSnippet',
            template="blocks/call_to_action_block.html"
        )
    
        document = DocumentBlock()
    
    Todd Dembrey's avatar
    Todd Dembrey committed
    
        class Meta:
            template = "blocks/stream_block.html"