From 5eef653682acadf1f8d09f0f17c374a9b26f288a Mon Sep 17 00:00:00 2001 From: Patrick Gan Date: Wed, 30 Jul 2025 15:43:50 +0800 Subject: [PATCH 01/10] Add 'wagtailmedia' package --- poetry.lock | 25 ++++++++++++++++++++++--- pyproject.toml | 1 + rca/settings/base.py | 1 + 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index be51392ac..bd7ef3a18 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.8.5 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. [[package]] name = "anyascii" @@ -1391,7 +1391,7 @@ files = [ {file = "lxml-5.3.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:aa837e6ee9534de8d63bc4c1249e83882a7ac22bd24523f83fad68e6ffdf41ae"}, {file = "lxml-5.3.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:da4c9223319400b97a2acdfb10926b807e51b69eb7eb80aad4942c0516934858"}, {file = "lxml-5.3.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:dc0e9bdb3aa4d1de703a437576007d366b54f52c9897cae1a3716bb44fc1fc85"}, - {file = "lxml-5.3.2-cp310-cp310-win32.whl", hash = "sha256:5f94909a1022c8ea12711db7e08752ca7cf83e5b57a87b59e8a583c5f35016ad"}, + {file = "lxml-5.3.2-cp310-cp310-win32.win32.whl", hash = "sha256:dd755a0a78dd0b2c43f972e7b51a43be518ebc130c9f1a7c4480cf08b4385486"}, {file = "lxml-5.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:d64ea1686474074b38da13ae218d9fde0d1dc6525266976808f41ac98d9d7980"}, {file = "lxml-5.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:9d61a7d0d208ace43986a92b111e035881c4ed45b1f5b7a270070acae8b0bfb4"}, {file = "lxml-5.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:856dfd7eda0b75c29ac80a31a6411ca12209183e866c33faf46e77ace3ce8a79"}, @@ -3080,6 +3080,25 @@ wagtail = ">=5.2" [package.extras] testing = ["coverage (>=4.5)"] +[[package]] +name = "wagtailmedia" +version = "0.16.0" +description = "A Wagtail module for audio and video files." +optional = false +python-versions = ">=3.9" +files = [ + {file = "wagtailmedia-0.16.0-py3-none-any.whl", hash = "sha256:40e3adc077ed6251b9c43a7177649e8cdefa4f94828dff6f1ca3e48ba61dcdca"}, + {file = "wagtailmedia-0.16.0.tar.gz", hash = "sha256:1f757984240822a7ddfe3eda8e58243f31a3c29935ce8014499e7e664923d4c9"}, +] + +[package.dependencies] +Django = ">=4.2" +Wagtail = ">=6.3" + +[package.extras] +linting = ["pre-commit (>=4.2.0)"] +testing = ["coverage (>=7.8.0)"] + [[package]] name = "watchdog" version = "4.0.0" @@ -3302,4 +3321,4 @@ gunicorn = ["gunicorn"] [metadata] lock-version = "2.0" python-versions = "~3.11" -content-hash = "320cd060025a15a177229713e2b9db9cebe12512c8a8ea77e6e79ec0f4895bb5" +content-hash = "c99c73b75f86ff0f4dd5ede410400f209dc712360a89a29677cf0092dd43c47b" diff --git a/pyproject.toml b/pyproject.toml index 69ea1e7c8..92c2c00e9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -47,6 +47,7 @@ urllib3 = "^2.3.0" whitenoise = "^6.9.0" social-auth-app-django = "^5.4.3" django-xff = "^1.5.0" +wagtailmedia = "^0.16.0" [tool.poetry.extras] gunicorn = ["gunicorn"] diff --git a/rca/settings/base.py b/rca/settings/base.py index 58610f3a6..96bd5a164 100644 --- a/rca/settings/base.py +++ b/rca/settings/base.py @@ -109,6 +109,7 @@ "rca.project_styleguide.apps.ProjectStyleguideConfig", "rest_framework", "corsheaders", + "wagtailmedia", "wagtail_rangefilter", "rangefilter", "wagtail_modeladmin", From e78e9a793f8e533a95fea2fb0b8c3ae9afa915d3 Mon Sep 17 00:00:00 2001 From: Patrick Gan Date: Wed, 30 Jul 2025 23:28:38 +0800 Subject: [PATCH 02/10] Add video option to promo banner block --- rca/home/blocks.py | 4 +++- .../molecules/streamfield/blocks/promo_banner_block.html | 8 +++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/rca/home/blocks.py b/rca/home/blocks.py index 4feac8edf..4b3942a7f 100644 --- a/rca/home/blocks.py +++ b/rca/home/blocks.py @@ -207,6 +207,7 @@ class Meta: icon = "user" label = "Statistics" +from wagtailmedia.blocks import VideoChooserBlock class PromoBannerBlock(blocks.StructBlock): background_color = blocks.ChoiceBlock( @@ -214,7 +215,8 @@ class PromoBannerBlock(blocks.StructBlock): default="light", help_text="Select the background color for this promo banner", ) - image = ImageChooserBlock() + image = ImageChooserBlock(required=False) + video = VideoChooserBlock(required=False) title = blocks.CharBlock() strapline = blocks.CharBlock() cta = LinkBlock(label="Call to Action") diff --git a/rca/project_styleguide/templates/patterns/molecules/streamfield/blocks/promo_banner_block.html b/rca/project_styleguide/templates/patterns/molecules/streamfield/blocks/promo_banner_block.html index 088a55b3c..2f398928c 100644 --- a/rca/project_styleguide/templates/patterns/molecules/streamfield/blocks/promo_banner_block.html +++ b/rca/project_styleguide/templates/patterns/molecules/streamfield/blocks/promo_banner_block.html @@ -20,7 +20,13 @@

{{ value.title }}

{% endif %}
- {% include "patterns/atoms/image/image--lazyload.html" with image_small=image_small width=580 height=607 image_large=image_large classList='promo-banner__image' %} + {% if value.image %} + {% include "patterns/atoms/image/image--lazyload.html" with image_small=image_small width=580 height=607 image_large=image_large classList='promo-banner__image' %} + {% else %} + + {% endif %}
From 8d26bd311e36f2a781e517c1ed4b7e9a89c535f9 Mon Sep 17 00:00:00 2001 From: Patrick Gan Date: Thu, 31 Jul 2025 14:14:11 +0800 Subject: [PATCH 03/10] Display video in promo banner, if selected --- .../streamfield/blocks/promo_banner_block.html | 4 ++-- rca/static_src/sass/components/_promo-banner.scss | 12 ++++++++---- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/rca/project_styleguide/templates/patterns/molecules/streamfield/blocks/promo_banner_block.html b/rca/project_styleguide/templates/patterns/molecules/streamfield/blocks/promo_banner_block.html index 2f398928c..f4f4c18cf 100644 --- a/rca/project_styleguide/templates/patterns/molecules/streamfield/blocks/promo_banner_block.html +++ b/rca/project_styleguide/templates/patterns/molecules/streamfield/blocks/promo_banner_block.html @@ -19,11 +19,11 @@

{{ value.title }}

{% endif %} -
+
{% if value.image %} {% include "patterns/atoms/image/image--lazyload.html" with image_small=image_small width=580 height=607 image_large=image_large classList='promo-banner__image' %} {% else %} -