add image carousel to venues

This commit is contained in:
2024-08-09 04:24:20 +02:00
parent 996b63911c
commit 175dcb8e8f
8 changed files with 201 additions and 61 deletions

View File

@ -67,7 +67,7 @@ class ImageSliderItemBlock(blocks.StructBlock):
class Meta:
icon = "image"
label = "Bildegalleri"
# label = "Bilde"
@register_streamfield_block
@ -82,6 +82,7 @@ class ImageSliderBlock(blocks.StructBlock):
class Meta:
icon = "image"
label = "Bildegalleri"
@register_streamfield_block

View File

@ -0,0 +1,27 @@
# Generated by Django 5.0.7 on 2024-08-09 02:01
import django.db.models.deletion
import wagtail.fields
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('images', '0003_alter_customimage_alt'),
('venues', '0021_venuepage_tech_specs_url'),
]
operations = [
migrations.AddField(
model_name='venuepage',
name='images',
field=wagtail.fields.StreamField([('image_slider', 4)], block_lookup={0: ('wagtail.images.blocks.ImageChooserBlock', (), {'label': 'Bilde'}), 1: ('wagtail.blocks.CharBlock', (), {'label': 'Tekst', 'max_length': 512, 'required': False}), 2: ('wagtail.blocks.StructBlock', [[('image', 0), ('text', 1)]], {}), 3: ('wagtail.blocks.ListBlock', (2,), {'label': 'Bilder', 'min_num': 1}), 4: ('wagtail.blocks.StructBlock', [[('images', 3)]], {})}, default=''),
preserve_default=False,
),
migrations.AlterField(
model_name='venuepage',
name='featured_image',
field=models.ForeignKey(blank=True, help_text='Bilde av lokalet som brukes i oversiktvisninger. Blir ikke automatisk med i bildekarusellen.', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='images.customimage'),
),
]

View File

@ -0,0 +1,19 @@
# Generated by Django 5.0.7 on 2024-08-09 02:15
import wagtail.fields
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('venues', '0022_venuepage_images_alter_venuepage_featured_image'),
]
operations = [
migrations.AlterField(
model_name='venuepage',
name='images',
field=wagtail.fields.StreamField([('image_slider', 4)], blank=True, block_lookup={0: ('wagtail.images.blocks.ImageChooserBlock', (), {'label': 'Bilde'}), 1: ('wagtail.blocks.CharBlock', (), {'label': 'Tekst', 'max_length': 512, 'required': False}), 2: ('wagtail.blocks.StructBlock', [[('image', 0), ('text', 1)]], {}), 3: ('wagtail.blocks.ListBlock', (2,), {'label': 'Bilder', 'min_num': 1}), 4: ('wagtail.blocks.StructBlock', [[('images', 3)]], {})}, help_text='Bilder som vises i bildekarusellen når man leser mer om lokalet. Inkluderer ikke automatisk bildet over.'),
),
]

View File

@ -8,11 +8,12 @@ from grapple.models import (
GraphQLString,
)
from wagtail.admin.panels import FieldPanel, FieldRowPanel, MultiFieldPanel
from wagtail.fields import RichTextField
from wagtail.fields import RichTextField, StreamField
from wagtail.models import Page
from wagtail.search import index
from wagtail_wordpress_import.models import WPImportedPageMixin
from dnscms.blocks import ImageSliderBlock
from dnscms.fields import CommonStreamField
@ -63,7 +64,22 @@ class VenuePage(WPImportedPageMixin, Page):
blank=True,
on_delete=models.SET_NULL,
related_name="+",
help_text=("Bilde av lokalet"),
help_text=(
"Bilde av lokalet som brukes i oversiktvisninger. "
"Blir ikke automatisk med i bildekarusellen."
),
)
images = StreamField(
[
("image_slider", ImageSliderBlock()),
],
block_counts={"image_slider": {"max_num": 1}},
blank=True,
help_text=(
"Bilder som vises i bildekarusellen når man leser mer om lokalet. "
"Inkluderer ikke automatisk bildet over."
),
)
body = CommonStreamField
@ -117,7 +133,8 @@ class VenuePage(WPImportedPageMixin, Page):
content_panels = Page.content_panels + [
FieldPanel("featured_image"),
FieldPanel("body"),
FieldPanel("images", heading="Bilder"),
FieldPanel("body", heading="Innhold"),
FieldPanel("floor", heading="Etasje"),
FieldPanel("preposition", heading="Preposisjon"),
FieldPanel("show_as_bookable", heading="Vis på utleieside"),
@ -135,6 +152,7 @@ class VenuePage(WPImportedPageMixin, Page):
graphql_fields = [
GraphQLImage("featured_image"),
GraphQLStreamfield("images"),
GraphQLStreamfield("body"),
GraphQLString("floor"),
GraphQLString("preposition"),