add featured block

This commit is contained in:
2024-05-23 00:42:08 +02:00
parent a1dddb64b1
commit c3021e0b8b
10 changed files with 184 additions and 65 deletions
+46
View File
@@ -1,6 +1,7 @@
from grapple.helpers import register_streamfield_block
from grapple.models import (
GraphQLImage,
GraphQLPage,
GraphQLStreamfield,
GraphQLString,
)
@@ -90,3 +91,48 @@ class HorizontalRuleBlock(blocks.StructBlock):
class Meta:
icon = "minus"
@register_streamfield_block
class FeaturedBlock(blocks.StructBlock):
IMAGE_POSITION_CHOICES = (
("left", "Venstre"),
("right", "Høyre"),
)
title = blocks.CharBlock(max_length=64, required=True, label="Tittel")
text = blocks.RichTextBlock(features=["bold", "italic", "link"], required=True, label="Tekst")
featured_page = blocks.PageChooserBlock(header="Fremhevet side", required=True)
link_text = blocks.CharBlock(
max_length=64,
label="Lenketekst",
default="Les mer",
required=True,
help_text='Lenketeksten som tar deg videre til siden. Tips: Ikke start med "Trykk her"',
)
image_position = blocks.ChoiceBlock(
required=True,
choices=IMAGE_POSITION_CHOICES,
label="Bildeplassering",
)
featured_image_override = ImageChooserBlock(
header="Overstyr bilde",
help_text=(
"Bildet som er tilknyttet undersiden du vil fremheve, vil automatisk brukes. "
"Om det mangler eller du vil overstyre hvilket bilde som et brukes, "
"kan du velge et her."
),
required=False,
)
graphql_fields = [
GraphQLString("title", required=True),
GraphQLString("text", required=True),
GraphQLString("link_text", required=True),
GraphQLString("image_position", required=True),
GraphQLImage("featured_image_override"),
GraphQLPage("featured_page", required=True),
]
class Meta:
icon = "arrow-right-full"
+2 -1
View File
@@ -1,7 +1,7 @@
from wagtail import blocks
from wagtail.fields import StreamField
from dnscms.blocks import HorizontalRuleBlock, ImageSliderBlock, ImageWithTextBlock
from dnscms.blocks import FeaturedBlock, HorizontalRuleBlock, ImageSliderBlock, ImageWithTextBlock
CommonStreamField = StreamField(
[
@@ -9,6 +9,7 @@ CommonStreamField = StreamField(
("image", ImageWithTextBlock(label="Bilde")),
("image_slider", ImageSliderBlock(label="Bildegalleri")),
("horizontal_rule", HorizontalRuleBlock(label="Skillelinje")),
("featured", FeaturedBlock(label="Fremhevet underside")),
],
default=[("paragraph", "")],
)