Compare commits

15 Commits

Author SHA1 Message Date
leander 2b8197e8a2 generate migrations for photosphere support 2026-04-15 23:44:18 +02:00
leander 3dd2c056b8 add 360 photosphere element support 2026-04-15 23:43:47 +02:00
ponas d0a886a4ae web: bump deps 2026-03-05 22:02:29 +01:00
ponas cc5b53011d dnscms: bump deps 2026-03-05 21:54:58 +01:00
ponas f769898698 dnscms: add django.contrib.postgres 2026-02-16 02:43:23 +01:00
ponas e71db3a0cc dnscms: switch from 1 to 3 gunicorn workers 2026-02-16 02:38:45 +01:00
ponas 355c0b38a5 dnscms: bump deps 2026-02-16 02:37:33 +01:00
ponas bba98fe868 web: fix missing content for accordion blocks inside page section blocks 2026-02-04 20:44:39 +01:00
ponas 978aae4fc3 web: bump deps 2026-02-04 19:59:29 +01:00
ponas ffc3a583b2 web: bump all deps 2025-12-12 15:25:53 +01:00
ponas 12aea04779 web: bump all deps, notably next to v16.0.7 to fix CVE-2025-55182 2025-12-03 21:08:44 +01:00
leander 6bcf9bbfbd fix url parameter organizer replacing first dropdown item
add organizer at the end instead of during filtering. Probably not the
optimal way to do this but works for now.
2025-11-19 23:24:08 +01:00
leander 2e4ca34f5c make association featured link in navbar 2025-11-19 23:12:45 +01:00
leander d76b16781d switch member and volunteer links in navbar 2025-11-19 23:06:04 +01:00
ponas 8942bcc9da web: allow filtering on venues and organizers with no upcoming events, reset filter if invalid 2025-11-19 21:08:56 +01:00
23 changed files with 3956 additions and 558 deletions
+1 -1
View File
@@ -37,4 +37,4 @@ USER wagtail
ENV PATH="/app/.venv/bin:$PATH" ENV PATH="/app/.venv/bin:$PATH"
RUN python manage.py collectstatic --noinput --clear RUN python manage.py collectstatic --noinput --clear
CMD ["sh", "-c", "set -xe; python manage.py migrate --noinput && gunicorn dnscms.wsgi:application"] CMD ["sh", "-c", "set -xe; python manage.py migrate --noinput && gunicorn dnscms.wsgi:application --workers 3"]
@@ -0,0 +1,492 @@
# Generated by Django 6.0.3 on 2026-04-15 20:21
import wagtail.fields
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("associations", "0025_associationpage_lead"),
]
operations = [
migrations.AlterField(
model_name="associationindex",
name="body",
field=wagtail.fields.StreamField(
[
("paragraph", 0),
("image", 4),
("image_slider", 8),
("horizontal_rule", 10),
("featured", 18),
("page_section_navigation", 19),
("accordion", 23),
("fact_box", 26),
("photo_sphere", 29),
("embed", 30),
("raw_html", 31),
],
block_lookup={
0: ("wagtail.blocks.RichTextBlock", (), {"label": "Rik tekst"}),
1: (
"wagtail.images.blocks.ImageChooserBlock",
(),
{"label": "Bilde"},
),
2: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("fullwidth", "Fullbredde"),
("bleed", "Utfallende"),
("original", "Uendret størrelse"),
],
"icon": "cup",
"label": "Bildeformat",
},
),
3: (
"wagtail.blocks.CharBlock",
(),
{"label": "Bildetekst", "max_length": 512, "required": False},
),
4: (
"wagtail.blocks.StructBlock",
[[("image", 1), ("image_format", 2), ("text", 3)]],
{},
),
5: (
"wagtail.blocks.CharBlock",
(),
{"label": "Tekst", "max_length": 512, "required": False},
),
6: (
"wagtail.blocks.StructBlock",
[[("image", 1), ("text", 5)]],
{},
),
7: (
"wagtail.blocks.ListBlock",
(6,),
{"label": "Bilder", "min_num": 1},
),
8: ("wagtail.blocks.StructBlock", [[("images", 7)]], {}),
9: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("deepBrick", "Dyp tegl"),
("neufPink", "Griserosa"),
("goldenOrange", "Gyllen oransje"),
("goldenBeige", "Gyllen beige"),
("chateauBlue", "Slottsblå"),
],
"label": "Farge",
"required": False,
},
),
10: ("wagtail.blocks.StructBlock", [[("color", 9)]], {}),
11: (
"wagtail.blocks.CharBlock",
(),
{"label": "Tittel", "max_length": 64, "required": True},
),
12: (
"wagtail.blocks.RichTextBlock",
(),
{
"features": ["bold", "italic", "link"],
"label": "Tekst",
"required": True,
},
),
13: (
"wagtail.blocks.PageChooserBlock",
(),
{"header": "Fremhevet side", "required": True},
),
14: (
"wagtail.blocks.CharBlock",
(),
{
"default": "Les mer",
"help_text": 'Lenketeksten som tar deg videre til siden. Tips: Ikke start med "Trykk her"',
"label": "Lenketekst",
"max_length": 64,
"required": True,
},
),
15: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("betongGray", "Betonggrå"),
("deepBrick", "Dyp tegl"),
("neufPink", "Griserosa"),
("goldenOrange", "Gyllen oransje"),
("goldenBeige", "Gyllen beige"),
("chateauBlue", "Slottsblå"),
],
"label": "Bakgrunnsfarge",
},
),
16: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [("left", "Venstre"), ("right", "Høyre")],
"label": "Bildeplassering",
},
),
17: (
"wagtail.images.blocks.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,
},
),
18: (
"wagtail.blocks.StructBlock",
[
[
("title", 11),
("text", 12),
("featured_page", 13),
("link_text", 14),
("background_color", 15),
("image_position", 16),
("featured_image_override", 17),
]
],
{},
),
19: ("dnscms.blocks.PageSectionNavigationBlock", (), {}),
20: (
"wagtail.blocks.CharBlock",
(),
{"label": "Overskrift", "max_length": 64, "required": True},
),
21: (
"wagtail.blocks.StructBlock",
[[("image", 1), ("image_format", 2), ("text", 3)]],
{"label": "Bilde"},
),
22: (
"wagtail.blocks.StreamBlock",
[[("paragraph", 0), ("image", 21)]],
{},
),
23: (
"wagtail.blocks.StructBlock",
[[("heading", 20), ("body", 22)]],
{},
),
24: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("betongGray", "Betonggrå"),
("deepBrick", "Dyp tegl"),
("neufPink", "Griserosa"),
("goldenOrange", "Gyllen oransje"),
("goldenBeige", "Gyllen beige"),
("chateauBlue", "Slottsblå"),
],
"label": "Bakgrunnsfarge",
"required": False,
},
),
25: (
"wagtail.blocks.RichTextBlock",
(),
{
"features": [
"bold",
"italic",
"link",
"ol",
"ul",
"h2",
"h3",
],
"label": "Innhold",
},
),
26: (
"wagtail.blocks.StructBlock",
[[("background_color", 24), ("body", 25)]],
{},
),
27: (
"wagtail.images.blocks.ImageChooserBlock",
(),
{"label": "360°-bilde"},
),
28: (
"wagtail.blocks.CharBlock",
(),
{
"help_text": "Beskrivende tittel på bildet (vises også til skjermlesere)",
"label": "Tittel",
"max_length": 256,
},
),
29: (
"wagtail.blocks.StructBlock",
[[("image", 27), ("title", 28)]],
{},
),
30: ("wagtail.embeds.blocks.EmbedBlock", (), {}),
31: ("wagtail.blocks.RawHTMLBlock", (), {}),
},
default=[("paragraph", "")],
),
),
migrations.AlterField(
model_name="associationpage",
name="body",
field=wagtail.fields.StreamField(
[
("paragraph", 0),
("image", 4),
("image_slider", 8),
("horizontal_rule", 10),
("featured", 18),
("page_section_navigation", 19),
("accordion", 23),
("fact_box", 26),
("photo_sphere", 29),
("embed", 30),
("raw_html", 31),
],
block_lookup={
0: ("wagtail.blocks.RichTextBlock", (), {"label": "Rik tekst"}),
1: (
"wagtail.images.blocks.ImageChooserBlock",
(),
{"label": "Bilde"},
),
2: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("fullwidth", "Fullbredde"),
("bleed", "Utfallende"),
("original", "Uendret størrelse"),
],
"icon": "cup",
"label": "Bildeformat",
},
),
3: (
"wagtail.blocks.CharBlock",
(),
{"label": "Bildetekst", "max_length": 512, "required": False},
),
4: (
"wagtail.blocks.StructBlock",
[[("image", 1), ("image_format", 2), ("text", 3)]],
{},
),
5: (
"wagtail.blocks.CharBlock",
(),
{"label": "Tekst", "max_length": 512, "required": False},
),
6: (
"wagtail.blocks.StructBlock",
[[("image", 1), ("text", 5)]],
{},
),
7: (
"wagtail.blocks.ListBlock",
(6,),
{"label": "Bilder", "min_num": 1},
),
8: ("wagtail.blocks.StructBlock", [[("images", 7)]], {}),
9: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("deepBrick", "Dyp tegl"),
("neufPink", "Griserosa"),
("goldenOrange", "Gyllen oransje"),
("goldenBeige", "Gyllen beige"),
("chateauBlue", "Slottsblå"),
],
"label": "Farge",
"required": False,
},
),
10: ("wagtail.blocks.StructBlock", [[("color", 9)]], {}),
11: (
"wagtail.blocks.CharBlock",
(),
{"label": "Tittel", "max_length": 64, "required": True},
),
12: (
"wagtail.blocks.RichTextBlock",
(),
{
"features": ["bold", "italic", "link"],
"label": "Tekst",
"required": True,
},
),
13: (
"wagtail.blocks.PageChooserBlock",
(),
{"header": "Fremhevet side", "required": True},
),
14: (
"wagtail.blocks.CharBlock",
(),
{
"default": "Les mer",
"help_text": 'Lenketeksten som tar deg videre til siden. Tips: Ikke start med "Trykk her"',
"label": "Lenketekst",
"max_length": 64,
"required": True,
},
),
15: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("betongGray", "Betonggrå"),
("deepBrick", "Dyp tegl"),
("neufPink", "Griserosa"),
("goldenOrange", "Gyllen oransje"),
("goldenBeige", "Gyllen beige"),
("chateauBlue", "Slottsblå"),
],
"label": "Bakgrunnsfarge",
},
),
16: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [("left", "Venstre"), ("right", "Høyre")],
"label": "Bildeplassering",
},
),
17: (
"wagtail.images.blocks.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,
},
),
18: (
"wagtail.blocks.StructBlock",
[
[
("title", 11),
("text", 12),
("featured_page", 13),
("link_text", 14),
("background_color", 15),
("image_position", 16),
("featured_image_override", 17),
]
],
{},
),
19: ("dnscms.blocks.PageSectionNavigationBlock", (), {}),
20: (
"wagtail.blocks.CharBlock",
(),
{"label": "Overskrift", "max_length": 64, "required": True},
),
21: (
"wagtail.blocks.StructBlock",
[[("image", 1), ("image_format", 2), ("text", 3)]],
{"label": "Bilde"},
),
22: (
"wagtail.blocks.StreamBlock",
[[("paragraph", 0), ("image", 21)]],
{},
),
23: (
"wagtail.blocks.StructBlock",
[[("heading", 20), ("body", 22)]],
{},
),
24: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("betongGray", "Betonggrå"),
("deepBrick", "Dyp tegl"),
("neufPink", "Griserosa"),
("goldenOrange", "Gyllen oransje"),
("goldenBeige", "Gyllen beige"),
("chateauBlue", "Slottsblå"),
],
"label": "Bakgrunnsfarge",
"required": False,
},
),
25: (
"wagtail.blocks.RichTextBlock",
(),
{
"features": [
"bold",
"italic",
"link",
"ol",
"ul",
"h2",
"h3",
],
"label": "Innhold",
},
),
26: (
"wagtail.blocks.StructBlock",
[[("background_color", 24), ("body", 25)]],
{},
),
27: (
"wagtail.images.blocks.ImageChooserBlock",
(),
{"label": "360°-bilde"},
),
28: (
"wagtail.blocks.CharBlock",
(),
{
"help_text": "Beskrivende tittel på bildet (vises også til skjermlesere)",
"label": "Tittel",
"max_length": 256,
},
),
29: (
"wagtail.blocks.StructBlock",
[[("image", 27), ("title", 28)]],
{},
),
30: ("wagtail.embeds.blocks.EmbedBlock", (), {}),
31: ("wagtail.blocks.RawHTMLBlock", (), {}),
},
default=[("paragraph", "")],
),
),
]
@@ -0,0 +1,289 @@
# Generated by Django 6.0.3 on 2026-04-15 20:21
import wagtail.fields
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("contacts", "0017_alter_contactindex_body"),
]
operations = [
migrations.AlterField(
model_name="contactindex",
name="body",
field=wagtail.fields.StreamField(
[
("paragraph", 0),
("image", 4),
("image_slider", 8),
("horizontal_rule", 10),
("featured", 18),
("page_section_navigation", 19),
("accordion", 23),
("fact_box", 26),
("photo_sphere", 29),
("embed", 30),
("raw_html", 31),
("contact_section", 39),
],
block_lookup={
0: ("wagtail.blocks.RichTextBlock", (), {"label": "Rik tekst"}),
1: (
"wagtail.images.blocks.ImageChooserBlock",
(),
{"label": "Bilde"},
),
2: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("fullwidth", "Fullbredde"),
("bleed", "Utfallende"),
("original", "Uendret størrelse"),
],
"icon": "cup",
"label": "Bildeformat",
},
),
3: (
"wagtail.blocks.CharBlock",
(),
{"label": "Bildetekst", "max_length": 512, "required": False},
),
4: (
"wagtail.blocks.StructBlock",
[[("image", 1), ("image_format", 2), ("text", 3)]],
{},
),
5: (
"wagtail.blocks.CharBlock",
(),
{"label": "Tekst", "max_length": 512, "required": False},
),
6: (
"wagtail.blocks.StructBlock",
[[("image", 1), ("text", 5)]],
{},
),
7: (
"wagtail.blocks.ListBlock",
(6,),
{"label": "Bilder", "min_num": 1},
),
8: ("wagtail.blocks.StructBlock", [[("images", 7)]], {}),
9: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("deepBrick", "Dyp tegl"),
("neufPink", "Griserosa"),
("goldenOrange", "Gyllen oransje"),
("goldenBeige", "Gyllen beige"),
("chateauBlue", "Slottsblå"),
],
"label": "Farge",
"required": False,
},
),
10: ("wagtail.blocks.StructBlock", [[("color", 9)]], {}),
11: (
"wagtail.blocks.CharBlock",
(),
{"label": "Tittel", "max_length": 64, "required": True},
),
12: (
"wagtail.blocks.RichTextBlock",
(),
{
"features": ["bold", "italic", "link"],
"label": "Tekst",
"required": True,
},
),
13: (
"wagtail.blocks.PageChooserBlock",
(),
{"header": "Fremhevet side", "required": True},
),
14: (
"wagtail.blocks.CharBlock",
(),
{
"default": "Les mer",
"help_text": 'Lenketeksten som tar deg videre til siden. Tips: Ikke start med "Trykk her"',
"label": "Lenketekst",
"max_length": 64,
"required": True,
},
),
15: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("betongGray", "Betonggrå"),
("deepBrick", "Dyp tegl"),
("neufPink", "Griserosa"),
("goldenOrange", "Gyllen oransje"),
("goldenBeige", "Gyllen beige"),
("chateauBlue", "Slottsblå"),
],
"label": "Bakgrunnsfarge",
},
),
16: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [("left", "Venstre"), ("right", "Høyre")],
"label": "Bildeplassering",
},
),
17: (
"wagtail.images.blocks.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,
},
),
18: (
"wagtail.blocks.StructBlock",
[
[
("title", 11),
("text", 12),
("featured_page", 13),
("link_text", 14),
("background_color", 15),
("image_position", 16),
("featured_image_override", 17),
]
],
{},
),
19: ("dnscms.blocks.PageSectionNavigationBlock", (), {}),
20: (
"wagtail.blocks.CharBlock",
(),
{"label": "Overskrift", "max_length": 64, "required": True},
),
21: (
"wagtail.blocks.StructBlock",
[[("image", 1), ("image_format", 2), ("text", 3)]],
{"label": "Bilde"},
),
22: (
"wagtail.blocks.StreamBlock",
[[("paragraph", 0), ("image", 21)]],
{},
),
23: (
"wagtail.blocks.StructBlock",
[[("heading", 20), ("body", 22)]],
{},
),
24: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("betongGray", "Betonggrå"),
("deepBrick", "Dyp tegl"),
("neufPink", "Griserosa"),
("goldenOrange", "Gyllen oransje"),
("goldenBeige", "Gyllen beige"),
("chateauBlue", "Slottsblå"),
],
"label": "Bakgrunnsfarge",
"required": False,
},
),
25: (
"wagtail.blocks.RichTextBlock",
(),
{
"features": [
"bold",
"italic",
"link",
"ol",
"ul",
"h2",
"h3",
],
"label": "Innhold",
},
),
26: (
"wagtail.blocks.StructBlock",
[[("background_color", 24), ("body", 25)]],
{},
),
27: (
"wagtail.images.blocks.ImageChooserBlock",
(),
{"label": "360°-bilde"},
),
28: (
"wagtail.blocks.CharBlock",
(),
{
"help_text": "Beskrivende tittel på bildet (vises også til skjermlesere)",
"label": "Tittel",
"max_length": 256,
},
),
29: (
"wagtail.blocks.StructBlock",
[[("image", 27), ("title", 28)]],
{},
),
30: ("wagtail.embeds.blocks.EmbedBlock", (), {}),
31: ("wagtail.blocks.RawHTMLBlock", (), {}),
32: (
"wagtail.blocks.RichTextBlock",
(),
{"features": ["bold", "italic", "link"]},
),
33: (
"wagtail.snippets.blocks.SnippetChooserBlock",
("contacts.ContactEntity",),
{},
),
34: ("wagtail.blocks.StructBlock", [[("contact_entity", 33)]], {}),
35: (
"contacts.blocks.ContactListBlock",
(34,),
{"label": "Liste med kontaktpunkter"},
),
36: (
"wagtail.blocks.StreamBlock",
[[("contact_entity_list", 35)]],
{"required": False},
),
37: (
"wagtail.blocks.StructBlock",
[[("title", 11), ("text", 32), ("blocks", 36)]],
{"label": "Kontaktunderseksjon"},
),
38: (
"wagtail.blocks.StreamBlock",
[[("contact_entity_list", 35), ("contact_subsection", 37)]],
{"required": False},
),
39: (
"wagtail.blocks.StructBlock",
[[("title", 11), ("text", 32), ("blocks", 38)]],
{"label": "Kontaktseksjon"},
),
},
),
),
]
+20
View File
@@ -203,6 +203,25 @@ class AccordionBlock(blocks.StructBlock):
label = "Trekkspill" label = "Trekkspill"
@register_streamfield_block
class PhotoSphereBlock(blocks.StructBlock):
image = ImageChooserBlock(label="360°-bilde")
title = blocks.CharBlock(
max_length=512,
label="Bildetekst",
required=False,
)
graphql_fields = [
GraphQLImage("image", required=True),
GraphQLString("title", required=False),
]
class Meta:
icon = "globe"
label = "360°-bilde"
@register_streamfield_block @register_streamfield_block
class FactBoxBlock(blocks.StructBlock): class FactBoxBlock(blocks.StructBlock):
background_color = blocks.ChoiceBlock( background_color = blocks.ChoiceBlock(
@@ -234,6 +253,7 @@ BASE_BLOCKS = [
("page_section_navigation", PageSectionNavigationBlock()), ("page_section_navigation", PageSectionNavigationBlock()),
("accordion", AccordionBlock()), ("accordion", AccordionBlock()),
("fact_box", FactBoxBlock()), ("fact_box", FactBoxBlock()),
("photo_sphere", PhotoSphereBlock()),
("embed", EmbedBlock()), ("embed", EmbedBlock()),
("raw_html", blocks.RawHTMLBlock()), ("raw_html", blocks.RawHTMLBlock()),
] ]
+1
View File
@@ -61,6 +61,7 @@ INSTALLED_APPS = [
"django.contrib.sessions", "django.contrib.sessions",
"django.contrib.messages", "django.contrib.messages",
"django.contrib.staticfiles", "django.contrib.staticfiles",
"django.contrib.postgres",
] ]
MIDDLEWARE = [ MIDDLEWARE = [
@@ -0,0 +1,253 @@
# Generated by Django 6.0.3 on 2026-04-15 20:21
import wagtail.fields
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("events", "0053_eventpage_lead"),
]
operations = [
migrations.AlterField(
model_name="eventpage",
name="body",
field=wagtail.fields.StreamField(
[
("paragraph", 0),
("image", 4),
("image_slider", 8),
("horizontal_rule", 10),
("featured", 18),
("page_section_navigation", 19),
("accordion", 23),
("fact_box", 26),
("photo_sphere", 29),
("embed", 30),
("raw_html", 31),
],
block_lookup={
0: ("wagtail.blocks.RichTextBlock", (), {"label": "Rik tekst"}),
1: (
"wagtail.images.blocks.ImageChooserBlock",
(),
{"label": "Bilde"},
),
2: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("fullwidth", "Fullbredde"),
("bleed", "Utfallende"),
("original", "Uendret størrelse"),
],
"icon": "cup",
"label": "Bildeformat",
},
),
3: (
"wagtail.blocks.CharBlock",
(),
{"label": "Bildetekst", "max_length": 512, "required": False},
),
4: (
"wagtail.blocks.StructBlock",
[[("image", 1), ("image_format", 2), ("text", 3)]],
{},
),
5: (
"wagtail.blocks.CharBlock",
(),
{"label": "Tekst", "max_length": 512, "required": False},
),
6: (
"wagtail.blocks.StructBlock",
[[("image", 1), ("text", 5)]],
{},
),
7: (
"wagtail.blocks.ListBlock",
(6,),
{"label": "Bilder", "min_num": 1},
),
8: ("wagtail.blocks.StructBlock", [[("images", 7)]], {}),
9: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("deepBrick", "Dyp tegl"),
("neufPink", "Griserosa"),
("goldenOrange", "Gyllen oransje"),
("goldenBeige", "Gyllen beige"),
("chateauBlue", "Slottsblå"),
],
"label": "Farge",
"required": False,
},
),
10: ("wagtail.blocks.StructBlock", [[("color", 9)]], {}),
11: (
"wagtail.blocks.CharBlock",
(),
{"label": "Tittel", "max_length": 64, "required": True},
),
12: (
"wagtail.blocks.RichTextBlock",
(),
{
"features": ["bold", "italic", "link"],
"label": "Tekst",
"required": True,
},
),
13: (
"wagtail.blocks.PageChooserBlock",
(),
{"header": "Fremhevet side", "required": True},
),
14: (
"wagtail.blocks.CharBlock",
(),
{
"default": "Les mer",
"help_text": 'Lenketeksten som tar deg videre til siden. Tips: Ikke start med "Trykk her"',
"label": "Lenketekst",
"max_length": 64,
"required": True,
},
),
15: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("betongGray", "Betonggrå"),
("deepBrick", "Dyp tegl"),
("neufPink", "Griserosa"),
("goldenOrange", "Gyllen oransje"),
("goldenBeige", "Gyllen beige"),
("chateauBlue", "Slottsblå"),
],
"label": "Bakgrunnsfarge",
},
),
16: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [("left", "Venstre"), ("right", "Høyre")],
"label": "Bildeplassering",
},
),
17: (
"wagtail.images.blocks.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,
},
),
18: (
"wagtail.blocks.StructBlock",
[
[
("title", 11),
("text", 12),
("featured_page", 13),
("link_text", 14),
("background_color", 15),
("image_position", 16),
("featured_image_override", 17),
]
],
{},
),
19: ("dnscms.blocks.PageSectionNavigationBlock", (), {}),
20: (
"wagtail.blocks.CharBlock",
(),
{"label": "Overskrift", "max_length": 64, "required": True},
),
21: (
"wagtail.blocks.StructBlock",
[[("image", 1), ("image_format", 2), ("text", 3)]],
{"label": "Bilde"},
),
22: (
"wagtail.blocks.StreamBlock",
[[("paragraph", 0), ("image", 21)]],
{},
),
23: (
"wagtail.blocks.StructBlock",
[[("heading", 20), ("body", 22)]],
{},
),
24: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("betongGray", "Betonggrå"),
("deepBrick", "Dyp tegl"),
("neufPink", "Griserosa"),
("goldenOrange", "Gyllen oransje"),
("goldenBeige", "Gyllen beige"),
("chateauBlue", "Slottsblå"),
],
"label": "Bakgrunnsfarge",
"required": False,
},
),
25: (
"wagtail.blocks.RichTextBlock",
(),
{
"features": [
"bold",
"italic",
"link",
"ol",
"ul",
"h2",
"h3",
],
"label": "Innhold",
},
),
26: (
"wagtail.blocks.StructBlock",
[[("background_color", 24), ("body", 25)]],
{},
),
27: (
"wagtail.images.blocks.ImageChooserBlock",
(),
{"label": "360°-bilde"},
),
28: (
"wagtail.blocks.CharBlock",
(),
{
"help_text": "Beskrivende tittel på bildet (vises også til skjermlesere)",
"label": "Tittel",
"max_length": 256,
},
),
29: (
"wagtail.blocks.StructBlock",
[[("image", 27), ("title", 28)]],
{},
),
30: ("wagtail.embeds.blocks.EmbedBlock", (), {}),
31: ("wagtail.blocks.RawHTMLBlock", (), {}),
},
default=[("paragraph", "")],
),
),
]
@@ -0,0 +1,308 @@
# Generated by Django 6.0.3 on 2026-04-15 20:21
import wagtail.fields
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("generic", "0026_alter_genericpage_body"),
]
operations = [
migrations.AlterField(
model_name="genericpage",
name="body",
field=wagtail.fields.StreamField(
[
("paragraph", 0),
("image", 4),
("image_slider", 8),
("horizontal_rule", 10),
("featured", 18),
("page_section_navigation", 19),
("accordion", 23),
("fact_box", 26),
("photo_sphere", 29),
("embed", 30),
("raw_html", 31),
("page_section", 36),
],
block_lookup={
0: ("wagtail.blocks.RichTextBlock", (), {"label": "Rik tekst"}),
1: (
"wagtail.images.blocks.ImageChooserBlock",
(),
{"label": "Bilde"},
),
2: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("fullwidth", "Fullbredde"),
("bleed", "Utfallende"),
("original", "Uendret størrelse"),
],
"icon": "cup",
"label": "Bildeformat",
},
),
3: (
"wagtail.blocks.CharBlock",
(),
{"label": "Bildetekst", "max_length": 512, "required": False},
),
4: (
"wagtail.blocks.StructBlock",
[[("image", 1), ("image_format", 2), ("text", 3)]],
{},
),
5: (
"wagtail.blocks.CharBlock",
(),
{"label": "Tekst", "max_length": 512, "required": False},
),
6: (
"wagtail.blocks.StructBlock",
[[("image", 1), ("text", 5)]],
{},
),
7: (
"wagtail.blocks.ListBlock",
(6,),
{"label": "Bilder", "min_num": 1},
),
8: ("wagtail.blocks.StructBlock", [[("images", 7)]], {}),
9: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("deepBrick", "Dyp tegl"),
("neufPink", "Griserosa"),
("goldenOrange", "Gyllen oransje"),
("goldenBeige", "Gyllen beige"),
("chateauBlue", "Slottsblå"),
],
"label": "Farge",
"required": False,
},
),
10: ("wagtail.blocks.StructBlock", [[("color", 9)]], {}),
11: (
"wagtail.blocks.CharBlock",
(),
{"label": "Tittel", "max_length": 64, "required": True},
),
12: (
"wagtail.blocks.RichTextBlock",
(),
{
"features": ["bold", "italic", "link"],
"label": "Tekst",
"required": True,
},
),
13: (
"wagtail.blocks.PageChooserBlock",
(),
{"header": "Fremhevet side", "required": True},
),
14: (
"wagtail.blocks.CharBlock",
(),
{
"default": "Les mer",
"help_text": 'Lenketeksten som tar deg videre til siden. Tips: Ikke start med "Trykk her"',
"label": "Lenketekst",
"max_length": 64,
"required": True,
},
),
15: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("betongGray", "Betonggrå"),
("deepBrick", "Dyp tegl"),
("neufPink", "Griserosa"),
("goldenOrange", "Gyllen oransje"),
("goldenBeige", "Gyllen beige"),
("chateauBlue", "Slottsblå"),
],
"label": "Bakgrunnsfarge",
},
),
16: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [("left", "Venstre"), ("right", "Høyre")],
"label": "Bildeplassering",
},
),
17: (
"wagtail.images.blocks.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,
},
),
18: (
"wagtail.blocks.StructBlock",
[
[
("title", 11),
("text", 12),
("featured_page", 13),
("link_text", 14),
("background_color", 15),
("image_position", 16),
("featured_image_override", 17),
]
],
{},
),
19: ("dnscms.blocks.PageSectionNavigationBlock", (), {}),
20: (
"wagtail.blocks.CharBlock",
(),
{"label": "Overskrift", "max_length": 64, "required": True},
),
21: (
"wagtail.blocks.StructBlock",
[[("image", 1), ("image_format", 2), ("text", 3)]],
{"label": "Bilde"},
),
22: (
"wagtail.blocks.StreamBlock",
[[("paragraph", 0), ("image", 21)]],
{},
),
23: (
"wagtail.blocks.StructBlock",
[[("heading", 20), ("body", 22)]],
{},
),
24: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("betongGray", "Betonggrå"),
("deepBrick", "Dyp tegl"),
("neufPink", "Griserosa"),
("goldenOrange", "Gyllen oransje"),
("goldenBeige", "Gyllen beige"),
("chateauBlue", "Slottsblå"),
],
"label": "Bakgrunnsfarge",
"required": False,
},
),
25: (
"wagtail.blocks.RichTextBlock",
(),
{
"features": [
"bold",
"italic",
"link",
"ol",
"ul",
"h2",
"h3",
],
"label": "Innhold",
},
),
26: (
"wagtail.blocks.StructBlock",
[[("background_color", 24), ("body", 25)]],
{},
),
27: (
"wagtail.images.blocks.ImageChooserBlock",
(),
{"label": "360°-bilde"},
),
28: (
"wagtail.blocks.CharBlock",
(),
{
"help_text": "Beskrivende tittel på bildet (vises også til skjermlesere)",
"label": "Tittel",
"max_length": 256,
},
),
29: (
"wagtail.blocks.StructBlock",
[[("image", 27), ("title", 28)]],
{},
),
30: ("wagtail.embeds.blocks.EmbedBlock", (), {}),
31: ("wagtail.blocks.RawHTMLBlock", (), {}),
32: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("pigHeadLogo", "Grisehodelogo"),
("key", "Nøkkel"),
("ticket", "Billett"),
("shield", "Skjold"),
("bottle", "Flaske"),
("lostProperty", "Hittegods"),
("pigsty", "Grisebinge"),
("wheelchair", "Rullestol"),
("clock", "Klokke"),
("parking", "Parkering"),
("coins", "Mynter"),
],
"label": "Ikon",
"required": False,
},
),
33: ("dnscms.blocks.NeufAddressSectionBlock", (), {}),
34: ("dnscms.blocks.OpeningHoursSectionBlock", (), {}),
35: (
"wagtail.blocks.StreamBlock",
[
[
("paragraph", 0),
("image", 4),
("image_slider", 8),
("horizontal_rule", 10),
("featured", 18),
("accordion", 23),
("fact_box", 26),
("photo_sphere", 29),
("embed", 30),
("raw_html", 31),
("neuf_address", 33),
("opening_hours", 34),
]
],
{},
),
36: (
"wagtail.blocks.StructBlock",
[
[
("title", 11),
("background_color", 24),
("icon", 32),
("body", 35),
]
],
{},
),
},
),
),
]
@@ -0,0 +1,253 @@
# Generated by Django 6.0.3 on 2026-04-15 20:21
import wagtail.fields
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("news", "0018_newspage_wp_block_json_newspage_wp_link_and_more"),
]
operations = [
migrations.AlterField(
model_name="newspage",
name="body",
field=wagtail.fields.StreamField(
[
("paragraph", 0),
("image", 4),
("image_slider", 8),
("horizontal_rule", 10),
("featured", 18),
("page_section_navigation", 19),
("accordion", 23),
("fact_box", 26),
("photo_sphere", 29),
("embed", 30),
("raw_html", 31),
],
block_lookup={
0: ("wagtail.blocks.RichTextBlock", (), {"label": "Rik tekst"}),
1: (
"wagtail.images.blocks.ImageChooserBlock",
(),
{"label": "Bilde"},
),
2: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("fullwidth", "Fullbredde"),
("bleed", "Utfallende"),
("original", "Uendret størrelse"),
],
"icon": "cup",
"label": "Bildeformat",
},
),
3: (
"wagtail.blocks.CharBlock",
(),
{"label": "Bildetekst", "max_length": 512, "required": False},
),
4: (
"wagtail.blocks.StructBlock",
[[("image", 1), ("image_format", 2), ("text", 3)]],
{},
),
5: (
"wagtail.blocks.CharBlock",
(),
{"label": "Tekst", "max_length": 512, "required": False},
),
6: (
"wagtail.blocks.StructBlock",
[[("image", 1), ("text", 5)]],
{},
),
7: (
"wagtail.blocks.ListBlock",
(6,),
{"label": "Bilder", "min_num": 1},
),
8: ("wagtail.blocks.StructBlock", [[("images", 7)]], {}),
9: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("deepBrick", "Dyp tegl"),
("neufPink", "Griserosa"),
("goldenOrange", "Gyllen oransje"),
("goldenBeige", "Gyllen beige"),
("chateauBlue", "Slottsblå"),
],
"label": "Farge",
"required": False,
},
),
10: ("wagtail.blocks.StructBlock", [[("color", 9)]], {}),
11: (
"wagtail.blocks.CharBlock",
(),
{"label": "Tittel", "max_length": 64, "required": True},
),
12: (
"wagtail.blocks.RichTextBlock",
(),
{
"features": ["bold", "italic", "link"],
"label": "Tekst",
"required": True,
},
),
13: (
"wagtail.blocks.PageChooserBlock",
(),
{"header": "Fremhevet side", "required": True},
),
14: (
"wagtail.blocks.CharBlock",
(),
{
"default": "Les mer",
"help_text": 'Lenketeksten som tar deg videre til siden. Tips: Ikke start med "Trykk her"',
"label": "Lenketekst",
"max_length": 64,
"required": True,
},
),
15: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("betongGray", "Betonggrå"),
("deepBrick", "Dyp tegl"),
("neufPink", "Griserosa"),
("goldenOrange", "Gyllen oransje"),
("goldenBeige", "Gyllen beige"),
("chateauBlue", "Slottsblå"),
],
"label": "Bakgrunnsfarge",
},
),
16: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [("left", "Venstre"), ("right", "Høyre")],
"label": "Bildeplassering",
},
),
17: (
"wagtail.images.blocks.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,
},
),
18: (
"wagtail.blocks.StructBlock",
[
[
("title", 11),
("text", 12),
("featured_page", 13),
("link_text", 14),
("background_color", 15),
("image_position", 16),
("featured_image_override", 17),
]
],
{},
),
19: ("dnscms.blocks.PageSectionNavigationBlock", (), {}),
20: (
"wagtail.blocks.CharBlock",
(),
{"label": "Overskrift", "max_length": 64, "required": True},
),
21: (
"wagtail.blocks.StructBlock",
[[("image", 1), ("image_format", 2), ("text", 3)]],
{"label": "Bilde"},
),
22: (
"wagtail.blocks.StreamBlock",
[[("paragraph", 0), ("image", 21)]],
{},
),
23: (
"wagtail.blocks.StructBlock",
[[("heading", 20), ("body", 22)]],
{},
),
24: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("betongGray", "Betonggrå"),
("deepBrick", "Dyp tegl"),
("neufPink", "Griserosa"),
("goldenOrange", "Gyllen oransje"),
("goldenBeige", "Gyllen beige"),
("chateauBlue", "Slottsblå"),
],
"label": "Bakgrunnsfarge",
"required": False,
},
),
25: (
"wagtail.blocks.RichTextBlock",
(),
{
"features": [
"bold",
"italic",
"link",
"ol",
"ul",
"h2",
"h3",
],
"label": "Innhold",
},
),
26: (
"wagtail.blocks.StructBlock",
[[("background_color", 24), ("body", 25)]],
{},
),
27: (
"wagtail.images.blocks.ImageChooserBlock",
(),
{"label": "360°-bilde"},
),
28: (
"wagtail.blocks.CharBlock",
(),
{
"help_text": "Beskrivende tittel på bildet (vises også til skjermlesere)",
"label": "Tittel",
"max_length": 256,
},
),
29: (
"wagtail.blocks.StructBlock",
[[("image", 27), ("title", 28)]],
{},
),
30: ("wagtail.embeds.blocks.EmbedBlock", (), {}),
31: ("wagtail.blocks.RawHTMLBlock", (), {}),
},
default=[("paragraph", "")],
),
),
]
+5 -5
View File
@@ -6,18 +6,18 @@ authors = [{ name = "EDB", email = "edb@neuf.no" }]
requires-python = ">=3.14, <3.15" requires-python = ">=3.14, <3.15"
readme = "README.md" readme = "README.md"
dependencies = [ dependencies = [
"wagtail>=7.2.0", "wagtail>=7.3.1",
"wagtail-grapple>=0.29.0", "wagtail-grapple>=0.29.0",
"django>=5.2.8", "django>=6.0.3",
"django-extensions>=4.1", "django-extensions>=4.1",
"psycopg2-binary>=2.9.11,<3", "psycopg2-binary>=2.9.11,<3",
"gunicorn>=23.0.0", "gunicorn>=25.1.0",
"whitenoise>=6.11.0", "whitenoise>=6.12.0",
] ]
[dependency-groups] [dependency-groups]
dev = [ dev = [
"ruff>=0.14.5", "ruff>=0.15.1",
] ]
[tool.uv] [tool.uv]
@@ -0,0 +1,252 @@
# Generated by Django 6.0.3 on 2026-04-15 20:21
import wagtail.fields
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("sponsors", "0001_initial"),
]
operations = [
migrations.AlterField(
model_name="sponsorspage",
name="body",
field=wagtail.fields.StreamField(
[
("paragraph", 0),
("image", 4),
("image_slider", 8),
("horizontal_rule", 10),
("featured", 18),
("page_section_navigation", 19),
("accordion", 23),
("fact_box", 26),
("photo_sphere", 29),
("embed", 30),
("raw_html", 31),
],
block_lookup={
0: ("wagtail.blocks.RichTextBlock", (), {"label": "Rik tekst"}),
1: (
"wagtail.images.blocks.ImageChooserBlock",
(),
{"label": "Bilde"},
),
2: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("fullwidth", "Fullbredde"),
("bleed", "Utfallende"),
("original", "Uendret størrelse"),
],
"icon": "cup",
"label": "Bildeformat",
},
),
3: (
"wagtail.blocks.CharBlock",
(),
{"label": "Bildetekst", "max_length": 512, "required": False},
),
4: (
"wagtail.blocks.StructBlock",
[[("image", 1), ("image_format", 2), ("text", 3)]],
{},
),
5: (
"wagtail.blocks.CharBlock",
(),
{"label": "Tekst", "max_length": 512, "required": False},
),
6: (
"wagtail.blocks.StructBlock",
[[("image", 1), ("text", 5)]],
{},
),
7: (
"wagtail.blocks.ListBlock",
(6,),
{"label": "Bilder", "min_num": 1},
),
8: ("wagtail.blocks.StructBlock", [[("images", 7)]], {}),
9: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("deepBrick", "Dyp tegl"),
("neufPink", "Griserosa"),
("goldenOrange", "Gyllen oransje"),
("goldenBeige", "Gyllen beige"),
("chateauBlue", "Slottsblå"),
],
"label": "Farge",
"required": False,
},
),
10: ("wagtail.blocks.StructBlock", [[("color", 9)]], {}),
11: (
"wagtail.blocks.CharBlock",
(),
{"label": "Tittel", "max_length": 64, "required": True},
),
12: (
"wagtail.blocks.RichTextBlock",
(),
{
"features": ["bold", "italic", "link"],
"label": "Tekst",
"required": True,
},
),
13: (
"wagtail.blocks.PageChooserBlock",
(),
{"header": "Fremhevet side", "required": True},
),
14: (
"wagtail.blocks.CharBlock",
(),
{
"default": "Les mer",
"help_text": 'Lenketeksten som tar deg videre til siden. Tips: Ikke start med "Trykk her"',
"label": "Lenketekst",
"max_length": 64,
"required": True,
},
),
15: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("betongGray", "Betonggrå"),
("deepBrick", "Dyp tegl"),
("neufPink", "Griserosa"),
("goldenOrange", "Gyllen oransje"),
("goldenBeige", "Gyllen beige"),
("chateauBlue", "Slottsblå"),
],
"label": "Bakgrunnsfarge",
},
),
16: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [("left", "Venstre"), ("right", "Høyre")],
"label": "Bildeplassering",
},
),
17: (
"wagtail.images.blocks.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,
},
),
18: (
"wagtail.blocks.StructBlock",
[
[
("title", 11),
("text", 12),
("featured_page", 13),
("link_text", 14),
("background_color", 15),
("image_position", 16),
("featured_image_override", 17),
]
],
{},
),
19: ("dnscms.blocks.PageSectionNavigationBlock", (), {}),
20: (
"wagtail.blocks.CharBlock",
(),
{"label": "Overskrift", "max_length": 64, "required": True},
),
21: (
"wagtail.blocks.StructBlock",
[[("image", 1), ("image_format", 2), ("text", 3)]],
{"label": "Bilde"},
),
22: (
"wagtail.blocks.StreamBlock",
[[("paragraph", 0), ("image", 21)]],
{},
),
23: (
"wagtail.blocks.StructBlock",
[[("heading", 20), ("body", 22)]],
{},
),
24: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("betongGray", "Betonggrå"),
("deepBrick", "Dyp tegl"),
("neufPink", "Griserosa"),
("goldenOrange", "Gyllen oransje"),
("goldenBeige", "Gyllen beige"),
("chateauBlue", "Slottsblå"),
],
"label": "Bakgrunnsfarge",
"required": False,
},
),
25: (
"wagtail.blocks.RichTextBlock",
(),
{
"features": [
"bold",
"italic",
"link",
"ol",
"ul",
"h2",
"h3",
],
"label": "Innhold",
},
),
26: (
"wagtail.blocks.StructBlock",
[[("background_color", 24), ("body", 25)]],
{},
),
27: (
"wagtail.images.blocks.ImageChooserBlock",
(),
{"label": "360°-bilde"},
),
28: (
"wagtail.blocks.CharBlock",
(),
{
"help_text": "Beskrivende tittel på bildet (vises også til skjermlesere)",
"label": "Tittel",
"max_length": 256,
},
),
29: (
"wagtail.blocks.StructBlock",
[[("image", 27), ("title", 28)]],
{},
),
30: ("wagtail.embeds.blocks.EmbedBlock", (), {}),
31: ("wagtail.blocks.RawHTMLBlock", (), {}),
},
),
),
]
+42 -43
View File
@@ -73,16 +73,16 @@ wheels = [
[[package]] [[package]]
name = "django" name = "django"
version = "5.2.8" version = "6.0.3"
source = { registry = "https://pypi.org/simple" } source = { registry = "https://pypi.org/simple" }
dependencies = [ dependencies = [
{ name = "asgiref" }, { name = "asgiref" },
{ name = "sqlparse" }, { name = "sqlparse" },
{ name = "tzdata", marker = "sys_platform == 'win32'" }, { name = "tzdata", marker = "sys_platform == 'win32'" },
] ]
sdist = { url = "https://files.pythonhosted.org/packages/05/a2/933dbbb3dd9990494960f6e64aca2af4c0745b63b7113f59a822df92329e/django-5.2.8.tar.gz", hash = "sha256:23254866a5bb9a2cfa6004e8b809ec6246eba4b58a7589bc2772f1bcc8456c7f", size = 10849032, upload-time = "2025-11-05T14:07:32.778Z" } sdist = { url = "https://files.pythonhosted.org/packages/80/e1/894115c6bd70e2c8b66b0c40a3c367d83a5a48c034a4d904d31b62f7c53a/django-6.0.3.tar.gz", hash = "sha256:90be765ee756af8a6cbd6693e56452404b5ad15294f4d5e40c0a55a0f4870fe1", size = 10872701, upload-time = "2026-03-03T13:55:15.026Z" }
wheels = [ wheels = [
{ url = "https://files.pythonhosted.org/packages/5e/3d/a035a4ee9b1d4d4beee2ae6e8e12fe6dee5514b21f62504e22efcbd9fb46/django-5.2.8-py3-none-any.whl", hash = "sha256:37e687f7bd73ddf043e2b6b97cfe02fcbb11f2dbb3adccc6a2b18c6daa054d7f", size = 8289692, upload-time = "2025-11-05T14:07:28.761Z" }, { url = "https://files.pythonhosted.org/packages/72/b1/23f2556967c45e34d3d3cf032eb1bd3ef925ee458667fb99052a0b3ea3a6/django-6.0.3-py3-none-any.whl", hash = "sha256:2e5974441491ddb34c3f13d5e7a9f97b07ba03bf70234c0a9c68b79bbb235bc3", size = 8358527, upload-time = "2026-03-03T13:55:10.552Z" },
] ]
[[package]] [[package]]
@@ -111,14 +111,14 @@ wheels = [
[[package]] [[package]]
name = "django-modelcluster" name = "django-modelcluster"
version = "6.4" version = "6.4.1"
source = { registry = "https://pypi.org/simple" } source = { registry = "https://pypi.org/simple" }
dependencies = [ dependencies = [
{ name = "django" }, { name = "django" },
] ]
sdist = { url = "https://files.pythonhosted.org/packages/74/6a/08b0c902916d401b59d89f355949ef98e539d6abc6029138d819eb55d702/django-modelcluster-6.4.tar.gz", hash = "sha256:0102d00e6b884721ba21e32edb716548e0dead7880e130aa2e04854bd384a42f", size = 28966, upload-time = "2024-12-18T18:24:27.447Z" } sdist = { url = "https://files.pythonhosted.org/packages/5b/f7/51efcea27d74665230be07b63e631e16204893ef32338a0e671c5ee0cd40/django_modelcluster-6.4.1.tar.gz", hash = "sha256:e736fcee925f83b63218dbf9c869ab50618b0f5e98869a5aa497f7a5331aa263", size = 29029, upload-time = "2025-12-04T12:21:41.907Z" }
wheels = [ wheels = [
{ url = "https://files.pythonhosted.org/packages/60/c3/74539a9481e9311393e16d8f2d880f384e43c1535c05e0fa949b2fe487ef/django_modelcluster-6.4-py2.py3-none-any.whl", hash = "sha256:839b0ddb4a1a6f5fc7d9f2f029614a84350b41315bdb80a9c8b755baaa2297f2", size = 29041, upload-time = "2024-12-18T18:24:24.95Z" }, { url = "https://files.pythonhosted.org/packages/a5/e4/ec99d52aa04e204e938564b603f4591e2e82e236ed59af664fee35179e75/django_modelcluster-6.4.1-py2.py3-none-any.whl", hash = "sha256:ccc190cd9e22c24900ea2410bff64d444d48f43f0f4aedeed0f6cd94e2536698", size = 29315, upload-time = "2025-12-04T12:21:39.911Z" },
] ]
[[package]] [[package]]
@@ -160,16 +160,16 @@ wheels = [
[[package]] [[package]]
name = "django-tasks" name = "django-tasks"
version = "0.8.1" version = "0.9.0"
source = { registry = "https://pypi.org/simple" } source = { registry = "https://pypi.org/simple" }
dependencies = [ dependencies = [
{ name = "django" }, { name = "django" },
{ name = "django-stubs-ext" }, { name = "django-stubs-ext" },
{ name = "typing-extensions" }, { name = "typing-extensions" },
] ]
sdist = { url = "https://files.pythonhosted.org/packages/ce/d9/3670506bf2a5173310ec221cc7d24585e0d91627d86c1f0a6fbe243fbb4a/django_tasks-0.8.1.tar.gz", hash = "sha256:32673a9f56108ac1ea4664dc62580e5fc3536dd40858b38fd3b6a099913244b7", size = 31407, upload-time = "2025-07-04T15:51:59.68Z" } sdist = { url = "https://files.pythonhosted.org/packages/60/b1/064645bf246a1f5b46d9638755b1869ea44a6d05e7c7c12841fddebb71f6/django_tasks-0.9.0.tar.gz", hash = "sha256:971b3829efeee68147f7deced8d21b907131b11ec7953af83eb94b11f128a24d", size = 32343, upload-time = "2025-10-17T16:21:08.58Z" }
wheels = [ wheels = [
{ url = "https://files.pythonhosted.org/packages/c2/56/da9b5df9bad6322d8a2cf38a60ecaa834fc5a9ee995a9647d2e87708ca73/django_tasks-0.8.1-py3-none-any.whl", hash = "sha256:5323f3858f7ea99d899a772b832098d8d694444b291c24f1e0ed5446272b880b", size = 43085, upload-time = "2025-07-04T15:51:58.087Z" }, { url = "https://files.pythonhosted.org/packages/71/e1/ce539ce1e21be71696649f84b6dbd508b2c0b89b559a6e620478bb126f7c/django_tasks-0.9.0-py3-none-any.whl", hash = "sha256:fddc344934a605d9eafa08ac8ba32c0cde9da23ef534e03a41f09fa0417b535a", size = 44057, upload-time = "2025-10-17T16:21:07.283Z" },
] ]
[[package]] [[package]]
@@ -217,17 +217,17 @@ dev = [
[package.metadata] [package.metadata]
requires-dist = [ requires-dist = [
{ name = "django", specifier = ">=5.2.8" }, { name = "django", specifier = ">=6.0.3" },
{ name = "django-extensions", specifier = ">=4.1" }, { name = "django-extensions", specifier = ">=4.1" },
{ name = "gunicorn", specifier = ">=23.0.0" }, { name = "gunicorn", specifier = ">=25.1.0" },
{ name = "psycopg2-binary", specifier = ">=2.9.11,<3" }, { name = "psycopg2-binary", specifier = ">=2.9.11,<3" },
{ name = "wagtail", specifier = ">=7.2.0" }, { name = "wagtail", specifier = ">=7.3.1" },
{ name = "wagtail-grapple", specifier = ">=0.29.0" }, { name = "wagtail-grapple", specifier = ">=0.29.0" },
{ name = "whitenoise", specifier = ">=6.11.0" }, { name = "whitenoise", specifier = ">=6.12.0" },
] ]
[package.metadata.requires-dev] [package.metadata.requires-dev]
dev = [{ name = "ruff", specifier = ">=0.14.5" }] dev = [{ name = "ruff", specifier = ">=0.15.1" }]
[[package]] [[package]]
name = "draftjs-exporter" name = "draftjs-exporter"
@@ -311,14 +311,14 @@ wheels = [
[[package]] [[package]]
name = "gunicorn" name = "gunicorn"
version = "23.0.0" version = "25.1.0"
source = { registry = "https://pypi.org/simple" } source = { registry = "https://pypi.org/simple" }
dependencies = [ dependencies = [
{ name = "packaging" }, { name = "packaging" },
] ]
sdist = { url = "https://files.pythonhosted.org/packages/34/72/9614c465dc206155d93eff0ca20d42e1e35afc533971379482de953521a4/gunicorn-23.0.0.tar.gz", hash = "sha256:f014447a0101dc57e294f6c18ca6b40227a4c90e9bdb586042628030cba004ec", size = 375031, upload-time = "2024-08-10T20:25:27.378Z" } sdist = { url = "https://files.pythonhosted.org/packages/66/13/ef67f59f6a7896fdc2c1d62b5665c5219d6b0a9a1784938eb9a28e55e128/gunicorn-25.1.0.tar.gz", hash = "sha256:1426611d959fa77e7de89f8c0f32eed6aa03ee735f98c01efba3e281b1c47616", size = 594377, upload-time = "2026-02-13T11:09:58.989Z" }
wheels = [ wheels = [
{ url = "https://files.pythonhosted.org/packages/cb/7d/6dac2a6e1eba33ee43f318edbed4ff29151a49b5d37f080aad1e6469bca4/gunicorn-23.0.0-py3-none-any.whl", hash = "sha256:ec400d38950de4dfd418cff8328b2c8faed0edb0d517d3394e457c317908ca4d", size = 85029, upload-time = "2024-08-10T20:25:24.996Z" }, { url = "https://files.pythonhosted.org/packages/da/73/4ad5b1f6a2e21cf1e85afdaad2b7b1a933985e2f5d679147a1953aaa192c/gunicorn-25.1.0-py3-none-any.whl", hash = "sha256:d0b1236ccf27f72cfe14bce7caadf467186f19e865094ca84221424e839b8b8b", size = 197067, upload-time = "2026-02-13T11:09:57.146Z" },
] ]
[[package]] [[package]]
@@ -481,28 +481,27 @@ wheels = [
[[package]] [[package]]
name = "ruff" name = "ruff"
version = "0.14.5" version = "0.15.1"
source = { registry = "https://pypi.org/simple" } source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/82/fa/fbb67a5780ae0f704876cb8ac92d6d76da41da4dc72b7ed3565ab18f2f52/ruff-0.14.5.tar.gz", hash = "sha256:8d3b48d7d8aad423d3137af7ab6c8b1e38e4de104800f0d596990f6ada1a9fc1", size = 5615944, upload-time = "2025-11-13T19:58:51.155Z" } sdist = { url = "https://files.pythonhosted.org/packages/04/dc/4e6ac71b511b141cf626357a3946679abeba4cf67bc7cc5a17920f31e10d/ruff-0.15.1.tar.gz", hash = "sha256:c590fe13fb57c97141ae975c03a1aedb3d3156030cabd740d6ff0b0d601e203f", size = 4540855, upload-time = "2026-02-12T23:09:09.998Z" }
wheels = [ wheels = [
{ url = "https://files.pythonhosted.org/packages/68/31/c07e9c535248d10836a94e4f4e8c5a31a1beed6f169b31405b227872d4f4/ruff-0.14.5-py3-none-linux_armv6l.whl", hash = "sha256:f3b8248123b586de44a8018bcc9fefe31d23dda57a34e6f0e1e53bd51fd63594", size = 13171630, upload-time = "2025-11-13T19:57:54.894Z" }, { url = "https://files.pythonhosted.org/packages/23/bf/e6e4324238c17f9d9120a9d60aa99a7daaa21204c07fcd84e2ef03bb5fd1/ruff-0.15.1-py3-none-linux_armv6l.whl", hash = "sha256:b101ed7cf4615bda6ffe65bdb59f964e9f4a0d3f85cbf0e54f0ab76d7b90228a", size = 10367819, upload-time = "2026-02-12T23:09:03.598Z" },
{ url = "https://files.pythonhosted.org/packages/8e/5c/283c62516dca697cd604c2796d1487396b7a436b2f0ecc3fd412aca470e0/ruff-0.14.5-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:f7a75236570318c7a30edd7f5491945f0169de738d945ca8784500b517163a72", size = 13413925, upload-time = "2025-11-13T19:57:59.181Z" }, { url = "https://files.pythonhosted.org/packages/b3/ea/c8f89d32e7912269d38c58f3649e453ac32c528f93bb7f4219258be2e7ed/ruff-0.15.1-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:939c995e9277e63ea632cc8d3fae17aa758526f49a9a850d2e7e758bfef46602", size = 10798618, upload-time = "2026-02-12T23:09:22.928Z" },
{ url = "https://files.pythonhosted.org/packages/b6/f3/aa319f4afc22cb6fcba2b9cdfc0f03bbf747e59ab7a8c5e90173857a1361/ruff-0.14.5-py3-none-macosx_11_0_arm64.whl", hash = "sha256:6d146132d1ee115f8802356a2dc9a634dbf58184c51bff21f313e8cd1c74899a", size = 12574040, upload-time = "2025-11-13T19:58:02.056Z" }, { url = "https://files.pythonhosted.org/packages/5e/0f/1d0d88bc862624247d82c20c10d4c0f6bb2f346559d8af281674cf327f15/ruff-0.15.1-py3-none-macosx_11_0_arm64.whl", hash = "sha256:1d83466455fdefe60b8d9c8df81d3c1bbb2115cede53549d3b522ce2bc703899", size = 10148518, upload-time = "2026-02-12T23:08:58.339Z" },
{ url = "https://files.pythonhosted.org/packages/f9/7f/cb5845fcc7c7e88ed57f58670189fc2ff517fe2134c3821e77e29fd3b0c8/ruff-0.14.5-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2380596653dcd20b057794d55681571a257a42327da8894b93bbd6111aa801f", size = 13009755, upload-time = "2025-11-13T19:58:05.172Z" }, { url = "https://files.pythonhosted.org/packages/f5/c8/291c49cefaa4a9248e986256df2ade7add79388fe179e0691be06fae6f37/ruff-0.15.1-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9457e3c3291024866222b96108ab2d8265b477e5b1534c7ddb1810904858d16", size = 10518811, upload-time = "2026-02-12T23:09:31.865Z" },
{ url = "https://files.pythonhosted.org/packages/21/d2/bcbedbb6bcb9253085981730687ddc0cc7b2e18e8dc13cf4453de905d7a0/ruff-0.14.5-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2d1fa985a42b1f075a098fa1ab9d472b712bdb17ad87a8ec86e45e7fa6273e68", size = 12937641, upload-time = "2025-11-13T19:58:08.345Z" }, { url = "https://files.pythonhosted.org/packages/c3/1a/f5707440e5ae43ffa5365cac8bbb91e9665f4a883f560893829cf16a606b/ruff-0.15.1-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:92c92b003e9d4f7fbd33b1867bb15a1b785b1735069108dfc23821ba045b29bc", size = 10196169, upload-time = "2026-02-12T23:09:17.306Z" },
{ url = "https://files.pythonhosted.org/packages/a4/58/e25de28a572bdd60ffc6bb71fc7fd25a94ec6a076942e372437649cbb02a/ruff-0.14.5-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:88f0770d42b7fa02bbefddde15d235ca3aa24e2f0137388cc15b2dcbb1f7c7a7", size = 13610854, upload-time = "2025-11-13T19:58:11.419Z" }, { url = "https://files.pythonhosted.org/packages/2a/ff/26ddc8c4da04c8fd3ee65a89c9fb99eaa5c30394269d424461467be2271f/ruff-0.15.1-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1fe5c41ab43e3a06778844c586251eb5a510f67125427625f9eb2b9526535779", size = 10990491, upload-time = "2026-02-12T23:09:25.503Z" },
{ url = "https://files.pythonhosted.org/packages/7d/24/43bb3fd23ecee9861970978ea1a7a63e12a204d319248a7e8af539984280/ruff-0.14.5-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:3676cb02b9061fee7294661071c4709fa21419ea9176087cb77e64410926eb78", size = 15061088, upload-time = "2025-11-13T19:58:14.551Z" }, { url = "https://files.pythonhosted.org/packages/fc/00/50920cb385b89413f7cdb4bb9bc8fc59c1b0f30028d8bccc294189a54955/ruff-0.15.1-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:66a6dd6df4d80dc382c6484f8ce1bcceb55c32e9f27a8b94c32f6c7331bf14fb", size = 11843280, upload-time = "2026-02-12T23:09:19.88Z" },
{ url = "https://files.pythonhosted.org/packages/23/44/a022f288d61c2f8c8645b24c364b719aee293ffc7d633a2ca4d116b9c716/ruff-0.14.5-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b595bedf6bc9cab647c4a173a61acf4f1ac5f2b545203ba82f30fcb10b0318fb", size = 14734717, upload-time = "2025-11-13T19:58:17.518Z" }, { url = "https://files.pythonhosted.org/packages/5d/6d/2f5cad8380caf5632a15460c323ae326f1e1a2b5b90a6ee7519017a017ca/ruff-0.15.1-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6a4a42cbb8af0bda9bcd7606b064d7c0bc311a88d141d02f78920be6acb5aa83", size = 11274336, upload-time = "2026-02-12T23:09:14.907Z" },
{ url = "https://files.pythonhosted.org/packages/58/81/5c6ba44de7e44c91f68073e0658109d8373b0590940efe5bd7753a2585a3/ruff-0.14.5-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f55382725ad0bdb2e8ee2babcbbfb16f124f5a59496a2f6a46f1d9d99d93e6e2", size = 14028812, upload-time = "2025-11-13T19:58:20.533Z" }, { url = "https://files.pythonhosted.org/packages/a3/1d/5f56cae1d6c40b8a318513599b35ea4b075d7dc1cd1d04449578c29d1d75/ruff-0.15.1-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4ab064052c31dddada35079901592dfba2e05f5b1e43af3954aafcbc1096a5b2", size = 11137288, upload-time = "2026-02-12T23:09:07.475Z" },
{ url = "https://files.pythonhosted.org/packages/ad/ef/41a8b60f8462cb320f68615b00299ebb12660097c952c600c762078420f8/ruff-0.14.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7497d19dce23976bdaca24345ae131a1d38dcfe1b0850ad8e9e6e4fa321a6e19", size = 13825656, upload-time = "2025-11-13T19:58:23.345Z" }, { url = "https://files.pythonhosted.org/packages/cd/20/6f8d7d8f768c93b0382b33b9306b3b999918816da46537d5a61635514635/ruff-0.15.1-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:5631c940fe9fe91f817a4c2ea4e81f47bee3ca4aa646134a24374f3c19ad9454", size = 11070681, upload-time = "2026-02-12T23:08:55.43Z" },
{ url = "https://files.pythonhosted.org/packages/7c/00/207e5de737fdb59b39eb1fac806904fe05681981b46d6a6db9468501062e/ruff-0.14.5-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:410e781f1122d6be4f446981dd479470af86537fb0b8857f27a6e872f65a38e4", size = 13959922, upload-time = "2025-11-13T19:58:26.537Z" }, { url = "https://files.pythonhosted.org/packages/9a/67/d640ac76069f64cdea59dba02af2e00b1fa30e2103c7f8d049c0cff4cafd/ruff-0.15.1-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:68138a4ba184b4691ccdc39f7795c66b3c68160c586519e7e8444cf5a53e1b4c", size = 10486401, upload-time = "2026-02-12T23:09:27.927Z" },
{ url = "https://files.pythonhosted.org/packages/bc/7e/fa1f5c2776db4be405040293618846a2dece5c70b050874c2d1f10f24776/ruff-0.14.5-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:c01be527ef4c91a6d55e53b337bfe2c0f82af024cc1a33c44792d6844e2331e1", size = 12932501, upload-time = "2025-11-13T19:58:29.822Z" }, { url = "https://files.pythonhosted.org/packages/65/3d/e1429f64a3ff89297497916b88c32a5cc88eeca7e9c787072d0e7f1d3e1e/ruff-0.15.1-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:518f9af03bfc33c03bdb4cb63fabc935341bb7f54af500f92ac309ecfbba6330", size = 10197452, upload-time = "2026-02-12T23:09:12.147Z" },
{ url = "https://files.pythonhosted.org/packages/67/d8/d86bf784d693a764b59479a6bbdc9515ae42c340a5dc5ab1dabef847bfaa/ruff-0.14.5-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:f66e9bb762e68d66e48550b59c74314168ebb46199886c5c5aa0b0fbcc81b151", size = 12927319, upload-time = "2025-11-13T19:58:32.923Z" }, { url = "https://files.pythonhosted.org/packages/78/83/e2c3bade17dad63bf1e1c2ffaf11490603b760be149e1419b07049b36ef2/ruff-0.15.1-py3-none-musllinux_1_2_i686.whl", hash = "sha256:da79f4d6a826caaea95de0237a67e33b81e6ec2e25fc7e1993a4015dffca7c61", size = 10693900, upload-time = "2026-02-12T23:09:34.418Z" },
{ url = "https://files.pythonhosted.org/packages/ac/de/ee0b304d450ae007ce0cb3e455fe24fbcaaedae4ebaad6c23831c6663651/ruff-0.14.5-py3-none-musllinux_1_2_i686.whl", hash = "sha256:d93be8f1fa01022337f1f8f3bcaa7ffee2d0b03f00922c45c2207954f351f465", size = 13206209, upload-time = "2025-11-13T19:58:35.952Z" }, { url = "https://files.pythonhosted.org/packages/a1/27/fdc0e11a813e6338e0706e8b39bb7a1d61ea5b36873b351acee7e524a72a/ruff-0.15.1-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:3dd86dccb83cd7d4dcfac303ffc277e6048600dfc22e38158afa208e8bf94a1f", size = 11227302, upload-time = "2026-02-12T23:09:36.536Z" },
{ url = "https://files.pythonhosted.org/packages/33/aa/193ca7e3a92d74f17d9d5771a765965d2cf42c86e6f0fd95b13969115723/ruff-0.14.5-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:c135d4b681f7401fe0e7312017e41aba9b3160861105726b76cfa14bc25aa367", size = 13953709, upload-time = "2025-11-13T19:58:39.002Z" }, { url = "https://files.pythonhosted.org/packages/f6/58/ac864a75067dcbd3b95be5ab4eb2b601d7fbc3d3d736a27e391a4f92a5c1/ruff-0.15.1-py3-none-win32.whl", hash = "sha256:660975d9cb49b5d5278b12b03bb9951d554543a90b74ed5d366b20e2c57c2098", size = 10462555, upload-time = "2026-02-12T23:09:29.899Z" },
{ url = "https://files.pythonhosted.org/packages/cc/f1/7119e42aa1d3bf036ffc9478885c2e248812b7de9abea4eae89163d2929d/ruff-0.14.5-py3-none-win32.whl", hash = "sha256:c83642e6fccfb6dea8b785eb9f456800dcd6a63f362238af5fc0c83d027dd08b", size = 12925808, upload-time = "2025-11-13T19:58:42.779Z" }, { url = "https://files.pythonhosted.org/packages/e0/5e/d4ccc8a27ecdb78116feac4935dfc39d1304536f4296168f91ed3ec00cd2/ruff-0.15.1-py3-none-win_amd64.whl", hash = "sha256:c820fef9dd5d4172a6570e5721704a96c6679b80cf7be41659ed439653f62336", size = 11599956, upload-time = "2026-02-12T23:09:01.157Z" },
{ url = "https://files.pythonhosted.org/packages/3b/9d/7c0a255d21e0912114784e4a96bf62af0618e2190cae468cd82b13625ad2/ruff-0.14.5-py3-none-win_amd64.whl", hash = "sha256:9d55d7af7166f143c94eae1db3312f9ea8f95a4defef1979ed516dbb38c27621", size = 14331546, upload-time = "2025-11-13T19:58:45.691Z" }, { url = "https://files.pythonhosted.org/packages/2a/07/5bda6a85b220c64c65686bc85bd0bbb23b29c62b3a9f9433fa55f17cda93/ruff-0.15.1-py3-none-win_arm64.whl", hash = "sha256:5ff7d5f0f88567850f45081fac8f4ec212be8d0b963e385c3f7d0d2eb4899416", size = 10874604, upload-time = "2026-02-12T23:09:05.515Z" },
{ url = "https://files.pythonhosted.org/packages/e5/80/69756670caedcf3b9be597a6e12276a6cf6197076eb62aad0c608f8efce0/ruff-0.14.5-py3-none-win_arm64.whl", hash = "sha256:4b700459d4649e2594b31f20a9de33bc7c19976d4746d8d0798ad959621d64a4", size = 13433331, upload-time = "2025-11-13T19:58:48.434Z" },
] ]
[[package]] [[package]]
@@ -579,7 +578,7 @@ wheels = [
[[package]] [[package]]
name = "wagtail" name = "wagtail"
version = "7.2" version = "7.3.1"
source = { registry = "https://pypi.org/simple" } source = { registry = "https://pypi.org/simple" }
dependencies = [ dependencies = [
{ name = "anyascii" }, { name = "anyascii" },
@@ -601,9 +600,9 @@ dependencies = [
{ name = "telepath" }, { name = "telepath" },
{ name = "willow", extra = ["heif"] }, { name = "willow", extra = ["heif"] },
] ]
sdist = { url = "https://files.pythonhosted.org/packages/83/1a/79dc8e4cb9ea51f26096e5ce7c8f1619c9534edffe2c7d27b1791e20f2be/wagtail-7.2.tar.gz", hash = "sha256:8a39df908bd64ab029e08bf191f475f54cc914f84aa41e9ae79b41bf41d55ec3", size = 6757172, upload-time = "2025-11-05T12:27:52.195Z" } sdist = { url = "https://files.pythonhosted.org/packages/4e/f9/e28a1b87ea61c68b74990c9f5c8cb11da9a689e07c8b769acc89121f8523/wagtail-7.3.1.tar.gz", hash = "sha256:2ce131d9a4e7d55fdb5b592d320a758a189174b2cc3966b70a34a1b3dc56f449", size = 6855119, upload-time = "2026-03-03T15:54:48.523Z" }
wheels = [ wheels = [
{ url = "https://files.pythonhosted.org/packages/2d/da/55b302face51c505ebeb1df349c90455058362d53ed5c29114647a8fdbba/wagtail-7.2-py3-none-any.whl", hash = "sha256:2c0d41545976b57266e84df3f03e7dd812e6a4d0a8d61d5b76863fe021613973", size = 9229326, upload-time = "2025-11-05T12:27:46.459Z" }, { url = "https://files.pythonhosted.org/packages/bb/0e/5efc903966b966df2261a66cce8cb88909e4ade86f1173a156aadbbd1a06/wagtail-7.3.1-py3-none-any.whl", hash = "sha256:eab131e15ab9edc7ed24143d44271e92af79239e105bc3e173d26c95d2b489b3", size = 9479191, upload-time = "2026-03-03T15:54:42.644Z" },
] ]
[[package]] [[package]]
@@ -634,11 +633,11 @@ wheels = [
[[package]] [[package]]
name = "whitenoise" name = "whitenoise"
version = "6.11.0" version = "6.12.0"
source = { registry = "https://pypi.org/simple" } source = { registry = "https://pypi.org/simple" }
sdist = { url = "https://files.pythonhosted.org/packages/15/95/8c81ec6b6ebcbf8aca2de7603070ccf37dbb873b03f20708e0f7c1664bc6/whitenoise-6.11.0.tar.gz", hash = "sha256:0f5bfce6061ae6611cd9396a8231e088722e4fc67bc13a111be74c738d99375f", size = 26432, upload-time = "2025-09-18T09:16:10.995Z" } sdist = { url = "https://files.pythonhosted.org/packages/cb/2a/55b3f3a4ec326cd077c1c3defeee656b9298372a69229134d930151acd01/whitenoise-6.12.0.tar.gz", hash = "sha256:f723ebb76a112e98816ff80fcea0a6c9b8ecde835f8ddda25df7a30a3c2db6ad", size = 26841, upload-time = "2026-02-27T00:05:42.028Z" }
wheels = [ wheels = [
{ url = "https://files.pythonhosted.org/packages/6c/e9/4366332f9295fe0647d7d3251ce18f5615fbcb12d02c79a26f8dba9221b3/whitenoise-6.11.0-py3-none-any.whl", hash = "sha256:b2aeb45950597236f53b5342b3121c5de69c8da0109362aee506ce88e022d258", size = 20197, upload-time = "2025-09-18T09:16:09.754Z" }, { url = "https://files.pythonhosted.org/packages/db/eb/d5583a11486211f3ebd4b385545ae787f32363d453c19fffd81106c9c138/whitenoise-6.12.0-py3-none-any.whl", hash = "sha256:fc5e8c572e33ebf24795b47b6a7da8da3c00cff2349f5b04c02f28d0cc5a3cc2", size = 20302, upload-time = "2026-02-27T00:05:40.086Z" },
] ]
[[package]] [[package]]
@@ -0,0 +1,731 @@
# Generated by Django 6.0.3 on 2026-04-15 20:21
import wagtail.fields
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
("venues", "0024_venuepage_show_in_overview_and_more"),
]
operations = [
migrations.AlterField(
model_name="venueindex",
name="body",
field=wagtail.fields.StreamField(
[
("paragraph", 0),
("image", 4),
("image_slider", 8),
("horizontal_rule", 10),
("featured", 18),
("page_section_navigation", 19),
("accordion", 23),
("fact_box", 26),
("photo_sphere", 29),
("embed", 30),
("raw_html", 31),
],
block_lookup={
0: ("wagtail.blocks.RichTextBlock", (), {"label": "Rik tekst"}),
1: (
"wagtail.images.blocks.ImageChooserBlock",
(),
{"label": "Bilde"},
),
2: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("fullwidth", "Fullbredde"),
("bleed", "Utfallende"),
("original", "Uendret størrelse"),
],
"icon": "cup",
"label": "Bildeformat",
},
),
3: (
"wagtail.blocks.CharBlock",
(),
{"label": "Bildetekst", "max_length": 512, "required": False},
),
4: (
"wagtail.blocks.StructBlock",
[[("image", 1), ("image_format", 2), ("text", 3)]],
{},
),
5: (
"wagtail.blocks.CharBlock",
(),
{"label": "Tekst", "max_length": 512, "required": False},
),
6: (
"wagtail.blocks.StructBlock",
[[("image", 1), ("text", 5)]],
{},
),
7: (
"wagtail.blocks.ListBlock",
(6,),
{"label": "Bilder", "min_num": 1},
),
8: ("wagtail.blocks.StructBlock", [[("images", 7)]], {}),
9: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("deepBrick", "Dyp tegl"),
("neufPink", "Griserosa"),
("goldenOrange", "Gyllen oransje"),
("goldenBeige", "Gyllen beige"),
("chateauBlue", "Slottsblå"),
],
"label": "Farge",
"required": False,
},
),
10: ("wagtail.blocks.StructBlock", [[("color", 9)]], {}),
11: (
"wagtail.blocks.CharBlock",
(),
{"label": "Tittel", "max_length": 64, "required": True},
),
12: (
"wagtail.blocks.RichTextBlock",
(),
{
"features": ["bold", "italic", "link"],
"label": "Tekst",
"required": True,
},
),
13: (
"wagtail.blocks.PageChooserBlock",
(),
{"header": "Fremhevet side", "required": True},
),
14: (
"wagtail.blocks.CharBlock",
(),
{
"default": "Les mer",
"help_text": 'Lenketeksten som tar deg videre til siden. Tips: Ikke start med "Trykk her"',
"label": "Lenketekst",
"max_length": 64,
"required": True,
},
),
15: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("betongGray", "Betonggrå"),
("deepBrick", "Dyp tegl"),
("neufPink", "Griserosa"),
("goldenOrange", "Gyllen oransje"),
("goldenBeige", "Gyllen beige"),
("chateauBlue", "Slottsblå"),
],
"label": "Bakgrunnsfarge",
},
),
16: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [("left", "Venstre"), ("right", "Høyre")],
"label": "Bildeplassering",
},
),
17: (
"wagtail.images.blocks.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,
},
),
18: (
"wagtail.blocks.StructBlock",
[
[
("title", 11),
("text", 12),
("featured_page", 13),
("link_text", 14),
("background_color", 15),
("image_position", 16),
("featured_image_override", 17),
]
],
{},
),
19: ("dnscms.blocks.PageSectionNavigationBlock", (), {}),
20: (
"wagtail.blocks.CharBlock",
(),
{"label": "Overskrift", "max_length": 64, "required": True},
),
21: (
"wagtail.blocks.StructBlock",
[[("image", 1), ("image_format", 2), ("text", 3)]],
{"label": "Bilde"},
),
22: (
"wagtail.blocks.StreamBlock",
[[("paragraph", 0), ("image", 21)]],
{},
),
23: (
"wagtail.blocks.StructBlock",
[[("heading", 20), ("body", 22)]],
{},
),
24: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("betongGray", "Betonggrå"),
("deepBrick", "Dyp tegl"),
("neufPink", "Griserosa"),
("goldenOrange", "Gyllen oransje"),
("goldenBeige", "Gyllen beige"),
("chateauBlue", "Slottsblå"),
],
"label": "Bakgrunnsfarge",
"required": False,
},
),
25: (
"wagtail.blocks.RichTextBlock",
(),
{
"features": [
"bold",
"italic",
"link",
"ol",
"ul",
"h2",
"h3",
],
"label": "Innhold",
},
),
26: (
"wagtail.blocks.StructBlock",
[[("background_color", 24), ("body", 25)]],
{},
),
27: (
"wagtail.images.blocks.ImageChooserBlock",
(),
{"label": "360°-bilde"},
),
28: (
"wagtail.blocks.CharBlock",
(),
{
"help_text": "Beskrivende tittel på bildet (vises også til skjermlesere)",
"label": "Tittel",
"max_length": 256,
},
),
29: (
"wagtail.blocks.StructBlock",
[[("image", 27), ("title", 28)]],
{},
),
30: ("wagtail.embeds.blocks.EmbedBlock", (), {}),
31: ("wagtail.blocks.RawHTMLBlock", (), {}),
},
default=[("paragraph", "")],
),
),
migrations.AlterField(
model_name="venuepage",
name="body",
field=wagtail.fields.StreamField(
[
("paragraph", 0),
("image", 4),
("image_slider", 8),
("horizontal_rule", 10),
("featured", 18),
("page_section_navigation", 19),
("accordion", 23),
("fact_box", 26),
("photo_sphere", 29),
("embed", 30),
("raw_html", 31),
],
block_lookup={
0: ("wagtail.blocks.RichTextBlock", (), {"label": "Rik tekst"}),
1: (
"wagtail.images.blocks.ImageChooserBlock",
(),
{"label": "Bilde"},
),
2: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("fullwidth", "Fullbredde"),
("bleed", "Utfallende"),
("original", "Uendret størrelse"),
],
"icon": "cup",
"label": "Bildeformat",
},
),
3: (
"wagtail.blocks.CharBlock",
(),
{"label": "Bildetekst", "max_length": 512, "required": False},
),
4: (
"wagtail.blocks.StructBlock",
[[("image", 1), ("image_format", 2), ("text", 3)]],
{},
),
5: (
"wagtail.blocks.CharBlock",
(),
{"label": "Tekst", "max_length": 512, "required": False},
),
6: (
"wagtail.blocks.StructBlock",
[[("image", 1), ("text", 5)]],
{},
),
7: (
"wagtail.blocks.ListBlock",
(6,),
{"label": "Bilder", "min_num": 1},
),
8: ("wagtail.blocks.StructBlock", [[("images", 7)]], {}),
9: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("deepBrick", "Dyp tegl"),
("neufPink", "Griserosa"),
("goldenOrange", "Gyllen oransje"),
("goldenBeige", "Gyllen beige"),
("chateauBlue", "Slottsblå"),
],
"label": "Farge",
"required": False,
},
),
10: ("wagtail.blocks.StructBlock", [[("color", 9)]], {}),
11: (
"wagtail.blocks.CharBlock",
(),
{"label": "Tittel", "max_length": 64, "required": True},
),
12: (
"wagtail.blocks.RichTextBlock",
(),
{
"features": ["bold", "italic", "link"],
"label": "Tekst",
"required": True,
},
),
13: (
"wagtail.blocks.PageChooserBlock",
(),
{"header": "Fremhevet side", "required": True},
),
14: (
"wagtail.blocks.CharBlock",
(),
{
"default": "Les mer",
"help_text": 'Lenketeksten som tar deg videre til siden. Tips: Ikke start med "Trykk her"',
"label": "Lenketekst",
"max_length": 64,
"required": True,
},
),
15: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("betongGray", "Betonggrå"),
("deepBrick", "Dyp tegl"),
("neufPink", "Griserosa"),
("goldenOrange", "Gyllen oransje"),
("goldenBeige", "Gyllen beige"),
("chateauBlue", "Slottsblå"),
],
"label": "Bakgrunnsfarge",
},
),
16: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [("left", "Venstre"), ("right", "Høyre")],
"label": "Bildeplassering",
},
),
17: (
"wagtail.images.blocks.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,
},
),
18: (
"wagtail.blocks.StructBlock",
[
[
("title", 11),
("text", 12),
("featured_page", 13),
("link_text", 14),
("background_color", 15),
("image_position", 16),
("featured_image_override", 17),
]
],
{},
),
19: ("dnscms.blocks.PageSectionNavigationBlock", (), {}),
20: (
"wagtail.blocks.CharBlock",
(),
{"label": "Overskrift", "max_length": 64, "required": True},
),
21: (
"wagtail.blocks.StructBlock",
[[("image", 1), ("image_format", 2), ("text", 3)]],
{"label": "Bilde"},
),
22: (
"wagtail.blocks.StreamBlock",
[[("paragraph", 0), ("image", 21)]],
{},
),
23: (
"wagtail.blocks.StructBlock",
[[("heading", 20), ("body", 22)]],
{},
),
24: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("betongGray", "Betonggrå"),
("deepBrick", "Dyp tegl"),
("neufPink", "Griserosa"),
("goldenOrange", "Gyllen oransje"),
("goldenBeige", "Gyllen beige"),
("chateauBlue", "Slottsblå"),
],
"label": "Bakgrunnsfarge",
"required": False,
},
),
25: (
"wagtail.blocks.RichTextBlock",
(),
{
"features": [
"bold",
"italic",
"link",
"ol",
"ul",
"h2",
"h3",
],
"label": "Innhold",
},
),
26: (
"wagtail.blocks.StructBlock",
[[("background_color", 24), ("body", 25)]],
{},
),
27: (
"wagtail.images.blocks.ImageChooserBlock",
(),
{"label": "360°-bilde"},
),
28: (
"wagtail.blocks.CharBlock",
(),
{
"help_text": "Beskrivende tittel på bildet (vises også til skjermlesere)",
"label": "Tittel",
"max_length": 256,
},
),
29: (
"wagtail.blocks.StructBlock",
[[("image", 27), ("title", 28)]],
{},
),
30: ("wagtail.embeds.blocks.EmbedBlock", (), {}),
31: ("wagtail.blocks.RawHTMLBlock", (), {}),
},
default=[("paragraph", "")],
),
),
migrations.AlterField(
model_name="venuerentalindex",
name="body",
field=wagtail.fields.StreamField(
[
("paragraph", 0),
("image", 4),
("image_slider", 8),
("horizontal_rule", 10),
("featured", 18),
("page_section_navigation", 19),
("accordion", 23),
("fact_box", 26),
("photo_sphere", 29),
("embed", 30),
("raw_html", 31),
],
block_lookup={
0: ("wagtail.blocks.RichTextBlock", (), {"label": "Rik tekst"}),
1: (
"wagtail.images.blocks.ImageChooserBlock",
(),
{"label": "Bilde"},
),
2: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("fullwidth", "Fullbredde"),
("bleed", "Utfallende"),
("original", "Uendret størrelse"),
],
"icon": "cup",
"label": "Bildeformat",
},
),
3: (
"wagtail.blocks.CharBlock",
(),
{"label": "Bildetekst", "max_length": 512, "required": False},
),
4: (
"wagtail.blocks.StructBlock",
[[("image", 1), ("image_format", 2), ("text", 3)]],
{},
),
5: (
"wagtail.blocks.CharBlock",
(),
{"label": "Tekst", "max_length": 512, "required": False},
),
6: (
"wagtail.blocks.StructBlock",
[[("image", 1), ("text", 5)]],
{},
),
7: (
"wagtail.blocks.ListBlock",
(6,),
{"label": "Bilder", "min_num": 1},
),
8: ("wagtail.blocks.StructBlock", [[("images", 7)]], {}),
9: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("deepBrick", "Dyp tegl"),
("neufPink", "Griserosa"),
("goldenOrange", "Gyllen oransje"),
("goldenBeige", "Gyllen beige"),
("chateauBlue", "Slottsblå"),
],
"label": "Farge",
"required": False,
},
),
10: ("wagtail.blocks.StructBlock", [[("color", 9)]], {}),
11: (
"wagtail.blocks.CharBlock",
(),
{"label": "Tittel", "max_length": 64, "required": True},
),
12: (
"wagtail.blocks.RichTextBlock",
(),
{
"features": ["bold", "italic", "link"],
"label": "Tekst",
"required": True,
},
),
13: (
"wagtail.blocks.PageChooserBlock",
(),
{"header": "Fremhevet side", "required": True},
),
14: (
"wagtail.blocks.CharBlock",
(),
{
"default": "Les mer",
"help_text": 'Lenketeksten som tar deg videre til siden. Tips: Ikke start med "Trykk her"',
"label": "Lenketekst",
"max_length": 64,
"required": True,
},
),
15: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("betongGray", "Betonggrå"),
("deepBrick", "Dyp tegl"),
("neufPink", "Griserosa"),
("goldenOrange", "Gyllen oransje"),
("goldenBeige", "Gyllen beige"),
("chateauBlue", "Slottsblå"),
],
"label": "Bakgrunnsfarge",
},
),
16: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [("left", "Venstre"), ("right", "Høyre")],
"label": "Bildeplassering",
},
),
17: (
"wagtail.images.blocks.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,
},
),
18: (
"wagtail.blocks.StructBlock",
[
[
("title", 11),
("text", 12),
("featured_page", 13),
("link_text", 14),
("background_color", 15),
("image_position", 16),
("featured_image_override", 17),
]
],
{},
),
19: ("dnscms.blocks.PageSectionNavigationBlock", (), {}),
20: (
"wagtail.blocks.CharBlock",
(),
{"label": "Overskrift", "max_length": 64, "required": True},
),
21: (
"wagtail.blocks.StructBlock",
[[("image", 1), ("image_format", 2), ("text", 3)]],
{"label": "Bilde"},
),
22: (
"wagtail.blocks.StreamBlock",
[[("paragraph", 0), ("image", 21)]],
{},
),
23: (
"wagtail.blocks.StructBlock",
[[("heading", 20), ("body", 22)]],
{},
),
24: (
"wagtail.blocks.ChoiceBlock",
[],
{
"choices": [
("betongGray", "Betonggrå"),
("deepBrick", "Dyp tegl"),
("neufPink", "Griserosa"),
("goldenOrange", "Gyllen oransje"),
("goldenBeige", "Gyllen beige"),
("chateauBlue", "Slottsblå"),
],
"label": "Bakgrunnsfarge",
"required": False,
},
),
25: (
"wagtail.blocks.RichTextBlock",
(),
{
"features": [
"bold",
"italic",
"link",
"ol",
"ul",
"h2",
"h3",
],
"label": "Innhold",
},
),
26: (
"wagtail.blocks.StructBlock",
[[("background_color", 24), ("body", 25)]],
{},
),
27: (
"wagtail.images.blocks.ImageChooserBlock",
(),
{"label": "360°-bilde"},
),
28: (
"wagtail.blocks.CharBlock",
(),
{
"help_text": "Beskrivende tittel på bildet (vises også til skjermlesere)",
"label": "Tittel",
"max_length": 256,
},
),
29: (
"wagtail.blocks.StructBlock",
[[("image", 27), ("title", 28)]],
{},
),
30: ("wagtail.embeds.blocks.EmbedBlock", (), {}),
31: ("wagtail.blocks.RawHTMLBlock", (), {}),
},
default=[("paragraph", "")],
),
),
]
+312 -400
View File
File diff suppressed because it is too large Load Diff
+17 -15
View File
@@ -10,35 +10,37 @@
"codegen": "graphql-codegen" "codegen": "graphql-codegen"
}, },
"dependencies": { "dependencies": {
"@graphql-codegen/cli": "^6.0.2", "@graphql-codegen/cli": "^6.1.2",
"@graphql-codegen/client-preset": "^5.1.3", "@graphql-codegen/client-preset": "^5.2.3",
"@parcel/watcher": "^2.5.1", "@parcel/watcher": "^2.5.6",
"@sindresorhus/slugify": "^3.0.0", "@sindresorhus/slugify": "^3.0.0",
"@urql/next": "^2.0.0", "@urql/next": "^2.0.0",
"date-fns": "^4.1.0", "date-fns": "^4.1.0",
"date-fns-tz": "^3.2.0", "date-fns-tz": "^3.2.0",
"graphql": "^16.12.0", "graphql": "^16.13.1",
"next": "16.0.3", "next": "^16.1.6",
"nuqs": "^2.7.3", "nuqs": "^2.8.9",
"react": "19.2.0", "react": "19.2.4",
"react-dom": "19.2.0", "react-dom": "19.2.4",
"react-intersection-observer": "^10.0.0", "react-intersection-observer": "^10.0.3",
"sass": "^1.94.0", "react-photo-sphere-viewer": "^6.2.3",
"sass": "^1.97.3",
"sharp": "^0.34.5", "sharp": "^0.34.5",
"swiper": "^12.0.3", "swiper": "^12.1.2",
"urql": "^5.0.1", "urql": "^5.0.1",
"use-debounce": "^10.0.6" "use-debounce": "^10.1.0"
}, },
"devDependencies": { "devDependencies": {
"@types/node": "^24", "@types/node": "^24",
"@types/react": "19.2.4", "@types/react": "19.2.14",
"@types/react-dom": "19.2.3", "@types/react-dom": "19.2.3",
"baseline-browser-mapping": "^2.10.0",
"eslint": "^9", "eslint": "^9",
"eslint-config-next": "16.0.3", "eslint-config-next": "16.1.6",
"typescript": "^5" "typescript": "^5"
}, },
"overrides": { "overrides": {
"@types/react": "19.2.4", "@types/react": "19.2.14",
"@types/react-dom": "19.2.3" "@types/react-dom": "19.2.3"
} }
} }
+4
View File
@@ -6,6 +6,7 @@ import { FeaturedBlock } from "./FeaturedBlock";
import { AccordionBlock } from "./AccordionBlock"; import { AccordionBlock } from "./AccordionBlock";
import { EmbedBlock } from "./EmbedBlock"; import { EmbedBlock } from "./EmbedBlock";
import { FactBoxBlock } from "./FactBoxBlock"; import { FactBoxBlock } from "./FactBoxBlock";
import { PhotoSphereBlock } from "./PhotoSphereBlock";
import { PageSectionBlock, PageSectionNavigationBlock } from "./PageSection"; import { PageSectionBlock, PageSectionNavigationBlock } from "./PageSection";
import { ContactSectionBlock, ContactSubsectionBlock } from "./ContactSection"; import { ContactSectionBlock, ContactSubsectionBlock } from "./ContactSection";
import { ContactListBlock } from "./ContactListBlock"; import { ContactListBlock } from "./ContactListBlock";
@@ -44,6 +45,9 @@ export const Blocks = ({ blocks, pageContent }: { blocks: any, pageContent?: boo
case "FactBoxBlock": case "FactBoxBlock":
return <FactBoxBlock key={block.id} block={block} />; return <FactBoxBlock key={block.id} block={block} />;
break; break;
case "PhotoSphereBlock":
return <PhotoSphereBlock key={block.id} block={block} />;
break;
case "PageSectionBlock": case "PageSectionBlock":
return <PageSectionBlock key={block.id} block={block} />; return <PageSectionBlock key={block.id} block={block} />;
break; break;
@@ -0,0 +1,65 @@
"use client";
import dynamic from "next/dynamic";
import { PhotoSphereBlock as PhotoSphereBlockType } from "@/gql/graphql";
import styles from "./photoSphereBlock.module.scss";
const ReactPhotoSphereViewer = dynamic(
() =>
import("react-photo-sphere-viewer").then(
(mod) => mod.ReactPhotoSphereViewer
),
{
ssr: false,
loading: () => (
<div className={styles.loading} aria-busy="true" aria-label="Laster 360°-bilde">
<span className={styles.loadingText}>Laster 360°-bilde</span>
</div>
),
}
);
type PhotoSphereBlockTypeWithAlias = PhotoSphereBlockType & {
photoSphereImage?: PhotoSphereBlockType["image"];
photoSphereTitle?: string | null;
};
export const PhotoSphereBlock = ({
block,
}: {
block: PhotoSphereBlockTypeWithAlias;
}) => {
const image = block.photoSphereImage ?? block.image;
if (!image?.url) {
return <></>;
}
return (
<figure className={styles.photoSphereWrapper}>
<div
className={styles.photoSphereViewer}
role="img"
aria-label={block.photoSphereTitle ?? image.alt ?? "360°-bilde"}
>
<ReactPhotoSphereViewer
src={image.url}
height="500px"
width="100%"
navbar={["zoom", "fullscreen"]}
littlePlanet={false}
touchmoveTwoFingers
/>
<noscript>
{/* eslint-disable-next-line @next/next/no-img-element */}
<img
src={image.url}
alt={block.photoSphereTitle ?? image.alt ?? "360°-bilde"}
className={styles.fallbackImage}
/>
</noscript>
</div>
{block.photoSphereTitle && <figcaption>{block.photoSphereTitle}</figcaption>}
</figure>
);
};
@@ -0,0 +1,42 @@
.photoSphereWrapper {
max-width: var(--size-width-p);
margin: 0 auto var(--spacing-m);
}
.photoSphereViewer {
width: 100%;
overflow: hidden;
border-radius: 2px;
background: var(--color-betongGray);
position: relative;
}
.loading {
display: flex;
align-items: center;
justify-content: center;
height: 500px;
width: 100%;
background: var(--color-background-secondary);
}
.loadingText {
font-size: var(--font-size-body);
color: var(--color-text-secondary, currentColor);
}
.photoSphereWrapper figcaption {
width: 100%;
max-width: var(--size-width-p);
margin: 0 auto;
padding: var(--spacing-xs) 0 var(--spacing-s);
font-size: var(--font-size-caption);
line-height: 1.4;
opacity: .8;
}
.fallbackImage {
width: 100%;
height: auto;
display: block;
}
+30 -1
View File
@@ -1,5 +1,6 @@
"use client"; "use client";
import { useEffect } from "react";
import { import {
useQueryState, useQueryState,
parseAsStringLiteral, parseAsStringLiteral,
@@ -71,7 +72,8 @@ export const EventContainer = ({
/* /*
Allow filtering on all organizers that have upcoming events Allow filtering on all organizers that have upcoming events
Filtering on an organizer with no upcoming events will work, but be hidden from dropdown Filtering on an organizer with no upcoming events will work,
and in that case it's included in the dropdown
*/ */
const uniqueOrganizers: string[] = unique( const uniqueOrganizers: string[] = unique(
events events
@@ -85,6 +87,26 @@ export const EventContainer = ({
.map((slug) => eventOrganizers.find((haystack) => haystack.slug === slug)) .map((slug) => eventOrganizers.find((haystack) => haystack.slug === slug))
.filter((x) => x !== undefined) as EventOrganizer[]; .filter((x) => x !== undefined) as EventOrganizer[];
// If an organizer is selected that's not in the upcoming list, add it
if (
organizer &&
!filterableOrganizers.some((org) => org.slug === organizer)
) {
const selectedOrganizer = eventOrganizers.find(
(org) => org.slug === organizer,
);
if (selectedOrganizer) {
filterableOrganizers.push(selectedOrganizer);
}
}
/* Reset organizer if slug is invalid */
useEffect(() => {
if (!eventOrganizers.find((haystack) => haystack.slug === organizer)) {
setOrganizer(null);
}
}, [eventOrganizers, organizer]);
/* /*
Allow filtering on all venues that have upcoming events Allow filtering on all venues that have upcoming events
Filtering on a venue with no upcoming events will work, Filtering on a venue with no upcoming events will work,
@@ -105,6 +127,13 @@ export const EventContainer = ({
.map((x) => venues.find((haystack) => haystack.slug === x.slug)) .map((x) => venues.find((haystack) => haystack.slug === x.slug))
.filter((x) => x !== undefined) as VenueFragment[]; .filter((x) => x !== undefined) as VenueFragment[];
/* Reset venue if slug is invalid */
useEffect(() => {
if (!venues.find((haystack) => haystack.slug === venue)) {
setVenue(null);
}
}, [venues, venue]);
const filteredEvents = events const filteredEvents = events
.filter( .filter(
(x) => (x) =>
@@ -3,7 +3,6 @@
} }
.noEvents { .noEvents {
padding-top: var(--spacing-sitepadding-block);
padding-bottom: var(--spacing-sitepadding-block); padding-bottom: var(--spacing-sitepadding-block);
} }
+29 -16
View File
@@ -87,8 +87,13 @@ export const Header = () => {
</Link> </Link>
</li> </li>
<li> <li>
<Link href="/medlem" data-active={pathname === "/medlem"}> <Link href="/frivillig" data-active={pathname === "/frivillig"}>
Bli medlem Bli frivillig
</Link>
</li>
<li>
<Link href="/foreninger" data-active={pathname === "/foreninger"}>
Foreninger
</Link> </Link>
</li> </li>
</ul> </ul>
@@ -120,8 +125,16 @@ export const Header = () => {
</Link> </Link>
</li> </li>
<li className={styles.menuItemLarge}> <li className={styles.menuItemLarge}>
<Link href="/medlem" data-active={pathname === "/medlem"}> <Link href="/frivillig" data-active={pathname === "/frivillig"}>
Bli medlem Bli frivillig
</Link>
</li>
<li className={styles.menuItemLarge}>
<Link
href="/foreninger"
data-active={pathname === "/foreninger"}
>
Foreninger
</Link> </Link>
</li> </li>
<li className={styles.divider}> <li className={styles.divider}>
@@ -140,16 +153,8 @@ export const Header = () => {
</Link> </Link>
</li> </li>
<li> <li>
<Link href="/frivillig" data-active={pathname === "/frivillig"}> <Link href="/medlem" data-active={pathname === "/medlem"}>
Bli frivillig Bli medlem
</Link>
</li>
<li>
<Link
href="/foreninger"
data-active={pathname === "/foreninger"}
>
Foreninger
</Link> </Link>
</li> </li>
<li> <li>
@@ -209,8 +214,16 @@ export const Header = () => {
</Link> </Link>
</li> </li>
<li> <li>
<Link href="/medlem" data-active={pathname === "/medlem"}> <Link href="/frivillig" data-active={pathname === "/frivillig"}>
Bli medlem Bli frivillig
</Link>
</li>
<li>
<Link
href="/foreninger"
data-active={pathname === "/foreninger"}
>
Foreninger
</Link> </Link>
</li> </li>
</ul> </ul>
+9 -3
View File
@@ -40,7 +40,8 @@ type Documents = {
"\n fragment SponsorsPage on SponsorsPage {\n ... on SponsorsPage {\n title\n seoTitle\n searchDescription\n lead\n body {\n ...Blocks\n }\n sponsors {\n ... on SponsorBlock {\n id\n name\n logo {\n ...Image\n }\n text\n website\n }\n }\n }\n }\n": typeof types.SponsorsPageFragmentDoc, "\n fragment SponsorsPage on SponsorsPage {\n ... on SponsorsPage {\n title\n seoTitle\n searchDescription\n lead\n body {\n ...Blocks\n }\n sponsors {\n ... on SponsorBlock {\n id\n name\n logo {\n ...Image\n }\n text\n website\n }\n }\n }\n }\n": typeof types.SponsorsPageFragmentDoc,
"\n query venueRentalIndex {\n index: venueRentalIndex {\n ... on VenueRentalIndex {\n ...VenueRentalIndex\n }\n }\n venues: pages(contentType: \"venues.VenuePage\", limit: 100) {\n ... on VenuePage {\n ...Venue\n }\n }\n }\n": typeof types.VenueRentalIndexDocument, "\n query venueRentalIndex {\n index: venueRentalIndex {\n ... on VenueRentalIndex {\n ...VenueRentalIndex\n }\n }\n venues: pages(contentType: \"venues.VenuePage\", limit: 100) {\n ... on VenuePage {\n ...Venue\n }\n }\n }\n": typeof types.VenueRentalIndexDocument,
"\n fragment VenueRentalIndex on VenueRentalIndex {\n ... on VenueRentalIndex {\n title\n seoTitle\n searchDescription\n lead\n body {\n ...Blocks\n }\n }\n }\n": typeof types.VenueRentalIndexFragmentDoc, "\n fragment VenueRentalIndex on VenueRentalIndex {\n ... on VenueRentalIndex {\n title\n seoTitle\n searchDescription\n lead\n body {\n ...Blocks\n }\n }\n }\n": typeof types.VenueRentalIndexFragmentDoc,
"\n fragment OneLevelOfBlocks on StreamFieldInterface {\n id\n blockType\n field\n ... on RichTextBlock {\n rawValue\n value\n }\n ... on ImageWithTextBlock {\n image {\n ...Image\n }\n imageFormat\n text\n }\n ... on ImageSliderBlock {\n images {\n ... on ImageSliderItemBlock {\n image {\n ...Image\n }\n text\n }\n }\n }\n ... on HorizontalRuleBlock {\n color\n }\n ... on FeaturedBlock {\n title\n featuredBlockText: text\n linkText\n imagePosition\n backgroundColor\n featuredPage {\n contentType\n pageType\n url\n ... on EventPage {\n featuredImage {\n ...Image\n }\n }\n ... on NewsPage {\n featuredImage {\n ...Image\n }\n }\n }\n featuredImageOverride {\n ...Image\n }\n }\n ... on ContactListBlock {\n items {\n blockType\n ... on ContactEntityBlock {\n contactEntity {\n ...ContactEntity\n }\n }\n }\n }\n ... on EmbedBlock {\n url\n embed\n rawEmbed\n }\n ... on FactBoxBlock {\n backgroundColor\n factBoxBody: body\n }\n }\n": typeof types.OneLevelOfBlocksFragmentDoc, "\n fragment LeafBlocks on StreamFieldInterface {\n id\n blockType\n field\n ... on RichTextBlock {\n rawValue\n value\n }\n ... on ImageWithTextBlock {\n image {\n ...Image\n }\n imageFormat\n text\n }\n ... on ImageSliderBlock {\n images {\n ... on ImageSliderItemBlock {\n image {\n ...Image\n }\n text\n }\n }\n }\n ... on HorizontalRuleBlock {\n color\n }\n ... on FeaturedBlock {\n title\n featuredBlockText: text\n linkText\n imagePosition\n backgroundColor\n featuredPage {\n contentType\n pageType\n url\n ... on EventPage {\n featuredImage {\n ...Image\n }\n }\n ... on NewsPage {\n featuredImage {\n ...Image\n }\n }\n }\n featuredImageOverride {\n ...Image\n }\n }\n ... on ContactListBlock {\n items {\n blockType\n ... on ContactEntityBlock {\n contactEntity {\n ...ContactEntity\n }\n }\n }\n }\n ... on EmbedBlock {\n url\n embed\n rawEmbed\n }\n ... on FactBoxBlock {\n backgroundColor\n factBoxBody: body\n }\n ... on PhotoSphereBlock {\n photoSphereImage: image {\n ...Image\n }\n photoSphereTitle: title\n }\n }\n": typeof types.LeafBlocksFragmentDoc,
"\n fragment OneLevelOfBlocks on StreamFieldInterface {\n ...LeafBlocks\n ... on AccordionBlock {\n heading\n body {\n ...LeafBlocks\n }\n }\n ... on PageSectionBlock {\n title\n backgroundColor\n icon\n body {\n ...LeafBlocks\n }\n }\n }\n": typeof types.OneLevelOfBlocksFragmentDoc,
"\n fragment Blocks on StreamFieldInterface {\n ... on AccordionBlock {\n heading\n body {\n ...OneLevelOfBlocks\n }\n }\n ... on PageSectionBlock {\n title\n backgroundColor\n icon\n body {\n ...OneLevelOfBlocks\n }\n }\n ... on ContactSectionBlock {\n title\n text\n blocks {\n ... on ContactSubsectionBlock {\n title\n text\n blocks {\n ...OneLevelOfBlocks\n }\n }\n ...OneLevelOfBlocks\n }\n }\n ...OneLevelOfBlocks\n }\n": typeof types.BlocksFragmentDoc, "\n fragment Blocks on StreamFieldInterface {\n ... on AccordionBlock {\n heading\n body {\n ...OneLevelOfBlocks\n }\n }\n ... on PageSectionBlock {\n title\n backgroundColor\n icon\n body {\n ...OneLevelOfBlocks\n }\n }\n ... on ContactSectionBlock {\n title\n text\n blocks {\n ... on ContactSubsectionBlock {\n title\n text\n blocks {\n ...OneLevelOfBlocks\n }\n }\n ...OneLevelOfBlocks\n }\n }\n ...OneLevelOfBlocks\n }\n": typeof types.BlocksFragmentDoc,
"\n fragment Image on CustomImage {\n id\n url\n width\n height\n alt\n attribution\n }\n": typeof types.ImageFragmentDoc, "\n fragment Image on CustomImage {\n id\n url\n width\n height\n alt\n attribution\n }\n": typeof types.ImageFragmentDoc,
"\n fragment ContactEntity on ContactEntity {\n id\n name\n contactType\n title\n email\n phoneNumber\n image {\n ...Image\n }\n }\n": typeof types.ContactEntityFragmentDoc, "\n fragment ContactEntity on ContactEntity {\n id\n name\n contactType\n title\n email\n phoneNumber\n image {\n ...Image\n }\n }\n": typeof types.ContactEntityFragmentDoc,
@@ -83,7 +84,8 @@ const documents: Documents = {
"\n fragment SponsorsPage on SponsorsPage {\n ... on SponsorsPage {\n title\n seoTitle\n searchDescription\n lead\n body {\n ...Blocks\n }\n sponsors {\n ... on SponsorBlock {\n id\n name\n logo {\n ...Image\n }\n text\n website\n }\n }\n }\n }\n": types.SponsorsPageFragmentDoc, "\n fragment SponsorsPage on SponsorsPage {\n ... on SponsorsPage {\n title\n seoTitle\n searchDescription\n lead\n body {\n ...Blocks\n }\n sponsors {\n ... on SponsorBlock {\n id\n name\n logo {\n ...Image\n }\n text\n website\n }\n }\n }\n }\n": types.SponsorsPageFragmentDoc,
"\n query venueRentalIndex {\n index: venueRentalIndex {\n ... on VenueRentalIndex {\n ...VenueRentalIndex\n }\n }\n venues: pages(contentType: \"venues.VenuePage\", limit: 100) {\n ... on VenuePage {\n ...Venue\n }\n }\n }\n": types.VenueRentalIndexDocument, "\n query venueRentalIndex {\n index: venueRentalIndex {\n ... on VenueRentalIndex {\n ...VenueRentalIndex\n }\n }\n venues: pages(contentType: \"venues.VenuePage\", limit: 100) {\n ... on VenuePage {\n ...Venue\n }\n }\n }\n": types.VenueRentalIndexDocument,
"\n fragment VenueRentalIndex on VenueRentalIndex {\n ... on VenueRentalIndex {\n title\n seoTitle\n searchDescription\n lead\n body {\n ...Blocks\n }\n }\n }\n": types.VenueRentalIndexFragmentDoc, "\n fragment VenueRentalIndex on VenueRentalIndex {\n ... on VenueRentalIndex {\n title\n seoTitle\n searchDescription\n lead\n body {\n ...Blocks\n }\n }\n }\n": types.VenueRentalIndexFragmentDoc,
"\n fragment OneLevelOfBlocks on StreamFieldInterface {\n id\n blockType\n field\n ... on RichTextBlock {\n rawValue\n value\n }\n ... on ImageWithTextBlock {\n image {\n ...Image\n }\n imageFormat\n text\n }\n ... on ImageSliderBlock {\n images {\n ... on ImageSliderItemBlock {\n image {\n ...Image\n }\n text\n }\n }\n }\n ... on HorizontalRuleBlock {\n color\n }\n ... on FeaturedBlock {\n title\n featuredBlockText: text\n linkText\n imagePosition\n backgroundColor\n featuredPage {\n contentType\n pageType\n url\n ... on EventPage {\n featuredImage {\n ...Image\n }\n }\n ... on NewsPage {\n featuredImage {\n ...Image\n }\n }\n }\n featuredImageOverride {\n ...Image\n }\n }\n ... on ContactListBlock {\n items {\n blockType\n ... on ContactEntityBlock {\n contactEntity {\n ...ContactEntity\n }\n }\n }\n }\n ... on EmbedBlock {\n url\n embed\n rawEmbed\n }\n ... on FactBoxBlock {\n backgroundColor\n factBoxBody: body\n }\n }\n": types.OneLevelOfBlocksFragmentDoc, "\n fragment LeafBlocks on StreamFieldInterface {\n id\n blockType\n field\n ... on RichTextBlock {\n rawValue\n value\n }\n ... on ImageWithTextBlock {\n image {\n ...Image\n }\n imageFormat\n text\n }\n ... on ImageSliderBlock {\n images {\n ... on ImageSliderItemBlock {\n image {\n ...Image\n }\n text\n }\n }\n }\n ... on HorizontalRuleBlock {\n color\n }\n ... on FeaturedBlock {\n title\n featuredBlockText: text\n linkText\n imagePosition\n backgroundColor\n featuredPage {\n contentType\n pageType\n url\n ... on EventPage {\n featuredImage {\n ...Image\n }\n }\n ... on NewsPage {\n featuredImage {\n ...Image\n }\n }\n }\n featuredImageOverride {\n ...Image\n }\n }\n ... on ContactListBlock {\n items {\n blockType\n ... on ContactEntityBlock {\n contactEntity {\n ...ContactEntity\n }\n }\n }\n }\n ... on EmbedBlock {\n url\n embed\n rawEmbed\n }\n ... on FactBoxBlock {\n backgroundColor\n factBoxBody: body\n }\n ... on PhotoSphereBlock {\n photoSphereImage: image {\n ...Image\n }\n photoSphereTitle: title\n }\n }\n": types.LeafBlocksFragmentDoc,
"\n fragment OneLevelOfBlocks on StreamFieldInterface {\n ...LeafBlocks\n ... on AccordionBlock {\n heading\n body {\n ...LeafBlocks\n }\n }\n ... on PageSectionBlock {\n title\n backgroundColor\n icon\n body {\n ...LeafBlocks\n }\n }\n }\n": types.OneLevelOfBlocksFragmentDoc,
"\n fragment Blocks on StreamFieldInterface {\n ... on AccordionBlock {\n heading\n body {\n ...OneLevelOfBlocks\n }\n }\n ... on PageSectionBlock {\n title\n backgroundColor\n icon\n body {\n ...OneLevelOfBlocks\n }\n }\n ... on ContactSectionBlock {\n title\n text\n blocks {\n ... on ContactSubsectionBlock {\n title\n text\n blocks {\n ...OneLevelOfBlocks\n }\n }\n ...OneLevelOfBlocks\n }\n }\n ...OneLevelOfBlocks\n }\n": types.BlocksFragmentDoc, "\n fragment Blocks on StreamFieldInterface {\n ... on AccordionBlock {\n heading\n body {\n ...OneLevelOfBlocks\n }\n }\n ... on PageSectionBlock {\n title\n backgroundColor\n icon\n body {\n ...OneLevelOfBlocks\n }\n }\n ... on ContactSectionBlock {\n title\n text\n blocks {\n ... on ContactSubsectionBlock {\n title\n text\n blocks {\n ...OneLevelOfBlocks\n }\n }\n ...OneLevelOfBlocks\n }\n }\n ...OneLevelOfBlocks\n }\n": types.BlocksFragmentDoc,
"\n fragment Image on CustomImage {\n id\n url\n width\n height\n alt\n attribution\n }\n": types.ImageFragmentDoc, "\n fragment Image on CustomImage {\n id\n url\n width\n height\n alt\n attribution\n }\n": types.ImageFragmentDoc,
"\n fragment ContactEntity on ContactEntity {\n id\n name\n contactType\n title\n email\n phoneNumber\n image {\n ...Image\n }\n }\n": types.ContactEntityFragmentDoc, "\n fragment ContactEntity on ContactEntity {\n id\n name\n contactType\n title\n email\n phoneNumber\n image {\n ...Image\n }\n }\n": types.ContactEntityFragmentDoc,
@@ -221,7 +223,11 @@ export function graphql(source: "\n fragment VenueRentalIndex on VenueRentalInd
/** /**
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
*/ */
export function graphql(source: "\n fragment OneLevelOfBlocks on StreamFieldInterface {\n id\n blockType\n field\n ... on RichTextBlock {\n rawValue\n value\n }\n ... on ImageWithTextBlock {\n image {\n ...Image\n }\n imageFormat\n text\n }\n ... on ImageSliderBlock {\n images {\n ... on ImageSliderItemBlock {\n image {\n ...Image\n }\n text\n }\n }\n }\n ... on HorizontalRuleBlock {\n color\n }\n ... on FeaturedBlock {\n title\n featuredBlockText: text\n linkText\n imagePosition\n backgroundColor\n featuredPage {\n contentType\n pageType\n url\n ... on EventPage {\n featuredImage {\n ...Image\n }\n }\n ... on NewsPage {\n featuredImage {\n ...Image\n }\n }\n }\n featuredImageOverride {\n ...Image\n }\n }\n ... on ContactListBlock {\n items {\n blockType\n ... on ContactEntityBlock {\n contactEntity {\n ...ContactEntity\n }\n }\n }\n }\n ... on EmbedBlock {\n url\n embed\n rawEmbed\n }\n ... on FactBoxBlock {\n backgroundColor\n factBoxBody: body\n }\n }\n"): (typeof documents)["\n fragment OneLevelOfBlocks on StreamFieldInterface {\n id\n blockType\n field\n ... on RichTextBlock {\n rawValue\n value\n }\n ... on ImageWithTextBlock {\n image {\n ...Image\n }\n imageFormat\n text\n }\n ... on ImageSliderBlock {\n images {\n ... on ImageSliderItemBlock {\n image {\n ...Image\n }\n text\n }\n }\n }\n ... on HorizontalRuleBlock {\n color\n }\n ... on FeaturedBlock {\n title\n featuredBlockText: text\n linkText\n imagePosition\n backgroundColor\n featuredPage {\n contentType\n pageType\n url\n ... on EventPage {\n featuredImage {\n ...Image\n }\n }\n ... on NewsPage {\n featuredImage {\n ...Image\n }\n }\n }\n featuredImageOverride {\n ...Image\n }\n }\n ... on ContactListBlock {\n items {\n blockType\n ... on ContactEntityBlock {\n contactEntity {\n ...ContactEntity\n }\n }\n }\n }\n ... on EmbedBlock {\n url\n embed\n rawEmbed\n }\n ... on FactBoxBlock {\n backgroundColor\n factBoxBody: body\n }\n }\n"]; export function graphql(source: "\n fragment LeafBlocks on StreamFieldInterface {\n id\n blockType\n field\n ... on RichTextBlock {\n rawValue\n value\n }\n ... on ImageWithTextBlock {\n image {\n ...Image\n }\n imageFormat\n text\n }\n ... on ImageSliderBlock {\n images {\n ... on ImageSliderItemBlock {\n image {\n ...Image\n }\n text\n }\n }\n }\n ... on HorizontalRuleBlock {\n color\n }\n ... on FeaturedBlock {\n title\n featuredBlockText: text\n linkText\n imagePosition\n backgroundColor\n featuredPage {\n contentType\n pageType\n url\n ... on EventPage {\n featuredImage {\n ...Image\n }\n }\n ... on NewsPage {\n featuredImage {\n ...Image\n }\n }\n }\n featuredImageOverride {\n ...Image\n }\n }\n ... on ContactListBlock {\n items {\n blockType\n ... on ContactEntityBlock {\n contactEntity {\n ...ContactEntity\n }\n }\n }\n }\n ... on EmbedBlock {\n url\n embed\n rawEmbed\n }\n ... on FactBoxBlock {\n backgroundColor\n factBoxBody: body\n }\n ... on PhotoSphereBlock {\n photoSphereImage: image {\n ...Image\n }\n photoSphereTitle: title\n }\n }\n"): (typeof documents)["\n fragment LeafBlocks on StreamFieldInterface {\n id\n blockType\n field\n ... on RichTextBlock {\n rawValue\n value\n }\n ... on ImageWithTextBlock {\n image {\n ...Image\n }\n imageFormat\n text\n }\n ... on ImageSliderBlock {\n images {\n ... on ImageSliderItemBlock {\n image {\n ...Image\n }\n text\n }\n }\n }\n ... on HorizontalRuleBlock {\n color\n }\n ... on FeaturedBlock {\n title\n featuredBlockText: text\n linkText\n imagePosition\n backgroundColor\n featuredPage {\n contentType\n pageType\n url\n ... on EventPage {\n featuredImage {\n ...Image\n }\n }\n ... on NewsPage {\n featuredImage {\n ...Image\n }\n }\n }\n featuredImageOverride {\n ...Image\n }\n }\n ... on ContactListBlock {\n items {\n blockType\n ... on ContactEntityBlock {\n contactEntity {\n ...ContactEntity\n }\n }\n }\n }\n ... on EmbedBlock {\n url\n embed\n rawEmbed\n }\n ... on FactBoxBlock {\n backgroundColor\n factBoxBody: body\n }\n ... on PhotoSphereBlock {\n photoSphereImage: image {\n ...Image\n }\n photoSphereTitle: title\n }\n }\n"];
/**
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
*/
export function graphql(source: "\n fragment OneLevelOfBlocks on StreamFieldInterface {\n ...LeafBlocks\n ... on AccordionBlock {\n heading\n body {\n ...LeafBlocks\n }\n }\n ... on PageSectionBlock {\n title\n backgroundColor\n icon\n body {\n ...LeafBlocks\n }\n }\n }\n"): (typeof documents)["\n fragment OneLevelOfBlocks on StreamFieldInterface {\n ...LeafBlocks\n ... on AccordionBlock {\n heading\n body {\n ...LeafBlocks\n }\n }\n ... on PageSectionBlock {\n title\n backgroundColor\n icon\n body {\n ...LeafBlocks\n }\n }\n }\n"];
/** /**
* The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. * The graphql function is used to parse GraphQL queries into a document that can be used by GraphQL clients.
*/ */
+773 -71
View File
File diff suppressed because one or more lines are too long
+28 -2
View File
@@ -91,8 +91,8 @@ export function formatHumanReadableList(array: (string | number)[]): string {
return array.slice(0, -1).join(", ") + " og " + array[length - 1]; return array.slice(0, -1).join(", ") + " og " + array[length - 1];
} }
const OneLevelOfBlocksFragmentDefinition = graphql(` const LeafBlocksFragmentDefinition = graphql(`
fragment OneLevelOfBlocks on StreamFieldInterface { fragment LeafBlocks on StreamFieldInterface {
id id
blockType blockType
field field
@@ -164,6 +164,32 @@ const OneLevelOfBlocksFragmentDefinition = graphql(`
backgroundColor backgroundColor
factBoxBody: body factBoxBody: body
} }
... on PhotoSphereBlock {
photoSphereImage: image {
...Image
}
photoSphereTitle: title
}
}
`);
const OneLevelOfBlocksFragmentDefinition = graphql(`
fragment OneLevelOfBlocks on StreamFieldInterface {
...LeafBlocks
... on AccordionBlock {
heading
body {
...LeafBlocks
}
}
... on PageSectionBlock {
title
backgroundColor
icon
body {
...LeafBlocks
}
}
} }
`); `);