Skip to content
Snippets Groups Projects
blocks.py 1.4 KiB
Newer Older
  • Learn to ignore specific revisions
  • Todd Dembrey's avatar
    Todd Dembrey committed
    from wagtail.wagtailcore import blocks
    
    from wagtail.wagtaildocs.blocks import DocumentChooserBlock
    
    Todd Dembrey's avatar
    Todd Dembrey committed
    from wagtail.wagtailembeds.blocks import EmbedBlock
    
    from wagtail.wagtailimages.blocks import ImageChooserBlock
    
    Todd Dembrey's avatar
    Todd Dembrey committed
    from wagtail.wagtailsnippets.blocks import SnippetChooserBlock
    
    
    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")
        citation_link = blocks.URLBlock(required=False)
    
        class Meta:
            icon = "openquote"
            template = "blocks/quote_block.html"
    
    
    # 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()
        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"