diff --git a/blog/migrations/0030_alter_category_locale.py b/blog/migrations/0030_alter_category_locale.py
new file mode 100644
index 00000000..ad5693a1
--- /dev/null
+++ b/blog/migrations/0030_alter_category_locale.py
@@ -0,0 +1,25 @@
+# Generated by Django 5.0.8 on 2024-08-23 13:17
+
+import django.db.models.deletion
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+ dependencies = [
+ ("blog", "0029_alter_blogentrypage_body_alter_blogindexpage_body_and_more"),
+ ("wagtailcore", "0094_alter_page_locale"),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name="category",
+ name="locale",
+ field=models.ForeignKey(
+ editable=False,
+ on_delete=django.db.models.deletion.PROTECT,
+ related_name="+",
+ to="wagtailcore.locale",
+ verbose_name="locale",
+ ),
+ ),
+ ]
diff --git a/config/forms/baseform.py b/config/forms/baseform.py
index d1d111c7..4f830cf3 100644
--- a/config/forms/baseform.py
+++ b/config/forms/baseform.py
@@ -4,8 +4,6 @@
class SitesFacilesBaseForm(DsfrBaseForm):
# Subclassing the Dsfr base form to set autofocus on the first error found when applicable
- template_name = "dsfr/form_snippet.html"
-
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.set_autofocus_on_first_error()
diff --git a/content_manager/locale/fr/LC_MESSAGES/django.mo b/content_manager/locale/fr/LC_MESSAGES/django.mo
index d6a6c51a..d60706a8 100644
Binary files a/content_manager/locale/fr/LC_MESSAGES/django.mo and b/content_manager/locale/fr/LC_MESSAGES/django.mo differ
diff --git a/content_manager/locale/fr/LC_MESSAGES/django.po b/content_manager/locale/fr/LC_MESSAGES/django.po
index 48ae5101..e1a0cf17 100644
--- a/content_manager/locale/fr/LC_MESSAGES/django.po
+++ b/content_manager/locale/fr/LC_MESSAGES/django.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-07-24 17:14+0200\n"
-"PO-Revision-Date: 2024-07-24 17:14+0200\n"
+"POT-Creation-Date: 2024-08-23 16:16+0200\n"
+"PO-Revision-Date: 2024-08-23 16:17+0200\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: fr\n"
@@ -201,7 +201,7 @@ msgstr "Badge"
#: content_manager/blocks.py:615 content_manager/blocks.py:624
#: content_manager/blocks.py:666 content_manager/blocks.py:780
#: content_manager/blocks.py:810 content_manager/blocks.py:910
-#: content_manager/models.py:276
+#: content_manager/models.py:323
msgid "Title"
msgstr "Titre"
@@ -849,27 +849,27 @@ msgstr "Icône du côté droit"
msgid "Icon on the left side"
msgstr "Icône du côté gauche"
-#: content_manager/models.py:25
+#: content_manager/models.py:26
msgid "Content page"
msgstr "Page de contenu"
-#: content_manager/models.py:42
+#: content_manager/models.py:43
msgid "Tag"
msgstr "Étiquette"
-#: content_manager/models.py:94
+#: content_manager/models.py:95
msgid "Site configuration"
msgstr "Configuration du site"
-#: content_manager/models.py:95
+#: content_manager/models.py:96
msgid "Site configurations"
msgstr "Configurations du site"
-#: content_manager/models.py:98
+#: content_manager/models.py:99
msgid "Institution (header)"
msgstr "Institution (en-tête)"
-#: content_manager/models.py:101
+#: content_manager/models.py:102
msgid ""
"Institution brand as defined on page https://www.info.gouv.fr/marque-de-"
"letat/le-bloc-marque"
@@ -877,69 +877,101 @@ msgstr ""
"Nom de l’institution tel que défini sur la page https://www.info.gouv.fr/"
"marque-de-letat/le-bloc-marque"
-#: content_manager/models.py:105
+#: content_manager/models.py:106
msgid "Institution with line break (header)"
msgstr "Institution avec césure (en-tête)"
-#: content_manager/models.py:109
+#: content_manager/models.py:110
msgid "Institution brand with
tags for line breaks"
msgstr "Nom de l’institution avec des
pour les retours à la ligne"
-#: content_manager/models.py:112
+#: content_manager/models.py:113
msgid "Institution (footer)"
msgstr "Institution (pied)"
-#: content_manager/models.py:119
+#: content_manager/models.py:120
msgid "Institution with line break (footer)"
msgstr "Institution avec césure (pied)"
-#: content_manager/models.py:126 content_manager/models.py:128
+#: content_manager/models.py:127 content_manager/models.py:129
msgid "Site title"
msgstr "Titre du site"
-#: content_manager/models.py:132 content_manager/models.py:134
+#: content_manager/models.py:133 content_manager/models.py:135
msgid "Site tagline"
msgstr "Sous-titre du site"
-#: content_manager/models.py:139
-msgid "Important notice"
-msgstr "Bandeau d’information importante"
+#: content_manager/models.py:140
+msgid "Notice title"
+msgstr "Titre du bandeau"
-#: content_manager/models.py:144
+#: content_manager/models.py:144 content_manager/models.py:151
+msgid "Can include HTML"
+msgstr "Peut inclure du HTML"
+
+#: content_manager/models.py:148
+msgid "Notice description"
+msgstr "Description du bandeau"
+
+#: content_manager/models.py:154
+msgid "Notice type"
+msgstr "Type de bandeau"
+
+#: content_manager/models.py:160
msgid ""
-"The important notice banner should only be used for essential and temporary "
-"information. (Excessive or continuous use risks “drowning” the "
-"message.)"
+"Use is strictly regulated, see documentation."
msgstr ""
-"Le bandeau d’information importante doit être utilisé uniquement pour une "
-"information primordiale et temporaire. (Une utilisation excessive ou "
-"continue risque de “noyer” le message)"
+"L’usage de ce bandeau est strictement encadré, voir la documentation."
+
+#: content_manager/models.py:166
+msgid "Notice link"
+msgstr "Lien du bandeau"
+
+#: content_manager/models.py:169
+msgid "Standardized consultation link at the end of the notice."
+msgstr "Lien de consultation standardisé à la fin du bandeau."
+
+#: content_manager/models.py:173
+msgid "Notice icon class"
+msgstr "Classe d’icône du bandeau"
+
+#: content_manager/models.py:177
+msgid "For weather alerts only"
+msgstr "Pour les bandeaux de vigilance météo uniquement"
+
+#: content_manager/models.py:180
+msgid "Collapsible?"
+msgstr "Refermable ?"
-#: content_manager/models.py:149
+#: content_manager/models.py:182
msgid "Show the BETA tag next to the title"
msgstr "Afficher la mention BETA à côté du titre"
-#: content_manager/models.py:152 content_manager/models.py:312
+#: content_manager/models.py:185 content_manager/models.py:359
msgid "Description"
msgstr "Description"
-#: content_manager/models.py:165 content_manager/models.py:209
+#: content_manager/models.py:198 content_manager/models.py:256
msgid "Operator logo"
msgstr "Logo opérateur"
-#: content_manager/models.py:169
+#: content_manager/models.py:202
msgid "Logo alt text"
msgstr "Alternative textuelle du logo"
-#: content_manager/models.py:172
+#: content_manager/models.py:205
msgid "Must contain the text present in the image."
msgstr "Doit impérativement contenir le texte présent dans l’image."
-#: content_manager/models.py:175
+#: content_manager/models.py:208
msgid "Width (em)"
msgstr "Largeur (em)"
-#: content_manager/models.py:181
+#: content_manager/models.py:214
msgid ""
"To be adjusted according to the width of the logo. Example for a "
"vertical logo: 3.5, Example for a horizontal logo: 8."
@@ -947,87 +979,101 @@ msgstr ""
"À ajuster en fonction de la largeur du logo. Exemple pour un logo vertical: "
"3.5, Exemple pour un logo horizontal: 8."
-#: content_manager/models.py:190
+#: content_manager/models.py:223
msgid "Newsletter description"
msgstr "Description de la lettre d’information"
-#: content_manager/models.py:193
+#: content_manager/models.py:226
msgid "Newsletter registration URL"
msgstr "URL d‘inscription à la lettre d’information"
-#: content_manager/models.py:218
+#: content_manager/models.py:244
+msgid "Important notice"
+msgstr "Bandeau d’information importante"
+
+#: content_manager/models.py:246
+msgid ""
+"The important notice banner should only be used for essential and temporary "
+"information. (Excessive or continuous use risks “drowning” "
+"the message.)"
+msgstr ""
+"Le bandeau d’information importante doit être utilisé uniquement pour une "
+"information primordiale et temporaire. (Une utilisation excessive ou "
+"continue risque de “noyer” le message)"
+
+#: content_manager/models.py:265
msgid "Advanced settings"
msgstr "Paramètres avancés"
-#: content_manager/models.py:228
+#: content_manager/models.py:275
msgid "Header"
msgstr "En-tête"
-#: content_manager/models.py:235
+#: content_manager/models.py:282
msgid "Footer"
msgstr "Pied de page"
-#: content_manager/models.py:245
+#: content_manager/models.py:292
msgid "Newsletter"
msgstr "Lettre d’information"
-#: content_manager/models.py:247 content_manager/models.py:293
+#: content_manager/models.py:294 content_manager/models.py:340
msgid "Social media items"
msgstr "Liens de réseaux sociaux"
-#: content_manager/models.py:251
+#: content_manager/models.py:298
msgid "Generic"
msgstr "Génériques"
-#: content_manager/models.py:252
+#: content_manager/models.py:299
msgid "Brand block"
msgstr "Bloc-marque"
-#: content_manager/models.py:253
+#: content_manager/models.py:300
msgid "Newsletter and social media"
msgstr "Lettre d’information et réseaux sociaux"
-#: content_manager/models.py:279
+#: content_manager/models.py:326
msgid "URL"
msgstr "URL"
-#: content_manager/models.py:283
+#: content_manager/models.py:330
msgid "Icon class"
msgstr "Classe d’icône"
-#: content_manager/models.py:292
+#: content_manager/models.py:339
msgid "Social media item"
msgstr "Lien de réseau social"
-#: content_manager/models.py:299
+#: content_manager/models.py:346
msgid "Category"
msgstr "Catégorie"
-#: content_manager/models.py:302
+#: content_manager/models.py:349
msgid "Mega menu category"
msgstr "Catégorie de méga menu"
-#: content_manager/models.py:303
+#: content_manager/models.py:350
msgid "Mega menu categories"
msgstr "Catégories de méga menu"
-#: content_manager/models.py:308
+#: content_manager/models.py:355
msgid "Name"
msgstr "Nom"
-#: content_manager/models.py:313
+#: content_manager/models.py:360
msgid "Main link"
msgstr "Lien principal"
-#: content_manager/models.py:323
+#: content_manager/models.py:370
msgid "Categories"
msgstr "Catégories"
-#: content_manager/models.py:324
+#: content_manager/models.py:371
msgid "Maximum 4 categories, each with maximum 8 links."
msgstr "Maximum 4 catégories, chacune contenant maximum 8 liens."
-#: content_manager/models.py:335
+#: content_manager/models.py:382
msgid "Mega menu"
msgstr "Méga menu"
@@ -1097,9 +1143,6 @@ msgstr "Liste de pages avec l’étiquette {tag}"
#~ msgid "The link appears as a button under the text block"
#~ msgstr "Le lien apparaît comme un bouton sous le bloc de texte"
-#~ msgid "Can contain HTML."
-#~ msgstr "Peut contenir du HTML."
-
#~ msgid "Callout title"
#~ msgstr "Titre de l’appel à action"
diff --git a/content_manager/migrations/0039_rename_notice_cmsdsfrconfig_notice_title.py b/content_manager/migrations/0039_rename_notice_cmsdsfrconfig_notice_title.py
new file mode 100644
index 00000000..26bae0be
--- /dev/null
+++ b/content_manager/migrations/0039_rename_notice_cmsdsfrconfig_notice_title.py
@@ -0,0 +1,17 @@
+# Generated by Django 5.0.8 on 2024-08-23 13:18
+
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+ dependencies = [
+ ("content_manager", "0038_alter_contentpage_body"),
+ ]
+
+ operations = [
+ migrations.RenameField(
+ model_name="cmsdsfrconfig",
+ old_name="notice",
+ new_name="notice_title",
+ ),
+ ]
diff --git a/content_manager/migrations/0040_cmsdsfrconfig_notice_description_and_more.py b/content_manager/migrations/0040_cmsdsfrconfig_notice_description_and_more.py
new file mode 100644
index 00000000..ee208413
--- /dev/null
+++ b/content_manager/migrations/0040_cmsdsfrconfig_notice_description_and_more.py
@@ -0,0 +1,83 @@
+# Generated by Django 5.0.8 on 2024-08-23 13:26
+
+import wagtail.fields
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+ dependencies = [
+ ("content_manager", "0039_rename_notice_cmsdsfrconfig_notice_title"),
+ ]
+
+ operations = [
+ migrations.AddField(
+ model_name="cmsdsfrconfig",
+ name="notice_description",
+ field=wagtail.fields.RichTextField(
+ blank=True, default="", help_text="Can include HTML", verbose_name="Notice description"
+ ),
+ ),
+ migrations.AddField(
+ model_name="cmsdsfrconfig",
+ name="notice_icon_class",
+ field=models.CharField(
+ blank=True,
+ default="",
+ help_text="For weather alerts only",
+ max_length=200,
+ verbose_name="Notice icon class",
+ ),
+ ),
+ migrations.AddField(
+ model_name="cmsdsfrconfig",
+ name="notice_is_collapsible",
+ field=models.BooleanField(default=False, verbose_name="Collapsible?"),
+ ),
+ migrations.AddField(
+ model_name="cmsdsfrconfig",
+ name="notice_link",
+ field=models.URLField(
+ blank=True,
+ default="",
+ help_text="Standardized consultation link at the end of the notice.",
+ verbose_name="Notice link",
+ ),
+ ),
+ migrations.AddField(
+ model_name="cmsdsfrconfig",
+ name="notice_type",
+ field=models.CharField(
+ blank=True,
+ choices=[
+ ("Generic notices", [("info", "Information"), ("warning", "Warning"), ("alert", "Alert")]),
+ (
+ "Weather alert notices",
+ [
+ ("weather-orange", "Orange weather alert"),
+ ("weather-red", "Red weather alert"),
+ ("weather-purple", "Purple weather alert"),
+ ],
+ ),
+ (
+ "Alert notices",
+ [
+ ("attack", "Attack alert"),
+ ("witness", "Call for witnesses"),
+ ("cyberattack", "Cyberattack"),
+ ],
+ ),
+ ],
+ default="info",
+ help_text='Use is strictly regulated, see documentation.',
+ max_length=20,
+ verbose_name="Notice type",
+ ),
+ ),
+ migrations.AlterField(
+ model_name="cmsdsfrconfig",
+ name="notice_title",
+ field=wagtail.fields.RichTextField(
+ blank=True, default="", help_text="Can include HTML", verbose_name="Notice title"
+ ),
+ ),
+ ]
diff --git a/content_manager/models.py b/content_manager/models.py
index d0af8b50..71ea3de7 100644
--- a/content_manager/models.py
+++ b/content_manager/models.py
@@ -1,6 +1,7 @@
from django.db import models
from django.forms.widgets import Textarea
from django.utils.translation import gettext_lazy as _
+from dsfr.constants import NOTICE_TYPE_CHOICES
from modelcluster.fields import ParentalKey
from modelcluster.models import ClusterableModel
from modelcluster.tags import ClusterTaggableManager
@@ -135,17 +136,49 @@ class Meta:
blank=True,
)
- notice = RichTextField(
- _("Important notice"),
+ notice_title = RichTextField(
+ _("Notice title"),
default="",
blank=True,
features=LIMITED_RICHTEXTFIELD_FEATURES,
+ help_text=_("Can include HTML"),
+ )
+
+ notice_description = RichTextField(
+ _("Notice description"),
+ default="",
+ blank=True,
+ help_text=_("Can include HTML"),
+ )
+ notice_type = models.CharField(
+ _("Notice type"),
+ choices=NOTICE_TYPE_CHOICES,
+ default="info",
+ blank=True,
+ max_length=20,
help_text=_(
- "The important notice banner should only be used for essential and temporary information. \
- (Excessive or continuous use risks “drowning” the message.)"
+ 'Use is strictly regulated, see \
+ documentation.'
),
)
+ notice_link = models.URLField(
+ _("Notice link"),
+ default="",
+ blank=True,
+ help_text=_("Standardized consultation link at the end of the notice."),
+ )
+
+ notice_icon_class = models.CharField(
+ _("Notice icon class"),
+ max_length=200,
+ default="",
+ blank=True,
+ help_text=_("For weather alerts only"),
+ )
+
+ notice_is_collapsible = models.BooleanField(_("Collapsible?"), default=False) # type: ignore
+
beta_tag = models.BooleanField(_("Show the BETA tag next to the title"), default=False)
footer_description = RichTextField(
@@ -199,7 +232,21 @@ class Meta:
FieldPanel("site_title"),
FieldPanel("site_tagline"),
FieldPanel("footer_description"),
- FieldPanel("notice"),
+ MultiFieldPanel(
+ [
+ FieldPanel("notice_title"),
+ FieldPanel("notice_description"),
+ FieldPanel("notice_type"),
+ FieldPanel("notice_link"),
+ FieldPanel("notice_icon_class", widget=DsfrIconPickerWidget),
+ FieldPanel("notice_is_collapsible"),
+ ],
+ heading=_("Important notice"),
+ help_text=_(
+ "The important notice banner should only be used for essential and temporary information. \
+ (Excessive or continuous use risks “drowning” the message.)"
+ ),
+ ),
MultiFieldPanel(
[
FieldPanel("operator_logo_file"),
diff --git a/content_manager/tests/test_views.py b/content_manager/tests/test_views.py
index 09f74e2d..db9a6636 100644
--- a/content_manager/tests/test_views.py
+++ b/content_manager/tests/test_views.py
@@ -118,24 +118,13 @@ def test_notice_is_not_set_by_default(self):
)
def test_notice_can_be_set(self):
- self.config.notice = "Ceci est une information importante et temporaire."
+ self.config.notice_title = "Ceci est une information importante et temporaire."
self.config.save()
url = self.content_page.url
response = self.client.get(url)
- self.assertInHTML(
- """
-
-
-
- Ceci est une information importante et temporaire.
-
-
-
-
""",
- response.content.decode(),
- )
+ self.assertContains(response, self.config.notice_title)
def test_beta_tag_is_not_set_by_default(self):
url = self.content_page.url
@@ -164,10 +153,7 @@ def test_footer_description_uses_conf(self):
self.config.refresh_from_db()
- self.assertContains(
- response,
- self.config.footer_description,
- )
+ self.assertContains(response, self.config.footer_description)
class MenusTestCase(WagtailPageTestCase):
diff --git a/dashboard/templates/wagtailadmin/account/password_reset/confirm.html b/dashboard/templates/wagtailadmin/account/password_reset/confirm.html
index fb5c3fa3..8f40616b 100644
--- a/dashboard/templates/wagtailadmin/account/password_reset/confirm.html
+++ b/dashboard/templates/wagtailadmin/account/password_reset/confirm.html
@@ -15,7 +15,8 @@ {% translate "Set your new password" %}
diff --git a/dashboard/templates/wagtailadmin/account/password_reset/form.html b/dashboard/templates/wagtailadmin/account/password_reset/form.html
index fb4a5072..7bf952b6 100644
--- a/dashboard/templates/wagtailadmin/account/password_reset/form.html
+++ b/dashboard/templates/wagtailadmin/account/password_reset/form.html
@@ -13,7 +13,7 @@ {% translate "Reset your password" %}
diff --git a/events/forms.py b/events/forms.py
index d5e601f9..457a8093 100644
--- a/events/forms.py
+++ b/events/forms.py
@@ -5,7 +5,7 @@
class EventSearchForm(SitesFacilesBaseForm):
- """Main form for search engine."""
+ """Main form for events page list."""
date_from = forms.DateField(
label=_("From…"),
diff --git a/forms/apps.py b/forms/apps.py
index ec22dd82..e4f47388 100644
--- a/forms/apps.py
+++ b/forms/apps.py
@@ -2,5 +2,5 @@
class FormsConfig(AppConfig):
- default_auto_field = "django.db.models.BigAutoField"
+ default_auto_field = "django.db.models.BigAutoField" # type: ignore
name = "forms"
diff --git a/forms/models.py b/forms/models.py
index 681d5044..b2450885 100644
--- a/forms/models.py
+++ b/forms/models.py
@@ -37,11 +37,13 @@ class Meta:
verbose_name_plural = _("Form fields")
-class SitesFacilesBaseForm(BaseForm):
+class SitesFacilesCustomForm(BaseForm):
"""
A base form that adds the necessary DSFR class on relevant fields
"""
+ template_name = "dsfr/form_snippet.html" # type: ignore
+
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
for visible in self.visible_fields():
@@ -63,7 +65,7 @@ def create_datetime_field(self, field, options):
return forms.DateField(**options)
def get_form_class(self):
- return type("WagtailForm", (SitesFacilesBaseForm,), self.formfields)
+ return type("WagtailForm", (SitesFacilesCustomForm,), self.formfields)
class FormPage(AbstractEmailForm):
diff --git a/forms/templates/forms/form_page.html b/forms/templates/forms/form_page.html
index f6a66386..6f19ad80 100644
--- a/forms/templates/forms/form_page.html
+++ b/forms/templates/forms/form_page.html
@@ -18,7 +18,7 @@ {{ page.title }}
{{ page.intro|richtext }}
diff --git a/locale/fr/LC_MESSAGES/django.mo b/locale/fr/LC_MESSAGES/django.mo
index 988f808b..7e164e54 100644
Binary files a/locale/fr/LC_MESSAGES/django.mo and b/locale/fr/LC_MESSAGES/django.mo differ
diff --git a/locale/fr/LC_MESSAGES/django.po b/locale/fr/LC_MESSAGES/django.po
index 07ca917a..f06dfd37 100644
--- a/locale/fr/LC_MESSAGES/django.po
+++ b/locale/fr/LC_MESSAGES/django.po
@@ -8,8 +8,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-08-20 11:23+0200\n"
-"PO-Revision-Date: 2024-08-20 11:25+0200\n"
+"POT-Creation-Date: 2024-08-23 16:16+0200\n"
+"PO-Revision-Date: 2024-08-23 16:17+0200\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: fr\n"
@@ -45,7 +45,7 @@ msgstr "Retourner à l’accueil"
msgid "Display settings"
msgstr "Paramètres d’affichage"
-#: templates/blocks/footer.html:56
+#: templates/blocks/footer.html:56 templates/blocks/notice.html:4
msgid "Opens a new window"
msgstr "Ouvre une nouvelle fenêtre"
@@ -72,3 +72,11 @@ msgstr "Menu"
#: templates/blocks/header.html:106
msgid "Main menu"
msgstr "Menu principal"
+
+#: templates/blocks/notice.html:2
+msgid "Hide message"
+msgstr "Masquer le message"
+
+#: templates/blocks/notice.html:3
+msgid "Consultation link"
+msgstr "Lien de consultation"
diff --git a/poetry.lock b/poetry.lock
index 70172514..047b2f5a 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -69,33 +69,33 @@ lxml = ["lxml"]
[[package]]
name = "black"
-version = "24.4.2"
+version = "24.8.0"
description = "The uncompromising code formatter."
optional = false
python-versions = ">=3.8"
files = [
- {file = "black-24.4.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dd1b5a14e417189db4c7b64a6540f31730713d173f0b63e55fabd52d61d8fdce"},
- {file = "black-24.4.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e537d281831ad0e71007dcdcbe50a71470b978c453fa41ce77186bbe0ed6021"},
- {file = "black-24.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eaea3008c281f1038edb473c1aa8ed8143a5535ff18f978a318f10302b254063"},
- {file = "black-24.4.2-cp310-cp310-win_amd64.whl", hash = "sha256:7768a0dbf16a39aa5e9a3ded568bb545c8c2727396d063bbaf847df05b08cd96"},
- {file = "black-24.4.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:257d724c2c9b1660f353b36c802ccece186a30accc7742c176d29c146df6e474"},
- {file = "black-24.4.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bdde6f877a18f24844e381d45e9947a49e97933573ac9d4345399be37621e26c"},
- {file = "black-24.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e151054aa00bad1f4e1f04919542885f89f5f7d086b8a59e5000e6c616896ffb"},
- {file = "black-24.4.2-cp311-cp311-win_amd64.whl", hash = "sha256:7e122b1c4fb252fd85df3ca93578732b4749d9be076593076ef4d07a0233c3e1"},
- {file = "black-24.4.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:accf49e151c8ed2c0cdc528691838afd217c50412534e876a19270fea1e28e2d"},
- {file = "black-24.4.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:88c57dc656038f1ab9f92b3eb5335ee9b021412feaa46330d5eba4e51fe49b04"},
- {file = "black-24.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:be8bef99eb46d5021bf053114442914baeb3649a89dc5f3a555c88737e5e98fc"},
- {file = "black-24.4.2-cp312-cp312-win_amd64.whl", hash = "sha256:415e686e87dbbe6f4cd5ef0fbf764af7b89f9057b97c908742b6008cc554b9c0"},
- {file = "black-24.4.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bf10f7310db693bb62692609b397e8d67257c55f949abde4c67f9cc574492cc7"},
- {file = "black-24.4.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:98e123f1d5cfd42f886624d84464f7756f60ff6eab89ae845210631714f6db94"},
- {file = "black-24.4.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:48a85f2cb5e6799a9ef05347b476cce6c182d6c71ee36925a6c194d074336ef8"},
- {file = "black-24.4.2-cp38-cp38-win_amd64.whl", hash = "sha256:b1530ae42e9d6d5b670a34db49a94115a64596bc77710b1d05e9801e62ca0a7c"},
- {file = "black-24.4.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:37aae07b029fa0174d39daf02748b379399b909652a806e5708199bd93899da1"},
- {file = "black-24.4.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:da33a1a5e49c4122ccdfd56cd021ff1ebc4a1ec4e2d01594fef9b6f267a9e741"},
- {file = "black-24.4.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef703f83fc32e131e9bcc0a5094cfe85599e7109f896fe8bc96cc402f3eb4b6e"},
- {file = "black-24.4.2-cp39-cp39-win_amd64.whl", hash = "sha256:b9176b9832e84308818a99a561e90aa479e73c523b3f77afd07913380ae2eab7"},
- {file = "black-24.4.2-py3-none-any.whl", hash = "sha256:d36ed1124bb81b32f8614555b34cc4259c3fbc7eec17870e8ff8ded335b58d8c"},
- {file = "black-24.4.2.tar.gz", hash = "sha256:c872b53057f000085da66a19c55d68f6f8ddcac2642392ad3a355878406fbd4d"},
+ {file = "black-24.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:09cdeb74d494ec023ded657f7092ba518e8cf78fa8386155e4a03fdcc44679e6"},
+ {file = "black-24.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:81c6742da39f33b08e791da38410f32e27d632260e599df7245cccee2064afeb"},
+ {file = "black-24.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:707a1ca89221bc8a1a64fb5e15ef39cd755633daa672a9db7498d1c19de66a42"},
+ {file = "black-24.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:d6417535d99c37cee4091a2f24eb2b6d5ec42b144d50f1f2e436d9fe1916fe1a"},
+ {file = "black-24.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:fb6e2c0b86bbd43dee042e48059c9ad7830abd5c94b0bc518c0eeec57c3eddc1"},
+ {file = "black-24.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:837fd281f1908d0076844bc2b801ad2d369c78c45cf800cad7b61686051041af"},
+ {file = "black-24.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:62e8730977f0b77998029da7971fa896ceefa2c4c4933fcd593fa599ecbf97a4"},
+ {file = "black-24.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:72901b4913cbac8972ad911dc4098d5753704d1f3c56e44ae8dce99eecb0e3af"},
+ {file = "black-24.8.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:7c046c1d1eeb7aea9335da62472481d3bbf3fd986e093cffd35f4385c94ae368"},
+ {file = "black-24.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:649f6d84ccbae73ab767e206772cc2d7a393a001070a4c814a546afd0d423aed"},
+ {file = "black-24.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2b59b250fdba5f9a9cd9d0ece6e6d993d91ce877d121d161e4698af3eb9c1018"},
+ {file = "black-24.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:6e55d30d44bed36593c3163b9bc63bf58b3b30e4611e4d88a0c3c239930ed5b2"},
+ {file = "black-24.8.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:505289f17ceda596658ae81b61ebbe2d9b25aa78067035184ed0a9d855d18afd"},
+ {file = "black-24.8.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b19c9ad992c7883ad84c9b22aaa73562a16b819c1d8db7a1a1a49fb7ec13c7d2"},
+ {file = "black-24.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1f13f7f386f86f8121d76599114bb8c17b69d962137fc70efe56137727c7047e"},
+ {file = "black-24.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:f490dbd59680d809ca31efdae20e634f3fae27fba3ce0ba3208333b713bc3920"},
+ {file = "black-24.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:eab4dd44ce80dea27dc69db40dab62d4ca96112f87996bca68cd75639aeb2e4c"},
+ {file = "black-24.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3c4285573d4897a7610054af5a890bde7c65cb466040c5f0c8b732812d7f0e5e"},
+ {file = "black-24.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9e84e33b37be070ba135176c123ae52a51f82306def9f7d063ee302ecab2cf47"},
+ {file = "black-24.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:73bbf84ed136e45d451a260c6b73ed674652f90a2b3211d6a35e78054563a9bb"},
+ {file = "black-24.8.0-py3-none-any.whl", hash = "sha256:972085c618ee94f402da1af548a4f218c754ea7e5dc70acb168bfaca4c2542ed"},
+ {file = "black-24.8.0.tar.gz", hash = "sha256:2500945420b6784c38b9ee885af039f5e7471ef284ab03fa35ecdde4688cd83f"},
]
[package.dependencies]
@@ -131,17 +131,17 @@ webencodings = "*"
[[package]]
name = "boto3"
-version = "1.34.144"
+version = "1.35.4"
description = "The AWS SDK for Python"
optional = false
python-versions = ">=3.8"
files = [
- {file = "boto3-1.34.144-py3-none-any.whl", hash = "sha256:b8433d481d50b68a0162c0379c0dd4aabfc3d1ad901800beb5b87815997511c1"},
- {file = "boto3-1.34.144.tar.gz", hash = "sha256:2f3e88b10b8fcc5f6100a9d74cd28230edc9d4fa226d99dd40a3ab38ac213673"},
+ {file = "boto3-1.35.4-py3-none-any.whl", hash = "sha256:96c39593afb7b55ebb74d08c8e3201041d105b557c8c8536c9054c9f13da5f2a"},
+ {file = "boto3-1.35.4.tar.gz", hash = "sha256:d997b82c468bd5c2d5cd29810d47079b66b178d2b5ae021aebe262c4d78d4c94"},
]
[package.dependencies]
-botocore = ">=1.34.144,<1.35.0"
+botocore = ">=1.35.4,<1.36.0"
jmespath = ">=0.7.1,<2.0.0"
s3transfer = ">=0.10.0,<0.11.0"
@@ -150,13 +150,13 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"]
[[package]]
name = "botocore"
-version = "1.34.144"
+version = "1.35.4"
description = "Low-level, data-driven core of boto 3."
optional = false
python-versions = ">=3.8"
files = [
- {file = "botocore-1.34.144-py3-none-any.whl", hash = "sha256:a2cf26e1bf10d5917a2285e50257bc44e94a1d16574f282f3274f7a5d8d1f08b"},
- {file = "botocore-1.34.144.tar.gz", hash = "sha256:4215db28d25309d59c99507f1f77df9089e5bebbad35f6e19c7c44ec5383a3e8"},
+ {file = "botocore-1.35.4-py3-none-any.whl", hash = "sha256:10195e5ca764745f02b9a51df048b996ddbdc1899a44a2caf35dfb225dfea489"},
+ {file = "botocore-1.35.4.tar.gz", hash = "sha256:4cc51a6a486915aedc140f9d027b7e156646b7a0f7b33b1000762c81aff9a12f"},
]
[package.dependencies]
@@ -165,7 +165,7 @@ python-dateutil = ">=2.1,<3.0.0"
urllib3 = {version = ">=1.25.4,<2.2.0 || >2.2.0,<3", markers = "python_version >= \"3.10\""}
[package.extras]
-crt = ["awscrt (==0.20.11)"]
+crt = ["awscrt (==0.21.2)"]
[[package]]
name = "certifi"
@@ -391,13 +391,13 @@ static3 = "*"
[[package]]
name = "django"
-version = "5.0.7"
+version = "5.0.8"
description = "A high-level Python web framework that encourages rapid development and clean, pragmatic design."
optional = false
python-versions = ">=3.10"
files = [
- {file = "Django-5.0.7-py3-none-any.whl", hash = "sha256:f216510ace3de5de01329463a315a629f33480e893a9024fc93d8c32c22913da"},
- {file = "Django-5.0.7.tar.gz", hash = "sha256:bd4505cae0b9bd642313e8fb71810893df5dc2ffcacaa67a33af2d5cd61888f2"},
+ {file = "Django-5.0.8-py3-none-any.whl", hash = "sha256:333a7988f7ca4bc14d360d3d8f6b793704517761ae3813b95432043daec22a45"},
+ {file = "Django-5.0.8.tar.gz", hash = "sha256:ebe859c9da6fead9c9ee6dbfa4943b04f41342f4cea2c4d8c978ef0d10694f2b"},
]
[package.dependencies]
@@ -441,13 +441,13 @@ testing = ["coverage"]
[[package]]
name = "django-compressor"
-version = "4.5"
+version = "4.5.1"
description = "('Compresses linked and inline JavaScript or CSS into single cached files.',)"
optional = false
python-versions = ">=3.8"
files = [
- {file = "django_compressor-4.5-py2.py3-none-any.whl", hash = "sha256:2c14e1a80a234432153e64035ae1adaf638c1ba8d7fc9e60a7be2fad5697fdbe"},
- {file = "django_compressor-4.5.tar.gz", hash = "sha256:9d98c905b741be6cb09ad828c1d22a9ff9244dd08823e2926af8ddd1871c3c65"},
+ {file = "django_compressor-4.5.1-py2.py3-none-any.whl", hash = "sha256:87741edee4e7f24f3e0b8072d94a990cfb010cb2ca7cc443944da8e193cdea65"},
+ {file = "django_compressor-4.5.1.tar.gz", hash = "sha256:c1d8a48a2ee4d8b7f23c411eb9c97e2d88db18a18ba1c9e8178d5f5b8366a822"},
]
[package.dependencies]
@@ -458,13 +458,13 @@ rjsmin = "1.2.2"
[[package]]
name = "django-crispy-forms"
-version = "2.2"
+version = "2.3"
description = "Best way to have Django DRY forms"
optional = false
python-versions = ">=3.8"
files = [
- {file = "django_crispy_forms-2.2-py3-none-any.whl", hash = "sha256:a681cffd5af270b3082bda02cf8f81bdb5717ed66d2265e87e3df2f4ccf46277"},
- {file = "django_crispy_forms-2.2.tar.gz", hash = "sha256:92cb7b7786fb82646bad739343fd17a99a04b0b736a09e34f3b91f26cbca7e4a"},
+ {file = "django_crispy_forms-2.3-py3-none-any.whl", hash = "sha256:efc4c31e5202bbec6af70d383a35e12fc80ea769d464fb0e7fe21768bb138a20"},
+ {file = "django_crispy_forms-2.3.tar.gz", hash = "sha256:2db17ae08527201be1273f0df789e5f92819e23dd28fec69cffba7f3762e1a38"},
]
[package.dependencies]
@@ -487,13 +487,13 @@ sqlparse = ">=0.2"
[[package]]
name = "django-dsfr"
-version = "1.2.0"
+version = "1.3.1"
description = "Integrate the French government Design System into a Django app"
optional = false
python-versions = "<4.0,>=3.8"
files = [
- {file = "django_dsfr-1.2.0-py3-none-any.whl", hash = "sha256:85390147dcf07b36a7e9bc6cf536ed1bf3cb51fa390c583db0df8186adf4213a"},
- {file = "django_dsfr-1.2.0.tar.gz", hash = "sha256:4eaae52993c87740d11dbf36c51f73dad1a372cdbc3bcd0757f3e18584e8c4c5"},
+ {file = "django_dsfr-1.3.1-py3-none-any.whl", hash = "sha256:d0b57923b25cfe7bf3313d2a8c73d89156679422b98cf07eb635bd0b2848a9d1"},
+ {file = "django_dsfr-1.3.1.tar.gz", hash = "sha256:c12bafe36ceb381b18fef47c5db1f0dc9fc62841594062caca8311d53fdd6a35"},
]
[package.dependencies]
@@ -518,13 +518,13 @@ Django = ">=3.2"
[[package]]
name = "django-filter"
-version = "24.2"
+version = "24.3"
description = "Django-filter is a reusable Django application for allowing users to filter querysets dynamically."
optional = false
python-versions = ">=3.8"
files = [
- {file = "django-filter-24.2.tar.gz", hash = "sha256:48e5fc1da3ccd6ca0d5f9bb550973518ce977a4edde9d2a8a154a7f4f0b9f96e"},
- {file = "django_filter-24.2-py3-none-any.whl", hash = "sha256:df2ee9857e18d38bed203c8745f62a803fa0f31688c9fe6f8e868120b1848e48"},
+ {file = "django_filter-24.3-py3-none-any.whl", hash = "sha256:c4852822928ce17fb699bcfccd644b3574f1a2d80aeb2b4ff4f16b02dd49dc64"},
+ {file = "django_filter-24.3.tar.gz", hash = "sha256:d8ccaf6732afd21ca0542f6733b11591030fa98669f8d15599b358e24a2cd9c3"},
]
[package.dependencies]
@@ -1041,13 +1041,13 @@ files = [
[[package]]
name = "markdown"
-version = "3.6"
+version = "3.7"
description = "Python implementation of John Gruber's Markdown."
optional = false
python-versions = ">=3.8"
files = [
- {file = "Markdown-3.6-py3-none-any.whl", hash = "sha256:48f276f4d8cfb8ce6527c8f79e2ee29708508bf4d40aa410fbc3b4ee832c850f"},
- {file = "Markdown-3.6.tar.gz", hash = "sha256:ed4f41f6daecbeeb96e576ce414c41d2d876daa9a16cb35fa8ed8c2ddfad0224"},
+ {file = "Markdown-3.7-py3-none-any.whl", hash = "sha256:7eb6df5690b81a1d7942992c97fad2938e956e79df20cbc6186e9c3a77b1c803"},
+ {file = "markdown-3.7.tar.gz", hash = "sha256:2ae2471477cfd02dbbf038d5d9bc226d40def84b4fe2986e49b59b6b472bbed2"},
]
[package.extras]
@@ -1265,57 +1265,63 @@ xmp = ["defusedxml"]
[[package]]
name = "pillow-heif"
-version = "0.17.0"
+version = "0.18.0"
description = "Python interface for libheif library"
optional = false
python-versions = ">=3.8"
files = [
- {file = "pillow_heif-0.17.0-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:70fa89a6ed62d4eb993f1adcd72a547861e7a947714bad87f0c0b201ef04c28c"},
- {file = "pillow_heif-0.17.0-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:7a201d9f086ab4c475691936e40e063529f401a0a53f70ef3b1e5404726b80fd"},
- {file = "pillow_heif-0.17.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4f29d98668785fbb8ddcf0cf5e86f8676c2a4d7dc3c3ee51a37304c6047cea4d"},
- {file = "pillow_heif-0.17.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ab279e6b5a5d65ee30db49d55668b9b1b2756827a251c2c6577d7dcaa152c1a9"},
- {file = "pillow_heif-0.17.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:5d360eac8a066739fa01a9d14954a288bc52eb9ac90e924d85b0ab89502626d6"},
- {file = "pillow_heif-0.17.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:861cd3783df852c28d1c7434562f59dc1f10f38746c5bbf0be4fafc8516a493b"},
- {file = "pillow_heif-0.17.0-cp310-cp310-win_amd64.whl", hash = "sha256:3d2f4b33eb0ea85d5afae3d340aa60781570ca56513666b22fe1fa94a6546ab8"},
- {file = "pillow_heif-0.17.0-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:7991509a4d0291116a26b9cd9f3482e4b2a4e3cdd9950de33cd78dae53b7a94d"},
- {file = "pillow_heif-0.17.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:b85cdcdcec561e28b3f72d181342a6fe72298a4da7ad6fe973161efb699f9555"},
- {file = "pillow_heif-0.17.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23eeda0ce7d22d35f806c48c9f4e9eccfb7f5cf7f54f459ca71d053ed6e7e84e"},
- {file = "pillow_heif-0.17.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ac7505dbdea5467ba5eb4013c06915f9b42f893b4856ac957f4568317814268"},
- {file = "pillow_heif-0.17.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ccdbdf6cc7e63b6dc886c1e258f84f9ca622611c0f63ecfd7e453e026aa18a35"},
- {file = "pillow_heif-0.17.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:2055dd6a9f2ccfe68bcfb375aac667923ca330adea4c21d46e8b0541c942768f"},
- {file = "pillow_heif-0.17.0-cp311-cp311-win_amd64.whl", hash = "sha256:853637f56b431d77750390fb3327f4e7025a755c1bcee9d209384f4b24583598"},
- {file = "pillow_heif-0.17.0-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:29e5bc3a6529e1247f974386f55e4a2932dbdb8b8407496c95e7fd5c30a695a6"},
- {file = "pillow_heif-0.17.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:28226858905df14879a856d11179cf765c2728306ed686802bb7c8fff5e77a82"},
- {file = "pillow_heif-0.17.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d4992e51c5e6968957e083fdd2b93865396b00755a4c8e53c71c0233cc53637f"},
- {file = "pillow_heif-0.17.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e460433a23aab5c0e92fb6700ee3c2aec32e680daa12520bd784f263bf95319f"},
- {file = "pillow_heif-0.17.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4e193d3d078c301fd3ecd136ca4e351df6ae7a3b5837f48828bb9e78390a3a88"},
- {file = "pillow_heif-0.17.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:72d3d32756fb039a062f239c5890a2757d0ca8b36c6a4dd1b6c81bbecc36d646"},
- {file = "pillow_heif-0.17.0-cp312-cp312-win_amd64.whl", hash = "sha256:aef99e3201be61e1b2322faf982765327f7423b8a065c31c24761aecf5df161e"},
- {file = "pillow_heif-0.17.0-cp38-cp38-macosx_12_0_x86_64.whl", hash = "sha256:7d82702167839a14f95169e5d4ecae7c31e2669a6c0772b6cb7eae4d74caf69b"},
- {file = "pillow_heif-0.17.0-cp38-cp38-macosx_14_0_arm64.whl", hash = "sha256:5b8983e5dc8156e1af5a26335b086d85ed3f8e570be5f922546ef131e8cf9c00"},
- {file = "pillow_heif-0.17.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7e0dcc4e3901c8d2bd099e670c62f431895d2d7a5a0979da89865508d41e1a06"},
- {file = "pillow_heif-0.17.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:444408526de16e55509077cce83d1893ba14e47e9f1b61e1a83aa9a23dcb8eeb"},
- {file = "pillow_heif-0.17.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d0d92e835b57ddff51a06442d5c701eae4a8da32d4dcd14bc0fa74dfccc35ac7"},
- {file = "pillow_heif-0.17.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:1c9a69b8f1ff131ae3d11ba86386b7ac1872702d8529a055cb694cffbd876a7b"},
- {file = "pillow_heif-0.17.0-cp38-cp38-win_amd64.whl", hash = "sha256:27074ae9ded6576bc99d75d5c9911736711d44bb2a383177e305db6dbea1da27"},
- {file = "pillow_heif-0.17.0-cp39-cp39-macosx_12_0_x86_64.whl", hash = "sha256:e1aae72d0a608525aa041ed3853198f9e5d16bc1ccb0e3c5320ec08be5ed8c7f"},
- {file = "pillow_heif-0.17.0-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:80f2156b7d75abdc3b69c4688192be56cb40db9a423d67c375f34099814aed1a"},
- {file = "pillow_heif-0.17.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:190a69a5695fe6e661024b7266c3282aad4c582ca172ce4cb3851986e0635d7f"},
- {file = "pillow_heif-0.17.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:130b8ba2c4116dbaaa531052fe3868ab98e078ab8d51efb9453ca9c787dc3517"},
- {file = "pillow_heif-0.17.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:11545360fd2d52b8319988c73f58caba6de6c3a49b28f0808a0cf48a29f860c2"},
- {file = "pillow_heif-0.17.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:ec51216fa9373a6efe493614766e4fc7ad715d5496c049a7019c7890a0eeb9bc"},
- {file = "pillow_heif-0.17.0-cp39-cp39-win_amd64.whl", hash = "sha256:dea62e7559577b69354672f3f23c3c8d308c14015965ab97f9d4440229ae6d70"},
- {file = "pillow_heif-0.17.0-pp310-pypy310_pp73-macosx_12_0_x86_64.whl", hash = "sha256:d787ee558500d0222b8ab30a520512109c39fe76c25cea613295c83a808d3589"},
- {file = "pillow_heif-0.17.0-pp310-pypy310_pp73-macosx_14_0_arm64.whl", hash = "sha256:4cbe8e609c363d6c41f5fd52aa4c1274927b88df1ae8b96ff3dee1d5549b58e2"},
- {file = "pillow_heif-0.17.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cd469939924a9722e4353d3770d27d9fa8a5a2a869519f48f190a8bc6694d995"},
- {file = "pillow_heif-0.17.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:58fdcb04b6c3a8802f94415bd6e2d20df2d79cf6947e4ff9a1b1cdfdb13a187a"},
- {file = "pillow_heif-0.17.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:fd5b9d27ffb06ce81a8d4c86ca026ce7644108cc27802a8122a52b7863fb1af7"},
- {file = "pillow_heif-0.17.0-pp39-pypy39_pp73-macosx_12_0_x86_64.whl", hash = "sha256:eed517d85d2ce15b8fdaf382bcd04947e87d961e0dceb258c161167ed4a6cbb0"},
- {file = "pillow_heif-0.17.0-pp39-pypy39_pp73-macosx_14_0_arm64.whl", hash = "sha256:f70150db79a3c2e9d1f93263dc88810f265c3d86968b8954bc563f487672a999"},
- {file = "pillow_heif-0.17.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cda9f1d67bbb8e2b4d976e6113d876b27bea9544a95e37ee7cb8e53f242598d"},
- {file = "pillow_heif-0.17.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c27fe963fc279128519e5845556e8c57622b3d504df1b63aa06038086de0799e"},
- {file = "pillow_heif-0.17.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a10cdb3d525d22fc31b268f55740352ac2adf357016a87b16116b0d7df29198f"},
- {file = "pillow_heif-0.17.0.tar.gz", hash = "sha256:9541ffd1f80ff3f12da26aba76eb6da458fafa5f8bf4ee16279de0e2a5464ba9"},
+ {file = "pillow_heif-0.18.0-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:e1ad1d97f42fc39de8639b3f45d4d053e00158fc64f1674a14d8912cf81791e3"},
+ {file = "pillow_heif-0.18.0-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:c45b8d19d8bb1fc61f1f648d042da16d9085506055665a64b56ce8d8ed83c42b"},
+ {file = "pillow_heif-0.18.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d524458837bdc5410f66de8e68e864bd179d19a1c205daf7f8c9a07194cc5615"},
+ {file = "pillow_heif-0.18.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2f032593b3cfc96970efc91860ef6eaa62b1e661418d7f9ec186dff9ac7c9844"},
+ {file = "pillow_heif-0.18.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:06649ea6bfac8ca5e7ac898c78c4aad2fd0bc1ce278fa86c503170010902193b"},
+ {file = "pillow_heif-0.18.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8612f4c2e8a3388647c3ce0b7810398cf941aceecd4b2c7790331a53117baf10"},
+ {file = "pillow_heif-0.18.0-cp310-cp310-win_amd64.whl", hash = "sha256:a7cc374452f5b00cf44171a7bfc08c016b0c0a9f226a99369ffbeb13fd45fa7b"},
+ {file = "pillow_heif-0.18.0-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:a5d8bfcf8b23b67b8937bcc25fd464f1ca383d3d1d65220463be81ccf6c8185b"},
+ {file = "pillow_heif-0.18.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:2a4c41e76f2da4e046f170cb3716b7aedc466a194509bc0bf1a7c735d5278b8c"},
+ {file = "pillow_heif-0.18.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68781589ee03bf4bd670e55444c25cb0784451b0beacfb0f79d7f56ae497a767"},
+ {file = "pillow_heif-0.18.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8782f9f82c534f4a37ce3c609505f992f340a495da1247951108218a201d0e9"},
+ {file = "pillow_heif-0.18.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:2902460d60843e2c379320f1b752a6d4879e3ab0479674ee323d7dee487cccc8"},
+ {file = "pillow_heif-0.18.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:c8bebd570446a7b4f7db5ca8eb333dd4591fda13524bc49eee34b3f5cf40741b"},
+ {file = "pillow_heif-0.18.0-cp311-cp311-win_amd64.whl", hash = "sha256:4476bbd7bb7cc1d94c35f0c85786dbe528661bc937422db03fdc865b9ee91d30"},
+ {file = "pillow_heif-0.18.0-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:c795e7ccceea33e01e49ce536139f94cabb1bf017393666f76c05a9daebae2da"},
+ {file = "pillow_heif-0.18.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:4dd5b3ec09be45c1ef63be31773df90e18ee08e5e950018b0a349924b54a24ac"},
+ {file = "pillow_heif-0.18.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eb2eade59c2654c2643a3b637de37c19e75a77c66a3e9a5e0ae26210e4f48aee"},
+ {file = "pillow_heif-0.18.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:35b59d599bfdb8454739db6b92f0841ecadbe887babb5ed5abd5299587843eef"},
+ {file = "pillow_heif-0.18.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:26a0b8b8e899e7bcc876ee61fcadb0f0b849bd6a0d5c20f0e969c77a43b40568"},
+ {file = "pillow_heif-0.18.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0276a3e0c667677ed0c67f4512cdf2f674065018049307ba4de5cb4648b0a33e"},
+ {file = "pillow_heif-0.18.0-cp312-cp312-win_amd64.whl", hash = "sha256:5916fa31f2015626dd2372d14e24521ea6caed11b25be14faa9b9c67731087ce"},
+ {file = "pillow_heif-0.18.0-cp313-cp313-macosx_12_0_x86_64.whl", hash = "sha256:ca554f086bc146f1a798adcd77fdecd81564cc0cd74802ee61e3869ab87282f7"},
+ {file = "pillow_heif-0.18.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:2821d30d22bbb94c2a0fae25eb566421bf22c909958e031d3f0973b482b88515"},
+ {file = "pillow_heif-0.18.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8376309e178f39a2891183cb9662f1c2c87b8614ff13871f077f89edf65ecf48"},
+ {file = "pillow_heif-0.18.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3549e26a65e04e7e986888993b03aae0f848576c2404b5edf12d7db76ef2e72b"},
+ {file = "pillow_heif-0.18.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0138a08ed90e54c230878c0b8cb92447ad591b7b2e86bfca145029322ba384c7"},
+ {file = "pillow_heif-0.18.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f552419c8bd754603f1dfbc7f8cdd666118fdd3d063d67974c5bd5a8d7fed9de"},
+ {file = "pillow_heif-0.18.0-cp313-cp313-win_amd64.whl", hash = "sha256:be148b8463ac5d25fdf94d70c69a53712890cd3974ead906c98e7bf35fc96ba6"},
+ {file = "pillow_heif-0.18.0-cp38-cp38-macosx_12_0_x86_64.whl", hash = "sha256:bca173920f16ea8d1c40a970f002be15ac34a5fa99d39403a85472e265db2357"},
+ {file = "pillow_heif-0.18.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e8e9860259688700f13baed015632c4ddaf813d26cc856e37ebf0a3f171661"},
+ {file = "pillow_heif-0.18.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:21b9080d96d51158774e3022fc9af19b650863cbb23fac991458cb354b1aa63d"},
+ {file = "pillow_heif-0.18.0-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:5b2ee478e373c0502dc431b22840dd0c551c4ce0e1007ab13f038a868ed375c1"},
+ {file = "pillow_heif-0.18.0-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:35d2d7199dc34f28aef39cec984c043b1ee30d5c46048566584dc61cf4108c09"},
+ {file = "pillow_heif-0.18.0-cp38-cp38-win_amd64.whl", hash = "sha256:d399ac5fb499c8feb9770503db25073dfeaccd01238bcb6aaf01354cd83db123"},
+ {file = "pillow_heif-0.18.0-cp39-cp39-macosx_12_0_x86_64.whl", hash = "sha256:3af89fa7a73143bc49fc18f92b1a6c0fa68ecb56fb56224fb369c2f56729fbb6"},
+ {file = "pillow_heif-0.18.0-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:8b0b9a66e604aef2d0a19a7cb2247c5f9b3352827bb1b00816053ce4982ec8ab"},
+ {file = "pillow_heif-0.18.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:02af8950d190e3bea28ed2d0ca40798eeae88eaf6e099ee44ec654667f979d97"},
+ {file = "pillow_heif-0.18.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:165430447de0f7da259eb07d9487571784912a64c75cd0c52d0d506c114ec7ce"},
+ {file = "pillow_heif-0.18.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:7666cbab98246cf9355625e66bf1bb885fdcf8ff4a917f4db04231e80ea692ee"},
+ {file = "pillow_heif-0.18.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:f403aadee232509ee2fdedbfda2dd0bae75098e70a8ddcc010061f92ab962517"},
+ {file = "pillow_heif-0.18.0-cp39-cp39-win_amd64.whl", hash = "sha256:7ed6cc5ea21f04b15b7604e20592e0ee760ee10fb2da2209b85c94bf0b6f1034"},
+ {file = "pillow_heif-0.18.0-pp310-pypy310_pp73-macosx_12_0_x86_64.whl", hash = "sha256:744b8a00a817e7139a7e2fd296092689116700dfd63e34941abdc8ae85b3a982"},
+ {file = "pillow_heif-0.18.0-pp310-pypy310_pp73-macosx_14_0_arm64.whl", hash = "sha256:89b1d63be7e8036ab45f0cd58e27e54113cfd7e852e91606b5cec4fa788a503f"},
+ {file = "pillow_heif-0.18.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d9a8ab9803d79e84e7751cc0930d381112efbf71461ca123a5c2b7abf1050c72"},
+ {file = "pillow_heif-0.18.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7649431ea30a9c342888d814f07d2aed9cab06ef5fe5bf065d514eceb2c8d24e"},
+ {file = "pillow_heif-0.18.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:8ee07e334f99bdf399d207bb19653496c65fcbf006f2cee964047f6d6d57acd9"},
+ {file = "pillow_heif-0.18.0-pp39-pypy39_pp73-macosx_12_0_x86_64.whl", hash = "sha256:4148a7f17d184c815f428949d6e60582136ef0802a7462c842ee9fe15ca9be16"},
+ {file = "pillow_heif-0.18.0-pp39-pypy39_pp73-macosx_14_0_arm64.whl", hash = "sha256:5908e8079f62ec8ace9e7c554691a82ece088d0945d980a877e981f208e85193"},
+ {file = "pillow_heif-0.18.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28358d5e4e3aeb4af2a60a20187099ba03ab8619bcec8212900657371778da96"},
+ {file = "pillow_heif-0.18.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8988a9ce18425aff189913905ce28e61220061c3f222e08213eb473b88a41a20"},
+ {file = "pillow_heif-0.18.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:7ef23775de70124a02ad9be69af58126ec63a2e2987495355e75cabb265c01cb"},
+ {file = "pillow_heif-0.18.0.tar.gz", hash = "sha256:70318dad9faa76121c6592ac0ab59881ff0dac6ab791a922e70d82c7706cce88"},
]
[package.dependencies]
@@ -1356,13 +1362,13 @@ files = [
[[package]]
name = "pre-commit"
-version = "3.7.1"
+version = "3.8.0"
description = "A framework for managing and maintaining multi-language pre-commit hooks."
optional = false
python-versions = ">=3.9"
files = [
- {file = "pre_commit-3.7.1-py2.py3-none-any.whl", hash = "sha256:fae36fd1d7ad7d6a5a1c0b0d5adb2ed1a3bda5a21bf6c3e5372073d7a11cd4c5"},
- {file = "pre_commit-3.7.1.tar.gz", hash = "sha256:8ca3ad567bc78a4972a3f1a477e94a79d4597e8140a6e0b651c5e33899c3654a"},
+ {file = "pre_commit-3.8.0-py2.py3-none-any.whl", hash = "sha256:9a90a53bf82fdd8778d58085faf8d83df56e40dfe18f45b19446e26bf1b3a63f"},
+ {file = "pre_commit-3.8.0.tar.gz", hash = "sha256:8bb6494d4a20423842e198980c9ecf9f96607a07ea29549e180eef9ae80fe7af"},
]
[package.dependencies]
@@ -1480,13 +1486,13 @@ files = [
[[package]]
name = "pure-eval"
-version = "0.2.2"
+version = "0.2.3"
description = "Safely evaluate AST nodes without side effects"
optional = false
python-versions = "*"
files = [
- {file = "pure_eval-0.2.2-py3-none-any.whl", hash = "sha256:01eaab343580944bc56080ebe0a674b39ec44a945e6d09ba7db3cb8cec289350"},
- {file = "pure_eval-0.2.2.tar.gz", hash = "sha256:2b45320af6dfaa1750f543d714b6d1c520a1688dec6fd24d339063ce0aaa9ac3"},
+ {file = "pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0"},
+ {file = "pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42"},
]
[package.extras]
@@ -1569,51 +1575,64 @@ files = [
[[package]]
name = "pyyaml"
-version = "6.0.1"
+version = "6.0.2"
description = "YAML parser and emitter for Python"
optional = false
-python-versions = ">=3.6"
+python-versions = ">=3.8"
files = [
- {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"},
- {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"},
- {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"},
- {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"},
- {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"},
- {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"},
- {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"},
- {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"},
- {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"},
- {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"},
- {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"},
- {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"},
- {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"},
- {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"},
- {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"},
- {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"},
- {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"},
- {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"},
- {file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"},
- {file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"},
- {file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"},
- {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"},
- {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"},
- {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"},
- {file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"},
- {file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"},
- {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"},
- {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"},
- {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"},
- {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"},
- {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"},
- {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"},
- {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"},
- {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"},
- {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"},
- {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"},
- {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"},
- {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"},
- {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"},
- {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"},
+ {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"},
+ {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"},
+ {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"},
+ {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"},
+ {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"},
+ {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"},
+ {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"},
+ {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"},
+ {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"},
+ {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"},
+ {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"},
+ {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"},
+ {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"},
+ {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"},
+ {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"},
+ {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"},
+ {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"},
+ {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"},
+ {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"},
+ {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"},
+ {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"},
+ {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"},
+ {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"},
+ {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"},
+ {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"},
+ {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"},
+ {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"},
+ {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"},
+ {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"},
+ {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"},
+ {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"},
+ {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"},
+ {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"},
+ {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"},
+ {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"},
+ {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"},
+ {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"},
+ {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"},
+ {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"},
+ {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"},
+ {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"},
+ {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"},
+ {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"},
+ {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"},
+ {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"},
+ {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"},
+ {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"},
+ {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"},
+ {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"},
+ {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"},
+ {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"},
+ {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"},
+ {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"},
]
[[package]]
@@ -1907,13 +1926,13 @@ files = [
[[package]]
name = "soupsieve"
-version = "2.5"
+version = "2.6"
description = "A modern CSS selector implementation for Beautiful Soup."
optional = false
python-versions = ">=3.8"
files = [
- {file = "soupsieve-2.5-py3-none-any.whl", hash = "sha256:eaa337ff55a1579b6549dc679565eac1e3d000563bcb1c8ab0d0fefbc0c2cdc7"},
- {file = "soupsieve-2.5.tar.gz", hash = "sha256:5663d5a7b3bfaeee0bc4372e7fc48f9cff4940b3eec54a6451cc5299f1097690"},
+ {file = "soupsieve-2.6-py3-none-any.whl", hash = "sha256:e72c4ff06e4fb6e4b5a9f0f55fe6e81514581fca1515028625d0f299c602ccc9"},
+ {file = "soupsieve-2.6.tar.gz", hash = "sha256:e2e68417777af359ec65daac1057404a3c8a5455bb8abc36f1a9866ab1a51abb"},
]
[[package]]
@@ -1991,13 +2010,13 @@ files = [
[[package]]
name = "tqdm"
-version = "4.66.4"
+version = "4.66.5"
description = "Fast, Extensible Progress Meter"
optional = false
python-versions = ">=3.7"
files = [
- {file = "tqdm-4.66.4-py3-none-any.whl", hash = "sha256:b75ca56b413b030bc3f00af51fd2c1a1a5eac6a0c1cca83cbb37a5c52abce644"},
- {file = "tqdm-4.66.4.tar.gz", hash = "sha256:e4d936c9de8727928f3be6079590e97d9abfe8d39a590be678eb5919ffc186bb"},
+ {file = "tqdm-4.66.5-py3-none-any.whl", hash = "sha256:90279a3770753eafc9194a0364852159802111925aa30eb3f9d85b0e805ac7cd"},
+ {file = "tqdm-4.66.5.tar.gz", hash = "sha256:e1020aef2e5096702d8a025ac7d16b1577279c9d63f8375b63083e9a5f0fcbad"},
]
[package.dependencies]
@@ -2096,13 +2115,13 @@ test = ["covdefaults (>=2.3)", "coverage (>=7.2.7)", "coverage-enable-subprocess
[[package]]
name = "wagtail"
-version = "6.1.3"
+version = "6.2.1"
description = "A Django content management system."
optional = false
python-versions = ">=3.8"
files = [
- {file = "wagtail-6.1.3-py3-none-any.whl", hash = "sha256:b6c4d5705adf51a5e49ea416032dd0a6534588fc31c5c9a95f698e6ddec0a203"},
- {file = "wagtail-6.1.3.tar.gz", hash = "sha256:8f4908ab1b6b963a8aa7adf8f0ec738cd1dc79b9816c6d5f59018f600a404378"},
+ {file = "wagtail-6.2.1-py3-none-any.whl", hash = "sha256:31d073ea8acdc973ef45c5719977a1bb122ad0fc3f01348f37e922128200b42a"},
+ {file = "wagtail-6.2.1.tar.gz", hash = "sha256:0f136ef23b157997a44fa46543a320a31437350951cf13add8ea8b69cc5e8385"},
]
[package.dependencies]
@@ -2112,7 +2131,7 @@ Django = ">=4.2,<6.0"
django-filter = ">=23.3,<25"
django-modelcluster = ">=6.2.1,<7.0"
django-permissionedforms = ">=0.1,<1.0"
-django-taggit = ">=4.0,<5.1"
+django-taggit = ">=5.0,<5.1"
django-treebeard = ">=4.5.1,<5.0"
djangorestframework = ">=3.15.1,<4.0"
draftjs-exporter = ">=2.1.5,<6.0"
@@ -2125,18 +2144,18 @@ telepath = ">=0.3.1,<1"
Willow = {version = ">=1.8.0,<2", extras = ["heif"]}
[package.extras]
-docs = ["Sphinx (>=1.5.2)", "myst-parser (==2.0.0)", "pyenchant (>=3.1.1,<4)", "sphinx-autobuild (>=0.6.0)", "sphinx-copybutton (>=0.5,<1.0)", "sphinx-wagtail-theme (==6.3.0)", "sphinxcontrib-spelling (>=7,<8)"]
+docs = ["Sphinx (>=7.0)", "myst-parser (==2.0.0)", "pyenchant (>=3.1.1,<4)", "sphinx-autobuild (>=0.6.0)", "sphinx-copybutton (>=0.5,<1.0)", "sphinx-wagtail-theme (==6.3.0)", "sphinxcontrib-spelling (>=7,<8)"]
testing = ["Jinja2 (>=3.0,<3.2)", "azure-mgmt-cdn (>=12.0,<13.0)", "azure-mgmt-frontdoor (>=1.0,<1.1)", "boto3 (>=1.28,<2)", "coverage (>=3.7.0)", "curlylint (==0.13.1)", "django-pattern-library (>=0.7)", "djhtml (==3.0.6)", "doc8 (==0.8.1)", "factory-boy (>=3.2)", "freezegun (>=0.3.8)", "polib (>=1.1,<2.0)", "python-dateutil (>=2.7)", "pytz (>=2014.7)", "ruff (==0.1.5)", "semgrep (==1.40.0)", "tblib (>=2.0,<3.0)"]
[[package]]
name = "wagtail-localize"
-version = "1.9"
+version = "1.9.1"
description = "Translation plugin for Wagtail CMS"
optional = false
python-versions = ">=3.8"
files = [
- {file = "wagtail_localize-1.9-py3-none-any.whl", hash = "sha256:a680fc33c17145e6726f03a57b2ec465405847ae7cb77943ecc0e56463ad68c7"},
- {file = "wagtail_localize-1.9.tar.gz", hash = "sha256:f4fa9c36d8dbab5c27d1b675ed6fd7b9e8f012cf4bb308464168de7ebbad8324"},
+ {file = "wagtail_localize-1.9.1-py3-none-any.whl", hash = "sha256:c895efc286970d2810929056044c11ff0b4ebb7a26b494d052a07c41ead4afab"},
+ {file = "wagtail_localize-1.9.1.tar.gz", hash = "sha256:d7b1434e765a004ffd7b5951d151b3817bbbd1ee5c4f11b9485c84e520f383e6"},
]
[package.dependencies]
@@ -2190,13 +2209,12 @@ testing = ["dj-database-url (>=2.0.0)", "pre-commit (<3.0)"]
[[package]]
name = "wagtailmenus"
-version = "4.0"
+version = "4.0.1"
description = "An app to help you manage menus in your Wagtail projects more consistently."
optional = false
python-versions = ">=3.8"
files = [
- {file = "wagtailmenus-4.0-py3-none-any.whl", hash = "sha256:fe548b1ccd6a7b9c96b03ed0cfd020d278a8cab3b08e32d6859001ec7ec4fd03"},
- {file = "wagtailmenus-4.0.tar.gz", hash = "sha256:d233dba4f67a72a19b61bfa0a494949e52622be124d8b537287d5d64021c57f2"},
+ {file = "wagtailmenus-4.0.1-py3-none-any.whl", hash = "sha256:cc650d9866f995c8322ec203da8afd4eb68a90363e2c9bd05ef2cf971d0f0d5b"},
]
[package.dependencies]
diff --git a/static/css/style.css b/static/css/style.css
index b488637c..9c234e6d 100644
--- a/static/css/style.css
+++ b/static/css/style.css
@@ -1 +1 @@
-.cmsfr-hero{background-size:cover;background-position:center;background-repeat:no-repeat}.cmsfr-hero-large{display:flex;justify-content:center;align-items:center;text-align:center}.cmsfr-background-dark h1,.cmsfr-background-dark p,.cmsfr-background-dark ul{color:white}:root[data-fr-theme=light] .cmsfr-background-dark .fr-btn--secondary{background-color:rgba(255,255,255,0.3)}.fr-header__service-title em{font-weight:lighter}.cmsfr-author_card__header{flex:0 0 6rem !important;width:6rem !important}.cmsfr-author-img{border-radius:50%;height:4.5rem !important;margin:1.5rem;width:4.5rem}.cmsfr-footer__bottom-extra{border-left:1px solid var(--border-default-grey);padding-left:1em;margin-left:1em}
+.cmsfr-hero{background-size:cover;background-position:center;background-repeat:no-repeat}.cmsfr-hero-large{display:flex;justify-content:center;align-items:center;text-align:center}.cmsfr-background-dark h1,.cmsfr-background-dark p,.cmsfr-background-dark ul{color:white}:root[data-fr-theme=light] .cmsfr-background-dark .fr-btn--secondary{background-color:rgba(255,255,255,0.3)}.fr-header__service-title em{font-weight:lighter}.cmsfr-author_card__header{flex:0 0 6rem !important;width:6rem !important}.cmsfr-author-img{border-radius:50%;height:4.5rem !important;margin:1.5rem;width:4.5rem}.cmsfr-footer__bottom-extra{border-left:1px solid var(--border-default-grey);padding-left:1em;margin-left:1em}.cmsfr-display__inline{display:inline}
diff --git a/static/css/style.sass b/static/css/style.sass
index e60b5f24..9b937d4d 100644
--- a/static/css/style.sass
+++ b/static/css/style.sass
@@ -36,3 +36,6 @@
border-left: 1px solid var(--border-default-grey)
padding-left: 1em
margin-left: 1em
+
+.cmsfr-display__inline
+ display: inline
diff --git a/templates/base.html b/templates/base.html
index 29d31fb4..1cafd78c 100644
--- a/templates/base.html
+++ b/templates/base.html
@@ -1,81 +1,82 @@
{% load i18n static dsfr_tags wagtailuserbar wagtailsettings_tags sass_tags %}
{% get_settings %}
-
-
-
-
-
- {% block title %}
-
- {% if title %}{{ title }} —{% endif %}
- {{ settings.content_manager.CmsDsfrConfig.site_title }}
- {% endblock title %}
-
- {% block description %}
- {% endblock description %}
-
- {% dsfr_favicon %}
-
- {% dsfr_css %}
-
-
-
- {% block extra_css %}
- {% endblock extra_css %}
-
- {% block tracking %}
- {% if settings.content_manager.AnalyticsSettings.head_scripts %}
- {{ settings.content_manager.AnalyticsSettings.head_scripts|safe }}
- {% endif %}
- {% endblock tracking %}
-
- {% block social_media %}
- {% endblock social_media %}
-
-
-
- {% block skiplinks %}
- {% dsfr_skiplinks skiplinks %}
- {% endblock skiplinks %}
-
- {% include "blocks/header.html" %}
- {% dsfr_theme_modale %}
- {% wagtailuserbar %}
-
- {% if settings.content_manager.CmsDsfrConfig.notice %}
- {% dsfr_notice title=settings.content_manager.CmsDsfrConfig.notice %}
- {% endif %}
-
-
- {% block content %}
- {% endblock content %}
-
-
- {% block follow_newsletter_social_media %}
- {% if settings.content_manager.CmsDsfrConfig.show_newsletter_and_social_block %}
- {% include "blocks/follow.html" %}
- {% endif %}
- {% endblock follow_newsletter_social_media %}
-
- {% include "blocks/footer.html" %}
-
- {% dsfr_js nonce=request.csp_nonce %}
- {% block extra_js %}
- {% endblock extra_js %}
-
- {% block body_tracking_scripts %}
- {% if settings.content_manager.AnalyticsSettings.body_scripts %}
- {{ settings.content_manager.AnalyticsSettings.body_scripts|safe }}
+{% with SiteConfig=settings.content_manager.CmsDsfrConfig %}
+
+
+
+
+
+ {% block title %}
+
+ {% if title %}{{ title }} —{% endif %}
+ {{ SiteConfig.site_title }}
+ {% endblock title %}
+
+ {% block description %}
+ {% endblock description %}
+
+ {% dsfr_favicon %}
+
+ {% dsfr_css %}
+
+
+
+ {% block extra_css %}
+ {% endblock extra_css %}
+
+ {% block tracking %}
+ {% if settings.content_manager.AnalyticsSettings.head_scripts %}
+ {{ settings.content_manager.AnalyticsSettings.head_scripts|safe }}
+ {% endif %}
+ {% endblock tracking %}
+
+ {% block social_media %}
+ {% endblock social_media %}
+
+
+
+ {% block skiplinks %}
+ {% dsfr_skiplinks skiplinks %}
+ {% endblock skiplinks %}
+
+ {% include "blocks/header.html" %}
+ {% dsfr_theme_modale %}
+ {% wagtailuserbar %}
+
+ {% if SiteConfig.notice_title or SiteConfig.notice_description %}
+ {% include "blocks/notice.html" %}
{% endif %}
- {% endblock body_tracking_scripts %}
-
-
+
+ {% block content %}
+ {% endblock content %}
+
+
+ {% block follow_newsletter_social_media %}
+ {% if SiteConfig.show_newsletter_and_social_block %}
+ {% include "blocks/follow.html" %}
+ {% endif %}
+ {% endblock follow_newsletter_social_media %}
+
+ {% include "blocks/footer.html" %}
+
+ {% dsfr_js nonce=request.csp_nonce %}
+ {% block extra_js %}
+ {% endblock extra_js %}
+
+ {% block body_tracking_scripts %}
+ {% if settings.content_manager.AnalyticsSettings.body_scripts %}
+ {{ settings.content_manager.AnalyticsSettings.body_scripts|safe }}
+ {% endif %}
+ {% endblock body_tracking_scripts %}
+
+
+{% endwith %}
diff --git a/templates/blocks/notice.html b/templates/blocks/notice.html
new file mode 100644
index 00000000..b056be21
--- /dev/null
+++ b/templates/blocks/notice.html
@@ -0,0 +1,30 @@
+{% load i18n wagtailcore_tags wagtail_dsfr_tags %}
+{% translate "Hide message" as hide_message %}
+{% translate "Consultation link" as consultation_link %}
+{% translate "Opens a new window" as new_window_label %}
+
+
+
+ {{ SiteConfig.notice_title | richtext | richtext_p_add_class:"fr-notice__title" | richtext_p_add_class:SiteConfig.notice_icon_class }}
+ {% if SiteConfig.notice_description %}
+ {{ SiteConfig.notice_description | richtext | richtext_p_add_class:"fr-notice__desc" }}
+ {% endif %}
+ {% if SiteConfig.notice_link %}
+
+ {{ consultation_link }}
+
+ {% endif %}
+ {% if SiteConfig.notice_is_collapsible %}
+
+ {% endif %}
+
+
+