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

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"

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", "")],
)

12
dnscms/poetry.lock generated
View File

@ -721,13 +721,13 @@ files = [
[[package]]
name = "requests"
version = "2.32.0"
version = "2.32.2"
description = "Python HTTP for Humans."
optional = false
python-versions = ">=3.8"
files = [
{file = "requests-2.32.0-py3-none-any.whl", hash = "sha256:f2c3881dddb70d056c5bd7600a4fae312b2a300e39be6a118d30b90bd27262b5"},
{file = "requests-2.32.0.tar.gz", hash = "sha256:fa5490319474c82ef1d2c9bc459d3652e3ae4ef4c4ebdd18a21145a47ca4b6b8"},
{file = "requests-2.32.2-py3-none-any.whl", hash = "sha256:fc06670dd0ed212426dfeb94fc1b983d917c4f9847c863f313c9dfaaffb7c23c"},
{file = "requests-2.32.2.tar.gz", hash = "sha256:dd951ff5ecf3e3b3aa26b40703ba77495dab41da839ae72ef3c8e5d8e2433289"},
]
[package.dependencies]
@ -858,13 +858,13 @@ zstd = ["zstandard (>=0.18.0)"]
[[package]]
name = "wagtail"
version = "6.1"
version = "6.1.1"
description = "A Django content management system."
optional = false
python-versions = ">=3.8"
files = [
{file = "wagtail-6.1-py3-none-any.whl", hash = "sha256:6c5ccabc5ac1701e4107241077a880f3fabd34c4ac20bdc412e8961e7b17b4a8"},
{file = "wagtail-6.1.tar.gz", hash = "sha256:ad33ed1ccad1f9f1b4faba216c6cc92ba1a2dfefdbfd97c23ffbf7db99dd93c5"},
{file = "wagtail-6.1.1-py3-none-any.whl", hash = "sha256:084f5911ddc742d4e7797cc40ea53ec6f696b06b91cd0857c1e28a944eceddda"},
{file = "wagtail-6.1.1.tar.gz", hash = "sha256:d7b6e5e09970dd74efb63953c42a26fe6c25902e2a6dca4ad7e74ae00facb394"},
]
[package.dependencies]