From 30d8ea711682453f8c47a1b5bd6a185b7721a7f0 Mon Sep 17 00:00:00 2001 From: Lucie Laporte Date: Tue, 17 Mar 2026 15:45:57 +0100 Subject: [PATCH 01/13] fix error in div alignment on richtext --- content_manager/wagtail_hooks.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/content_manager/wagtail_hooks.py b/content_manager/wagtail_hooks.py index 545031f2c..56d18acfd 100644 --- a/content_manager/wagtail_hooks.py +++ b/content_manager/wagtail_hooks.py @@ -32,7 +32,7 @@ def register_text_alignment_features(features): { "type": "text-left", "description": "Aligner à gauche", - "element": "div", + "element": "p", "icon": [ "M50 200 Q50 140, 110 140 L814 140 Q874 140, 874 200 " "Q874 260, 814 260 L110 260 Q50 260, 50 200 Z " @@ -50,9 +50,9 @@ def register_text_alignment_features(features): "contentstate", "text-left", { - "from_database_format": {'div[class="cmsfr-text-left"]': BlockElementHandler("text-left")}, + "from_database_format": {'p[class="cmsfr-text-left"]': BlockElementHandler("text-left")}, "to_database_format": { - "block_map": {"text-left": {"element": "div", "props": {"class": "cmsfr-text-left"}}} + "block_map": {"text-left": {"element": "p", "props": {"class": "cmsfr-text-left"}}} }, }, ) @@ -65,7 +65,7 @@ def register_text_alignment_features(features): { "type": "text-center", "description": "Centrer", - "element": "div", + "element": "p", "icon": [ "M150 200 Q150 140, 210 140 L814 140 Q874 140, 874 200 " "Q874 260, 814 260 L210 260 Q150 260, 150 200 Z " @@ -83,9 +83,9 @@ def register_text_alignment_features(features): "contentstate", "text-center", { - "from_database_format": {'div[class="cmsfr-text-center"]': BlockElementHandler("text-center")}, + "from_database_format": {'p[class="cmsfr-text-center"]': BlockElementHandler("text-center")}, "to_database_format": { - "block_map": {"text-center": {"element": "div", "props": {"class": "cmsfr-text-center"}}} + "block_map": {"text-center": {"element": "p", "props": {"class": "cmsfr-text-center"}}} }, }, ) @@ -98,7 +98,7 @@ def register_text_alignment_features(features): { "type": "text-right", "description": "Aligner à droite", - "element": "div", + "element": "p", "icon": [ "M150 200 Q150 140, 210 140 L914 140 Q974 140, 974 200 " "Q974 260, 914 260 L210 260 Q150 260, 150 200 Z " @@ -116,9 +116,9 @@ def register_text_alignment_features(features): "contentstate", "text-right", { - "from_database_format": {'div[class="cmsfr-text-right"]': BlockElementHandler("text-right")}, + "from_database_format": {'p[class="cmsfr-text-right"]': BlockElementHandler("text-right")}, "to_database_format": { - "block_map": {"text-right": {"element": "div", "props": {"class": "cmsfr-text-right"}}} + "block_map": {"text-right": {"element": "p", "props": {"class": "cmsfr-text-right"}}} }, }, ) From 5ecbeb07234a2d1dfe4000e524393005484e79a5 Mon Sep 17 00:00:00 2001 From: Lucie Laporte Date: Tue, 17 Mar 2026 16:22:07 +0100 Subject: [PATCH 02/13] add heading tag choice on stepper --- content_manager/blocks/basics.py | 6 ++++++ .../content_manager/blocks/stepper.html | 16 ++++++++-------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/content_manager/blocks/basics.py b/content_manager/blocks/basics.py index 8a37f10ef..d049c8926 100644 --- a/content_manager/blocks/basics.py +++ b/content_manager/blocks/basics.py @@ -264,6 +264,12 @@ class StepsListBlock(blocks.StreamBlock): class StepperBlock(blocks.StructBlock): title = blocks.CharBlock(label=_("Title")) + heading_tag = blocks.ChoiceBlock( + label=_("Heading level"), + choices=HEADING_CHOICES, + default="h2", + help_text=_("Adapt to the page layout. Defaults to heading 2."), + ) total = blocks.IntegerBlock(label=_("Number of steps"), min_value=1, max_value=8) current = blocks.IntegerBlock(label=_("Current step"), min_value=1, max_value=8) steps = StepsListBlock(label=_("Steps")) diff --git a/content_manager/templates/content_manager/blocks/stepper.html b/content_manager/templates/content_manager/blocks/stepper.html index d92d66288..877c1d0df 100644 --- a/content_manager/templates/content_manager/blocks/stepper.html +++ b/content_manager/templates/content_manager/blocks/stepper.html @@ -1,14 +1,14 @@ {% load i18n %}
-

- {{ value.title }} - - {% with current_step=value.current total_steps=value.total %} - {% blocktranslate %}Step {{ current_step }} of {{ total_steps }}{% endblocktranslate %} - {% endwith %} - -

+ <{{ value.heading_tag | default:"h2" }} class="fr-stepper__title"> + {{ value.title }} + + {% with current_step=value.current total_steps=value.total %} + {% blocktranslate %}Step {{ current_step }} of {{ total_steps }}{% endblocktranslate %} + {% endwith %} + +
From ded0d3a2aa45502523cf048d886afea12b970290 Mon Sep 17 00:00:00 2001 From: Lucie Laporte Date: Tue, 17 Mar 2026 17:00:21 +0100 Subject: [PATCH 03/13] add nav --- content_manager/templates/content_manager/content_page.html | 6 +++--- .../templates/content_manager/tags_list_page.html | 4 ++-- templates/blocks/header.html | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/content_manager/templates/content_manager/content_page.html b/content_manager/templates/content_manager/content_page.html index e6a2085e2..ab4ad4f7b 100644 --- a/content_manager/templates/content_manager/content_page.html +++ b/content_manager/templates/content_manager/content_page.html @@ -38,7 +38,7 @@ {% include "content_manager/blocks/heading.html" %}
{% include "content_manager/blocks/breadcrumbs.html" %} - + {% if page.show_title %}

{{ page.title }} @@ -51,11 +51,11 @@

{% include "content_manager/blocks/blocks_stream.html" with stream=page.body %} -
+
    {% for tag in page.tags.all|dictsort:"slug" %} {{ tag }} {% endfor %} -
+ {% if settings.content_manager.CmsDsfrConfig.show_share_links and settings.content_manager.CmsDsfrConfig.share_links_content_pages %} {% include "blocks/share.html" %} diff --git a/content_manager/templates/content_manager/tags_list_page.html b/content_manager/templates/content_manager/tags_list_page.html index 21b8de772..4c260a9a5 100644 --- a/content_manager/templates/content_manager/tags_list_page.html +++ b/content_manager/templates/content_manager/tags_list_page.html @@ -49,11 +49,11 @@

{% translate "Tags" %}

{% include "content_manager/blocks/messages.html" %} -
+
+ {% for first_letter, tags in sorted_tags.items|dictsort:0 %}

{{ first_letter }}

diff --git a/templates/blocks/header.html b/templates/blocks/header.html index 776a120bb..2c2651d73 100644 --- a/templates/blocks/header.html +++ b/templates/blocks/header.html @@ -89,7 +89,7 @@ {% block burger_menu %} {% translate "Search" as search_label %} -
+
+ {% endblock burger_menu %} {% block main_menu %} From b041601039b6c942089cd55640ba76b58ed50112 Mon Sep 17 00:00:00 2001 From: Lucie Laporte Date: Wed, 18 Mar 2026 22:20:06 +0100 Subject: [PATCH 04/13] add title on selected tags --- blog/templates/blog/blog_index_page.html | 8 +++++--- .../templates/content_manager/catalog_index_page.html | 4 +++- events/templates/events/events_index_page.html | 6 +++++- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/blog/templates/blog/blog_index_page.html b/blog/templates/blog/blog_index_page.html index 7c292dc91..eb0f3bb1c 100644 --- a/blog/templates/blog/blog_index_page.html +++ b/blog/templates/blog/blog_index_page.html @@ -65,7 +65,7 @@
{% include "content_manager/blocks/breadcrumbs.html" %} - + {% if page.show_title %}

{{ page.title }} @@ -102,7 +102,8 @@

{% translate "Filter by category" %}

+ title="{% if category.slug == current_category.slug %}{% translate 'selected' %}{% else %}{% translate 'unselected' %} {% endif %}" + {% if category.slug == current_category.slug %} aria-pressed="true" {% else %} aria-pressed="false" {% endif %}> {{ category.name }} @@ -120,7 +121,8 @@

{% translate "Filter by tag" %}

+ title="{% if tag.slug in current_tag %}{% translate 'selected' %}{% else %}{% translate 'unselected' %}{% endif %}" + {% if tag.id == current_tag.id %} aria-pressed="true" {% else %} aria-pressed="false" {% endif %}> {{ tag }} diff --git a/content_manager/templates/content_manager/catalog_index_page.html b/content_manager/templates/content_manager/catalog_index_page.html index 70ed561f1..5b6a436ba 100644 --- a/content_manager/templates/content_manager/catalog_index_page.html +++ b/content_manager/templates/content_manager/catalog_index_page.html @@ -116,6 +116,7 @@

{% translate "Filter by tag" %}

{{ tag }} @@ -140,7 +141,8 @@

{% translate "Filter by tag" %}

pointer-events: none"> diff --git a/events/templates/events/events_index_page.html b/events/templates/events/events_index_page.html index a662c2111..95772bde4 100644 --- a/events/templates/events/events_index_page.html +++ b/events/templates/events/events_index_page.html @@ -103,6 +103,7 @@

{% translate "Filter by category" %}

{{ category.name }} @@ -121,7 +122,8 @@

{% translate "Filter by tag" %}

+ {% if tag.id == current_tag.id %}aria-pressed="true"{% else %}aria-pressed="false"{% endif %} + title="{% if tag.slug in current_tag %}{% translate 'selected' %}{% else %}{% translate 'unselected' %}{% endif %}"> {{ tag }} @@ -139,6 +141,7 @@

{% translate "Filter by author" %}

{{ author.name }} {% endfor %} @@ -155,6 +158,7 @@

{% translate "Filter by source" %}

{{ source.name }} {% endfor %} From 545477e5d081a494113421273c52b121a57b9751 Mon Sep 17 00:00:00 2001 From: Lucie Laporte Date: Mon, 23 Mar 2026 15:59:59 +0100 Subject: [PATCH 05/13] add unordered tag on tags list --- blog/templates/blog/blog_entry_page.html | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/blog/templates/blog/blog_entry_page.html b/blog/templates/blog/blog_entry_page.html index 045eadef0..495090cdb 100644 --- a/blog/templates/blog/blog_entry_page.html +++ b/blog/templates/blog/blog_entry_page.html @@ -88,11 +88,13 @@

{% translate "Posted by:" %}

{% endwith %}
- {% for tag in page.tags.all|dictsort:"slug" %} - {{ tag }} - {% endfor %} +
    + {% for tag in page.tags.all|dictsort:"slug" %} + {{ tag }} + {% endfor %} +
{% if settings.content_manager.CmsDsfrConfig.show_share_links and settings.content_manager.CmsDsfrConfig.share_links_blog_posts %} From ebd52c6f2240afb7cda5ae6784a50b3b57e2d10f Mon Sep 17 00:00:00 2001 From: Lucie Laporte Date: Mon, 23 Mar 2026 16:25:07 +0100 Subject: [PATCH 06/13] add migrations --- ..._body_alter_blogindexpage_body_and_more.py | 5435 +++++++++++++++++ ...ogindexpage_body_alter_contentpage_body.py | 4127 +++++++++++++ ...trypage_body_alter_eventsindexpage_body.py | 4127 +++++++++++++ 3 files changed, 13689 insertions(+) create mode 100644 blog/migrations/0059_alter_blogentrypage_body_alter_blogindexpage_body_and_more.py create mode 100644 content_manager/migrations/0075_alter_catalogindexpage_body_alter_contentpage_body.py create mode 100644 events/migrations/0031_alter_evententrypage_body_alter_eventsindexpage_body.py diff --git a/blog/migrations/0059_alter_blogentrypage_body_alter_blogindexpage_body_and_more.py b/blog/migrations/0059_alter_blogentrypage_body_alter_blogindexpage_body_and_more.py new file mode 100644 index 000000000..f7db12e7f --- /dev/null +++ b/blog/migrations/0059_alter_blogentrypage_body_alter_blogindexpage_body_and_more.py @@ -0,0 +1,5435 @@ +# Generated by Django 6.0.3 on 2026-03-23 15:24 + +import content_manager.validators +import django.core.validators +import re +import wagtail.fields +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("blog", "0058_invert_hero_text_position"), + ] + + operations = [ + migrations.AlterField( + model_name="blogentrypage", + name="body", + field=wagtail.fields.StreamField( + [ + ("paragraph", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("link", 64), + ("accordions", 67), + ("callout", 71), + ("highlight", 74), + ("quote", 79), + ("stepper", 86), + ("card", 104), + ("tile", 115), + ("tabs", 156), + ("markdown", 157), + ("iframe", 158), + ("html", 159), + ("anchor", 160), + ("separator", 161), + ("multicolumns", 172), + ("item_grid", 176), + ("fullwidthbackground", 181), + ("fullwidthbackgroundwithsidemenu", 188), + ("subpageslist", 189), + ("blog_recent_entries", 190), + ("events_recent_entries", 191), + ("layout_richtext", 195), + ("image_text_grid_section", 206), + ("image_text_cta_section", 210), + ("cta_section", 213), + ("spotlight_section", 217), + ("accordion_section", 219), + ], + blank=True, + block_lookup={ + 0: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text"}), + 1: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": False}), + 2: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 3.", + "label": "Heading level", + "required": False, + }, + ), + 3: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image"}), + 4: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Alternative text (textual description of the image)", "required": False}, + ), + 5: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-content-media--sm", "Small"), + ("", "Medium"), + ("fr-content-media--lg", "Large"), + ], + "label": "Witdh", + "required": False, + }, + ), + 6: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-ratio-32x9", "32x9"), + ("fr-ratio-16x9", "16x9"), + ("fr-ratio-3x2", "3x2"), + ("fr-ratio-4x3", "4x3"), + ("fr-ratio-1x1", "1x1"), + ("fr-ratio-3x4", "3x4"), + ("fr-ratio-2x3", "2x3"), + ], + "label": "Image ratio", + "required": False, + }, + ), + 7: ("wagtail.blocks.CharBlock", (), {"label": "Caption", "required": False}), + 8: ("wagtail.blocks.URLBlock", (), {"label": "Link", "required": False}), + 9: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 2), + ("image", 3), + ("alt", 4), + ("width", 5), + ("image_ratio", 6), + ("caption", 7), + ("url", 8), + ] + ], + {"label": "Centered image"}, + ), + 10: ("wagtail.images.blocks.ImageBlock", [], {"label": "Image"}), + 11: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("left", "Left (displayed above text in mobile view)"), + ("left_below", "Left (displayed below text in mobile view)"), + ("right", "Right (displayed below text in mobile view)"), + ("right_above", "Right (displayed above text in mobile view)"), + ], + "label": "Image position", + }, + ), + 12: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("3", "3/12"), ("4", "4/12"), ("5", "5/12"), ("6", "6/12")], + "label": "Image width", + }, + ), + 13: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("page", "Page"), + ("external_url", "External URL"), + ("document", "Document"), + ("anchor", "Anchor link"), + ], + "help_text": "Select the type of link.", + "label": "Link type", + "required": False, + }, + ), + 14: ( + "wagtail.blocks.PageChooserBlock", + (), + { + "help_text": "Link to a page of this site. Use either this, the document, or the external URL parameter.", + "label": "Page", + "required": False, + }, + ), + 15: ( + "wagtail.documents.blocks.DocumentChooserBlock", + (), + { + "help_text": "Use either this, the external URL or the page parameter.", + "label": "Document", + "required": False, + }, + ), + 16: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Use either this, the document or the page parameter.", + "label": "External URL", + "required": False, + }, + ), + 17: ( + "wagtail.blocks.CharBlock", + (), + { + "default": "", + "help_text": "Link to an anchor block on the page. Allowed characters: A-Z, a-z, 0-9, - and _.", + "label": "Anchor ID", + "required": False, + "validators": [ + django.core.validators.RegexValidator( + re.compile("^[-a-zA-Z0-9_]+\\Z"), + "Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.", + "invalid", + ) + ], + }, + ), + 18: ( + "wagtail.blocks.CharBlock", + (), + { + "default": "", + "help_text": "Extra query parameters at the end of the link, e.g. filtering options.", + "label": "Extra query parameters", + "required": False, + "validators": [content_manager.validators.validate_query_string], + }, + ), + 19: ("wagtail.blocks.CharBlock", (), {"label": "Link label", "required": False}), + 20: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", "No icon"), + ("fr-icon-arrow-right-line fr-link--icon-right", "Icon on the right side"), + ("fr-icon-arrow-right-line fr-link--icon-left", "Icon on the left side"), + ], + "help_text": "Only used for internal links.", + "label": "Icon", + "required": False, + }, + ), + 21: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-link--sm", "Small"), ("", "Medium"), ("fr-link--lg", "Large")], + "label": "Size", + "required": False, + }, + ), + 22: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ("icon", 20), + ("size", 21), + ] + ], + { + "help_text": "The link is shown at the bottom of the text block, with an arrow", + "label": "Link", + "required": False, + }, + ), + 23: ( + "wagtail.blocks.StructBlock", + [[("image", 10), ("image_side", 11), ("image_ratio", 12), ("text", 0), ("link", 22)]], + {"label": "Image and text"}, + ), + 24: ("wagtail.blocks.CharBlock", (), {"label": "Row heading", "required": False}), + 25: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "text-left", + "text-center", + "text-right", + ], + "label": "Text", + "required": False, + }, + ), + 26: ("wagtail.images.blocks.ImageBlock", [], {"label": "Pictogram"}), + 27: ( + "wagtail.contrib.typed_table_block.blocks.TypedTableBlock", + [[("row_heading", 24), ("text", 25), ("pictogram", 26)]], + {"label": "Table"}, + ), + 28: ("wagtail.blocks.CharBlock", (), {"label": "Message title", "required": False}), + 29: ("wagtail.blocks.TextBlock", (), {"label": "Message text", "required": False}), + 30: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("error", "Error"), + ("success", "Success"), + ("info", "Information"), + ("warning", "Warning"), + ], + "label": "Message type", + }, + ), + 31: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 3.", + "label": "Heading level", + }, + ), + 32: ( + "wagtail.blocks.StructBlock", + [[("title", 28), ("description", 29), ("level", 30), ("heading_tag", 31)]], + {"label": "Alert message"}, + ), + 33: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text", "required": False}), + 34: ("wagtail.blocks.CharBlock", (), {"label": "Button label", "required": False}), + 35: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-btn", "Primary"), + ("fr-btn fr-btn--secondary", "Secundary"), + ("fr-btn fr-btn--tertiary", "Tertiary"), + ("fr-btn fr-btn--tertiary-no-outline", "Tertiary without border"), + ], + "label": "Button type", + "required": False, + }, + ), + 36: ( + "content_manager.blocks.buttons_links.IconPickerBlock", + (), + {"label": "Icon", "required": False}, + ), + 37: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")], + "label": "Icon side", + "required": False, + }, + ), + 38: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + {"label": "Button"}, + ), + 39: ( + "wagtail.blocks.StreamBlock", + [[("button", 38)]], + { + "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", + "label": "Buttons", + }, + ), + 40: ( + "wagtail.blocks.StreamBlock", + [[("buttons", 39)]], + {"label": "Call-to-action buttons", "max_num": 1, "required": False}, + ), + 41: ( + "wagtail.blocks.StructBlock", + [[("text", 33), ("cta_buttons", 40)]], + {"label": "Text and call to action"}, + ), + 42: ("wagtail.blocks.CharBlock", (), {"label": "Video title", "required": False}), + 43: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Use embed format, with a version that doesn't require a consent banner if available. (e.g. : https://www.youtube-nocookie.com/embed/gLzXOViPX-0) For Youtube, use Embed video and check Enable privacy-enhanced mode.", + "label": "Video URL", + }, + ), + 44: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-ratio-16x9", "16x9"), ("fr-ratio-4x3", "4x3"), ("fr-ratio-1x1", "1x1")], + "label": "Video ratio", + "required": False, + }, + ), + 45: ( + "wagtail.blocks.CharBlock", + (), + {"default": "Transcription", "label": "Title", "required": False}, + ), + 46: ("wagtail.blocks.RichTextBlock", (), {"label": "Transcription content", "required": False}), + 47: ( + "wagtail.blocks.StructBlock", + [[("title", 45), ("content", 46)]], + {"label": "Transcription", "required": False}, + ), + 48: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 42), + ("caption", 7), + ("url", 43), + ("width", 5), + ("video_ratio", 44), + ("transcription", 47), + ] + ], + {"label": "Video"}, + ), + 49: ("wagtail.blocks.StructBlock", [[("title", 45), ("content", 46)]], {"label": "Transcription"}), + 50: ("wagtail.blocks.CharBlock", (), {"label": "Badge label", "required": False}), + 51: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", [("new", "New"), ("grey", "Grey")]), + ( + "System colors", + [ + ("info", "Info"), + ("success", "Success"), + ("warning", "Warning"), + ("error", "Error"), + ], + ), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "label": "Badge color", + "required": False, + }, + ), + 52: ("wagtail.blocks.BooleanBlock", (), {"label": "Hide badge icon", "required": False}), + 53: ( + "wagtail.blocks.StructBlock", + [[("text", 50), ("color", 51), ("hide_icon", 52)]], + {"label": "Badge"}, + ), + 54: ("wagtail.blocks.StreamBlock", [[("badge", 53)]], {"label": "Badge list"}), + 55: ("wagtail.blocks.CharBlock", (), {"label": "Title"}), + 56: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tag", "required": False}), + 57: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + "help_text": "Only for clickable tags", + "label": "Tag color", + "required": False, + }, + ), + 58: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ] + ], + {"required": False}, + ), + 59: ( + "wagtail.blocks.StructBlock", + [[("label", 55), ("is_small", 56), ("color", 57), ("icon_class", 36), ("link", 58)]], + {"label": "Tag"}, + ), + 60: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {"label": "Tag list"}), + 61: ( + "wagtail.blocks.StreamBlock", + [[("button", 38)]], + { + "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", + "label": "Buttons", + }, + ), + 62: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", "Left"), + ("fr-btns-group--center", "Center"), + ("fr-btns-group--right", "Right"), + ( + "fr-btns-group--right fr-btns-group--inline-reverse", + "Right (reverse order on desktop)", + ), + ], + "label": "Position", + "required": False, + }, + ), + 63: ( + "wagtail.blocks.StructBlock", + [[("buttons", 61), ("position", 62)]], + {"label": "Button list"}, + ), + 64: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ("icon", 20), + ("size", 21), + ] + ], + {"label": "Single link"}, + ), + 65: ("wagtail.blocks.RichTextBlock", (), {"label": "Content"}), + 66: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("content", 65)]], + {"label": "Accordion", "max_num": 15, "min_num": 1}, + ), + 67: ( + "wagtail.blocks.StreamBlock", + [[("title", 55), ("accordion", 66)]], + {"group": "2. DSFR components", "label": "Accordions"}, + ), + 68: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "text-left", + "text-center", + "text-right", + ], + "label": "Content", + "required": False, + }, + ), + 69: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + {"label": "Button", "required": False}, + ), + 70: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + "label": "Color", + "required": False, + }, + ), + 71: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 31), + ("icon_class", 36), + ("text", 68), + ("button", 69), + ("color", 70), + ] + ], + {"group": "2. DSFR components", "label": "Callout"}, + ), + 72: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "text-left", + "text-center", + "text-right", + ], + "label": "Content", + }, + ), + 73: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-text--sm", "Small"), ("", "Medium"), ("fr-text--lg", "Large")], + "label": "Size", + "required": False, + }, + ), + 74: ( + "wagtail.blocks.StructBlock", + [[("text", 72), ("color", 70), ("size", 73)]], + {"group": "2. DSFR components", "label": "Highlight"}, + ), + 75: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image", "required": False}), + 76: ("wagtail.blocks.CharBlock", (), {"label": "Quote"}), + 77: ("wagtail.blocks.CharBlock", (), {"label": "Author name", "required": False}), + 78: ("wagtail.blocks.CharBlock", (), {"label": "Author title", "required": False}), + 79: ( + "wagtail.blocks.StructBlock", + [[("image", 75), ("quote", 76), ("author_name", 77), ("author_title", 78), ("color", 70)]], + {"group": "2. DSFR components", "label": "Quote"}, + ), + 80: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + }, + ), + 81: ( + "wagtail.blocks.IntegerBlock", + (), + {"label": "Number of steps", "max_value": 8, "min_value": 1}, + ), + 82: ("wagtail.blocks.IntegerBlock", (), {"label": "Current step", "max_value": 8, "min_value": 1}), + 83: ("wagtail.blocks.TextBlock", (), {"label": "Detail", "required": False}), + 84: ("wagtail.blocks.StructBlock", [[("title", 55), ("detail", 83)]], {"label": "Step"}), + 85: ("wagtail.blocks.StreamBlock", [[("step", 84)]], {"label": "Steps"}), + 86: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("heading_tag", 80), ("total", 81), ("current", 82), ("steps", 85)]], + {"group": "2. DSFR components", "label": "Stepper"}, + ), + 87: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-card--horizontal-tier", "1/3"), ("fr-card--horizontal-half", "50/50")], + "label": "Image ratio", + "required": False, + }, + ), + 88: ( + "wagtail.blocks.StreamBlock", + [[("badge", 53)]], + { + "help_text": "Only used if the card has an image.", + "label": "Image area badge", + "max_num": 1, + "required": False, + }, + ), + 89: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ] + ], + { + "collapsed": False, + "help_text": "Link for the whole card. If a call-to-action is present, the link will display on the title only.", + "label": "Link", + "required": False, + }, + ), + 90: ("wagtail.blocks.CharBlock", (), {"label": "Top detail: text", "required": False}), + 91: ( + "content_manager.blocks.buttons_links.IconPickerBlock", + (), + {"label": "Top detail: icon", "required": False}, + ), + 92: ("wagtail.blocks.StreamBlock", [[("badge", 53)]], {}), + 93: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {}), + 94: ( + "wagtail.blocks.StreamBlock", + [[("badges", 92), ("tags", 93)]], + {"label": "Top detail: badges or tags", "max_num": 1, "required": False}, + ), + 95: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Incompatible with the bottom call-to-action. If the card links to a downloadable document, the values are pre-filled.", + "label": "Bottom detail: text", + "required": False, + }, + ), + 96: ( + "content_manager.blocks.buttons_links.IconPickerBlock", + (), + {"label": "Bottom detail: icon", "required": False}, + ), + 97: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ] + ], + {"label": "Link"}, + ), + 98: ("wagtail.blocks.StreamBlock", [[("link", 97)]], {"label": "Links"}), + 99: ( + "wagtail.blocks.StreamBlock", + [[("links", 98), ("buttons", 39)]], + { + "help_text": "Incompatible with the bottom detail text. Allow you to add link or button.", + "label": "Bottom call-to-action: links or buttons", + "max_num": 1, + "required": False, + }, + ), + 100: ( + "wagtail.blocks.BooleanBlock", + (), + {"label": "Card with grey background", "required": False}, + ), + 101: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without background", "required": False}), + 102: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without border", "required": False}), + 103: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with a shadow", "required": False}), + 104: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 87), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 95), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {"group": "2. DSFR components", "label": "Horizontal card"}, + ), + 105: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": ["bold", "italic", "superscript", "subscript", "strikethrough"], + "label": "Content", + "required": False, + }, + ), + 106: ( + "wagtail.images.blocks.ImageChooserBlock", + (), + {"help_text": "Prefer SVG files.", "label": "Image", "required": False}, + ), + 107: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ] + ], + {"label": "Link", "required": False}, + ), + 108: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "If the tile links to a downloadable document, the values are pre-filled.", + "label": "Detail text", + "required": False, + }, + ), + 109: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tile", "required": False}), + 110: ( + "wagtail.blocks.BooleanBlock", + (), + {"label": "Tile with grey background", "required": False}, + ), + 111: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without background", "required": False}), + 112: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without border", "required": False}), + 113: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with a shadow", "required": False}), + 114: ("wagtail.blocks.BooleanBlock", (), {"label": "Horizontal tile", "required": False}), + 115: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 105), + ("image", 106), + ("link", 107), + ("top_detail_badges_tags", 94), + ("detail_text", 108), + ("is_small", 109), + ("grey_background", 110), + ("no_background", 111), + ("no_border", 112), + ("shadow", 113), + ("is_horizontal", 114), + ] + ], + {"group": "2. DSFR components", "label": "Tile"}, + ), + 116: ( + "wagtail.blocks.StreamBlock", + [[("title", 55), ("accordion", 66)]], + {"group": "DSFR components", "label": "Accordions"}, + ), + 117: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 31), + ("icon_class", 36), + ("text", 68), + ("button", 69), + ("color", 70), + ] + ], + {"group": "DSFR components", "label": "Callout"}, + ), + 118: ( + "wagtail.blocks.StructBlock", + [[("text", 72), ("color", 70), ("size", 73)]], + {"group": "DSFR components", "label": "Highlight"}, + ), + 119: ( + "wagtail.blocks.StructBlock", + [[("image", 75), ("quote", 76), ("author_name", 77), ("author_title", 78), ("color", 70)]], + {"group": "DSFR components", "label": "Quote"}, + ), + 120: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 105), + ("image", 106), + ("link", 107), + ("top_detail_badges_tags", 94), + ("detail_text", 108), + ("is_small", 109), + ("grey_background", 110), + ("no_background", 111), + ("no_border", 112), + ("shadow", 113), + ("is_horizontal", 114), + ] + ], + {"group": "DSFR components", "label": "Tile"}, + ), + 121: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + "required": False, + }, + ), + 122: ( + "wagtail.blocks.PageChooserBlock", + (), + {"label": "Blog", "page_type": ["blog.BlogIndexPage"]}, + ), + 123: ( + "wagtail.blocks.IntegerBlock", + (), + { + "default": 3, + "label": "Number of entries", + "max_value": 8, + "min_value": 1, + "required": False, + }, + ), + 124: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Category",), + {"label": "Filter by category", "required": False}, + ), + 125: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("content_manager.Tag",), + {"label": "Filter by tag", "required": False}, + ), + 126: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Person",), + {"label": "Filter by author", "required": False}, + ), + 127: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Organization",), + { + "help_text": "The source is the organization of the post author", + "label": "Filter by source", + "required": False, + }, + ), + 128: ( + "wagtail.blocks.BooleanBlock", + (), + {"default": False, "label": "Show filters", "required": False}, + ), + 129: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("blog", 122), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "Website structure", "label": "Blog recent entries"}, + ), + 130: ( + "wagtail.blocks.PageChooserBlock", + (), + {"label": "Event calendar", "page_type": ["events.EventsIndexPage"]}, + ), + 131: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("index_page", 130), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "Website structure", "label": "Event calendar recent entries"}, + ), + 132: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("heading_tag", 80), ("total", 81), ("current", 82), ("steps", 85)]], + {"group": "DSFR components", "label": "Stepper"}, + ), + 133: ("wagtailmarkdown.blocks.MarkdownBlock", (), {"group": "Expert syntax", "label": "Markdown"}), + 134: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Accessibility: The title should describe, in a clear and concise manner, the embedded content.", + "label": "Title", + }, + ), + 135: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Example for Tally: https://tally.so/embed/w2jMRa", + "label": "URL of the iframe", + }, + ), + 136: ("wagtail.blocks.IntegerBlock", (), {"label": "Height (in pixels)"}), + 137: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "For example: \"allow='geolocation'\".", + "label": "Parameters", + "required": False, + }, + ), + 138: ( + "wagtail.blocks.StructBlock", + [[("title", 134), ("url", 135), ("height", 136), ("parameters", 137)]], + {"group": "Expert syntax", "label": "Iframe"}, + ), + 139: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "group": "Expert syntax", + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "readonly": True, + }, + ), + 140: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Allows the creation of a link to this specific part of the page. Allowed characters: A-Z, a-z, 0-9, - and _.", + "label": "Anchor ID", + "validators": [ + django.core.validators.RegexValidator( + re.compile("^[-a-zA-Z0-9_]+\\Z"), + "Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.", + "invalid", + ) + ], + }, + ), + 141: ( + "wagtail.blocks.StructBlock", + [[("anchor_id", 140)]], + {"group": "Page structure", "label": "Anchor"}, + ), + 142: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 3, "label": "Top margin", "max_value": 15, "min_value": 0}, + ), + 143: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 3, "label": "Bottom margin", "max_value": 15, "min_value": 0}, + ), + 144: ( + "wagtail.blocks.StructBlock", + [[("top_margin", 142), ("bottom_margin", 143)]], + {"group": "Page structure", "label": "Separator"}, + ), + 145: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Incompatible with the bottom call-to-action.", + "label": "Bottom detail: text", + "required": False, + }, + ), + 146: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 6), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 145), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {"group": "DSFR components", "label": "Vertical card"}, + ), + 147: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Person",), + { + "help_text": "Optional, all values can be manually specified or overriden below", + "label": "Person", + "required": False, + }, + ), + 148: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255, "required": False}), + 149: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255, "required": False}), + 150: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Organization", "max_length": 255, "required": False}, + ), + 151: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Contact info", "max_length": 500, "required": False}, + ), + 152: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {"label": "Tags", "required": False}), + 153: ( + "wagtail.blocks.StructBlock", + [ + [ + ("contact", 147), + ("link", 107), + ("heading_tag", 2), + ("name", 148), + ("role", 149), + ("organization", 150), + ("contact_info", 151), + ("image", 75), + ("tags", 152), + ] + ], + {"group": "Extra components", "label": "Contact card"}, + ), + 154: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("contact_card", 153), + ] + ], + {"label": "Content"}, + ), + 155: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("content", 154)]], + {"label": "Tab", "max_num": 15, "min_num": 1}, + ), + 156: ( + "wagtail.blocks.StreamBlock", + [[("tabs", 155)]], + {"group": "2. DSFR components", "label": "Tabs"}, + ), + 157: ( + "wagtailmarkdown.blocks.MarkdownBlock", + (), + {"group": "5. Expert syntax", "label": "Markdown"}, + ), + 158: ( + "wagtail.blocks.StructBlock", + [[("title", 134), ("url", 135), ("height", 136), ("parameters", 137)]], + {"group": "5. Expert syntax", "label": "Iframe"}, + ), + 159: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "group": "5. Expert syntax", + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "readonly": True, + }, + ), + 160: ( + "wagtail.blocks.StructBlock", + [[("anchor_id", 140)]], + {"group": "3. Page structure", "label": "Anchor"}, + ), + 161: ( + "wagtail.blocks.StructBlock", + [[("top_margin", 142), ("bottom_margin", 143)]], + {"group": "3. Page structure", "label": "Separator"}, + ), + 162: ( + "wagtail.images.blocks.ImageChooserBlock", + (), + {"label": "Background image", "required": False}, + ), + 163: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("Primary colors", [("blue-france", "Blue France"), ("red-marianne", "Red Marianne")]), + ("Neutral colors", [("grey", "Grey")]), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "help_text": "Uses the French Design System colors", + "label": "Background color", + "required": False, + }, + ), + 164: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + "required": False, + }, + ), + 165: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 5, "label": "Top margin", "max_value": 15, "min_value": 0, "required": False}, + ), + 166: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 5, "label": "Bottom margin", "max_value": 15, "min_value": 0, "required": False}, + ), + 167: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("top", "Top"), ("middle", "Middle"), ("bottom", "Bottom")], + "label": "Vertical align", + "required": False, + }, + ), + 168: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("3", "3/12"), + ("4", "4/12"), + ("5", "5/12"), + ("6", "6/12"), + ("7", "7/12"), + ("8", "8/12"), + ("9", "9/12"), + ], + "help_text": "The total width of all columns should be 12.", + "label": "Column width", + "required": False, + }, + ), + 169: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("contact_card", 153), + ] + ], + {"label": "Column content"}, + ), + 170: ( + "wagtail.blocks.StructBlock", + [[("width", 168), ("content", 169)]], + {"group": "Page structure", "label": "Adjustable column"}, + ), + 171: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("column", 170), + ] + ], + {"label": "Columns"}, + ), + 172: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 162), + ("bg_color_class", 163), + ("title", 1), + ("heading_tag", 164), + ("top_margin", 165), + ("bottom_margin", 166), + ("vertical_align", 167), + ("columns", 171), + ] + ], + {"group": "3. Page structure", "label": "Multiple columns"}, + ), + 173: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("3", "3/12"), ("4", "4/12"), ("6", "6/12")], "label": "Column width"}, + ), + 174: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("center", "Center"), ("right", "Right")], + "label": "Horizontal align", + "required": False, + }, + ), + 175: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("contact_card", 153), + ] + ], + {"label": "Items"}, + ), + 176: ( + "wagtail.blocks.StructBlock", + [[("column_width", 173), ("horizontal_align", 174), ("vertical_align", 167), ("items", 175)]], + {"group": "3. Page structure", "label": "Item grid"}, + ), + 177: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 87), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 95), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {"group": "DSFR components", "label": "Horizontal card"}, + ), + 178: ( + "wagtail.blocks.StreamBlock", + [[("tabs", 155)]], + {"group": "DSFR components", "label": "Tabs"}, + ), + 179: ( + "wagtail.blocks.StructBlock", + [[("column_width", 173), ("horizontal_align", 174), ("vertical_align", 167), ("items", 175)]], + {"group": "Page structure", "label": "Item grid"}, + ), + 180: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("image_and_text", 23), + ("card", 177), + ("tabs", 178), + ("item_grid", 179), + ] + ], + {"label": "Content"}, + ), + 181: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 162), + ("bg_color_class", 163), + ("top_margin", 165), + ("bottom_margin", 166), + ("content", 180), + ] + ], + {"group": "3. Page structure", "label": "Full width background"}, + ), + 182: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("image_and_text", 23), + ("card", 177), + ("tabs", 178), + ("item_grid", 179), + ] + ], + {"label": "Main content"}, + ), + 183: ("wagtail.blocks.CharBlock", (), {"label": "Side menu title", "required": False}), + 184: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "label": "HTML", + }, + ), + 185: ("wagtail.blocks.PageChooserBlock", (), {"label": "Parent page"}), + 186: ("wagtail.blocks.StructBlock", [[("page", 185)]], {"label": "Page tree"}), + 187: ( + "wagtail.blocks.StreamBlock", + [[("html", 184), ("pagetree", 186)]], + {"label": "Side menu content"}, + ), + 188: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 162), + ("bg_color_class", 163), + ("top_margin", 165), + ("bottom_margin", 166), + ("main_content", 182), + ("sidemenu_title", 183), + ("sidemenu_content", 187), + ] + ], + {"group": "3. Page structure", "label": "Full width background with side menu"}, + ), + 189: ( + "wagtail.blocks.static_block.StaticBlock", + (), + { + "admin_text": "A simple, alphabetical list of the subpages of the current page.", + "group": "4. Website structure", + "label": "Subpages list", + "template": "content_manager/blocks/subpages_list.html", + }, + ), + 190: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("blog", 122), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "4. Website structure", "label": "Blog recent entries"}, + ), + 191: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("index_page", 130), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "4. Website structure", "label": "Event calendar recent entries"}, + ), + 192: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "

En savoir plus


Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "features": ["bold", "italic", "link", "document-link", "strikethrough", "h2", "h3", "h4"], + "label": "Rich text", + }, + ), + 193: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("6", "small"), ("8", "medium"), ("12", "large")], "label": "Block width"}, + ), + 194: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("", "Center"), ("right", "Right")], + "label": "Block alignment", + "required": False, + }, + ), + 195: ( + "wagtail.blocks.StructBlock", + [[("text", 192), ("width", 193), ("alignment", 194)]], + {"group": "1. Section templates to be adapted", "label": "Rich text with layout"}, + ), + 196: ( + "wagtail.blocks.CharBlock", + (), + {"default": "Titre de la section", "label": "Section title"}, + ), + 197: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("Primary colors", [("blue-france", "Blue France"), ("red-marianne", "Red Marianne")]), + ("Neutral colors", [("grey", "Grey")]), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "help_text": "Uses the French Design System colors.
If you want to design a classic website, choose the colour ‘white’ or ‘French blue’.", + "label": "Background color", + "required": False, + }, + ), + 198: ( + "wagtail.blocks.StructBlock", + [[("background_color", 197), ("top_margin", 165), ("bottom_margin", 166)]], + {"collapsed": True, "label": "Layout"}, + ), + 199: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("center", "Center"), ("right", "Right")], + "label": "Items alignement", + }, + ), + 200: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("6", "2"), ("4", "3"), ("3", "4")], "label": "Items per row"}, + ), + 201: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("80", "Small (80px)"), ("140", "Medium (140px)"), ("200", "Large (200px)")], + "help_text": "Images are always displayed in a square (1:1) ratio. Three sizes are available: if the original image is smaller than the selected size, it will be displayed at its maximum available size.", + "label": "Image size of items", + }, + ), + 202: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": True}), + 203: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "Add a short description to help your visitors better understand what you offer.", + "features": ["bold", "italic", "link", "document-link"], + "label": "Text", + }, + ), + 204: ("wagtail.blocks.StructBlock", [[("image", 10), ("title", 202), ("text", 203)]], {}), + 205: ( + "content_manager.blocks.sections.ImageAndTextListBlock", + (204,), + {"collapsed": True, "label": "Items"}, + ), + 206: ( + "wagtail.blocks.StructBlock", + [ + [ + ("section_title", 196), + ("layout", 198), + ("items_alignement", 199), + ("items_per_row", 200), + ("images_size", 201), + ("items", 205), + ] + ], + {"group": "1. Section templates to be adapted", "label": "Items grid (image and text)"}, + ), + 207: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "

Titre de la section


Lorem ipsum dolor sit amet, consectetur adipiscing elit, ", + "features": ["bold", "italic", "link", "document-link", "strikethrough", "h2", "h3", "h4"], + "label": "Text block", + }, + ), + 208: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("right", "Right")], + "help_text": "This field allows you to define the placement of text relative to adjacent content.", + "label": "Text content position", + }, + ), + 209: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + { + "default": { + "button_type": "fr-btn fr-btn--secondary", + "external_url": "https://tube.numerique.gouv.fr/", + "icon_side": "--", + "link_type": "external_url", + "text": "Appel à l'action", + }, + "label": "Button", + }, + ), + 210: ( + "wagtail.blocks.StructBlock", + [[("text", 207), ("position", 208), ("button", 209), ("image", 10), ("layout", 198)]], + {"group": "1. Section templates to be adapted", "label": "Image, text and cta"}, + ), + 211: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididun", + "features": ["bold", "italic", "link", "document-link"], + "label": "Text", + }, + ), + 212: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + { + "default": { + "button_type": "fr-btn", + "external_url": "https://tube.numerique.gouv.fr/", + "icon_side": "--", + "link_type": "external_url", + "text": "Appel à l'action", + }, + "label": "Button", + }, + ), + 213: ( + "wagtail.blocks.StructBlock", + [[("section_title", 196), ("layout", 198), ("text", 211), ("button", 212)]], + {"group": "1. Section templates to be adapted", "label": "Text and button"}, + ), + 214: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ] + ], + { + "collapsed": True, + "help_text": "This link appears at the bottom left of the section if completed", + "label": "Section link", + "required": False, + }, + ), + 215: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 6), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 145), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {}, + ), + 216: ("wagtail.blocks.StreamBlock", [[("card", 215)]], {"label": "Items"}), + 217: ( + "wagtail.blocks.StructBlock", + [ + [ + ("section_title", 196), + ("layout", 198), + ("items_per_row", 200), + ("link", 214), + ("items", 216), + ] + ], + {"group": "1. Section templates to be adapted", "label": "In the spotlight"}, + ), + 218: ( + "wagtail.blocks.StreamBlock", + [[("title", 55), ("accordion", 66)]], + { + "default": [ + ("title", "Accordéon"), + ( + "accordion", + { + "content": "

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

", + "title": "Titre de l'accordéon 1", + }, + ), + ( + "accordion", + { + "content": "

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

", + "title": "Titre de l'accordéon 2", + }, + ), + ], + "label": "Accordion", + }, + ), + 219: ( + "wagtail.blocks.StructBlock", + [[("accordion", 218), ("layout", 198)]], + {"group": "1. Section templates to be adapted", "label": "Accordions with layout"}, + ), + }, + ), + ), + migrations.AlterField( + model_name="blogindexpage", + name="body", + field=wagtail.fields.StreamField( + [ + ("paragraph", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("link", 64), + ("accordions", 67), + ("callout", 71), + ("highlight", 74), + ("quote", 79), + ("stepper", 86), + ("card", 104), + ("tile", 115), + ("tabs", 156), + ("markdown", 157), + ("iframe", 158), + ("html", 159), + ("anchor", 160), + ("separator", 161), + ("multicolumns", 172), + ("item_grid", 176), + ("fullwidthbackground", 181), + ("fullwidthbackgroundwithsidemenu", 188), + ("subpageslist", 189), + ("blog_recent_entries", 190), + ("events_recent_entries", 191), + ("layout_richtext", 195), + ("image_text_grid_section", 206), + ("image_text_cta_section", 210), + ("cta_section", 213), + ("spotlight_section", 217), + ("accordion_section", 219), + ], + blank=True, + block_lookup={ + 0: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text"}), + 1: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": False}), + 2: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 3.", + "label": "Heading level", + "required": False, + }, + ), + 3: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image"}), + 4: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Alternative text (textual description of the image)", "required": False}, + ), + 5: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-content-media--sm", "Small"), + ("", "Medium"), + ("fr-content-media--lg", "Large"), + ], + "label": "Witdh", + "required": False, + }, + ), + 6: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-ratio-32x9", "32x9"), + ("fr-ratio-16x9", "16x9"), + ("fr-ratio-3x2", "3x2"), + ("fr-ratio-4x3", "4x3"), + ("fr-ratio-1x1", "1x1"), + ("fr-ratio-3x4", "3x4"), + ("fr-ratio-2x3", "2x3"), + ], + "label": "Image ratio", + "required": False, + }, + ), + 7: ("wagtail.blocks.CharBlock", (), {"label": "Caption", "required": False}), + 8: ("wagtail.blocks.URLBlock", (), {"label": "Link", "required": False}), + 9: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 2), + ("image", 3), + ("alt", 4), + ("width", 5), + ("image_ratio", 6), + ("caption", 7), + ("url", 8), + ] + ], + {"label": "Centered image"}, + ), + 10: ("wagtail.images.blocks.ImageBlock", [], {"label": "Image"}), + 11: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("left", "Left (displayed above text in mobile view)"), + ("left_below", "Left (displayed below text in mobile view)"), + ("right", "Right (displayed below text in mobile view)"), + ("right_above", "Right (displayed above text in mobile view)"), + ], + "label": "Image position", + }, + ), + 12: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("3", "3/12"), ("4", "4/12"), ("5", "5/12"), ("6", "6/12")], + "label": "Image width", + }, + ), + 13: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("page", "Page"), + ("external_url", "External URL"), + ("document", "Document"), + ("anchor", "Anchor link"), + ], + "help_text": "Select the type of link.", + "label": "Link type", + "required": False, + }, + ), + 14: ( + "wagtail.blocks.PageChooserBlock", + (), + { + "help_text": "Link to a page of this site. Use either this, the document, or the external URL parameter.", + "label": "Page", + "required": False, + }, + ), + 15: ( + "wagtail.documents.blocks.DocumentChooserBlock", + (), + { + "help_text": "Use either this, the external URL or the page parameter.", + "label": "Document", + "required": False, + }, + ), + 16: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Use either this, the document or the page parameter.", + "label": "External URL", + "required": False, + }, + ), + 17: ( + "wagtail.blocks.CharBlock", + (), + { + "default": "", + "help_text": "Link to an anchor block on the page. Allowed characters: A-Z, a-z, 0-9, - and _.", + "label": "Anchor ID", + "required": False, + "validators": [ + django.core.validators.RegexValidator( + re.compile("^[-a-zA-Z0-9_]+\\Z"), + "Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.", + "invalid", + ) + ], + }, + ), + 18: ( + "wagtail.blocks.CharBlock", + (), + { + "default": "", + "help_text": "Extra query parameters at the end of the link, e.g. filtering options.", + "label": "Extra query parameters", + "required": False, + "validators": [content_manager.validators.validate_query_string], + }, + ), + 19: ("wagtail.blocks.CharBlock", (), {"label": "Link label", "required": False}), + 20: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", "No icon"), + ("fr-icon-arrow-right-line fr-link--icon-right", "Icon on the right side"), + ("fr-icon-arrow-right-line fr-link--icon-left", "Icon on the left side"), + ], + "help_text": "Only used for internal links.", + "label": "Icon", + "required": False, + }, + ), + 21: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-link--sm", "Small"), ("", "Medium"), ("fr-link--lg", "Large")], + "label": "Size", + "required": False, + }, + ), + 22: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ("icon", 20), + ("size", 21), + ] + ], + { + "help_text": "The link is shown at the bottom of the text block, with an arrow", + "label": "Link", + "required": False, + }, + ), + 23: ( + "wagtail.blocks.StructBlock", + [[("image", 10), ("image_side", 11), ("image_ratio", 12), ("text", 0), ("link", 22)]], + {"label": "Image and text"}, + ), + 24: ("wagtail.blocks.CharBlock", (), {"label": "Row heading", "required": False}), + 25: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "text-left", + "text-center", + "text-right", + ], + "label": "Text", + "required": False, + }, + ), + 26: ("wagtail.images.blocks.ImageBlock", [], {"label": "Pictogram"}), + 27: ( + "wagtail.contrib.typed_table_block.blocks.TypedTableBlock", + [[("row_heading", 24), ("text", 25), ("pictogram", 26)]], + {"label": "Table"}, + ), + 28: ("wagtail.blocks.CharBlock", (), {"label": "Message title", "required": False}), + 29: ("wagtail.blocks.TextBlock", (), {"label": "Message text", "required": False}), + 30: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("error", "Error"), + ("success", "Success"), + ("info", "Information"), + ("warning", "Warning"), + ], + "label": "Message type", + }, + ), + 31: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 3.", + "label": "Heading level", + }, + ), + 32: ( + "wagtail.blocks.StructBlock", + [[("title", 28), ("description", 29), ("level", 30), ("heading_tag", 31)]], + {"label": "Alert message"}, + ), + 33: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text", "required": False}), + 34: ("wagtail.blocks.CharBlock", (), {"label": "Button label", "required": False}), + 35: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-btn", "Primary"), + ("fr-btn fr-btn--secondary", "Secundary"), + ("fr-btn fr-btn--tertiary", "Tertiary"), + ("fr-btn fr-btn--tertiary-no-outline", "Tertiary without border"), + ], + "label": "Button type", + "required": False, + }, + ), + 36: ( + "content_manager.blocks.buttons_links.IconPickerBlock", + (), + {"label": "Icon", "required": False}, + ), + 37: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")], + "label": "Icon side", + "required": False, + }, + ), + 38: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + {"label": "Button"}, + ), + 39: ( + "wagtail.blocks.StreamBlock", + [[("button", 38)]], + { + "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", + "label": "Buttons", + }, + ), + 40: ( + "wagtail.blocks.StreamBlock", + [[("buttons", 39)]], + {"label": "Call-to-action buttons", "max_num": 1, "required": False}, + ), + 41: ( + "wagtail.blocks.StructBlock", + [[("text", 33), ("cta_buttons", 40)]], + {"label": "Text and call to action"}, + ), + 42: ("wagtail.blocks.CharBlock", (), {"label": "Video title", "required": False}), + 43: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Use embed format, with a version that doesn't require a consent banner if available. (e.g. : https://www.youtube-nocookie.com/embed/gLzXOViPX-0) For Youtube, use Embed video and check Enable privacy-enhanced mode.", + "label": "Video URL", + }, + ), + 44: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-ratio-16x9", "16x9"), ("fr-ratio-4x3", "4x3"), ("fr-ratio-1x1", "1x1")], + "label": "Video ratio", + "required": False, + }, + ), + 45: ( + "wagtail.blocks.CharBlock", + (), + {"default": "Transcription", "label": "Title", "required": False}, + ), + 46: ("wagtail.blocks.RichTextBlock", (), {"label": "Transcription content", "required": False}), + 47: ( + "wagtail.blocks.StructBlock", + [[("title", 45), ("content", 46)]], + {"label": "Transcription", "required": False}, + ), + 48: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 42), + ("caption", 7), + ("url", 43), + ("width", 5), + ("video_ratio", 44), + ("transcription", 47), + ] + ], + {"label": "Video"}, + ), + 49: ("wagtail.blocks.StructBlock", [[("title", 45), ("content", 46)]], {"label": "Transcription"}), + 50: ("wagtail.blocks.CharBlock", (), {"label": "Badge label", "required": False}), + 51: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", [("new", "New"), ("grey", "Grey")]), + ( + "System colors", + [ + ("info", "Info"), + ("success", "Success"), + ("warning", "Warning"), + ("error", "Error"), + ], + ), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "label": "Badge color", + "required": False, + }, + ), + 52: ("wagtail.blocks.BooleanBlock", (), {"label": "Hide badge icon", "required": False}), + 53: ( + "wagtail.blocks.StructBlock", + [[("text", 50), ("color", 51), ("hide_icon", 52)]], + {"label": "Badge"}, + ), + 54: ("wagtail.blocks.StreamBlock", [[("badge", 53)]], {"label": "Badge list"}), + 55: ("wagtail.blocks.CharBlock", (), {"label": "Title"}), + 56: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tag", "required": False}), + 57: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + "help_text": "Only for clickable tags", + "label": "Tag color", + "required": False, + }, + ), + 58: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ] + ], + {"required": False}, + ), + 59: ( + "wagtail.blocks.StructBlock", + [[("label", 55), ("is_small", 56), ("color", 57), ("icon_class", 36), ("link", 58)]], + {"label": "Tag"}, + ), + 60: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {"label": "Tag list"}), + 61: ( + "wagtail.blocks.StreamBlock", + [[("button", 38)]], + { + "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", + "label": "Buttons", + }, + ), + 62: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", "Left"), + ("fr-btns-group--center", "Center"), + ("fr-btns-group--right", "Right"), + ( + "fr-btns-group--right fr-btns-group--inline-reverse", + "Right (reverse order on desktop)", + ), + ], + "label": "Position", + "required": False, + }, + ), + 63: ( + "wagtail.blocks.StructBlock", + [[("buttons", 61), ("position", 62)]], + {"label": "Button list"}, + ), + 64: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ("icon", 20), + ("size", 21), + ] + ], + {"label": "Single link"}, + ), + 65: ("wagtail.blocks.RichTextBlock", (), {"label": "Content"}), + 66: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("content", 65)]], + {"label": "Accordion", "max_num": 15, "min_num": 1}, + ), + 67: ( + "wagtail.blocks.StreamBlock", + [[("title", 55), ("accordion", 66)]], + {"group": "2. DSFR components", "label": "Accordions"}, + ), + 68: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "text-left", + "text-center", + "text-right", + ], + "label": "Content", + "required": False, + }, + ), + 69: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + {"label": "Button", "required": False}, + ), + 70: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + "label": "Color", + "required": False, + }, + ), + 71: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 31), + ("icon_class", 36), + ("text", 68), + ("button", 69), + ("color", 70), + ] + ], + {"group": "2. DSFR components", "label": "Callout"}, + ), + 72: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "text-left", + "text-center", + "text-right", + ], + "label": "Content", + }, + ), + 73: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-text--sm", "Small"), ("", "Medium"), ("fr-text--lg", "Large")], + "label": "Size", + "required": False, + }, + ), + 74: ( + "wagtail.blocks.StructBlock", + [[("text", 72), ("color", 70), ("size", 73)]], + {"group": "2. DSFR components", "label": "Highlight"}, + ), + 75: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image", "required": False}), + 76: ("wagtail.blocks.CharBlock", (), {"label": "Quote"}), + 77: ("wagtail.blocks.CharBlock", (), {"label": "Author name", "required": False}), + 78: ("wagtail.blocks.CharBlock", (), {"label": "Author title", "required": False}), + 79: ( + "wagtail.blocks.StructBlock", + [[("image", 75), ("quote", 76), ("author_name", 77), ("author_title", 78), ("color", 70)]], + {"group": "2. DSFR components", "label": "Quote"}, + ), + 80: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + }, + ), + 81: ( + "wagtail.blocks.IntegerBlock", + (), + {"label": "Number of steps", "max_value": 8, "min_value": 1}, + ), + 82: ("wagtail.blocks.IntegerBlock", (), {"label": "Current step", "max_value": 8, "min_value": 1}), + 83: ("wagtail.blocks.TextBlock", (), {"label": "Detail", "required": False}), + 84: ("wagtail.blocks.StructBlock", [[("title", 55), ("detail", 83)]], {"label": "Step"}), + 85: ("wagtail.blocks.StreamBlock", [[("step", 84)]], {"label": "Steps"}), + 86: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("heading_tag", 80), ("total", 81), ("current", 82), ("steps", 85)]], + {"group": "2. DSFR components", "label": "Stepper"}, + ), + 87: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-card--horizontal-tier", "1/3"), ("fr-card--horizontal-half", "50/50")], + "label": "Image ratio", + "required": False, + }, + ), + 88: ( + "wagtail.blocks.StreamBlock", + [[("badge", 53)]], + { + "help_text": "Only used if the card has an image.", + "label": "Image area badge", + "max_num": 1, + "required": False, + }, + ), + 89: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ] + ], + { + "collapsed": False, + "help_text": "Link for the whole card. If a call-to-action is present, the link will display on the title only.", + "label": "Link", + "required": False, + }, + ), + 90: ("wagtail.blocks.CharBlock", (), {"label": "Top detail: text", "required": False}), + 91: ( + "content_manager.blocks.buttons_links.IconPickerBlock", + (), + {"label": "Top detail: icon", "required": False}, + ), + 92: ("wagtail.blocks.StreamBlock", [[("badge", 53)]], {}), + 93: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {}), + 94: ( + "wagtail.blocks.StreamBlock", + [[("badges", 92), ("tags", 93)]], + {"label": "Top detail: badges or tags", "max_num": 1, "required": False}, + ), + 95: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Incompatible with the bottom call-to-action. If the card links to a downloadable document, the values are pre-filled.", + "label": "Bottom detail: text", + "required": False, + }, + ), + 96: ( + "content_manager.blocks.buttons_links.IconPickerBlock", + (), + {"label": "Bottom detail: icon", "required": False}, + ), + 97: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ] + ], + {"label": "Link"}, + ), + 98: ("wagtail.blocks.StreamBlock", [[("link", 97)]], {"label": "Links"}), + 99: ( + "wagtail.blocks.StreamBlock", + [[("links", 98), ("buttons", 39)]], + { + "help_text": "Incompatible with the bottom detail text. Allow you to add link or button.", + "label": "Bottom call-to-action: links or buttons", + "max_num": 1, + "required": False, + }, + ), + 100: ( + "wagtail.blocks.BooleanBlock", + (), + {"label": "Card with grey background", "required": False}, + ), + 101: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without background", "required": False}), + 102: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without border", "required": False}), + 103: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with a shadow", "required": False}), + 104: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 87), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 95), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {"group": "2. DSFR components", "label": "Horizontal card"}, + ), + 105: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": ["bold", "italic", "superscript", "subscript", "strikethrough"], + "label": "Content", + "required": False, + }, + ), + 106: ( + "wagtail.images.blocks.ImageChooserBlock", + (), + {"help_text": "Prefer SVG files.", "label": "Image", "required": False}, + ), + 107: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ] + ], + {"label": "Link", "required": False}, + ), + 108: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "If the tile links to a downloadable document, the values are pre-filled.", + "label": "Detail text", + "required": False, + }, + ), + 109: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tile", "required": False}), + 110: ( + "wagtail.blocks.BooleanBlock", + (), + {"label": "Tile with grey background", "required": False}, + ), + 111: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without background", "required": False}), + 112: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without border", "required": False}), + 113: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with a shadow", "required": False}), + 114: ("wagtail.blocks.BooleanBlock", (), {"label": "Horizontal tile", "required": False}), + 115: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 105), + ("image", 106), + ("link", 107), + ("top_detail_badges_tags", 94), + ("detail_text", 108), + ("is_small", 109), + ("grey_background", 110), + ("no_background", 111), + ("no_border", 112), + ("shadow", 113), + ("is_horizontal", 114), + ] + ], + {"group": "2. DSFR components", "label": "Tile"}, + ), + 116: ( + "wagtail.blocks.StreamBlock", + [[("title", 55), ("accordion", 66)]], + {"group": "DSFR components", "label": "Accordions"}, + ), + 117: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 31), + ("icon_class", 36), + ("text", 68), + ("button", 69), + ("color", 70), + ] + ], + {"group": "DSFR components", "label": "Callout"}, + ), + 118: ( + "wagtail.blocks.StructBlock", + [[("text", 72), ("color", 70), ("size", 73)]], + {"group": "DSFR components", "label": "Highlight"}, + ), + 119: ( + "wagtail.blocks.StructBlock", + [[("image", 75), ("quote", 76), ("author_name", 77), ("author_title", 78), ("color", 70)]], + {"group": "DSFR components", "label": "Quote"}, + ), + 120: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 105), + ("image", 106), + ("link", 107), + ("top_detail_badges_tags", 94), + ("detail_text", 108), + ("is_small", 109), + ("grey_background", 110), + ("no_background", 111), + ("no_border", 112), + ("shadow", 113), + ("is_horizontal", 114), + ] + ], + {"group": "DSFR components", "label": "Tile"}, + ), + 121: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + "required": False, + }, + ), + 122: ( + "wagtail.blocks.PageChooserBlock", + (), + {"label": "Blog", "page_type": ["blog.BlogIndexPage"]}, + ), + 123: ( + "wagtail.blocks.IntegerBlock", + (), + { + "default": 3, + "label": "Number of entries", + "max_value": 8, + "min_value": 1, + "required": False, + }, + ), + 124: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Category",), + {"label": "Filter by category", "required": False}, + ), + 125: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("content_manager.Tag",), + {"label": "Filter by tag", "required": False}, + ), + 126: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Person",), + {"label": "Filter by author", "required": False}, + ), + 127: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Organization",), + { + "help_text": "The source is the organization of the post author", + "label": "Filter by source", + "required": False, + }, + ), + 128: ( + "wagtail.blocks.BooleanBlock", + (), + {"default": False, "label": "Show filters", "required": False}, + ), + 129: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("blog", 122), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "Website structure", "label": "Blog recent entries"}, + ), + 130: ( + "wagtail.blocks.PageChooserBlock", + (), + {"label": "Event calendar", "page_type": ["events.EventsIndexPage"]}, + ), + 131: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("index_page", 130), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "Website structure", "label": "Event calendar recent entries"}, + ), + 132: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("heading_tag", 80), ("total", 81), ("current", 82), ("steps", 85)]], + {"group": "DSFR components", "label": "Stepper"}, + ), + 133: ("wagtailmarkdown.blocks.MarkdownBlock", (), {"group": "Expert syntax", "label": "Markdown"}), + 134: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Accessibility: The title should describe, in a clear and concise manner, the embedded content.", + "label": "Title", + }, + ), + 135: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Example for Tally: https://tally.so/embed/w2jMRa", + "label": "URL of the iframe", + }, + ), + 136: ("wagtail.blocks.IntegerBlock", (), {"label": "Height (in pixels)"}), + 137: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "For example: \"allow='geolocation'\".", + "label": "Parameters", + "required": False, + }, + ), + 138: ( + "wagtail.blocks.StructBlock", + [[("title", 134), ("url", 135), ("height", 136), ("parameters", 137)]], + {"group": "Expert syntax", "label": "Iframe"}, + ), + 139: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "group": "Expert syntax", + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "readonly": True, + }, + ), + 140: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Allows the creation of a link to this specific part of the page. Allowed characters: A-Z, a-z, 0-9, - and _.", + "label": "Anchor ID", + "validators": [ + django.core.validators.RegexValidator( + re.compile("^[-a-zA-Z0-9_]+\\Z"), + "Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.", + "invalid", + ) + ], + }, + ), + 141: ( + "wagtail.blocks.StructBlock", + [[("anchor_id", 140)]], + {"group": "Page structure", "label": "Anchor"}, + ), + 142: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 3, "label": "Top margin", "max_value": 15, "min_value": 0}, + ), + 143: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 3, "label": "Bottom margin", "max_value": 15, "min_value": 0}, + ), + 144: ( + "wagtail.blocks.StructBlock", + [[("top_margin", 142), ("bottom_margin", 143)]], + {"group": "Page structure", "label": "Separator"}, + ), + 145: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Incompatible with the bottom call-to-action.", + "label": "Bottom detail: text", + "required": False, + }, + ), + 146: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 6), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 145), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {"group": "DSFR components", "label": "Vertical card"}, + ), + 147: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Person",), + { + "help_text": "Optional, all values can be manually specified or overriden below", + "label": "Person", + "required": False, + }, + ), + 148: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255, "required": False}), + 149: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255, "required": False}), + 150: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Organization", "max_length": 255, "required": False}, + ), + 151: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Contact info", "max_length": 500, "required": False}, + ), + 152: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {"label": "Tags", "required": False}), + 153: ( + "wagtail.blocks.StructBlock", + [ + [ + ("contact", 147), + ("link", 107), + ("heading_tag", 2), + ("name", 148), + ("role", 149), + ("organization", 150), + ("contact_info", 151), + ("image", 75), + ("tags", 152), + ] + ], + {"group": "Extra components", "label": "Contact card"}, + ), + 154: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("contact_card", 153), + ] + ], + {"label": "Content"}, + ), + 155: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("content", 154)]], + {"label": "Tab", "max_num": 15, "min_num": 1}, + ), + 156: ( + "wagtail.blocks.StreamBlock", + [[("tabs", 155)]], + {"group": "2. DSFR components", "label": "Tabs"}, + ), + 157: ( + "wagtailmarkdown.blocks.MarkdownBlock", + (), + {"group": "5. Expert syntax", "label": "Markdown"}, + ), + 158: ( + "wagtail.blocks.StructBlock", + [[("title", 134), ("url", 135), ("height", 136), ("parameters", 137)]], + {"group": "5. Expert syntax", "label": "Iframe"}, + ), + 159: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "group": "5. Expert syntax", + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "readonly": True, + }, + ), + 160: ( + "wagtail.blocks.StructBlock", + [[("anchor_id", 140)]], + {"group": "3. Page structure", "label": "Anchor"}, + ), + 161: ( + "wagtail.blocks.StructBlock", + [[("top_margin", 142), ("bottom_margin", 143)]], + {"group": "3. Page structure", "label": "Separator"}, + ), + 162: ( + "wagtail.images.blocks.ImageChooserBlock", + (), + {"label": "Background image", "required": False}, + ), + 163: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("Primary colors", [("blue-france", "Blue France"), ("red-marianne", "Red Marianne")]), + ("Neutral colors", [("grey", "Grey")]), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "help_text": "Uses the French Design System colors", + "label": "Background color", + "required": False, + }, + ), + 164: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + "required": False, + }, + ), + 165: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 5, "label": "Top margin", "max_value": 15, "min_value": 0, "required": False}, + ), + 166: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 5, "label": "Bottom margin", "max_value": 15, "min_value": 0, "required": False}, + ), + 167: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("top", "Top"), ("middle", "Middle"), ("bottom", "Bottom")], + "label": "Vertical align", + "required": False, + }, + ), + 168: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("3", "3/12"), + ("4", "4/12"), + ("5", "5/12"), + ("6", "6/12"), + ("7", "7/12"), + ("8", "8/12"), + ("9", "9/12"), + ], + "help_text": "The total width of all columns should be 12.", + "label": "Column width", + "required": False, + }, + ), + 169: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("contact_card", 153), + ] + ], + {"label": "Column content"}, + ), + 170: ( + "wagtail.blocks.StructBlock", + [[("width", 168), ("content", 169)]], + {"group": "Page structure", "label": "Adjustable column"}, + ), + 171: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("column", 170), + ] + ], + {"label": "Columns"}, + ), + 172: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 162), + ("bg_color_class", 163), + ("title", 1), + ("heading_tag", 164), + ("top_margin", 165), + ("bottom_margin", 166), + ("vertical_align", 167), + ("columns", 171), + ] + ], + {"group": "3. Page structure", "label": "Multiple columns"}, + ), + 173: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("3", "3/12"), ("4", "4/12"), ("6", "6/12")], "label": "Column width"}, + ), + 174: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("center", "Center"), ("right", "Right")], + "label": "Horizontal align", + "required": False, + }, + ), + 175: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("contact_card", 153), + ] + ], + {"label": "Items"}, + ), + 176: ( + "wagtail.blocks.StructBlock", + [[("column_width", 173), ("horizontal_align", 174), ("vertical_align", 167), ("items", 175)]], + {"group": "3. Page structure", "label": "Item grid"}, + ), + 177: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 87), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 95), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {"group": "DSFR components", "label": "Horizontal card"}, + ), + 178: ( + "wagtail.blocks.StreamBlock", + [[("tabs", 155)]], + {"group": "DSFR components", "label": "Tabs"}, + ), + 179: ( + "wagtail.blocks.StructBlock", + [[("column_width", 173), ("horizontal_align", 174), ("vertical_align", 167), ("items", 175)]], + {"group": "Page structure", "label": "Item grid"}, + ), + 180: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("image_and_text", 23), + ("card", 177), + ("tabs", 178), + ("item_grid", 179), + ] + ], + {"label": "Content"}, + ), + 181: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 162), + ("bg_color_class", 163), + ("top_margin", 165), + ("bottom_margin", 166), + ("content", 180), + ] + ], + {"group": "3. Page structure", "label": "Full width background"}, + ), + 182: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("image_and_text", 23), + ("card", 177), + ("tabs", 178), + ("item_grid", 179), + ] + ], + {"label": "Main content"}, + ), + 183: ("wagtail.blocks.CharBlock", (), {"label": "Side menu title", "required": False}), + 184: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "label": "HTML", + }, + ), + 185: ("wagtail.blocks.PageChooserBlock", (), {"label": "Parent page"}), + 186: ("wagtail.blocks.StructBlock", [[("page", 185)]], {"label": "Page tree"}), + 187: ( + "wagtail.blocks.StreamBlock", + [[("html", 184), ("pagetree", 186)]], + {"label": "Side menu content"}, + ), + 188: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 162), + ("bg_color_class", 163), + ("top_margin", 165), + ("bottom_margin", 166), + ("main_content", 182), + ("sidemenu_title", 183), + ("sidemenu_content", 187), + ] + ], + {"group": "3. Page structure", "label": "Full width background with side menu"}, + ), + 189: ( + "wagtail.blocks.static_block.StaticBlock", + (), + { + "admin_text": "A simple, alphabetical list of the subpages of the current page.", + "group": "4. Website structure", + "label": "Subpages list", + "template": "content_manager/blocks/subpages_list.html", + }, + ), + 190: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("blog", 122), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "4. Website structure", "label": "Blog recent entries"}, + ), + 191: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("index_page", 130), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "4. Website structure", "label": "Event calendar recent entries"}, + ), + 192: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "

En savoir plus


Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "features": ["bold", "italic", "link", "document-link", "strikethrough", "h2", "h3", "h4"], + "label": "Rich text", + }, + ), + 193: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("6", "small"), ("8", "medium"), ("12", "large")], "label": "Block width"}, + ), + 194: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("", "Center"), ("right", "Right")], + "label": "Block alignment", + "required": False, + }, + ), + 195: ( + "wagtail.blocks.StructBlock", + [[("text", 192), ("width", 193), ("alignment", 194)]], + {"group": "1. Section templates to be adapted", "label": "Rich text with layout"}, + ), + 196: ( + "wagtail.blocks.CharBlock", + (), + {"default": "Titre de la section", "label": "Section title"}, + ), + 197: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("Primary colors", [("blue-france", "Blue France"), ("red-marianne", "Red Marianne")]), + ("Neutral colors", [("grey", "Grey")]), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "help_text": "Uses the French Design System colors.
If you want to design a classic website, choose the colour ‘white’ or ‘French blue’.", + "label": "Background color", + "required": False, + }, + ), + 198: ( + "wagtail.blocks.StructBlock", + [[("background_color", 197), ("top_margin", 165), ("bottom_margin", 166)]], + {"collapsed": True, "label": "Layout"}, + ), + 199: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("center", "Center"), ("right", "Right")], + "label": "Items alignement", + }, + ), + 200: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("6", "2"), ("4", "3"), ("3", "4")], "label": "Items per row"}, + ), + 201: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("80", "Small (80px)"), ("140", "Medium (140px)"), ("200", "Large (200px)")], + "help_text": "Images are always displayed in a square (1:1) ratio. Three sizes are available: if the original image is smaller than the selected size, it will be displayed at its maximum available size.", + "label": "Image size of items", + }, + ), + 202: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": True}), + 203: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "Add a short description to help your visitors better understand what you offer.", + "features": ["bold", "italic", "link", "document-link"], + "label": "Text", + }, + ), + 204: ("wagtail.blocks.StructBlock", [[("image", 10), ("title", 202), ("text", 203)]], {}), + 205: ( + "content_manager.blocks.sections.ImageAndTextListBlock", + (204,), + {"collapsed": True, "label": "Items"}, + ), + 206: ( + "wagtail.blocks.StructBlock", + [ + [ + ("section_title", 196), + ("layout", 198), + ("items_alignement", 199), + ("items_per_row", 200), + ("images_size", 201), + ("items", 205), + ] + ], + {"group": "1. Section templates to be adapted", "label": "Items grid (image and text)"}, + ), + 207: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "

Titre de la section


Lorem ipsum dolor sit amet, consectetur adipiscing elit, ", + "features": ["bold", "italic", "link", "document-link", "strikethrough", "h2", "h3", "h4"], + "label": "Text block", + }, + ), + 208: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("right", "Right")], + "help_text": "This field allows you to define the placement of text relative to adjacent content.", + "label": "Text content position", + }, + ), + 209: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + { + "default": { + "button_type": "fr-btn fr-btn--secondary", + "external_url": "https://tube.numerique.gouv.fr/", + "icon_side": "--", + "link_type": "external_url", + "text": "Appel à l'action", + }, + "label": "Button", + }, + ), + 210: ( + "wagtail.blocks.StructBlock", + [[("text", 207), ("position", 208), ("button", 209), ("image", 10), ("layout", 198)]], + {"group": "1. Section templates to be adapted", "label": "Image, text and cta"}, + ), + 211: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididun", + "features": ["bold", "italic", "link", "document-link"], + "label": "Text", + }, + ), + 212: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + { + "default": { + "button_type": "fr-btn", + "external_url": "https://tube.numerique.gouv.fr/", + "icon_side": "--", + "link_type": "external_url", + "text": "Appel à l'action", + }, + "label": "Button", + }, + ), + 213: ( + "wagtail.blocks.StructBlock", + [[("section_title", 196), ("layout", 198), ("text", 211), ("button", 212)]], + {"group": "1. Section templates to be adapted", "label": "Text and button"}, + ), + 214: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ] + ], + { + "collapsed": True, + "help_text": "This link appears at the bottom left of the section if completed", + "label": "Section link", + "required": False, + }, + ), + 215: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 6), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 145), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {}, + ), + 216: ("wagtail.blocks.StreamBlock", [[("card", 215)]], {"label": "Items"}), + 217: ( + "wagtail.blocks.StructBlock", + [ + [ + ("section_title", 196), + ("layout", 198), + ("items_per_row", 200), + ("link", 214), + ("items", 216), + ] + ], + {"group": "1. Section templates to be adapted", "label": "In the spotlight"}, + ), + 218: ( + "wagtail.blocks.StreamBlock", + [[("title", 55), ("accordion", 66)]], + { + "default": [ + ("title", "Accordéon"), + ( + "accordion", + { + "content": "

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

", + "title": "Titre de l'accordéon 1", + }, + ), + ( + "accordion", + { + "content": "

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

", + "title": "Titre de l'accordéon 2", + }, + ), + ], + "label": "Accordion", + }, + ), + 219: ( + "wagtail.blocks.StructBlock", + [[("accordion", 218), ("layout", 198)]], + {"group": "1. Section templates to be adapted", "label": "Accordions with layout"}, + ), + }, + ), + ), + migrations.AlterField( + model_name="category", + name="colophon", + field=wagtail.fields.StreamField( + [("paragraph", 0), ("imageandtext", 14), ("quote", 20), ("multicolumns", 157), ("contact_card", 161)], + blank=True, + block_lookup={ + 0: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text"}), + 1: ("wagtail.images.blocks.ImageBlock", [], {"label": "Image"}), + 2: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("left", "Left (displayed above text in mobile view)"), + ("left_below", "Left (displayed below text in mobile view)"), + ("right", "Right (displayed below text in mobile view)"), + ("right_above", "Right (displayed above text in mobile view)"), + ], + "label": "Image position", + }, + ), + 3: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("3", "3/12"), ("4", "4/12"), ("5", "5/12"), ("6", "6/12")], + "label": "Image width", + }, + ), + 4: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("page", "Page"), + ("external_url", "External URL"), + ("document", "Document"), + ("anchor", "Anchor link"), + ], + "help_text": "Select the type of link.", + "label": "Link type", + "required": False, + }, + ), + 5: ( + "wagtail.blocks.PageChooserBlock", + (), + { + "help_text": "Link to a page of this site. Use either this, the document, or the external URL parameter.", + "label": "Page", + "required": False, + }, + ), + 6: ( + "wagtail.documents.blocks.DocumentChooserBlock", + (), + { + "help_text": "Use either this, the external URL or the page parameter.", + "label": "Document", + "required": False, + }, + ), + 7: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Use either this, the document or the page parameter.", + "label": "External URL", + "required": False, + }, + ), + 8: ( + "wagtail.blocks.CharBlock", + (), + { + "default": "", + "help_text": "Link to an anchor block on the page. Allowed characters: A-Z, a-z, 0-9, - and _.", + "label": "Anchor ID", + "required": False, + "validators": [ + django.core.validators.RegexValidator( + re.compile("^[-a-zA-Z0-9_]+\\Z"), + "Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.", + "invalid", + ) + ], + }, + ), + 9: ( + "wagtail.blocks.CharBlock", + (), + { + "default": "", + "help_text": "Extra query parameters at the end of the link, e.g. filtering options.", + "label": "Extra query parameters", + "required": False, + "validators": [content_manager.validators.validate_query_string], + }, + ), + 10: ("wagtail.blocks.CharBlock", (), {"label": "Link label", "required": False}), + 11: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", "No icon"), + ("fr-icon-arrow-right-line fr-link--icon-right", "Icon on the right side"), + ("fr-icon-arrow-right-line fr-link--icon-left", "Icon on the left side"), + ], + "help_text": "Only used for internal links.", + "label": "Icon", + "required": False, + }, + ), + 12: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-link--sm", "Small"), ("", "Medium"), ("fr-link--lg", "Large")], + "label": "Size", + "required": False, + }, + ), + 13: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 4), + ("page", 5), + ("document", 6), + ("external_url", 7), + ("anchor", 8), + ("query_string", 9), + ("text", 10), + ("icon", 11), + ("size", 12), + ] + ], + { + "help_text": "The link is shown at the bottom of the text block, with an arrow", + "label": "Link", + "required": False, + }, + ), + 14: ( + "wagtail.blocks.StructBlock", + [[("image", 1), ("image_side", 2), ("image_ratio", 3), ("text", 0), ("link", 13)]], + {"label": "Bloc image et texte"}, + ), + 15: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image", "required": False}), + 16: ("wagtail.blocks.CharBlock", (), {"label": "Quote"}), + 17: ("wagtail.blocks.CharBlock", (), {"label": "Author name", "required": False}), + 18: ("wagtail.blocks.CharBlock", (), {"label": "Author title", "required": False}), + 19: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + "label": "Color", + "required": False, + }, + ), + 20: ( + "wagtail.blocks.StructBlock", + [[("image", 15), ("quote", 16), ("author_name", 17), ("author_title", 18), ("color", 19)]], + {"label": "Citation"}, + ), + 21: ( + "wagtail.images.blocks.ImageChooserBlock", + (), + {"label": "Background image", "required": False}, + ), + 22: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("Primary colors", [("blue-france", "Blue France"), ("red-marianne", "Red Marianne")]), + ("Neutral colors", [("grey", "Grey")]), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "help_text": "Uses the French Design System colors", + "label": "Background color", + "required": False, + }, + ), + 23: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": False}), + 24: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + "required": False, + }, + ), + 25: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 5, "label": "Top margin", "max_value": 15, "min_value": 0, "required": False}, + ), + 26: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 5, "label": "Bottom margin", "max_value": 15, "min_value": 0, "required": False}, + ), + 27: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("top", "Top"), ("middle", "Middle"), ("bottom", "Bottom")], + "label": "Vertical align", + "required": False, + }, + ), + 28: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 3.", + "label": "Heading level", + "required": False, + }, + ), + 29: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image"}), + 30: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Alternative text (textual description of the image)", "required": False}, + ), + 31: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-content-media--sm", "Small"), + ("", "Medium"), + ("fr-content-media--lg", "Large"), + ], + "label": "Witdh", + "required": False, + }, + ), + 32: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-ratio-32x9", "32x9"), + ("fr-ratio-16x9", "16x9"), + ("fr-ratio-3x2", "3x2"), + ("fr-ratio-4x3", "4x3"), + ("fr-ratio-1x1", "1x1"), + ("fr-ratio-3x4", "3x4"), + ("fr-ratio-2x3", "2x3"), + ], + "label": "Image ratio", + "required": False, + }, + ), + 33: ("wagtail.blocks.CharBlock", (), {"label": "Caption", "required": False}), + 34: ("wagtail.blocks.URLBlock", (), {"label": "Link", "required": False}), + 35: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 23), + ("heading_tag", 28), + ("image", 29), + ("alt", 30), + ("width", 31), + ("image_ratio", 32), + ("caption", 33), + ("url", 34), + ] + ], + {"label": "Centered image"}, + ), + 36: ( + "wagtail.blocks.StructBlock", + [[("image", 1), ("image_side", 2), ("image_ratio", 3), ("text", 0), ("link", 13)]], + {"label": "Image and text"}, + ), + 37: ("wagtail.blocks.CharBlock", (), {"label": "Row heading", "required": False}), + 38: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "text-left", + "text-center", + "text-right", + ], + "label": "Text", + "required": False, + }, + ), + 39: ("wagtail.images.blocks.ImageBlock", [], {"label": "Pictogram"}), + 40: ( + "wagtail.contrib.typed_table_block.blocks.TypedTableBlock", + [[("row_heading", 37), ("text", 38), ("pictogram", 39)]], + {"label": "Table"}, + ), + 41: ("wagtail.blocks.CharBlock", (), {"label": "Message title", "required": False}), + 42: ("wagtail.blocks.TextBlock", (), {"label": "Message text", "required": False}), + 43: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("error", "Error"), + ("success", "Success"), + ("info", "Information"), + ("warning", "Warning"), + ], + "label": "Message type", + }, + ), + 44: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 3.", + "label": "Heading level", + }, + ), + 45: ( + "wagtail.blocks.StructBlock", + [[("title", 41), ("description", 42), ("level", 43), ("heading_tag", 44)]], + {"label": "Alert message"}, + ), + 46: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text", "required": False}), + 47: ("wagtail.blocks.CharBlock", (), {"label": "Button label", "required": False}), + 48: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-btn", "Primary"), + ("fr-btn fr-btn--secondary", "Secundary"), + ("fr-btn fr-btn--tertiary", "Tertiary"), + ("fr-btn fr-btn--tertiary-no-outline", "Tertiary without border"), + ], + "label": "Button type", + "required": False, + }, + ), + 49: ( + "content_manager.blocks.buttons_links.IconPickerBlock", + (), + {"label": "Icon", "required": False}, + ), + 50: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")], + "label": "Icon side", + "required": False, + }, + ), + 51: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 4), + ("page", 5), + ("document", 6), + ("external_url", 7), + ("anchor", 8), + ("query_string", 9), + ("text", 47), + ("button_type", 48), + ("icon_class", 49), + ("icon_side", 50), + ] + ], + {"label": "Button"}, + ), + 52: ( + "wagtail.blocks.StreamBlock", + [[("button", 51)]], + { + "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", + "label": "Buttons", + }, + ), + 53: ( + "wagtail.blocks.StreamBlock", + [[("buttons", 52)]], + {"label": "Call-to-action buttons", "max_num": 1, "required": False}, + ), + 54: ( + "wagtail.blocks.StructBlock", + [[("text", 46), ("cta_buttons", 53)]], + {"label": "Text and call to action"}, + ), + 55: ("wagtail.blocks.CharBlock", (), {"label": "Video title", "required": False}), + 56: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Use embed format, with a version that doesn't require a consent banner if available. (e.g. : https://www.youtube-nocookie.com/embed/gLzXOViPX-0) For Youtube, use Embed video and check Enable privacy-enhanced mode.", + "label": "Video URL", + }, + ), + 57: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-ratio-16x9", "16x9"), ("fr-ratio-4x3", "4x3"), ("fr-ratio-1x1", "1x1")], + "label": "Video ratio", + "required": False, + }, + ), + 58: ( + "wagtail.blocks.CharBlock", + (), + {"default": "Transcription", "label": "Title", "required": False}, + ), + 59: ("wagtail.blocks.RichTextBlock", (), {"label": "Transcription content", "required": False}), + 60: ( + "wagtail.blocks.StructBlock", + [[("title", 58), ("content", 59)]], + {"label": "Transcription", "required": False}, + ), + 61: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("caption", 33), + ("url", 56), + ("width", 31), + ("video_ratio", 57), + ("transcription", 60), + ] + ], + {"label": "Video"}, + ), + 62: ("wagtail.blocks.StructBlock", [[("title", 58), ("content", 59)]], {"label": "Transcription"}), + 63: ("wagtail.blocks.CharBlock", (), {"label": "Badge label", "required": False}), + 64: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", [("new", "New"), ("grey", "Grey")]), + ( + "System colors", + [ + ("info", "Info"), + ("success", "Success"), + ("warning", "Warning"), + ("error", "Error"), + ], + ), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "label": "Badge color", + "required": False, + }, + ), + 65: ("wagtail.blocks.BooleanBlock", (), {"label": "Hide badge icon", "required": False}), + 66: ( + "wagtail.blocks.StructBlock", + [[("text", 63), ("color", 64), ("hide_icon", 65)]], + {"label": "Badge"}, + ), + 67: ("wagtail.blocks.StreamBlock", [[("badge", 66)]], {"label": "Badge list"}), + 68: ("wagtail.blocks.CharBlock", (), {"label": "Title"}), + 69: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tag", "required": False}), + 70: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + "help_text": "Only for clickable tags", + "label": "Tag color", + "required": False, + }, + ), + 71: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 4), + ("page", 5), + ("document", 6), + ("external_url", 7), + ("anchor", 8), + ("query_string", 9), + ] + ], + {"required": False}, + ), + 72: ( + "wagtail.blocks.StructBlock", + [[("label", 68), ("is_small", 69), ("color", 70), ("icon_class", 49), ("link", 71)]], + {"label": "Tag"}, + ), + 73: ("wagtail.blocks.StreamBlock", [[("tag", 72)]], {"label": "Tag list"}), + 74: ( + "wagtail.blocks.StreamBlock", + [[("button", 51)]], + { + "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", + "label": "Buttons", + }, + ), + 75: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", "Left"), + ("fr-btns-group--center", "Center"), + ("fr-btns-group--right", "Right"), + ( + "fr-btns-group--right fr-btns-group--inline-reverse", + "Right (reverse order on desktop)", + ), + ], + "label": "Position", + "required": False, + }, + ), + 76: ( + "wagtail.blocks.StructBlock", + [[("buttons", 74), ("position", 75)]], + {"label": "Button list"}, + ), + 77: ("wagtail.blocks.RichTextBlock", (), {"label": "Content"}), + 78: ( + "wagtail.blocks.StructBlock", + [[("title", 68), ("content", 77)]], + {"label": "Accordion", "max_num": 15, "min_num": 1}, + ), + 79: ( + "wagtail.blocks.StreamBlock", + [[("title", 68), ("accordion", 78)]], + {"group": "DSFR components", "label": "Accordions"}, + ), + 80: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "text-left", + "text-center", + "text-right", + ], + "label": "Content", + "required": False, + }, + ), + 81: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 4), + ("page", 5), + ("document", 6), + ("external_url", 7), + ("anchor", 8), + ("query_string", 9), + ("text", 47), + ("button_type", 48), + ("icon_class", 49), + ("icon_side", 50), + ] + ], + {"label": "Button", "required": False}, + ), + 82: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 23), + ("heading_tag", 44), + ("icon_class", 49), + ("text", 80), + ("button", 81), + ("color", 19), + ] + ], + {"group": "DSFR components", "label": "Callout"}, + ), + 83: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "text-left", + "text-center", + "text-right", + ], + "label": "Content", + }, + ), + 84: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-text--sm", "Small"), ("", "Medium"), ("fr-text--lg", "Large")], + "label": "Size", + "required": False, + }, + ), + 85: ( + "wagtail.blocks.StructBlock", + [[("text", 83), ("color", 19), ("size", 84)]], + {"group": "DSFR components", "label": "Highlight"}, + ), + 86: ( + "wagtail.blocks.StructBlock", + [[("image", 15), ("quote", 16), ("author_name", 17), ("author_title", 18), ("color", 19)]], + {"group": "DSFR components", "label": "Quote"}, + ), + 87: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 4), + ("page", 5), + ("document", 6), + ("external_url", 7), + ("anchor", 8), + ("query_string", 9), + ("text", 10), + ("icon", 11), + ("size", 12), + ] + ], + {"label": "Single link"}, + ), + 88: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": ["bold", "italic", "superscript", "subscript", "strikethrough"], + "label": "Content", + "required": False, + }, + ), + 89: ( + "wagtail.images.blocks.ImageChooserBlock", + (), + {"help_text": "Prefer SVG files.", "label": "Image", "required": False}, + ), + 90: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 4), + ("page", 5), + ("document", 6), + ("external_url", 7), + ("anchor", 8), + ("query_string", 9), + ] + ], + {"label": "Link", "required": False}, + ), + 91: ("wagtail.blocks.StreamBlock", [[("badge", 66)]], {}), + 92: ("wagtail.blocks.StreamBlock", [[("tag", 72)]], {}), + 93: ( + "wagtail.blocks.StreamBlock", + [[("badges", 91), ("tags", 92)]], + {"label": "Top detail: badges or tags", "max_num": 1, "required": False}, + ), + 94: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "If the tile links to a downloadable document, the values are pre-filled.", + "label": "Detail text", + "required": False, + }, + ), + 95: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tile", "required": False}), + 96: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with grey background", "required": False}), + 97: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without background", "required": False}), + 98: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without border", "required": False}), + 99: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with a shadow", "required": False}), + 100: ("wagtail.blocks.BooleanBlock", (), {"label": "Horizontal tile", "required": False}), + 101: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 68), + ("heading_tag", 44), + ("description", 88), + ("image", 89), + ("link", 90), + ("top_detail_badges_tags", 93), + ("detail_text", 94), + ("is_small", 95), + ("grey_background", 96), + ("no_background", 97), + ("no_border", 98), + ("shadow", 99), + ("is_horizontal", 100), + ] + ], + {"group": "DSFR components", "label": "Tile"}, + ), + 102: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + "required": False, + }, + ), + 103: ( + "wagtail.blocks.PageChooserBlock", + (), + {"label": "Blog", "page_type": ["blog.BlogIndexPage"]}, + ), + 104: ( + "wagtail.blocks.IntegerBlock", + (), + { + "default": 3, + "label": "Number of entries", + "max_value": 8, + "min_value": 1, + "required": False, + }, + ), + 105: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Category",), + {"label": "Filter by category", "required": False}, + ), + 106: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("content_manager.Tag",), + {"label": "Filter by tag", "required": False}, + ), + 107: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Person",), + {"label": "Filter by author", "required": False}, + ), + 108: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Organization",), + { + "help_text": "The source is the organization of the post author", + "label": "Filter by source", + "required": False, + }, + ), + 109: ( + "wagtail.blocks.BooleanBlock", + (), + {"default": False, "label": "Show filters", "required": False}, + ), + 110: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 23), + ("heading_tag", 102), + ("blog", 103), + ("entries_count", 104), + ("category_filter", 105), + ("tag_filter", 106), + ("author_filter", 107), + ("source_filter", 108), + ("show_filters", 109), + ] + ], + {"group": "Website structure", "label": "Blog recent entries"}, + ), + 111: ( + "wagtail.blocks.PageChooserBlock", + (), + {"label": "Event calendar", "page_type": ["events.EventsIndexPage"]}, + ), + 112: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 23), + ("heading_tag", 102), + ("index_page", 111), + ("entries_count", 104), + ("category_filter", 105), + ("tag_filter", 106), + ("author_filter", 107), + ("source_filter", 108), + ("show_filters", 109), + ] + ], + {"group": "Website structure", "label": "Event calendar recent entries"}, + ), + 113: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + }, + ), + 114: ( + "wagtail.blocks.IntegerBlock", + (), + {"label": "Number of steps", "max_value": 8, "min_value": 1}, + ), + 115: ( + "wagtail.blocks.IntegerBlock", + (), + {"label": "Current step", "max_value": 8, "min_value": 1}, + ), + 116: ("wagtail.blocks.TextBlock", (), {"label": "Detail", "required": False}), + 117: ("wagtail.blocks.StructBlock", [[("title", 68), ("detail", 116)]], {"label": "Step"}), + 118: ("wagtail.blocks.StreamBlock", [[("step", 117)]], {"label": "Steps"}), + 119: ( + "wagtail.blocks.StructBlock", + [[("title", 68), ("heading_tag", 113), ("total", 114), ("current", 115), ("steps", 118)]], + {"group": "DSFR components", "label": "Stepper"}, + ), + 120: ("wagtailmarkdown.blocks.MarkdownBlock", (), {"group": "Expert syntax", "label": "Markdown"}), + 121: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Accessibility: The title should describe, in a clear and concise manner, the embedded content.", + "label": "Title", + }, + ), + 122: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Example for Tally: https://tally.so/embed/w2jMRa", + "label": "URL of the iframe", + }, + ), + 123: ("wagtail.blocks.IntegerBlock", (), {"label": "Height (in pixels)"}), + 124: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "For example: \"allow='geolocation'\".", + "label": "Parameters", + "required": False, + }, + ), + 125: ( + "wagtail.blocks.StructBlock", + [[("title", 121), ("url", 122), ("height", 123), ("parameters", 124)]], + {"group": "Expert syntax", "label": "Iframe"}, + ), + 126: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "group": "Expert syntax", + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "readonly": True, + }, + ), + 127: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Allows the creation of a link to this specific part of the page. Allowed characters: A-Z, a-z, 0-9, - and _.", + "label": "Anchor ID", + "validators": [ + django.core.validators.RegexValidator( + re.compile("^[-a-zA-Z0-9_]+\\Z"), + "Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.", + "invalid", + ) + ], + }, + ), + 128: ( + "wagtail.blocks.StructBlock", + [[("anchor_id", 127)]], + {"group": "Page structure", "label": "Anchor"}, + ), + 129: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 3, "label": "Top margin", "max_value": 15, "min_value": 0}, + ), + 130: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 3, "label": "Bottom margin", "max_value": 15, "min_value": 0}, + ), + 131: ( + "wagtail.blocks.StructBlock", + [[("top_margin", 129), ("bottom_margin", 130)]], + {"group": "Page structure", "label": "Separator"}, + ), + 132: ( + "wagtail.blocks.StreamBlock", + [[("badge", 66)]], + { + "help_text": "Only used if the card has an image.", + "label": "Image area badge", + "max_num": 1, + "required": False, + }, + ), + 133: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 4), + ("page", 5), + ("document", 6), + ("external_url", 7), + ("anchor", 8), + ("query_string", 9), + ] + ], + { + "collapsed": False, + "help_text": "Link for the whole card. If a call-to-action is present, the link will display on the title only.", + "label": "Link", + "required": False, + }, + ), + 134: ("wagtail.blocks.CharBlock", (), {"label": "Top detail: text", "required": False}), + 135: ( + "content_manager.blocks.buttons_links.IconPickerBlock", + (), + {"label": "Top detail: icon", "required": False}, + ), + 136: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Incompatible with the bottom call-to-action.", + "label": "Bottom detail: text", + "required": False, + }, + ), + 137: ( + "content_manager.blocks.buttons_links.IconPickerBlock", + (), + {"label": "Bottom detail: icon", "required": False}, + ), + 138: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 4), + ("page", 5), + ("document", 6), + ("external_url", 7), + ("anchor", 8), + ("query_string", 9), + ("text", 10), + ] + ], + {"label": "Link"}, + ), + 139: ("wagtail.blocks.StreamBlock", [[("link", 138)]], {"label": "Links"}), + 140: ( + "wagtail.blocks.StreamBlock", + [[("links", 139), ("buttons", 52)]], + { + "help_text": "Incompatible with the bottom detail text. Allow you to add link or button.", + "label": "Bottom call-to-action: links or buttons", + "max_num": 1, + "required": False, + }, + ), + 141: ( + "wagtail.blocks.BooleanBlock", + (), + {"label": "Card with grey background", "required": False}, + ), + 142: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without background", "required": False}), + 143: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without border", "required": False}), + 144: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with a shadow", "required": False}), + 145: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 68), + ("heading_tag", 44), + ("description", 80), + ("image", 1), + ("image_ratio", 32), + ("image_badge", 132), + ("link", 133), + ("top_detail_text", 134), + ("top_detail_icon", 135), + ("top_detail_badges_tags", 93), + ("bottom_detail_text", 136), + ("bottom_detail_icon", 137), + ("call_to_action", 140), + ("grey_background", 141), + ("no_background", 142), + ("no_border", 143), + ("shadow", 144), + ] + ], + {"group": "DSFR components", "label": "Vertical card"}, + ), + 146: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("3", "3/12"), + ("4", "4/12"), + ("5", "5/12"), + ("6", "6/12"), + ("7", "7/12"), + ("8", "8/12"), + ("9", "9/12"), + ], + "help_text": "The total width of all columns should be 12.", + "label": "Column width", + "required": False, + }, + ), + 147: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Person",), + { + "help_text": "Optional, all values can be manually specified or overriden below", + "label": "Person", + "required": False, + }, + ), + 148: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255, "required": False}), + 149: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255, "required": False}), + 150: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Organization", "max_length": 255, "required": False}, + ), + 151: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Contact info", "max_length": 500, "required": False}, + ), + 152: ("wagtail.blocks.StreamBlock", [[("tag", 72)]], {"label": "Tags", "required": False}), + 153: ( + "wagtail.blocks.StructBlock", + [ + [ + ("contact", 147), + ("link", 90), + ("heading_tag", 28), + ("name", 148), + ("role", 149), + ("organization", 150), + ("contact_info", 151), + ("image", 15), + ("tags", 152), + ] + ], + {"group": "Extra components", "label": "Contact card"}, + ), + 154: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 35), + ("imageandtext", 36), + ("table", 40), + ("alert", 45), + ("text_cta", 54), + ("video", 61), + ("transcription", 62), + ("badges_list", 67), + ("tags_list", 73), + ("buttons_list", 76), + ("accordions", 79), + ("callout", 82), + ("highlight", 85), + ("quote", 86), + ("link", 87), + ("tile", 101), + ("blog_recent_entries", 110), + ("events_recent_entries", 112), + ("stepper", 119), + ("markdown", 120), + ("iframe", 125), + ("html", 126), + ("anchor", 128), + ("separator", 131), + ("card", 145), + ("contact_card", 153), + ] + ], + {"label": "Column content"}, + ), + 155: ( + "wagtail.blocks.StructBlock", + [[("width", 146), ("content", 154)]], + {"group": "Page structure", "label": "Adjustable column"}, + ), + 156: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 35), + ("imageandtext", 36), + ("table", 40), + ("alert", 45), + ("text_cta", 54), + ("video", 61), + ("transcription", 62), + ("badges_list", 67), + ("tags_list", 73), + ("buttons_list", 76), + ("accordions", 79), + ("callout", 82), + ("highlight", 85), + ("quote", 86), + ("link", 87), + ("tile", 101), + ("blog_recent_entries", 110), + ("events_recent_entries", 112), + ("stepper", 119), + ("markdown", 120), + ("iframe", 125), + ("html", 126), + ("anchor", 128), + ("separator", 131), + ("card", 145), + ("column", 155), + ] + ], + {"label": "Columns"}, + ), + 157: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 21), + ("bg_color_class", 22), + ("title", 23), + ("heading_tag", 24), + ("top_margin", 25), + ("bottom_margin", 26), + ("vertical_align", 27), + ("columns", 156), + ] + ], + {"label": "Multi-colonnes"}, + ), + 158: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255}), + 159: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255}), + 160: ("wagtail.blocks.CharBlock", (), {"label": "Organization", "max_length": 255}), + 161: ( + "wagtail.blocks.StructBlock", + [[("name", 158), ("role", 159), ("organization", 160), ("contact_info", 151), ("image", 29)]], + {"label": "Contact card"}, + ), + }, + help_text="Text displayed at the end of every page in the category", + ), + ), + ] diff --git a/content_manager/migrations/0075_alter_catalogindexpage_body_alter_contentpage_body.py b/content_manager/migrations/0075_alter_catalogindexpage_body_alter_contentpage_body.py new file mode 100644 index 000000000..b44a45eb5 --- /dev/null +++ b/content_manager/migrations/0075_alter_catalogindexpage_body_alter_contentpage_body.py @@ -0,0 +1,4127 @@ +# Generated by Django 6.0.3 on 2026-03-23 15:24 + +import content_manager.validators +import django.core.validators +import re +import wagtail.fields +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("content_manager", "0074_invert_hero_text_position"), + ] + + operations = [ + migrations.AlterField( + model_name="catalogindexpage", + name="body", + field=wagtail.fields.StreamField( + [ + ("paragraph", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("link", 64), + ("accordions", 67), + ("callout", 71), + ("highlight", 74), + ("quote", 79), + ("stepper", 86), + ("card", 104), + ("tile", 115), + ("tabs", 156), + ("markdown", 157), + ("iframe", 158), + ("html", 159), + ("anchor", 160), + ("separator", 161), + ("multicolumns", 172), + ("item_grid", 176), + ("fullwidthbackground", 181), + ("fullwidthbackgroundwithsidemenu", 188), + ("subpageslist", 189), + ("blog_recent_entries", 190), + ("events_recent_entries", 191), + ("layout_richtext", 195), + ("image_text_grid_section", 206), + ("image_text_cta_section", 210), + ("cta_section", 213), + ("spotlight_section", 217), + ("accordion_section", 219), + ], + blank=True, + block_lookup={ + 0: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text"}), + 1: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": False}), + 2: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 3.", + "label": "Heading level", + "required": False, + }, + ), + 3: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image"}), + 4: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Alternative text (textual description of the image)", "required": False}, + ), + 5: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-content-media--sm", "Small"), + ("", "Medium"), + ("fr-content-media--lg", "Large"), + ], + "label": "Witdh", + "required": False, + }, + ), + 6: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-ratio-32x9", "32x9"), + ("fr-ratio-16x9", "16x9"), + ("fr-ratio-3x2", "3x2"), + ("fr-ratio-4x3", "4x3"), + ("fr-ratio-1x1", "1x1"), + ("fr-ratio-3x4", "3x4"), + ("fr-ratio-2x3", "2x3"), + ], + "label": "Image ratio", + "required": False, + }, + ), + 7: ("wagtail.blocks.CharBlock", (), {"label": "Caption", "required": False}), + 8: ("wagtail.blocks.URLBlock", (), {"label": "Link", "required": False}), + 9: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 2), + ("image", 3), + ("alt", 4), + ("width", 5), + ("image_ratio", 6), + ("caption", 7), + ("url", 8), + ] + ], + {"label": "Centered image"}, + ), + 10: ("wagtail.images.blocks.ImageBlock", [], {"label": "Image"}), + 11: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("left", "Left (displayed above text in mobile view)"), + ("left_below", "Left (displayed below text in mobile view)"), + ("right", "Right (displayed below text in mobile view)"), + ("right_above", "Right (displayed above text in mobile view)"), + ], + "label": "Image position", + }, + ), + 12: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("3", "3/12"), ("4", "4/12"), ("5", "5/12"), ("6", "6/12")], + "label": "Image width", + }, + ), + 13: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("page", "Page"), + ("external_url", "External URL"), + ("document", "Document"), + ("anchor", "Anchor link"), + ], + "help_text": "Select the type of link.", + "label": "Link type", + "required": False, + }, + ), + 14: ( + "wagtail.blocks.PageChooserBlock", + (), + { + "help_text": "Link to a page of this site. Use either this, the document, or the external URL parameter.", + "label": "Page", + "required": False, + }, + ), + 15: ( + "wagtail.documents.blocks.DocumentChooserBlock", + (), + { + "help_text": "Use either this, the external URL or the page parameter.", + "label": "Document", + "required": False, + }, + ), + 16: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Use either this, the document or the page parameter.", + "label": "External URL", + "required": False, + }, + ), + 17: ( + "wagtail.blocks.CharBlock", + (), + { + "default": "", + "help_text": "Link to an anchor block on the page. Allowed characters: A-Z, a-z, 0-9, - and _.", + "label": "Anchor ID", + "required": False, + "validators": [ + django.core.validators.RegexValidator( + re.compile("^[-a-zA-Z0-9_]+\\Z"), + "Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.", + "invalid", + ) + ], + }, + ), + 18: ( + "wagtail.blocks.CharBlock", + (), + { + "default": "", + "help_text": "Extra query parameters at the end of the link, e.g. filtering options.", + "label": "Extra query parameters", + "required": False, + "validators": [content_manager.validators.validate_query_string], + }, + ), + 19: ("wagtail.blocks.CharBlock", (), {"label": "Link label", "required": False}), + 20: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", "No icon"), + ("fr-icon-arrow-right-line fr-link--icon-right", "Icon on the right side"), + ("fr-icon-arrow-right-line fr-link--icon-left", "Icon on the left side"), + ], + "help_text": "Only used for internal links.", + "label": "Icon", + "required": False, + }, + ), + 21: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-link--sm", "Small"), ("", "Medium"), ("fr-link--lg", "Large")], + "label": "Size", + "required": False, + }, + ), + 22: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ("icon", 20), + ("size", 21), + ] + ], + { + "help_text": "The link is shown at the bottom of the text block, with an arrow", + "label": "Link", + "required": False, + }, + ), + 23: ( + "wagtail.blocks.StructBlock", + [[("image", 10), ("image_side", 11), ("image_ratio", 12), ("text", 0), ("link", 22)]], + {"label": "Image and text"}, + ), + 24: ("wagtail.blocks.CharBlock", (), {"label": "Row heading", "required": False}), + 25: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "text-left", + "text-center", + "text-right", + ], + "label": "Text", + "required": False, + }, + ), + 26: ("wagtail.images.blocks.ImageBlock", [], {"label": "Pictogram"}), + 27: ( + "wagtail.contrib.typed_table_block.blocks.TypedTableBlock", + [[("row_heading", 24), ("text", 25), ("pictogram", 26)]], + {"label": "Table"}, + ), + 28: ("wagtail.blocks.CharBlock", (), {"label": "Message title", "required": False}), + 29: ("wagtail.blocks.TextBlock", (), {"label": "Message text", "required": False}), + 30: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("error", "Error"), + ("success", "Success"), + ("info", "Information"), + ("warning", "Warning"), + ], + "label": "Message type", + }, + ), + 31: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 3.", + "label": "Heading level", + }, + ), + 32: ( + "wagtail.blocks.StructBlock", + [[("title", 28), ("description", 29), ("level", 30), ("heading_tag", 31)]], + {"label": "Alert message"}, + ), + 33: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text", "required": False}), + 34: ("wagtail.blocks.CharBlock", (), {"label": "Button label", "required": False}), + 35: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-btn", "Primary"), + ("fr-btn fr-btn--secondary", "Secundary"), + ("fr-btn fr-btn--tertiary", "Tertiary"), + ("fr-btn fr-btn--tertiary-no-outline", "Tertiary without border"), + ], + "label": "Button type", + "required": False, + }, + ), + 36: ( + "content_manager.blocks.buttons_links.IconPickerBlock", + (), + {"label": "Icon", "required": False}, + ), + 37: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")], + "label": "Icon side", + "required": False, + }, + ), + 38: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + {"label": "Button"}, + ), + 39: ( + "wagtail.blocks.StreamBlock", + [[("button", 38)]], + { + "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", + "label": "Buttons", + }, + ), + 40: ( + "wagtail.blocks.StreamBlock", + [[("buttons", 39)]], + {"label": "Call-to-action buttons", "max_num": 1, "required": False}, + ), + 41: ( + "wagtail.blocks.StructBlock", + [[("text", 33), ("cta_buttons", 40)]], + {"label": "Text and call to action"}, + ), + 42: ("wagtail.blocks.CharBlock", (), {"label": "Video title", "required": False}), + 43: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Use embed format, with a version that doesn't require a consent banner if available. (e.g. : https://www.youtube-nocookie.com/embed/gLzXOViPX-0) For Youtube, use Embed video and check Enable privacy-enhanced mode.", + "label": "Video URL", + }, + ), + 44: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-ratio-16x9", "16x9"), ("fr-ratio-4x3", "4x3"), ("fr-ratio-1x1", "1x1")], + "label": "Video ratio", + "required": False, + }, + ), + 45: ( + "wagtail.blocks.CharBlock", + (), + {"default": "Transcription", "label": "Title", "required": False}, + ), + 46: ("wagtail.blocks.RichTextBlock", (), {"label": "Transcription content", "required": False}), + 47: ( + "wagtail.blocks.StructBlock", + [[("title", 45), ("content", 46)]], + {"label": "Transcription", "required": False}, + ), + 48: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 42), + ("caption", 7), + ("url", 43), + ("width", 5), + ("video_ratio", 44), + ("transcription", 47), + ] + ], + {"label": "Video"}, + ), + 49: ("wagtail.blocks.StructBlock", [[("title", 45), ("content", 46)]], {"label": "Transcription"}), + 50: ("wagtail.blocks.CharBlock", (), {"label": "Badge label", "required": False}), + 51: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", [("new", "New"), ("grey", "Grey")]), + ( + "System colors", + [ + ("info", "Info"), + ("success", "Success"), + ("warning", "Warning"), + ("error", "Error"), + ], + ), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "label": "Badge color", + "required": False, + }, + ), + 52: ("wagtail.blocks.BooleanBlock", (), {"label": "Hide badge icon", "required": False}), + 53: ( + "wagtail.blocks.StructBlock", + [[("text", 50), ("color", 51), ("hide_icon", 52)]], + {"label": "Badge"}, + ), + 54: ("wagtail.blocks.StreamBlock", [[("badge", 53)]], {"label": "Badge list"}), + 55: ("wagtail.blocks.CharBlock", (), {"label": "Title"}), + 56: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tag", "required": False}), + 57: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + "help_text": "Only for clickable tags", + "label": "Tag color", + "required": False, + }, + ), + 58: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ] + ], + {"required": False}, + ), + 59: ( + "wagtail.blocks.StructBlock", + [[("label", 55), ("is_small", 56), ("color", 57), ("icon_class", 36), ("link", 58)]], + {"label": "Tag"}, + ), + 60: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {"label": "Tag list"}), + 61: ( + "wagtail.blocks.StreamBlock", + [[("button", 38)]], + { + "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", + "label": "Buttons", + }, + ), + 62: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", "Left"), + ("fr-btns-group--center", "Center"), + ("fr-btns-group--right", "Right"), + ( + "fr-btns-group--right fr-btns-group--inline-reverse", + "Right (reverse order on desktop)", + ), + ], + "label": "Position", + "required": False, + }, + ), + 63: ( + "wagtail.blocks.StructBlock", + [[("buttons", 61), ("position", 62)]], + {"label": "Button list"}, + ), + 64: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ("icon", 20), + ("size", 21), + ] + ], + {"label": "Single link"}, + ), + 65: ("wagtail.blocks.RichTextBlock", (), {"label": "Content"}), + 66: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("content", 65)]], + {"label": "Accordion", "max_num": 15, "min_num": 1}, + ), + 67: ( + "wagtail.blocks.StreamBlock", + [[("title", 55), ("accordion", 66)]], + {"group": "2. DSFR components", "label": "Accordions"}, + ), + 68: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "text-left", + "text-center", + "text-right", + ], + "label": "Content", + "required": False, + }, + ), + 69: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + {"label": "Button", "required": False}, + ), + 70: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + "label": "Color", + "required": False, + }, + ), + 71: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 31), + ("icon_class", 36), + ("text", 68), + ("button", 69), + ("color", 70), + ] + ], + {"group": "2. DSFR components", "label": "Callout"}, + ), + 72: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "text-left", + "text-center", + "text-right", + ], + "label": "Content", + }, + ), + 73: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-text--sm", "Small"), ("", "Medium"), ("fr-text--lg", "Large")], + "label": "Size", + "required": False, + }, + ), + 74: ( + "wagtail.blocks.StructBlock", + [[("text", 72), ("color", 70), ("size", 73)]], + {"group": "2. DSFR components", "label": "Highlight"}, + ), + 75: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image", "required": False}), + 76: ("wagtail.blocks.CharBlock", (), {"label": "Quote"}), + 77: ("wagtail.blocks.CharBlock", (), {"label": "Author name", "required": False}), + 78: ("wagtail.blocks.CharBlock", (), {"label": "Author title", "required": False}), + 79: ( + "wagtail.blocks.StructBlock", + [[("image", 75), ("quote", 76), ("author_name", 77), ("author_title", 78), ("color", 70)]], + {"group": "2. DSFR components", "label": "Quote"}, + ), + 80: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + }, + ), + 81: ( + "wagtail.blocks.IntegerBlock", + (), + {"label": "Number of steps", "max_value": 8, "min_value": 1}, + ), + 82: ("wagtail.blocks.IntegerBlock", (), {"label": "Current step", "max_value": 8, "min_value": 1}), + 83: ("wagtail.blocks.TextBlock", (), {"label": "Detail", "required": False}), + 84: ("wagtail.blocks.StructBlock", [[("title", 55), ("detail", 83)]], {"label": "Step"}), + 85: ("wagtail.blocks.StreamBlock", [[("step", 84)]], {"label": "Steps"}), + 86: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("heading_tag", 80), ("total", 81), ("current", 82), ("steps", 85)]], + {"group": "2. DSFR components", "label": "Stepper"}, + ), + 87: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-card--horizontal-tier", "1/3"), ("fr-card--horizontal-half", "50/50")], + "label": "Image ratio", + "required": False, + }, + ), + 88: ( + "wagtail.blocks.StreamBlock", + [[("badge", 53)]], + { + "help_text": "Only used if the card has an image.", + "label": "Image area badge", + "max_num": 1, + "required": False, + }, + ), + 89: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ] + ], + { + "collapsed": False, + "help_text": "Link for the whole card. If a call-to-action is present, the link will display on the title only.", + "label": "Link", + "required": False, + }, + ), + 90: ("wagtail.blocks.CharBlock", (), {"label": "Top detail: text", "required": False}), + 91: ( + "content_manager.blocks.buttons_links.IconPickerBlock", + (), + {"label": "Top detail: icon", "required": False}, + ), + 92: ("wagtail.blocks.StreamBlock", [[("badge", 53)]], {}), + 93: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {}), + 94: ( + "wagtail.blocks.StreamBlock", + [[("badges", 92), ("tags", 93)]], + {"label": "Top detail: badges or tags", "max_num": 1, "required": False}, + ), + 95: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Incompatible with the bottom call-to-action. If the card links to a downloadable document, the values are pre-filled.", + "label": "Bottom detail: text", + "required": False, + }, + ), + 96: ( + "content_manager.blocks.buttons_links.IconPickerBlock", + (), + {"label": "Bottom detail: icon", "required": False}, + ), + 97: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ] + ], + {"label": "Link"}, + ), + 98: ("wagtail.blocks.StreamBlock", [[("link", 97)]], {"label": "Links"}), + 99: ( + "wagtail.blocks.StreamBlock", + [[("links", 98), ("buttons", 39)]], + { + "help_text": "Incompatible with the bottom detail text. Allow you to add link or button.", + "label": "Bottom call-to-action: links or buttons", + "max_num": 1, + "required": False, + }, + ), + 100: ( + "wagtail.blocks.BooleanBlock", + (), + {"label": "Card with grey background", "required": False}, + ), + 101: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without background", "required": False}), + 102: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without border", "required": False}), + 103: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with a shadow", "required": False}), + 104: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 87), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 95), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {"group": "2. DSFR components", "label": "Horizontal card"}, + ), + 105: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": ["bold", "italic", "superscript", "subscript", "strikethrough"], + "label": "Content", + "required": False, + }, + ), + 106: ( + "wagtail.images.blocks.ImageChooserBlock", + (), + {"help_text": "Prefer SVG files.", "label": "Image", "required": False}, + ), + 107: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ] + ], + {"label": "Link", "required": False}, + ), + 108: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "If the tile links to a downloadable document, the values are pre-filled.", + "label": "Detail text", + "required": False, + }, + ), + 109: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tile", "required": False}), + 110: ( + "wagtail.blocks.BooleanBlock", + (), + {"label": "Tile with grey background", "required": False}, + ), + 111: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without background", "required": False}), + 112: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without border", "required": False}), + 113: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with a shadow", "required": False}), + 114: ("wagtail.blocks.BooleanBlock", (), {"label": "Horizontal tile", "required": False}), + 115: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 105), + ("image", 106), + ("link", 107), + ("top_detail_badges_tags", 94), + ("detail_text", 108), + ("is_small", 109), + ("grey_background", 110), + ("no_background", 111), + ("no_border", 112), + ("shadow", 113), + ("is_horizontal", 114), + ] + ], + {"group": "2. DSFR components", "label": "Tile"}, + ), + 116: ( + "wagtail.blocks.StreamBlock", + [[("title", 55), ("accordion", 66)]], + {"group": "DSFR components", "label": "Accordions"}, + ), + 117: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 31), + ("icon_class", 36), + ("text", 68), + ("button", 69), + ("color", 70), + ] + ], + {"group": "DSFR components", "label": "Callout"}, + ), + 118: ( + "wagtail.blocks.StructBlock", + [[("text", 72), ("color", 70), ("size", 73)]], + {"group": "DSFR components", "label": "Highlight"}, + ), + 119: ( + "wagtail.blocks.StructBlock", + [[("image", 75), ("quote", 76), ("author_name", 77), ("author_title", 78), ("color", 70)]], + {"group": "DSFR components", "label": "Quote"}, + ), + 120: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 105), + ("image", 106), + ("link", 107), + ("top_detail_badges_tags", 94), + ("detail_text", 108), + ("is_small", 109), + ("grey_background", 110), + ("no_background", 111), + ("no_border", 112), + ("shadow", 113), + ("is_horizontal", 114), + ] + ], + {"group": "DSFR components", "label": "Tile"}, + ), + 121: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + "required": False, + }, + ), + 122: ( + "wagtail.blocks.PageChooserBlock", + (), + {"label": "Blog", "page_type": ["blog.BlogIndexPage"]}, + ), + 123: ( + "wagtail.blocks.IntegerBlock", + (), + { + "default": 3, + "label": "Number of entries", + "max_value": 8, + "min_value": 1, + "required": False, + }, + ), + 124: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Category",), + {"label": "Filter by category", "required": False}, + ), + 125: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("content_manager.Tag",), + {"label": "Filter by tag", "required": False}, + ), + 126: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Person",), + {"label": "Filter by author", "required": False}, + ), + 127: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Organization",), + { + "help_text": "The source is the organization of the post author", + "label": "Filter by source", + "required": False, + }, + ), + 128: ( + "wagtail.blocks.BooleanBlock", + (), + {"default": False, "label": "Show filters", "required": False}, + ), + 129: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("blog", 122), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "Website structure", "label": "Blog recent entries"}, + ), + 130: ( + "wagtail.blocks.PageChooserBlock", + (), + {"label": "Event calendar", "page_type": ["events.EventsIndexPage"]}, + ), + 131: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("index_page", 130), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "Website structure", "label": "Event calendar recent entries"}, + ), + 132: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("heading_tag", 80), ("total", 81), ("current", 82), ("steps", 85)]], + {"group": "DSFR components", "label": "Stepper"}, + ), + 133: ("wagtailmarkdown.blocks.MarkdownBlock", (), {"group": "Expert syntax", "label": "Markdown"}), + 134: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Accessibility: The title should describe, in a clear and concise manner, the embedded content.", + "label": "Title", + }, + ), + 135: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Example for Tally: https://tally.so/embed/w2jMRa", + "label": "URL of the iframe", + }, + ), + 136: ("wagtail.blocks.IntegerBlock", (), {"label": "Height (in pixels)"}), + 137: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "For example: \"allow='geolocation'\".", + "label": "Parameters", + "required": False, + }, + ), + 138: ( + "wagtail.blocks.StructBlock", + [[("title", 134), ("url", 135), ("height", 136), ("parameters", 137)]], + {"group": "Expert syntax", "label": "Iframe"}, + ), + 139: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "group": "Expert syntax", + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "readonly": True, + }, + ), + 140: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Allows the creation of a link to this specific part of the page. Allowed characters: A-Z, a-z, 0-9, - and _.", + "label": "Anchor ID", + "validators": [ + django.core.validators.RegexValidator( + re.compile("^[-a-zA-Z0-9_]+\\Z"), + "Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.", + "invalid", + ) + ], + }, + ), + 141: ( + "wagtail.blocks.StructBlock", + [[("anchor_id", 140)]], + {"group": "Page structure", "label": "Anchor"}, + ), + 142: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 3, "label": "Top margin", "max_value": 15, "min_value": 0}, + ), + 143: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 3, "label": "Bottom margin", "max_value": 15, "min_value": 0}, + ), + 144: ( + "wagtail.blocks.StructBlock", + [[("top_margin", 142), ("bottom_margin", 143)]], + {"group": "Page structure", "label": "Separator"}, + ), + 145: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Incompatible with the bottom call-to-action.", + "label": "Bottom detail: text", + "required": False, + }, + ), + 146: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 6), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 145), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {"group": "DSFR components", "label": "Vertical card"}, + ), + 147: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Person",), + { + "help_text": "Optional, all values can be manually specified or overriden below", + "label": "Person", + "required": False, + }, + ), + 148: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255, "required": False}), + 149: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255, "required": False}), + 150: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Organization", "max_length": 255, "required": False}, + ), + 151: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Contact info", "max_length": 500, "required": False}, + ), + 152: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {"label": "Tags", "required": False}), + 153: ( + "wagtail.blocks.StructBlock", + [ + [ + ("contact", 147), + ("link", 107), + ("heading_tag", 2), + ("name", 148), + ("role", 149), + ("organization", 150), + ("contact_info", 151), + ("image", 75), + ("tags", 152), + ] + ], + {"group": "Extra components", "label": "Contact card"}, + ), + 154: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("contact_card", 153), + ] + ], + {"label": "Content"}, + ), + 155: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("content", 154)]], + {"label": "Tab", "max_num": 15, "min_num": 1}, + ), + 156: ( + "wagtail.blocks.StreamBlock", + [[("tabs", 155)]], + {"group": "2. DSFR components", "label": "Tabs"}, + ), + 157: ( + "wagtailmarkdown.blocks.MarkdownBlock", + (), + {"group": "5. Expert syntax", "label": "Markdown"}, + ), + 158: ( + "wagtail.blocks.StructBlock", + [[("title", 134), ("url", 135), ("height", 136), ("parameters", 137)]], + {"group": "5. Expert syntax", "label": "Iframe"}, + ), + 159: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "group": "5. Expert syntax", + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "readonly": True, + }, + ), + 160: ( + "wagtail.blocks.StructBlock", + [[("anchor_id", 140)]], + {"group": "3. Page structure", "label": "Anchor"}, + ), + 161: ( + "wagtail.blocks.StructBlock", + [[("top_margin", 142), ("bottom_margin", 143)]], + {"group": "3. Page structure", "label": "Separator"}, + ), + 162: ( + "wagtail.images.blocks.ImageChooserBlock", + (), + {"label": "Background image", "required": False}, + ), + 163: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("Primary colors", [("blue-france", "Blue France"), ("red-marianne", "Red Marianne")]), + ("Neutral colors", [("grey", "Grey")]), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "help_text": "Uses the French Design System colors", + "label": "Background color", + "required": False, + }, + ), + 164: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + "required": False, + }, + ), + 165: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 5, "label": "Top margin", "max_value": 15, "min_value": 0, "required": False}, + ), + 166: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 5, "label": "Bottom margin", "max_value": 15, "min_value": 0, "required": False}, + ), + 167: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("top", "Top"), ("middle", "Middle"), ("bottom", "Bottom")], + "label": "Vertical align", + "required": False, + }, + ), + 168: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("3", "3/12"), + ("4", "4/12"), + ("5", "5/12"), + ("6", "6/12"), + ("7", "7/12"), + ("8", "8/12"), + ("9", "9/12"), + ], + "help_text": "The total width of all columns should be 12.", + "label": "Column width", + "required": False, + }, + ), + 169: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("contact_card", 153), + ] + ], + {"label": "Column content"}, + ), + 170: ( + "wagtail.blocks.StructBlock", + [[("width", 168), ("content", 169)]], + {"group": "Page structure", "label": "Adjustable column"}, + ), + 171: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("column", 170), + ] + ], + {"label": "Columns"}, + ), + 172: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 162), + ("bg_color_class", 163), + ("title", 1), + ("heading_tag", 164), + ("top_margin", 165), + ("bottom_margin", 166), + ("vertical_align", 167), + ("columns", 171), + ] + ], + {"group": "3. Page structure", "label": "Multiple columns"}, + ), + 173: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("3", "3/12"), ("4", "4/12"), ("6", "6/12")], "label": "Column width"}, + ), + 174: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("center", "Center"), ("right", "Right")], + "label": "Horizontal align", + "required": False, + }, + ), + 175: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("contact_card", 153), + ] + ], + {"label": "Items"}, + ), + 176: ( + "wagtail.blocks.StructBlock", + [[("column_width", 173), ("horizontal_align", 174), ("vertical_align", 167), ("items", 175)]], + {"group": "3. Page structure", "label": "Item grid"}, + ), + 177: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 87), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 95), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {"group": "DSFR components", "label": "Horizontal card"}, + ), + 178: ( + "wagtail.blocks.StreamBlock", + [[("tabs", 155)]], + {"group": "DSFR components", "label": "Tabs"}, + ), + 179: ( + "wagtail.blocks.StructBlock", + [[("column_width", 173), ("horizontal_align", 174), ("vertical_align", 167), ("items", 175)]], + {"group": "Page structure", "label": "Item grid"}, + ), + 180: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("image_and_text", 23), + ("card", 177), + ("tabs", 178), + ("item_grid", 179), + ] + ], + {"label": "Content"}, + ), + 181: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 162), + ("bg_color_class", 163), + ("top_margin", 165), + ("bottom_margin", 166), + ("content", 180), + ] + ], + {"group": "3. Page structure", "label": "Full width background"}, + ), + 182: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("image_and_text", 23), + ("card", 177), + ("tabs", 178), + ("item_grid", 179), + ] + ], + {"label": "Main content"}, + ), + 183: ("wagtail.blocks.CharBlock", (), {"label": "Side menu title", "required": False}), + 184: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "label": "HTML", + }, + ), + 185: ("wagtail.blocks.PageChooserBlock", (), {"label": "Parent page"}), + 186: ("wagtail.blocks.StructBlock", [[("page", 185)]], {"label": "Page tree"}), + 187: ( + "wagtail.blocks.StreamBlock", + [[("html", 184), ("pagetree", 186)]], + {"label": "Side menu content"}, + ), + 188: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 162), + ("bg_color_class", 163), + ("top_margin", 165), + ("bottom_margin", 166), + ("main_content", 182), + ("sidemenu_title", 183), + ("sidemenu_content", 187), + ] + ], + {"group": "3. Page structure", "label": "Full width background with side menu"}, + ), + 189: ( + "wagtail.blocks.static_block.StaticBlock", + (), + { + "admin_text": "A simple, alphabetical list of the subpages of the current page.", + "group": "4. Website structure", + "label": "Subpages list", + "template": "content_manager/blocks/subpages_list.html", + }, + ), + 190: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("blog", 122), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "4. Website structure", "label": "Blog recent entries"}, + ), + 191: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("index_page", 130), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "4. Website structure", "label": "Event calendar recent entries"}, + ), + 192: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "

En savoir plus


Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "features": ["bold", "italic", "link", "document-link", "strikethrough", "h2", "h3", "h4"], + "label": "Rich text", + }, + ), + 193: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("6", "small"), ("8", "medium"), ("12", "large")], "label": "Block width"}, + ), + 194: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("", "Center"), ("right", "Right")], + "label": "Block alignment", + "required": False, + }, + ), + 195: ( + "wagtail.blocks.StructBlock", + [[("text", 192), ("width", 193), ("alignment", 194)]], + {"group": "1. Section templates to be adapted", "label": "Rich text with layout"}, + ), + 196: ( + "wagtail.blocks.CharBlock", + (), + {"default": "Titre de la section", "label": "Section title"}, + ), + 197: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("Primary colors", [("blue-france", "Blue France"), ("red-marianne", "Red Marianne")]), + ("Neutral colors", [("grey", "Grey")]), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "help_text": "Uses the French Design System colors.
If you want to design a classic website, choose the colour ‘white’ or ‘French blue’.", + "label": "Background color", + "required": False, + }, + ), + 198: ( + "wagtail.blocks.StructBlock", + [[("background_color", 197), ("top_margin", 165), ("bottom_margin", 166)]], + {"collapsed": True, "label": "Layout"}, + ), + 199: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("center", "Center"), ("right", "Right")], + "label": "Items alignement", + }, + ), + 200: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("6", "2"), ("4", "3"), ("3", "4")], "label": "Items per row"}, + ), + 201: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("80", "Small (80px)"), ("140", "Medium (140px)"), ("200", "Large (200px)")], + "help_text": "Images are always displayed in a square (1:1) ratio. Three sizes are available: if the original image is smaller than the selected size, it will be displayed at its maximum available size.", + "label": "Image size of items", + }, + ), + 202: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": True}), + 203: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "Add a short description to help your visitors better understand what you offer.", + "features": ["bold", "italic", "link", "document-link"], + "label": "Text", + }, + ), + 204: ("wagtail.blocks.StructBlock", [[("image", 10), ("title", 202), ("text", 203)]], {}), + 205: ( + "content_manager.blocks.sections.ImageAndTextListBlock", + (204,), + {"collapsed": True, "label": "Items"}, + ), + 206: ( + "wagtail.blocks.StructBlock", + [ + [ + ("section_title", 196), + ("layout", 198), + ("items_alignement", 199), + ("items_per_row", 200), + ("images_size", 201), + ("items", 205), + ] + ], + {"group": "1. Section templates to be adapted", "label": "Items grid (image and text)"}, + ), + 207: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "

Titre de la section


Lorem ipsum dolor sit amet, consectetur adipiscing elit, ", + "features": ["bold", "italic", "link", "document-link", "strikethrough", "h2", "h3", "h4"], + "label": "Text block", + }, + ), + 208: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("right", "Right")], + "help_text": "This field allows you to define the placement of text relative to adjacent content.", + "label": "Text content position", + }, + ), + 209: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + { + "default": { + "button_type": "fr-btn fr-btn--secondary", + "external_url": "https://tube.numerique.gouv.fr/", + "icon_side": "--", + "link_type": "external_url", + "text": "Appel à l'action", + }, + "label": "Button", + }, + ), + 210: ( + "wagtail.blocks.StructBlock", + [[("text", 207), ("position", 208), ("button", 209), ("image", 10), ("layout", 198)]], + {"group": "1. Section templates to be adapted", "label": "Image, text and cta"}, + ), + 211: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididun", + "features": ["bold", "italic", "link", "document-link"], + "label": "Text", + }, + ), + 212: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + { + "default": { + "button_type": "fr-btn", + "external_url": "https://tube.numerique.gouv.fr/", + "icon_side": "--", + "link_type": "external_url", + "text": "Appel à l'action", + }, + "label": "Button", + }, + ), + 213: ( + "wagtail.blocks.StructBlock", + [[("section_title", 196), ("layout", 198), ("text", 211), ("button", 212)]], + {"group": "1. Section templates to be adapted", "label": "Text and button"}, + ), + 214: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ] + ], + { + "collapsed": True, + "help_text": "This link appears at the bottom left of the section if completed", + "label": "Section link", + "required": False, + }, + ), + 215: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 6), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 145), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {}, + ), + 216: ("wagtail.blocks.StreamBlock", [[("card", 215)]], {"label": "Items"}), + 217: ( + "wagtail.blocks.StructBlock", + [ + [ + ("section_title", 196), + ("layout", 198), + ("items_per_row", 200), + ("link", 214), + ("items", 216), + ] + ], + {"group": "1. Section templates to be adapted", "label": "In the spotlight"}, + ), + 218: ( + "wagtail.blocks.StreamBlock", + [[("title", 55), ("accordion", 66)]], + { + "default": [ + ("title", "Accordéon"), + ( + "accordion", + { + "content": "

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

", + "title": "Titre de l'accordéon 1", + }, + ), + ( + "accordion", + { + "content": "

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

", + "title": "Titre de l'accordéon 2", + }, + ), + ], + "label": "Accordion", + }, + ), + 219: ( + "wagtail.blocks.StructBlock", + [[("accordion", 218), ("layout", 198)]], + {"group": "1. Section templates to be adapted", "label": "Accordions with layout"}, + ), + }, + ), + ), + migrations.AlterField( + model_name="contentpage", + name="body", + field=wagtail.fields.StreamField( + [ + ("paragraph", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("link", 64), + ("accordions", 67), + ("callout", 71), + ("highlight", 74), + ("quote", 79), + ("stepper", 86), + ("card", 104), + ("tile", 115), + ("tabs", 156), + ("markdown", 157), + ("iframe", 158), + ("html", 159), + ("anchor", 160), + ("separator", 161), + ("multicolumns", 172), + ("item_grid", 176), + ("fullwidthbackground", 181), + ("fullwidthbackgroundwithsidemenu", 188), + ("subpageslist", 189), + ("blog_recent_entries", 190), + ("events_recent_entries", 191), + ("layout_richtext", 195), + ("image_text_grid_section", 206), + ("image_text_cta_section", 210), + ("cta_section", 213), + ("spotlight_section", 217), + ("accordion_section", 219), + ], + blank=True, + block_lookup={ + 0: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text"}), + 1: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": False}), + 2: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 3.", + "label": "Heading level", + "required": False, + }, + ), + 3: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image"}), + 4: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Alternative text (textual description of the image)", "required": False}, + ), + 5: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-content-media--sm", "Small"), + ("", "Medium"), + ("fr-content-media--lg", "Large"), + ], + "label": "Witdh", + "required": False, + }, + ), + 6: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-ratio-32x9", "32x9"), + ("fr-ratio-16x9", "16x9"), + ("fr-ratio-3x2", "3x2"), + ("fr-ratio-4x3", "4x3"), + ("fr-ratio-1x1", "1x1"), + ("fr-ratio-3x4", "3x4"), + ("fr-ratio-2x3", "2x3"), + ], + "label": "Image ratio", + "required": False, + }, + ), + 7: ("wagtail.blocks.CharBlock", (), {"label": "Caption", "required": False}), + 8: ("wagtail.blocks.URLBlock", (), {"label": "Link", "required": False}), + 9: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 2), + ("image", 3), + ("alt", 4), + ("width", 5), + ("image_ratio", 6), + ("caption", 7), + ("url", 8), + ] + ], + {"label": "Centered image"}, + ), + 10: ("wagtail.images.blocks.ImageBlock", [], {"label": "Image"}), + 11: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("left", "Left (displayed above text in mobile view)"), + ("left_below", "Left (displayed below text in mobile view)"), + ("right", "Right (displayed below text in mobile view)"), + ("right_above", "Right (displayed above text in mobile view)"), + ], + "label": "Image position", + }, + ), + 12: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("3", "3/12"), ("4", "4/12"), ("5", "5/12"), ("6", "6/12")], + "label": "Image width", + }, + ), + 13: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("page", "Page"), + ("external_url", "External URL"), + ("document", "Document"), + ("anchor", "Anchor link"), + ], + "help_text": "Select the type of link.", + "label": "Link type", + "required": False, + }, + ), + 14: ( + "wagtail.blocks.PageChooserBlock", + (), + { + "help_text": "Link to a page of this site. Use either this, the document, or the external URL parameter.", + "label": "Page", + "required": False, + }, + ), + 15: ( + "wagtail.documents.blocks.DocumentChooserBlock", + (), + { + "help_text": "Use either this, the external URL or the page parameter.", + "label": "Document", + "required": False, + }, + ), + 16: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Use either this, the document or the page parameter.", + "label": "External URL", + "required": False, + }, + ), + 17: ( + "wagtail.blocks.CharBlock", + (), + { + "default": "", + "help_text": "Link to an anchor block on the page. Allowed characters: A-Z, a-z, 0-9, - and _.", + "label": "Anchor ID", + "required": False, + "validators": [ + django.core.validators.RegexValidator( + re.compile("^[-a-zA-Z0-9_]+\\Z"), + "Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.", + "invalid", + ) + ], + }, + ), + 18: ( + "wagtail.blocks.CharBlock", + (), + { + "default": "", + "help_text": "Extra query parameters at the end of the link, e.g. filtering options.", + "label": "Extra query parameters", + "required": False, + "validators": [content_manager.validators.validate_query_string], + }, + ), + 19: ("wagtail.blocks.CharBlock", (), {"label": "Link label", "required": False}), + 20: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", "No icon"), + ("fr-icon-arrow-right-line fr-link--icon-right", "Icon on the right side"), + ("fr-icon-arrow-right-line fr-link--icon-left", "Icon on the left side"), + ], + "help_text": "Only used for internal links.", + "label": "Icon", + "required": False, + }, + ), + 21: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-link--sm", "Small"), ("", "Medium"), ("fr-link--lg", "Large")], + "label": "Size", + "required": False, + }, + ), + 22: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ("icon", 20), + ("size", 21), + ] + ], + { + "help_text": "The link is shown at the bottom of the text block, with an arrow", + "label": "Link", + "required": False, + }, + ), + 23: ( + "wagtail.blocks.StructBlock", + [[("image", 10), ("image_side", 11), ("image_ratio", 12), ("text", 0), ("link", 22)]], + {"label": "Image and text"}, + ), + 24: ("wagtail.blocks.CharBlock", (), {"label": "Row heading", "required": False}), + 25: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "text-left", + "text-center", + "text-right", + ], + "label": "Text", + "required": False, + }, + ), + 26: ("wagtail.images.blocks.ImageBlock", [], {"label": "Pictogram"}), + 27: ( + "wagtail.contrib.typed_table_block.blocks.TypedTableBlock", + [[("row_heading", 24), ("text", 25), ("pictogram", 26)]], + {"label": "Table"}, + ), + 28: ("wagtail.blocks.CharBlock", (), {"label": "Message title", "required": False}), + 29: ("wagtail.blocks.TextBlock", (), {"label": "Message text", "required": False}), + 30: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("error", "Error"), + ("success", "Success"), + ("info", "Information"), + ("warning", "Warning"), + ], + "label": "Message type", + }, + ), + 31: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 3.", + "label": "Heading level", + }, + ), + 32: ( + "wagtail.blocks.StructBlock", + [[("title", 28), ("description", 29), ("level", 30), ("heading_tag", 31)]], + {"label": "Alert message"}, + ), + 33: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text", "required": False}), + 34: ("wagtail.blocks.CharBlock", (), {"label": "Button label", "required": False}), + 35: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-btn", "Primary"), + ("fr-btn fr-btn--secondary", "Secundary"), + ("fr-btn fr-btn--tertiary", "Tertiary"), + ("fr-btn fr-btn--tertiary-no-outline", "Tertiary without border"), + ], + "label": "Button type", + "required": False, + }, + ), + 36: ( + "content_manager.blocks.buttons_links.IconPickerBlock", + (), + {"label": "Icon", "required": False}, + ), + 37: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")], + "label": "Icon side", + "required": False, + }, + ), + 38: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + {"label": "Button"}, + ), + 39: ( + "wagtail.blocks.StreamBlock", + [[("button", 38)]], + { + "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", + "label": "Buttons", + }, + ), + 40: ( + "wagtail.blocks.StreamBlock", + [[("buttons", 39)]], + {"label": "Call-to-action buttons", "max_num": 1, "required": False}, + ), + 41: ( + "wagtail.blocks.StructBlock", + [[("text", 33), ("cta_buttons", 40)]], + {"label": "Text and call to action"}, + ), + 42: ("wagtail.blocks.CharBlock", (), {"label": "Video title", "required": False}), + 43: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Use embed format, with a version that doesn't require a consent banner if available. (e.g. : https://www.youtube-nocookie.com/embed/gLzXOViPX-0) For Youtube, use Embed video and check Enable privacy-enhanced mode.", + "label": "Video URL", + }, + ), + 44: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-ratio-16x9", "16x9"), ("fr-ratio-4x3", "4x3"), ("fr-ratio-1x1", "1x1")], + "label": "Video ratio", + "required": False, + }, + ), + 45: ( + "wagtail.blocks.CharBlock", + (), + {"default": "Transcription", "label": "Title", "required": False}, + ), + 46: ("wagtail.blocks.RichTextBlock", (), {"label": "Transcription content", "required": False}), + 47: ( + "wagtail.blocks.StructBlock", + [[("title", 45), ("content", 46)]], + {"label": "Transcription", "required": False}, + ), + 48: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 42), + ("caption", 7), + ("url", 43), + ("width", 5), + ("video_ratio", 44), + ("transcription", 47), + ] + ], + {"label": "Video"}, + ), + 49: ("wagtail.blocks.StructBlock", [[("title", 45), ("content", 46)]], {"label": "Transcription"}), + 50: ("wagtail.blocks.CharBlock", (), {"label": "Badge label", "required": False}), + 51: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", [("new", "New"), ("grey", "Grey")]), + ( + "System colors", + [ + ("info", "Info"), + ("success", "Success"), + ("warning", "Warning"), + ("error", "Error"), + ], + ), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "label": "Badge color", + "required": False, + }, + ), + 52: ("wagtail.blocks.BooleanBlock", (), {"label": "Hide badge icon", "required": False}), + 53: ( + "wagtail.blocks.StructBlock", + [[("text", 50), ("color", 51), ("hide_icon", 52)]], + {"label": "Badge"}, + ), + 54: ("wagtail.blocks.StreamBlock", [[("badge", 53)]], {"label": "Badge list"}), + 55: ("wagtail.blocks.CharBlock", (), {"label": "Title"}), + 56: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tag", "required": False}), + 57: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + "help_text": "Only for clickable tags", + "label": "Tag color", + "required": False, + }, + ), + 58: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ] + ], + {"required": False}, + ), + 59: ( + "wagtail.blocks.StructBlock", + [[("label", 55), ("is_small", 56), ("color", 57), ("icon_class", 36), ("link", 58)]], + {"label": "Tag"}, + ), + 60: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {"label": "Tag list"}), + 61: ( + "wagtail.blocks.StreamBlock", + [[("button", 38)]], + { + "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", + "label": "Buttons", + }, + ), + 62: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", "Left"), + ("fr-btns-group--center", "Center"), + ("fr-btns-group--right", "Right"), + ( + "fr-btns-group--right fr-btns-group--inline-reverse", + "Right (reverse order on desktop)", + ), + ], + "label": "Position", + "required": False, + }, + ), + 63: ( + "wagtail.blocks.StructBlock", + [[("buttons", 61), ("position", 62)]], + {"label": "Button list"}, + ), + 64: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ("icon", 20), + ("size", 21), + ] + ], + {"label": "Single link"}, + ), + 65: ("wagtail.blocks.RichTextBlock", (), {"label": "Content"}), + 66: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("content", 65)]], + {"label": "Accordion", "max_num": 15, "min_num": 1}, + ), + 67: ( + "wagtail.blocks.StreamBlock", + [[("title", 55), ("accordion", 66)]], + {"group": "2. DSFR components", "label": "Accordions"}, + ), + 68: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "text-left", + "text-center", + "text-right", + ], + "label": "Content", + "required": False, + }, + ), + 69: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + {"label": "Button", "required": False}, + ), + 70: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + "label": "Color", + "required": False, + }, + ), + 71: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 31), + ("icon_class", 36), + ("text", 68), + ("button", 69), + ("color", 70), + ] + ], + {"group": "2. DSFR components", "label": "Callout"}, + ), + 72: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "text-left", + "text-center", + "text-right", + ], + "label": "Content", + }, + ), + 73: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-text--sm", "Small"), ("", "Medium"), ("fr-text--lg", "Large")], + "label": "Size", + "required": False, + }, + ), + 74: ( + "wagtail.blocks.StructBlock", + [[("text", 72), ("color", 70), ("size", 73)]], + {"group": "2. DSFR components", "label": "Highlight"}, + ), + 75: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image", "required": False}), + 76: ("wagtail.blocks.CharBlock", (), {"label": "Quote"}), + 77: ("wagtail.blocks.CharBlock", (), {"label": "Author name", "required": False}), + 78: ("wagtail.blocks.CharBlock", (), {"label": "Author title", "required": False}), + 79: ( + "wagtail.blocks.StructBlock", + [[("image", 75), ("quote", 76), ("author_name", 77), ("author_title", 78), ("color", 70)]], + {"group": "2. DSFR components", "label": "Quote"}, + ), + 80: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + }, + ), + 81: ( + "wagtail.blocks.IntegerBlock", + (), + {"label": "Number of steps", "max_value": 8, "min_value": 1}, + ), + 82: ("wagtail.blocks.IntegerBlock", (), {"label": "Current step", "max_value": 8, "min_value": 1}), + 83: ("wagtail.blocks.TextBlock", (), {"label": "Detail", "required": False}), + 84: ("wagtail.blocks.StructBlock", [[("title", 55), ("detail", 83)]], {"label": "Step"}), + 85: ("wagtail.blocks.StreamBlock", [[("step", 84)]], {"label": "Steps"}), + 86: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("heading_tag", 80), ("total", 81), ("current", 82), ("steps", 85)]], + {"group": "2. DSFR components", "label": "Stepper"}, + ), + 87: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-card--horizontal-tier", "1/3"), ("fr-card--horizontal-half", "50/50")], + "label": "Image ratio", + "required": False, + }, + ), + 88: ( + "wagtail.blocks.StreamBlock", + [[("badge", 53)]], + { + "help_text": "Only used if the card has an image.", + "label": "Image area badge", + "max_num": 1, + "required": False, + }, + ), + 89: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ] + ], + { + "collapsed": False, + "help_text": "Link for the whole card. If a call-to-action is present, the link will display on the title only.", + "label": "Link", + "required": False, + }, + ), + 90: ("wagtail.blocks.CharBlock", (), {"label": "Top detail: text", "required": False}), + 91: ( + "content_manager.blocks.buttons_links.IconPickerBlock", + (), + {"label": "Top detail: icon", "required": False}, + ), + 92: ("wagtail.blocks.StreamBlock", [[("badge", 53)]], {}), + 93: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {}), + 94: ( + "wagtail.blocks.StreamBlock", + [[("badges", 92), ("tags", 93)]], + {"label": "Top detail: badges or tags", "max_num": 1, "required": False}, + ), + 95: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Incompatible with the bottom call-to-action. If the card links to a downloadable document, the values are pre-filled.", + "label": "Bottom detail: text", + "required": False, + }, + ), + 96: ( + "content_manager.blocks.buttons_links.IconPickerBlock", + (), + {"label": "Bottom detail: icon", "required": False}, + ), + 97: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ] + ], + {"label": "Link"}, + ), + 98: ("wagtail.blocks.StreamBlock", [[("link", 97)]], {"label": "Links"}), + 99: ( + "wagtail.blocks.StreamBlock", + [[("links", 98), ("buttons", 39)]], + { + "help_text": "Incompatible with the bottom detail text. Allow you to add link or button.", + "label": "Bottom call-to-action: links or buttons", + "max_num": 1, + "required": False, + }, + ), + 100: ( + "wagtail.blocks.BooleanBlock", + (), + {"label": "Card with grey background", "required": False}, + ), + 101: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without background", "required": False}), + 102: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without border", "required": False}), + 103: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with a shadow", "required": False}), + 104: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 87), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 95), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {"group": "2. DSFR components", "label": "Horizontal card"}, + ), + 105: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": ["bold", "italic", "superscript", "subscript", "strikethrough"], + "label": "Content", + "required": False, + }, + ), + 106: ( + "wagtail.images.blocks.ImageChooserBlock", + (), + {"help_text": "Prefer SVG files.", "label": "Image", "required": False}, + ), + 107: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ] + ], + {"label": "Link", "required": False}, + ), + 108: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "If the tile links to a downloadable document, the values are pre-filled.", + "label": "Detail text", + "required": False, + }, + ), + 109: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tile", "required": False}), + 110: ( + "wagtail.blocks.BooleanBlock", + (), + {"label": "Tile with grey background", "required": False}, + ), + 111: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without background", "required": False}), + 112: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without border", "required": False}), + 113: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with a shadow", "required": False}), + 114: ("wagtail.blocks.BooleanBlock", (), {"label": "Horizontal tile", "required": False}), + 115: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 105), + ("image", 106), + ("link", 107), + ("top_detail_badges_tags", 94), + ("detail_text", 108), + ("is_small", 109), + ("grey_background", 110), + ("no_background", 111), + ("no_border", 112), + ("shadow", 113), + ("is_horizontal", 114), + ] + ], + {"group": "2. DSFR components", "label": "Tile"}, + ), + 116: ( + "wagtail.blocks.StreamBlock", + [[("title", 55), ("accordion", 66)]], + {"group": "DSFR components", "label": "Accordions"}, + ), + 117: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 31), + ("icon_class", 36), + ("text", 68), + ("button", 69), + ("color", 70), + ] + ], + {"group": "DSFR components", "label": "Callout"}, + ), + 118: ( + "wagtail.blocks.StructBlock", + [[("text", 72), ("color", 70), ("size", 73)]], + {"group": "DSFR components", "label": "Highlight"}, + ), + 119: ( + "wagtail.blocks.StructBlock", + [[("image", 75), ("quote", 76), ("author_name", 77), ("author_title", 78), ("color", 70)]], + {"group": "DSFR components", "label": "Quote"}, + ), + 120: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 105), + ("image", 106), + ("link", 107), + ("top_detail_badges_tags", 94), + ("detail_text", 108), + ("is_small", 109), + ("grey_background", 110), + ("no_background", 111), + ("no_border", 112), + ("shadow", 113), + ("is_horizontal", 114), + ] + ], + {"group": "DSFR components", "label": "Tile"}, + ), + 121: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + "required": False, + }, + ), + 122: ( + "wagtail.blocks.PageChooserBlock", + (), + {"label": "Blog", "page_type": ["blog.BlogIndexPage"]}, + ), + 123: ( + "wagtail.blocks.IntegerBlock", + (), + { + "default": 3, + "label": "Number of entries", + "max_value": 8, + "min_value": 1, + "required": False, + }, + ), + 124: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Category",), + {"label": "Filter by category", "required": False}, + ), + 125: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("content_manager.Tag",), + {"label": "Filter by tag", "required": False}, + ), + 126: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Person",), + {"label": "Filter by author", "required": False}, + ), + 127: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Organization",), + { + "help_text": "The source is the organization of the post author", + "label": "Filter by source", + "required": False, + }, + ), + 128: ( + "wagtail.blocks.BooleanBlock", + (), + {"default": False, "label": "Show filters", "required": False}, + ), + 129: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("blog", 122), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "Website structure", "label": "Blog recent entries"}, + ), + 130: ( + "wagtail.blocks.PageChooserBlock", + (), + {"label": "Event calendar", "page_type": ["events.EventsIndexPage"]}, + ), + 131: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("index_page", 130), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "Website structure", "label": "Event calendar recent entries"}, + ), + 132: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("heading_tag", 80), ("total", 81), ("current", 82), ("steps", 85)]], + {"group": "DSFR components", "label": "Stepper"}, + ), + 133: ("wagtailmarkdown.blocks.MarkdownBlock", (), {"group": "Expert syntax", "label": "Markdown"}), + 134: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Accessibility: The title should describe, in a clear and concise manner, the embedded content.", + "label": "Title", + }, + ), + 135: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Example for Tally: https://tally.so/embed/w2jMRa", + "label": "URL of the iframe", + }, + ), + 136: ("wagtail.blocks.IntegerBlock", (), {"label": "Height (in pixels)"}), + 137: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "For example: \"allow='geolocation'\".", + "label": "Parameters", + "required": False, + }, + ), + 138: ( + "wagtail.blocks.StructBlock", + [[("title", 134), ("url", 135), ("height", 136), ("parameters", 137)]], + {"group": "Expert syntax", "label": "Iframe"}, + ), + 139: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "group": "Expert syntax", + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "readonly": True, + }, + ), + 140: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Allows the creation of a link to this specific part of the page. Allowed characters: A-Z, a-z, 0-9, - and _.", + "label": "Anchor ID", + "validators": [ + django.core.validators.RegexValidator( + re.compile("^[-a-zA-Z0-9_]+\\Z"), + "Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.", + "invalid", + ) + ], + }, + ), + 141: ( + "wagtail.blocks.StructBlock", + [[("anchor_id", 140)]], + {"group": "Page structure", "label": "Anchor"}, + ), + 142: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 3, "label": "Top margin", "max_value": 15, "min_value": 0}, + ), + 143: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 3, "label": "Bottom margin", "max_value": 15, "min_value": 0}, + ), + 144: ( + "wagtail.blocks.StructBlock", + [[("top_margin", 142), ("bottom_margin", 143)]], + {"group": "Page structure", "label": "Separator"}, + ), + 145: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Incompatible with the bottom call-to-action.", + "label": "Bottom detail: text", + "required": False, + }, + ), + 146: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 6), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 145), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {"group": "DSFR components", "label": "Vertical card"}, + ), + 147: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Person",), + { + "help_text": "Optional, all values can be manually specified or overriden below", + "label": "Person", + "required": False, + }, + ), + 148: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255, "required": False}), + 149: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255, "required": False}), + 150: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Organization", "max_length": 255, "required": False}, + ), + 151: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Contact info", "max_length": 500, "required": False}, + ), + 152: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {"label": "Tags", "required": False}), + 153: ( + "wagtail.blocks.StructBlock", + [ + [ + ("contact", 147), + ("link", 107), + ("heading_tag", 2), + ("name", 148), + ("role", 149), + ("organization", 150), + ("contact_info", 151), + ("image", 75), + ("tags", 152), + ] + ], + {"group": "Extra components", "label": "Contact card"}, + ), + 154: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("contact_card", 153), + ] + ], + {"label": "Content"}, + ), + 155: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("content", 154)]], + {"label": "Tab", "max_num": 15, "min_num": 1}, + ), + 156: ( + "wagtail.blocks.StreamBlock", + [[("tabs", 155)]], + {"group": "2. DSFR components", "label": "Tabs"}, + ), + 157: ( + "wagtailmarkdown.blocks.MarkdownBlock", + (), + {"group": "5. Expert syntax", "label": "Markdown"}, + ), + 158: ( + "wagtail.blocks.StructBlock", + [[("title", 134), ("url", 135), ("height", 136), ("parameters", 137)]], + {"group": "5. Expert syntax", "label": "Iframe"}, + ), + 159: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "group": "5. Expert syntax", + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "readonly": True, + }, + ), + 160: ( + "wagtail.blocks.StructBlock", + [[("anchor_id", 140)]], + {"group": "3. Page structure", "label": "Anchor"}, + ), + 161: ( + "wagtail.blocks.StructBlock", + [[("top_margin", 142), ("bottom_margin", 143)]], + {"group": "3. Page structure", "label": "Separator"}, + ), + 162: ( + "wagtail.images.blocks.ImageChooserBlock", + (), + {"label": "Background image", "required": False}, + ), + 163: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("Primary colors", [("blue-france", "Blue France"), ("red-marianne", "Red Marianne")]), + ("Neutral colors", [("grey", "Grey")]), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "help_text": "Uses the French Design System colors", + "label": "Background color", + "required": False, + }, + ), + 164: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + "required": False, + }, + ), + 165: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 5, "label": "Top margin", "max_value": 15, "min_value": 0, "required": False}, + ), + 166: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 5, "label": "Bottom margin", "max_value": 15, "min_value": 0, "required": False}, + ), + 167: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("top", "Top"), ("middle", "Middle"), ("bottom", "Bottom")], + "label": "Vertical align", + "required": False, + }, + ), + 168: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("3", "3/12"), + ("4", "4/12"), + ("5", "5/12"), + ("6", "6/12"), + ("7", "7/12"), + ("8", "8/12"), + ("9", "9/12"), + ], + "help_text": "The total width of all columns should be 12.", + "label": "Column width", + "required": False, + }, + ), + 169: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("contact_card", 153), + ] + ], + {"label": "Column content"}, + ), + 170: ( + "wagtail.blocks.StructBlock", + [[("width", 168), ("content", 169)]], + {"group": "Page structure", "label": "Adjustable column"}, + ), + 171: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("column", 170), + ] + ], + {"label": "Columns"}, + ), + 172: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 162), + ("bg_color_class", 163), + ("title", 1), + ("heading_tag", 164), + ("top_margin", 165), + ("bottom_margin", 166), + ("vertical_align", 167), + ("columns", 171), + ] + ], + {"group": "3. Page structure", "label": "Multiple columns"}, + ), + 173: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("3", "3/12"), ("4", "4/12"), ("6", "6/12")], "label": "Column width"}, + ), + 174: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("center", "Center"), ("right", "Right")], + "label": "Horizontal align", + "required": False, + }, + ), + 175: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("contact_card", 153), + ] + ], + {"label": "Items"}, + ), + 176: ( + "wagtail.blocks.StructBlock", + [[("column_width", 173), ("horizontal_align", 174), ("vertical_align", 167), ("items", 175)]], + {"group": "3. Page structure", "label": "Item grid"}, + ), + 177: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 87), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 95), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {"group": "DSFR components", "label": "Horizontal card"}, + ), + 178: ( + "wagtail.blocks.StreamBlock", + [[("tabs", 155)]], + {"group": "DSFR components", "label": "Tabs"}, + ), + 179: ( + "wagtail.blocks.StructBlock", + [[("column_width", 173), ("horizontal_align", 174), ("vertical_align", 167), ("items", 175)]], + {"group": "Page structure", "label": "Item grid"}, + ), + 180: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("image_and_text", 23), + ("card", 177), + ("tabs", 178), + ("item_grid", 179), + ] + ], + {"label": "Content"}, + ), + 181: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 162), + ("bg_color_class", 163), + ("top_margin", 165), + ("bottom_margin", 166), + ("content", 180), + ] + ], + {"group": "3. Page structure", "label": "Full width background"}, + ), + 182: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("image_and_text", 23), + ("card", 177), + ("tabs", 178), + ("item_grid", 179), + ] + ], + {"label": "Main content"}, + ), + 183: ("wagtail.blocks.CharBlock", (), {"label": "Side menu title", "required": False}), + 184: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "label": "HTML", + }, + ), + 185: ("wagtail.blocks.PageChooserBlock", (), {"label": "Parent page"}), + 186: ("wagtail.blocks.StructBlock", [[("page", 185)]], {"label": "Page tree"}), + 187: ( + "wagtail.blocks.StreamBlock", + [[("html", 184), ("pagetree", 186)]], + {"label": "Side menu content"}, + ), + 188: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 162), + ("bg_color_class", 163), + ("top_margin", 165), + ("bottom_margin", 166), + ("main_content", 182), + ("sidemenu_title", 183), + ("sidemenu_content", 187), + ] + ], + {"group": "3. Page structure", "label": "Full width background with side menu"}, + ), + 189: ( + "wagtail.blocks.static_block.StaticBlock", + (), + { + "admin_text": "A simple, alphabetical list of the subpages of the current page.", + "group": "4. Website structure", + "label": "Subpages list", + "template": "content_manager/blocks/subpages_list.html", + }, + ), + 190: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("blog", 122), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "4. Website structure", "label": "Blog recent entries"}, + ), + 191: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("index_page", 130), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "4. Website structure", "label": "Event calendar recent entries"}, + ), + 192: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "

En savoir plus


Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "features": ["bold", "italic", "link", "document-link", "strikethrough", "h2", "h3", "h4"], + "label": "Rich text", + }, + ), + 193: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("6", "small"), ("8", "medium"), ("12", "large")], "label": "Block width"}, + ), + 194: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("", "Center"), ("right", "Right")], + "label": "Block alignment", + "required": False, + }, + ), + 195: ( + "wagtail.blocks.StructBlock", + [[("text", 192), ("width", 193), ("alignment", 194)]], + {"group": "1. Section templates to be adapted", "label": "Rich text with layout"}, + ), + 196: ( + "wagtail.blocks.CharBlock", + (), + {"default": "Titre de la section", "label": "Section title"}, + ), + 197: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("Primary colors", [("blue-france", "Blue France"), ("red-marianne", "Red Marianne")]), + ("Neutral colors", [("grey", "Grey")]), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "help_text": "Uses the French Design System colors.
If you want to design a classic website, choose the colour ‘white’ or ‘French blue’.", + "label": "Background color", + "required": False, + }, + ), + 198: ( + "wagtail.blocks.StructBlock", + [[("background_color", 197), ("top_margin", 165), ("bottom_margin", 166)]], + {"collapsed": True, "label": "Layout"}, + ), + 199: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("center", "Center"), ("right", "Right")], + "label": "Items alignement", + }, + ), + 200: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("6", "2"), ("4", "3"), ("3", "4")], "label": "Items per row"}, + ), + 201: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("80", "Small (80px)"), ("140", "Medium (140px)"), ("200", "Large (200px)")], + "help_text": "Images are always displayed in a square (1:1) ratio. Three sizes are available: if the original image is smaller than the selected size, it will be displayed at its maximum available size.", + "label": "Image size of items", + }, + ), + 202: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": True}), + 203: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "Add a short description to help your visitors better understand what you offer.", + "features": ["bold", "italic", "link", "document-link"], + "label": "Text", + }, + ), + 204: ("wagtail.blocks.StructBlock", [[("image", 10), ("title", 202), ("text", 203)]], {}), + 205: ( + "content_manager.blocks.sections.ImageAndTextListBlock", + (204,), + {"collapsed": True, "label": "Items"}, + ), + 206: ( + "wagtail.blocks.StructBlock", + [ + [ + ("section_title", 196), + ("layout", 198), + ("items_alignement", 199), + ("items_per_row", 200), + ("images_size", 201), + ("items", 205), + ] + ], + {"group": "1. Section templates to be adapted", "label": "Items grid (image and text)"}, + ), + 207: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "

Titre de la section


Lorem ipsum dolor sit amet, consectetur adipiscing elit, ", + "features": ["bold", "italic", "link", "document-link", "strikethrough", "h2", "h3", "h4"], + "label": "Text block", + }, + ), + 208: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("right", "Right")], + "help_text": "This field allows you to define the placement of text relative to adjacent content.", + "label": "Text content position", + }, + ), + 209: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + { + "default": { + "button_type": "fr-btn fr-btn--secondary", + "external_url": "https://tube.numerique.gouv.fr/", + "icon_side": "--", + "link_type": "external_url", + "text": "Appel à l'action", + }, + "label": "Button", + }, + ), + 210: ( + "wagtail.blocks.StructBlock", + [[("text", 207), ("position", 208), ("button", 209), ("image", 10), ("layout", 198)]], + {"group": "1. Section templates to be adapted", "label": "Image, text and cta"}, + ), + 211: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididun", + "features": ["bold", "italic", "link", "document-link"], + "label": "Text", + }, + ), + 212: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + { + "default": { + "button_type": "fr-btn", + "external_url": "https://tube.numerique.gouv.fr/", + "icon_side": "--", + "link_type": "external_url", + "text": "Appel à l'action", + }, + "label": "Button", + }, + ), + 213: ( + "wagtail.blocks.StructBlock", + [[("section_title", 196), ("layout", 198), ("text", 211), ("button", 212)]], + {"group": "1. Section templates to be adapted", "label": "Text and button"}, + ), + 214: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ] + ], + { + "collapsed": True, + "help_text": "This link appears at the bottom left of the section if completed", + "label": "Section link", + "required": False, + }, + ), + 215: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 6), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 145), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {}, + ), + 216: ("wagtail.blocks.StreamBlock", [[("card", 215)]], {"label": "Items"}), + 217: ( + "wagtail.blocks.StructBlock", + [ + [ + ("section_title", 196), + ("layout", 198), + ("items_per_row", 200), + ("link", 214), + ("items", 216), + ] + ], + {"group": "1. Section templates to be adapted", "label": "In the spotlight"}, + ), + 218: ( + "wagtail.blocks.StreamBlock", + [[("title", 55), ("accordion", 66)]], + { + "default": [ + ("title", "Accordéon"), + ( + "accordion", + { + "content": "

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

", + "title": "Titre de l'accordéon 1", + }, + ), + ( + "accordion", + { + "content": "

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

", + "title": "Titre de l'accordéon 2", + }, + ), + ], + "label": "Accordion", + }, + ), + 219: ( + "wagtail.blocks.StructBlock", + [[("accordion", 218), ("layout", 198)]], + {"group": "1. Section templates to be adapted", "label": "Accordions with layout"}, + ), + }, + ), + ), + ] diff --git a/events/migrations/0031_alter_evententrypage_body_alter_eventsindexpage_body.py b/events/migrations/0031_alter_evententrypage_body_alter_eventsindexpage_body.py new file mode 100644 index 000000000..066be9d7c --- /dev/null +++ b/events/migrations/0031_alter_evententrypage_body_alter_eventsindexpage_body.py @@ -0,0 +1,4127 @@ +# Generated by Django 6.0.3 on 2026-03-23 15:24 + +import content_manager.validators +import django.core.validators +import re +import wagtail.fields +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("events", "0030_invert_hero_text_position"), + ] + + operations = [ + migrations.AlterField( + model_name="evententrypage", + name="body", + field=wagtail.fields.StreamField( + [ + ("paragraph", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("link", 64), + ("accordions", 67), + ("callout", 71), + ("highlight", 74), + ("quote", 79), + ("stepper", 86), + ("card", 104), + ("tile", 115), + ("tabs", 156), + ("markdown", 157), + ("iframe", 158), + ("html", 159), + ("anchor", 160), + ("separator", 161), + ("multicolumns", 172), + ("item_grid", 176), + ("fullwidthbackground", 181), + ("fullwidthbackgroundwithsidemenu", 188), + ("subpageslist", 189), + ("blog_recent_entries", 190), + ("events_recent_entries", 191), + ("layout_richtext", 195), + ("image_text_grid_section", 206), + ("image_text_cta_section", 210), + ("cta_section", 213), + ("spotlight_section", 217), + ("accordion_section", 219), + ], + blank=True, + block_lookup={ + 0: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text"}), + 1: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": False}), + 2: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 3.", + "label": "Heading level", + "required": False, + }, + ), + 3: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image"}), + 4: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Alternative text (textual description of the image)", "required": False}, + ), + 5: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-content-media--sm", "Small"), + ("", "Medium"), + ("fr-content-media--lg", "Large"), + ], + "label": "Witdh", + "required": False, + }, + ), + 6: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-ratio-32x9", "32x9"), + ("fr-ratio-16x9", "16x9"), + ("fr-ratio-3x2", "3x2"), + ("fr-ratio-4x3", "4x3"), + ("fr-ratio-1x1", "1x1"), + ("fr-ratio-3x4", "3x4"), + ("fr-ratio-2x3", "2x3"), + ], + "label": "Image ratio", + "required": False, + }, + ), + 7: ("wagtail.blocks.CharBlock", (), {"label": "Caption", "required": False}), + 8: ("wagtail.blocks.URLBlock", (), {"label": "Link", "required": False}), + 9: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 2), + ("image", 3), + ("alt", 4), + ("width", 5), + ("image_ratio", 6), + ("caption", 7), + ("url", 8), + ] + ], + {"label": "Centered image"}, + ), + 10: ("wagtail.images.blocks.ImageBlock", [], {"label": "Image"}), + 11: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("left", "Left (displayed above text in mobile view)"), + ("left_below", "Left (displayed below text in mobile view)"), + ("right", "Right (displayed below text in mobile view)"), + ("right_above", "Right (displayed above text in mobile view)"), + ], + "label": "Image position", + }, + ), + 12: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("3", "3/12"), ("4", "4/12"), ("5", "5/12"), ("6", "6/12")], + "label": "Image width", + }, + ), + 13: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("page", "Page"), + ("external_url", "External URL"), + ("document", "Document"), + ("anchor", "Anchor link"), + ], + "help_text": "Select the type of link.", + "label": "Link type", + "required": False, + }, + ), + 14: ( + "wagtail.blocks.PageChooserBlock", + (), + { + "help_text": "Link to a page of this site. Use either this, the document, or the external URL parameter.", + "label": "Page", + "required": False, + }, + ), + 15: ( + "wagtail.documents.blocks.DocumentChooserBlock", + (), + { + "help_text": "Use either this, the external URL or the page parameter.", + "label": "Document", + "required": False, + }, + ), + 16: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Use either this, the document or the page parameter.", + "label": "External URL", + "required": False, + }, + ), + 17: ( + "wagtail.blocks.CharBlock", + (), + { + "default": "", + "help_text": "Link to an anchor block on the page. Allowed characters: A-Z, a-z, 0-9, - and _.", + "label": "Anchor ID", + "required": False, + "validators": [ + django.core.validators.RegexValidator( + re.compile("^[-a-zA-Z0-9_]+\\Z"), + "Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.", + "invalid", + ) + ], + }, + ), + 18: ( + "wagtail.blocks.CharBlock", + (), + { + "default": "", + "help_text": "Extra query parameters at the end of the link, e.g. filtering options.", + "label": "Extra query parameters", + "required": False, + "validators": [content_manager.validators.validate_query_string], + }, + ), + 19: ("wagtail.blocks.CharBlock", (), {"label": "Link label", "required": False}), + 20: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", "No icon"), + ("fr-icon-arrow-right-line fr-link--icon-right", "Icon on the right side"), + ("fr-icon-arrow-right-line fr-link--icon-left", "Icon on the left side"), + ], + "help_text": "Only used for internal links.", + "label": "Icon", + "required": False, + }, + ), + 21: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-link--sm", "Small"), ("", "Medium"), ("fr-link--lg", "Large")], + "label": "Size", + "required": False, + }, + ), + 22: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ("icon", 20), + ("size", 21), + ] + ], + { + "help_text": "The link is shown at the bottom of the text block, with an arrow", + "label": "Link", + "required": False, + }, + ), + 23: ( + "wagtail.blocks.StructBlock", + [[("image", 10), ("image_side", 11), ("image_ratio", 12), ("text", 0), ("link", 22)]], + {"label": "Image and text"}, + ), + 24: ("wagtail.blocks.CharBlock", (), {"label": "Row heading", "required": False}), + 25: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "text-left", + "text-center", + "text-right", + ], + "label": "Text", + "required": False, + }, + ), + 26: ("wagtail.images.blocks.ImageBlock", [], {"label": "Pictogram"}), + 27: ( + "wagtail.contrib.typed_table_block.blocks.TypedTableBlock", + [[("row_heading", 24), ("text", 25), ("pictogram", 26)]], + {"label": "Table"}, + ), + 28: ("wagtail.blocks.CharBlock", (), {"label": "Message title", "required": False}), + 29: ("wagtail.blocks.TextBlock", (), {"label": "Message text", "required": False}), + 30: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("error", "Error"), + ("success", "Success"), + ("info", "Information"), + ("warning", "Warning"), + ], + "label": "Message type", + }, + ), + 31: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 3.", + "label": "Heading level", + }, + ), + 32: ( + "wagtail.blocks.StructBlock", + [[("title", 28), ("description", 29), ("level", 30), ("heading_tag", 31)]], + {"label": "Alert message"}, + ), + 33: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text", "required": False}), + 34: ("wagtail.blocks.CharBlock", (), {"label": "Button label", "required": False}), + 35: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-btn", "Primary"), + ("fr-btn fr-btn--secondary", "Secundary"), + ("fr-btn fr-btn--tertiary", "Tertiary"), + ("fr-btn fr-btn--tertiary-no-outline", "Tertiary without border"), + ], + "label": "Button type", + "required": False, + }, + ), + 36: ( + "content_manager.blocks.buttons_links.IconPickerBlock", + (), + {"label": "Icon", "required": False}, + ), + 37: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")], + "label": "Icon side", + "required": False, + }, + ), + 38: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + {"label": "Button"}, + ), + 39: ( + "wagtail.blocks.StreamBlock", + [[("button", 38)]], + { + "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", + "label": "Buttons", + }, + ), + 40: ( + "wagtail.blocks.StreamBlock", + [[("buttons", 39)]], + {"label": "Call-to-action buttons", "max_num": 1, "required": False}, + ), + 41: ( + "wagtail.blocks.StructBlock", + [[("text", 33), ("cta_buttons", 40)]], + {"label": "Text and call to action"}, + ), + 42: ("wagtail.blocks.CharBlock", (), {"label": "Video title", "required": False}), + 43: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Use embed format, with a version that doesn't require a consent banner if available. (e.g. : https://www.youtube-nocookie.com/embed/gLzXOViPX-0) For Youtube, use Embed video and check Enable privacy-enhanced mode.", + "label": "Video URL", + }, + ), + 44: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-ratio-16x9", "16x9"), ("fr-ratio-4x3", "4x3"), ("fr-ratio-1x1", "1x1")], + "label": "Video ratio", + "required": False, + }, + ), + 45: ( + "wagtail.blocks.CharBlock", + (), + {"default": "Transcription", "label": "Title", "required": False}, + ), + 46: ("wagtail.blocks.RichTextBlock", (), {"label": "Transcription content", "required": False}), + 47: ( + "wagtail.blocks.StructBlock", + [[("title", 45), ("content", 46)]], + {"label": "Transcription", "required": False}, + ), + 48: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 42), + ("caption", 7), + ("url", 43), + ("width", 5), + ("video_ratio", 44), + ("transcription", 47), + ] + ], + {"label": "Video"}, + ), + 49: ("wagtail.blocks.StructBlock", [[("title", 45), ("content", 46)]], {"label": "Transcription"}), + 50: ("wagtail.blocks.CharBlock", (), {"label": "Badge label", "required": False}), + 51: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", [("new", "New"), ("grey", "Grey")]), + ( + "System colors", + [ + ("info", "Info"), + ("success", "Success"), + ("warning", "Warning"), + ("error", "Error"), + ], + ), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "label": "Badge color", + "required": False, + }, + ), + 52: ("wagtail.blocks.BooleanBlock", (), {"label": "Hide badge icon", "required": False}), + 53: ( + "wagtail.blocks.StructBlock", + [[("text", 50), ("color", 51), ("hide_icon", 52)]], + {"label": "Badge"}, + ), + 54: ("wagtail.blocks.StreamBlock", [[("badge", 53)]], {"label": "Badge list"}), + 55: ("wagtail.blocks.CharBlock", (), {"label": "Title"}), + 56: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tag", "required": False}), + 57: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + "help_text": "Only for clickable tags", + "label": "Tag color", + "required": False, + }, + ), + 58: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ] + ], + {"required": False}, + ), + 59: ( + "wagtail.blocks.StructBlock", + [[("label", 55), ("is_small", 56), ("color", 57), ("icon_class", 36), ("link", 58)]], + {"label": "Tag"}, + ), + 60: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {"label": "Tag list"}), + 61: ( + "wagtail.blocks.StreamBlock", + [[("button", 38)]], + { + "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", + "label": "Buttons", + }, + ), + 62: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", "Left"), + ("fr-btns-group--center", "Center"), + ("fr-btns-group--right", "Right"), + ( + "fr-btns-group--right fr-btns-group--inline-reverse", + "Right (reverse order on desktop)", + ), + ], + "label": "Position", + "required": False, + }, + ), + 63: ( + "wagtail.blocks.StructBlock", + [[("buttons", 61), ("position", 62)]], + {"label": "Button list"}, + ), + 64: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ("icon", 20), + ("size", 21), + ] + ], + {"label": "Single link"}, + ), + 65: ("wagtail.blocks.RichTextBlock", (), {"label": "Content"}), + 66: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("content", 65)]], + {"label": "Accordion", "max_num": 15, "min_num": 1}, + ), + 67: ( + "wagtail.blocks.StreamBlock", + [[("title", 55), ("accordion", 66)]], + {"group": "2. DSFR components", "label": "Accordions"}, + ), + 68: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "text-left", + "text-center", + "text-right", + ], + "label": "Content", + "required": False, + }, + ), + 69: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + {"label": "Button", "required": False}, + ), + 70: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + "label": "Color", + "required": False, + }, + ), + 71: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 31), + ("icon_class", 36), + ("text", 68), + ("button", 69), + ("color", 70), + ] + ], + {"group": "2. DSFR components", "label": "Callout"}, + ), + 72: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "text-left", + "text-center", + "text-right", + ], + "label": "Content", + }, + ), + 73: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-text--sm", "Small"), ("", "Medium"), ("fr-text--lg", "Large")], + "label": "Size", + "required": False, + }, + ), + 74: ( + "wagtail.blocks.StructBlock", + [[("text", 72), ("color", 70), ("size", 73)]], + {"group": "2. DSFR components", "label": "Highlight"}, + ), + 75: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image", "required": False}), + 76: ("wagtail.blocks.CharBlock", (), {"label": "Quote"}), + 77: ("wagtail.blocks.CharBlock", (), {"label": "Author name", "required": False}), + 78: ("wagtail.blocks.CharBlock", (), {"label": "Author title", "required": False}), + 79: ( + "wagtail.blocks.StructBlock", + [[("image", 75), ("quote", 76), ("author_name", 77), ("author_title", 78), ("color", 70)]], + {"group": "2. DSFR components", "label": "Quote"}, + ), + 80: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + }, + ), + 81: ( + "wagtail.blocks.IntegerBlock", + (), + {"label": "Number of steps", "max_value": 8, "min_value": 1}, + ), + 82: ("wagtail.blocks.IntegerBlock", (), {"label": "Current step", "max_value": 8, "min_value": 1}), + 83: ("wagtail.blocks.TextBlock", (), {"label": "Detail", "required": False}), + 84: ("wagtail.blocks.StructBlock", [[("title", 55), ("detail", 83)]], {"label": "Step"}), + 85: ("wagtail.blocks.StreamBlock", [[("step", 84)]], {"label": "Steps"}), + 86: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("heading_tag", 80), ("total", 81), ("current", 82), ("steps", 85)]], + {"group": "2. DSFR components", "label": "Stepper"}, + ), + 87: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-card--horizontal-tier", "1/3"), ("fr-card--horizontal-half", "50/50")], + "label": "Image ratio", + "required": False, + }, + ), + 88: ( + "wagtail.blocks.StreamBlock", + [[("badge", 53)]], + { + "help_text": "Only used if the card has an image.", + "label": "Image area badge", + "max_num": 1, + "required": False, + }, + ), + 89: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ] + ], + { + "collapsed": False, + "help_text": "Link for the whole card. If a call-to-action is present, the link will display on the title only.", + "label": "Link", + "required": False, + }, + ), + 90: ("wagtail.blocks.CharBlock", (), {"label": "Top detail: text", "required": False}), + 91: ( + "content_manager.blocks.buttons_links.IconPickerBlock", + (), + {"label": "Top detail: icon", "required": False}, + ), + 92: ("wagtail.blocks.StreamBlock", [[("badge", 53)]], {}), + 93: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {}), + 94: ( + "wagtail.blocks.StreamBlock", + [[("badges", 92), ("tags", 93)]], + {"label": "Top detail: badges or tags", "max_num": 1, "required": False}, + ), + 95: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Incompatible with the bottom call-to-action. If the card links to a downloadable document, the values are pre-filled.", + "label": "Bottom detail: text", + "required": False, + }, + ), + 96: ( + "content_manager.blocks.buttons_links.IconPickerBlock", + (), + {"label": "Bottom detail: icon", "required": False}, + ), + 97: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ] + ], + {"label": "Link"}, + ), + 98: ("wagtail.blocks.StreamBlock", [[("link", 97)]], {"label": "Links"}), + 99: ( + "wagtail.blocks.StreamBlock", + [[("links", 98), ("buttons", 39)]], + { + "help_text": "Incompatible with the bottom detail text. Allow you to add link or button.", + "label": "Bottom call-to-action: links or buttons", + "max_num": 1, + "required": False, + }, + ), + 100: ( + "wagtail.blocks.BooleanBlock", + (), + {"label": "Card with grey background", "required": False}, + ), + 101: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without background", "required": False}), + 102: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without border", "required": False}), + 103: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with a shadow", "required": False}), + 104: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 87), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 95), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {"group": "2. DSFR components", "label": "Horizontal card"}, + ), + 105: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": ["bold", "italic", "superscript", "subscript", "strikethrough"], + "label": "Content", + "required": False, + }, + ), + 106: ( + "wagtail.images.blocks.ImageChooserBlock", + (), + {"help_text": "Prefer SVG files.", "label": "Image", "required": False}, + ), + 107: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ] + ], + {"label": "Link", "required": False}, + ), + 108: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "If the tile links to a downloadable document, the values are pre-filled.", + "label": "Detail text", + "required": False, + }, + ), + 109: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tile", "required": False}), + 110: ( + "wagtail.blocks.BooleanBlock", + (), + {"label": "Tile with grey background", "required": False}, + ), + 111: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without background", "required": False}), + 112: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without border", "required": False}), + 113: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with a shadow", "required": False}), + 114: ("wagtail.blocks.BooleanBlock", (), {"label": "Horizontal tile", "required": False}), + 115: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 105), + ("image", 106), + ("link", 107), + ("top_detail_badges_tags", 94), + ("detail_text", 108), + ("is_small", 109), + ("grey_background", 110), + ("no_background", 111), + ("no_border", 112), + ("shadow", 113), + ("is_horizontal", 114), + ] + ], + {"group": "2. DSFR components", "label": "Tile"}, + ), + 116: ( + "wagtail.blocks.StreamBlock", + [[("title", 55), ("accordion", 66)]], + {"group": "DSFR components", "label": "Accordions"}, + ), + 117: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 31), + ("icon_class", 36), + ("text", 68), + ("button", 69), + ("color", 70), + ] + ], + {"group": "DSFR components", "label": "Callout"}, + ), + 118: ( + "wagtail.blocks.StructBlock", + [[("text", 72), ("color", 70), ("size", 73)]], + {"group": "DSFR components", "label": "Highlight"}, + ), + 119: ( + "wagtail.blocks.StructBlock", + [[("image", 75), ("quote", 76), ("author_name", 77), ("author_title", 78), ("color", 70)]], + {"group": "DSFR components", "label": "Quote"}, + ), + 120: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 105), + ("image", 106), + ("link", 107), + ("top_detail_badges_tags", 94), + ("detail_text", 108), + ("is_small", 109), + ("grey_background", 110), + ("no_background", 111), + ("no_border", 112), + ("shadow", 113), + ("is_horizontal", 114), + ] + ], + {"group": "DSFR components", "label": "Tile"}, + ), + 121: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + "required": False, + }, + ), + 122: ( + "wagtail.blocks.PageChooserBlock", + (), + {"label": "Blog", "page_type": ["blog.BlogIndexPage"]}, + ), + 123: ( + "wagtail.blocks.IntegerBlock", + (), + { + "default": 3, + "label": "Number of entries", + "max_value": 8, + "min_value": 1, + "required": False, + }, + ), + 124: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Category",), + {"label": "Filter by category", "required": False}, + ), + 125: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("content_manager.Tag",), + {"label": "Filter by tag", "required": False}, + ), + 126: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Person",), + {"label": "Filter by author", "required": False}, + ), + 127: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Organization",), + { + "help_text": "The source is the organization of the post author", + "label": "Filter by source", + "required": False, + }, + ), + 128: ( + "wagtail.blocks.BooleanBlock", + (), + {"default": False, "label": "Show filters", "required": False}, + ), + 129: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("blog", 122), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "Website structure", "label": "Blog recent entries"}, + ), + 130: ( + "wagtail.blocks.PageChooserBlock", + (), + {"label": "Event calendar", "page_type": ["events.EventsIndexPage"]}, + ), + 131: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("index_page", 130), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "Website structure", "label": "Event calendar recent entries"}, + ), + 132: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("heading_tag", 80), ("total", 81), ("current", 82), ("steps", 85)]], + {"group": "DSFR components", "label": "Stepper"}, + ), + 133: ("wagtailmarkdown.blocks.MarkdownBlock", (), {"group": "Expert syntax", "label": "Markdown"}), + 134: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Accessibility: The title should describe, in a clear and concise manner, the embedded content.", + "label": "Title", + }, + ), + 135: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Example for Tally: https://tally.so/embed/w2jMRa", + "label": "URL of the iframe", + }, + ), + 136: ("wagtail.blocks.IntegerBlock", (), {"label": "Height (in pixels)"}), + 137: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "For example: \"allow='geolocation'\".", + "label": "Parameters", + "required": False, + }, + ), + 138: ( + "wagtail.blocks.StructBlock", + [[("title", 134), ("url", 135), ("height", 136), ("parameters", 137)]], + {"group": "Expert syntax", "label": "Iframe"}, + ), + 139: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "group": "Expert syntax", + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "readonly": True, + }, + ), + 140: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Allows the creation of a link to this specific part of the page. Allowed characters: A-Z, a-z, 0-9, - and _.", + "label": "Anchor ID", + "validators": [ + django.core.validators.RegexValidator( + re.compile("^[-a-zA-Z0-9_]+\\Z"), + "Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.", + "invalid", + ) + ], + }, + ), + 141: ( + "wagtail.blocks.StructBlock", + [[("anchor_id", 140)]], + {"group": "Page structure", "label": "Anchor"}, + ), + 142: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 3, "label": "Top margin", "max_value": 15, "min_value": 0}, + ), + 143: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 3, "label": "Bottom margin", "max_value": 15, "min_value": 0}, + ), + 144: ( + "wagtail.blocks.StructBlock", + [[("top_margin", 142), ("bottom_margin", 143)]], + {"group": "Page structure", "label": "Separator"}, + ), + 145: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Incompatible with the bottom call-to-action.", + "label": "Bottom detail: text", + "required": False, + }, + ), + 146: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 6), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 145), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {"group": "DSFR components", "label": "Vertical card"}, + ), + 147: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Person",), + { + "help_text": "Optional, all values can be manually specified or overriden below", + "label": "Person", + "required": False, + }, + ), + 148: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255, "required": False}), + 149: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255, "required": False}), + 150: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Organization", "max_length": 255, "required": False}, + ), + 151: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Contact info", "max_length": 500, "required": False}, + ), + 152: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {"label": "Tags", "required": False}), + 153: ( + "wagtail.blocks.StructBlock", + [ + [ + ("contact", 147), + ("link", 107), + ("heading_tag", 2), + ("name", 148), + ("role", 149), + ("organization", 150), + ("contact_info", 151), + ("image", 75), + ("tags", 152), + ] + ], + {"group": "Extra components", "label": "Contact card"}, + ), + 154: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("contact_card", 153), + ] + ], + {"label": "Content"}, + ), + 155: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("content", 154)]], + {"label": "Tab", "max_num": 15, "min_num": 1}, + ), + 156: ( + "wagtail.blocks.StreamBlock", + [[("tabs", 155)]], + {"group": "2. DSFR components", "label": "Tabs"}, + ), + 157: ( + "wagtailmarkdown.blocks.MarkdownBlock", + (), + {"group": "5. Expert syntax", "label": "Markdown"}, + ), + 158: ( + "wagtail.blocks.StructBlock", + [[("title", 134), ("url", 135), ("height", 136), ("parameters", 137)]], + {"group": "5. Expert syntax", "label": "Iframe"}, + ), + 159: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "group": "5. Expert syntax", + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "readonly": True, + }, + ), + 160: ( + "wagtail.blocks.StructBlock", + [[("anchor_id", 140)]], + {"group": "3. Page structure", "label": "Anchor"}, + ), + 161: ( + "wagtail.blocks.StructBlock", + [[("top_margin", 142), ("bottom_margin", 143)]], + {"group": "3. Page structure", "label": "Separator"}, + ), + 162: ( + "wagtail.images.blocks.ImageChooserBlock", + (), + {"label": "Background image", "required": False}, + ), + 163: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("Primary colors", [("blue-france", "Blue France"), ("red-marianne", "Red Marianne")]), + ("Neutral colors", [("grey", "Grey")]), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "help_text": "Uses the French Design System colors", + "label": "Background color", + "required": False, + }, + ), + 164: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + "required": False, + }, + ), + 165: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 5, "label": "Top margin", "max_value": 15, "min_value": 0, "required": False}, + ), + 166: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 5, "label": "Bottom margin", "max_value": 15, "min_value": 0, "required": False}, + ), + 167: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("top", "Top"), ("middle", "Middle"), ("bottom", "Bottom")], + "label": "Vertical align", + "required": False, + }, + ), + 168: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("3", "3/12"), + ("4", "4/12"), + ("5", "5/12"), + ("6", "6/12"), + ("7", "7/12"), + ("8", "8/12"), + ("9", "9/12"), + ], + "help_text": "The total width of all columns should be 12.", + "label": "Column width", + "required": False, + }, + ), + 169: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("contact_card", 153), + ] + ], + {"label": "Column content"}, + ), + 170: ( + "wagtail.blocks.StructBlock", + [[("width", 168), ("content", 169)]], + {"group": "Page structure", "label": "Adjustable column"}, + ), + 171: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("column", 170), + ] + ], + {"label": "Columns"}, + ), + 172: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 162), + ("bg_color_class", 163), + ("title", 1), + ("heading_tag", 164), + ("top_margin", 165), + ("bottom_margin", 166), + ("vertical_align", 167), + ("columns", 171), + ] + ], + {"group": "3. Page structure", "label": "Multiple columns"}, + ), + 173: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("3", "3/12"), ("4", "4/12"), ("6", "6/12")], "label": "Column width"}, + ), + 174: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("center", "Center"), ("right", "Right")], + "label": "Horizontal align", + "required": False, + }, + ), + 175: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("contact_card", 153), + ] + ], + {"label": "Items"}, + ), + 176: ( + "wagtail.blocks.StructBlock", + [[("column_width", 173), ("horizontal_align", 174), ("vertical_align", 167), ("items", 175)]], + {"group": "3. Page structure", "label": "Item grid"}, + ), + 177: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 87), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 95), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {"group": "DSFR components", "label": "Horizontal card"}, + ), + 178: ( + "wagtail.blocks.StreamBlock", + [[("tabs", 155)]], + {"group": "DSFR components", "label": "Tabs"}, + ), + 179: ( + "wagtail.blocks.StructBlock", + [[("column_width", 173), ("horizontal_align", 174), ("vertical_align", 167), ("items", 175)]], + {"group": "Page structure", "label": "Item grid"}, + ), + 180: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("image_and_text", 23), + ("card", 177), + ("tabs", 178), + ("item_grid", 179), + ] + ], + {"label": "Content"}, + ), + 181: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 162), + ("bg_color_class", 163), + ("top_margin", 165), + ("bottom_margin", 166), + ("content", 180), + ] + ], + {"group": "3. Page structure", "label": "Full width background"}, + ), + 182: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("image_and_text", 23), + ("card", 177), + ("tabs", 178), + ("item_grid", 179), + ] + ], + {"label": "Main content"}, + ), + 183: ("wagtail.blocks.CharBlock", (), {"label": "Side menu title", "required": False}), + 184: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "label": "HTML", + }, + ), + 185: ("wagtail.blocks.PageChooserBlock", (), {"label": "Parent page"}), + 186: ("wagtail.blocks.StructBlock", [[("page", 185)]], {"label": "Page tree"}), + 187: ( + "wagtail.blocks.StreamBlock", + [[("html", 184), ("pagetree", 186)]], + {"label": "Side menu content"}, + ), + 188: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 162), + ("bg_color_class", 163), + ("top_margin", 165), + ("bottom_margin", 166), + ("main_content", 182), + ("sidemenu_title", 183), + ("sidemenu_content", 187), + ] + ], + {"group": "3. Page structure", "label": "Full width background with side menu"}, + ), + 189: ( + "wagtail.blocks.static_block.StaticBlock", + (), + { + "admin_text": "A simple, alphabetical list of the subpages of the current page.", + "group": "4. Website structure", + "label": "Subpages list", + "template": "content_manager/blocks/subpages_list.html", + }, + ), + 190: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("blog", 122), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "4. Website structure", "label": "Blog recent entries"}, + ), + 191: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("index_page", 130), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "4. Website structure", "label": "Event calendar recent entries"}, + ), + 192: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "

En savoir plus


Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "features": ["bold", "italic", "link", "document-link", "strikethrough", "h2", "h3", "h4"], + "label": "Rich text", + }, + ), + 193: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("6", "small"), ("8", "medium"), ("12", "large")], "label": "Block width"}, + ), + 194: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("", "Center"), ("right", "Right")], + "label": "Block alignment", + "required": False, + }, + ), + 195: ( + "wagtail.blocks.StructBlock", + [[("text", 192), ("width", 193), ("alignment", 194)]], + {"group": "1. Section templates to be adapted", "label": "Rich text with layout"}, + ), + 196: ( + "wagtail.blocks.CharBlock", + (), + {"default": "Titre de la section", "label": "Section title"}, + ), + 197: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("Primary colors", [("blue-france", "Blue France"), ("red-marianne", "Red Marianne")]), + ("Neutral colors", [("grey", "Grey")]), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "help_text": "Uses the French Design System colors.
If you want to design a classic website, choose the colour ‘white’ or ‘French blue’.", + "label": "Background color", + "required": False, + }, + ), + 198: ( + "wagtail.blocks.StructBlock", + [[("background_color", 197), ("top_margin", 165), ("bottom_margin", 166)]], + {"collapsed": True, "label": "Layout"}, + ), + 199: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("center", "Center"), ("right", "Right")], + "label": "Items alignement", + }, + ), + 200: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("6", "2"), ("4", "3"), ("3", "4")], "label": "Items per row"}, + ), + 201: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("80", "Small (80px)"), ("140", "Medium (140px)"), ("200", "Large (200px)")], + "help_text": "Images are always displayed in a square (1:1) ratio. Three sizes are available: if the original image is smaller than the selected size, it will be displayed at its maximum available size.", + "label": "Image size of items", + }, + ), + 202: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": True}), + 203: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "Add a short description to help your visitors better understand what you offer.", + "features": ["bold", "italic", "link", "document-link"], + "label": "Text", + }, + ), + 204: ("wagtail.blocks.StructBlock", [[("image", 10), ("title", 202), ("text", 203)]], {}), + 205: ( + "content_manager.blocks.sections.ImageAndTextListBlock", + (204,), + {"collapsed": True, "label": "Items"}, + ), + 206: ( + "wagtail.blocks.StructBlock", + [ + [ + ("section_title", 196), + ("layout", 198), + ("items_alignement", 199), + ("items_per_row", 200), + ("images_size", 201), + ("items", 205), + ] + ], + {"group": "1. Section templates to be adapted", "label": "Items grid (image and text)"}, + ), + 207: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "

Titre de la section


Lorem ipsum dolor sit amet, consectetur adipiscing elit, ", + "features": ["bold", "italic", "link", "document-link", "strikethrough", "h2", "h3", "h4"], + "label": "Text block", + }, + ), + 208: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("right", "Right")], + "help_text": "This field allows you to define the placement of text relative to adjacent content.", + "label": "Text content position", + }, + ), + 209: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + { + "default": { + "button_type": "fr-btn fr-btn--secondary", + "external_url": "https://tube.numerique.gouv.fr/", + "icon_side": "--", + "link_type": "external_url", + "text": "Appel à l'action", + }, + "label": "Button", + }, + ), + 210: ( + "wagtail.blocks.StructBlock", + [[("text", 207), ("position", 208), ("button", 209), ("image", 10), ("layout", 198)]], + {"group": "1. Section templates to be adapted", "label": "Image, text and cta"}, + ), + 211: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididun", + "features": ["bold", "italic", "link", "document-link"], + "label": "Text", + }, + ), + 212: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + { + "default": { + "button_type": "fr-btn", + "external_url": "https://tube.numerique.gouv.fr/", + "icon_side": "--", + "link_type": "external_url", + "text": "Appel à l'action", + }, + "label": "Button", + }, + ), + 213: ( + "wagtail.blocks.StructBlock", + [[("section_title", 196), ("layout", 198), ("text", 211), ("button", 212)]], + {"group": "1. Section templates to be adapted", "label": "Text and button"}, + ), + 214: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ] + ], + { + "collapsed": True, + "help_text": "This link appears at the bottom left of the section if completed", + "label": "Section link", + "required": False, + }, + ), + 215: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 6), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 145), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {}, + ), + 216: ("wagtail.blocks.StreamBlock", [[("card", 215)]], {"label": "Items"}), + 217: ( + "wagtail.blocks.StructBlock", + [ + [ + ("section_title", 196), + ("layout", 198), + ("items_per_row", 200), + ("link", 214), + ("items", 216), + ] + ], + {"group": "1. Section templates to be adapted", "label": "In the spotlight"}, + ), + 218: ( + "wagtail.blocks.StreamBlock", + [[("title", 55), ("accordion", 66)]], + { + "default": [ + ("title", "Accordéon"), + ( + "accordion", + { + "content": "

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

", + "title": "Titre de l'accordéon 1", + }, + ), + ( + "accordion", + { + "content": "

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

", + "title": "Titre de l'accordéon 2", + }, + ), + ], + "label": "Accordion", + }, + ), + 219: ( + "wagtail.blocks.StructBlock", + [[("accordion", 218), ("layout", 198)]], + {"group": "1. Section templates to be adapted", "label": "Accordions with layout"}, + ), + }, + ), + ), + migrations.AlterField( + model_name="eventsindexpage", + name="body", + field=wagtail.fields.StreamField( + [ + ("paragraph", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("link", 64), + ("accordions", 67), + ("callout", 71), + ("highlight", 74), + ("quote", 79), + ("stepper", 86), + ("card", 104), + ("tile", 115), + ("tabs", 156), + ("markdown", 157), + ("iframe", 158), + ("html", 159), + ("anchor", 160), + ("separator", 161), + ("multicolumns", 172), + ("item_grid", 176), + ("fullwidthbackground", 181), + ("fullwidthbackgroundwithsidemenu", 188), + ("subpageslist", 189), + ("blog_recent_entries", 190), + ("events_recent_entries", 191), + ("layout_richtext", 195), + ("image_text_grid_section", 206), + ("image_text_cta_section", 210), + ("cta_section", 213), + ("spotlight_section", 217), + ("accordion_section", 219), + ], + blank=True, + block_lookup={ + 0: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text"}), + 1: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": False}), + 2: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 3.", + "label": "Heading level", + "required": False, + }, + ), + 3: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image"}), + 4: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Alternative text (textual description of the image)", "required": False}, + ), + 5: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-content-media--sm", "Small"), + ("", "Medium"), + ("fr-content-media--lg", "Large"), + ], + "label": "Witdh", + "required": False, + }, + ), + 6: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-ratio-32x9", "32x9"), + ("fr-ratio-16x9", "16x9"), + ("fr-ratio-3x2", "3x2"), + ("fr-ratio-4x3", "4x3"), + ("fr-ratio-1x1", "1x1"), + ("fr-ratio-3x4", "3x4"), + ("fr-ratio-2x3", "2x3"), + ], + "label": "Image ratio", + "required": False, + }, + ), + 7: ("wagtail.blocks.CharBlock", (), {"label": "Caption", "required": False}), + 8: ("wagtail.blocks.URLBlock", (), {"label": "Link", "required": False}), + 9: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 2), + ("image", 3), + ("alt", 4), + ("width", 5), + ("image_ratio", 6), + ("caption", 7), + ("url", 8), + ] + ], + {"label": "Centered image"}, + ), + 10: ("wagtail.images.blocks.ImageBlock", [], {"label": "Image"}), + 11: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("left", "Left (displayed above text in mobile view)"), + ("left_below", "Left (displayed below text in mobile view)"), + ("right", "Right (displayed below text in mobile view)"), + ("right_above", "Right (displayed above text in mobile view)"), + ], + "label": "Image position", + }, + ), + 12: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("3", "3/12"), ("4", "4/12"), ("5", "5/12"), ("6", "6/12")], + "label": "Image width", + }, + ), + 13: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("page", "Page"), + ("external_url", "External URL"), + ("document", "Document"), + ("anchor", "Anchor link"), + ], + "help_text": "Select the type of link.", + "label": "Link type", + "required": False, + }, + ), + 14: ( + "wagtail.blocks.PageChooserBlock", + (), + { + "help_text": "Link to a page of this site. Use either this, the document, or the external URL parameter.", + "label": "Page", + "required": False, + }, + ), + 15: ( + "wagtail.documents.blocks.DocumentChooserBlock", + (), + { + "help_text": "Use either this, the external URL or the page parameter.", + "label": "Document", + "required": False, + }, + ), + 16: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Use either this, the document or the page parameter.", + "label": "External URL", + "required": False, + }, + ), + 17: ( + "wagtail.blocks.CharBlock", + (), + { + "default": "", + "help_text": "Link to an anchor block on the page. Allowed characters: A-Z, a-z, 0-9, - and _.", + "label": "Anchor ID", + "required": False, + "validators": [ + django.core.validators.RegexValidator( + re.compile("^[-a-zA-Z0-9_]+\\Z"), + "Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.", + "invalid", + ) + ], + }, + ), + 18: ( + "wagtail.blocks.CharBlock", + (), + { + "default": "", + "help_text": "Extra query parameters at the end of the link, e.g. filtering options.", + "label": "Extra query parameters", + "required": False, + "validators": [content_manager.validators.validate_query_string], + }, + ), + 19: ("wagtail.blocks.CharBlock", (), {"label": "Link label", "required": False}), + 20: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", "No icon"), + ("fr-icon-arrow-right-line fr-link--icon-right", "Icon on the right side"), + ("fr-icon-arrow-right-line fr-link--icon-left", "Icon on the left side"), + ], + "help_text": "Only used for internal links.", + "label": "Icon", + "required": False, + }, + ), + 21: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-link--sm", "Small"), ("", "Medium"), ("fr-link--lg", "Large")], + "label": "Size", + "required": False, + }, + ), + 22: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ("icon", 20), + ("size", 21), + ] + ], + { + "help_text": "The link is shown at the bottom of the text block, with an arrow", + "label": "Link", + "required": False, + }, + ), + 23: ( + "wagtail.blocks.StructBlock", + [[("image", 10), ("image_side", 11), ("image_ratio", 12), ("text", 0), ("link", 22)]], + {"label": "Image and text"}, + ), + 24: ("wagtail.blocks.CharBlock", (), {"label": "Row heading", "required": False}), + 25: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "text-left", + "text-center", + "text-right", + ], + "label": "Text", + "required": False, + }, + ), + 26: ("wagtail.images.blocks.ImageBlock", [], {"label": "Pictogram"}), + 27: ( + "wagtail.contrib.typed_table_block.blocks.TypedTableBlock", + [[("row_heading", 24), ("text", 25), ("pictogram", 26)]], + {"label": "Table"}, + ), + 28: ("wagtail.blocks.CharBlock", (), {"label": "Message title", "required": False}), + 29: ("wagtail.blocks.TextBlock", (), {"label": "Message text", "required": False}), + 30: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("error", "Error"), + ("success", "Success"), + ("info", "Information"), + ("warning", "Warning"), + ], + "label": "Message type", + }, + ), + 31: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 3.", + "label": "Heading level", + }, + ), + 32: ( + "wagtail.blocks.StructBlock", + [[("title", 28), ("description", 29), ("level", 30), ("heading_tag", 31)]], + {"label": "Alert message"}, + ), + 33: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text", "required": False}), + 34: ("wagtail.blocks.CharBlock", (), {"label": "Button label", "required": False}), + 35: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-btn", "Primary"), + ("fr-btn fr-btn--secondary", "Secundary"), + ("fr-btn fr-btn--tertiary", "Tertiary"), + ("fr-btn fr-btn--tertiary-no-outline", "Tertiary without border"), + ], + "label": "Button type", + "required": False, + }, + ), + 36: ( + "content_manager.blocks.buttons_links.IconPickerBlock", + (), + {"label": "Icon", "required": False}, + ), + 37: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")], + "label": "Icon side", + "required": False, + }, + ), + 38: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + {"label": "Button"}, + ), + 39: ( + "wagtail.blocks.StreamBlock", + [[("button", 38)]], + { + "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", + "label": "Buttons", + }, + ), + 40: ( + "wagtail.blocks.StreamBlock", + [[("buttons", 39)]], + {"label": "Call-to-action buttons", "max_num": 1, "required": False}, + ), + 41: ( + "wagtail.blocks.StructBlock", + [[("text", 33), ("cta_buttons", 40)]], + {"label": "Text and call to action"}, + ), + 42: ("wagtail.blocks.CharBlock", (), {"label": "Video title", "required": False}), + 43: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Use embed format, with a version that doesn't require a consent banner if available. (e.g. : https://www.youtube-nocookie.com/embed/gLzXOViPX-0) For Youtube, use Embed video and check Enable privacy-enhanced mode.", + "label": "Video URL", + }, + ), + 44: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-ratio-16x9", "16x9"), ("fr-ratio-4x3", "4x3"), ("fr-ratio-1x1", "1x1")], + "label": "Video ratio", + "required": False, + }, + ), + 45: ( + "wagtail.blocks.CharBlock", + (), + {"default": "Transcription", "label": "Title", "required": False}, + ), + 46: ("wagtail.blocks.RichTextBlock", (), {"label": "Transcription content", "required": False}), + 47: ( + "wagtail.blocks.StructBlock", + [[("title", 45), ("content", 46)]], + {"label": "Transcription", "required": False}, + ), + 48: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 42), + ("caption", 7), + ("url", 43), + ("width", 5), + ("video_ratio", 44), + ("transcription", 47), + ] + ], + {"label": "Video"}, + ), + 49: ("wagtail.blocks.StructBlock", [[("title", 45), ("content", 46)]], {"label": "Transcription"}), + 50: ("wagtail.blocks.CharBlock", (), {"label": "Badge label", "required": False}), + 51: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", [("new", "New"), ("grey", "Grey")]), + ( + "System colors", + [ + ("info", "Info"), + ("success", "Success"), + ("warning", "Warning"), + ("error", "Error"), + ], + ), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "label": "Badge color", + "required": False, + }, + ), + 52: ("wagtail.blocks.BooleanBlock", (), {"label": "Hide badge icon", "required": False}), + 53: ( + "wagtail.blocks.StructBlock", + [[("text", 50), ("color", 51), ("hide_icon", 52)]], + {"label": "Badge"}, + ), + 54: ("wagtail.blocks.StreamBlock", [[("badge", 53)]], {"label": "Badge list"}), + 55: ("wagtail.blocks.CharBlock", (), {"label": "Title"}), + 56: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tag", "required": False}), + 57: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + "help_text": "Only for clickable tags", + "label": "Tag color", + "required": False, + }, + ), + 58: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ] + ], + {"required": False}, + ), + 59: ( + "wagtail.blocks.StructBlock", + [[("label", 55), ("is_small", 56), ("color", 57), ("icon_class", 36), ("link", 58)]], + {"label": "Tag"}, + ), + 60: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {"label": "Tag list"}), + 61: ( + "wagtail.blocks.StreamBlock", + [[("button", 38)]], + { + "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", + "label": "Buttons", + }, + ), + 62: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", "Left"), + ("fr-btns-group--center", "Center"), + ("fr-btns-group--right", "Right"), + ( + "fr-btns-group--right fr-btns-group--inline-reverse", + "Right (reverse order on desktop)", + ), + ], + "label": "Position", + "required": False, + }, + ), + 63: ( + "wagtail.blocks.StructBlock", + [[("buttons", 61), ("position", 62)]], + {"label": "Button list"}, + ), + 64: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ("icon", 20), + ("size", 21), + ] + ], + {"label": "Single link"}, + ), + 65: ("wagtail.blocks.RichTextBlock", (), {"label": "Content"}), + 66: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("content", 65)]], + {"label": "Accordion", "max_num": 15, "min_num": 1}, + ), + 67: ( + "wagtail.blocks.StreamBlock", + [[("title", 55), ("accordion", 66)]], + {"group": "2. DSFR components", "label": "Accordions"}, + ), + 68: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "text-left", + "text-center", + "text-right", + ], + "label": "Content", + "required": False, + }, + ), + 69: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + {"label": "Button", "required": False}, + ), + 70: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + "label": "Color", + "required": False, + }, + ), + 71: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 31), + ("icon_class", 36), + ("text", 68), + ("button", 69), + ("color", 70), + ] + ], + {"group": "2. DSFR components", "label": "Callout"}, + ), + 72: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "text-left", + "text-center", + "text-right", + ], + "label": "Content", + }, + ), + 73: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-text--sm", "Small"), ("", "Medium"), ("fr-text--lg", "Large")], + "label": "Size", + "required": False, + }, + ), + 74: ( + "wagtail.blocks.StructBlock", + [[("text", 72), ("color", 70), ("size", 73)]], + {"group": "2. DSFR components", "label": "Highlight"}, + ), + 75: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image", "required": False}), + 76: ("wagtail.blocks.CharBlock", (), {"label": "Quote"}), + 77: ("wagtail.blocks.CharBlock", (), {"label": "Author name", "required": False}), + 78: ("wagtail.blocks.CharBlock", (), {"label": "Author title", "required": False}), + 79: ( + "wagtail.blocks.StructBlock", + [[("image", 75), ("quote", 76), ("author_name", 77), ("author_title", 78), ("color", 70)]], + {"group": "2. DSFR components", "label": "Quote"}, + ), + 80: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + }, + ), + 81: ( + "wagtail.blocks.IntegerBlock", + (), + {"label": "Number of steps", "max_value": 8, "min_value": 1}, + ), + 82: ("wagtail.blocks.IntegerBlock", (), {"label": "Current step", "max_value": 8, "min_value": 1}), + 83: ("wagtail.blocks.TextBlock", (), {"label": "Detail", "required": False}), + 84: ("wagtail.blocks.StructBlock", [[("title", 55), ("detail", 83)]], {"label": "Step"}), + 85: ("wagtail.blocks.StreamBlock", [[("step", 84)]], {"label": "Steps"}), + 86: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("heading_tag", 80), ("total", 81), ("current", 82), ("steps", 85)]], + {"group": "2. DSFR components", "label": "Stepper"}, + ), + 87: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-card--horizontal-tier", "1/3"), ("fr-card--horizontal-half", "50/50")], + "label": "Image ratio", + "required": False, + }, + ), + 88: ( + "wagtail.blocks.StreamBlock", + [[("badge", 53)]], + { + "help_text": "Only used if the card has an image.", + "label": "Image area badge", + "max_num": 1, + "required": False, + }, + ), + 89: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ] + ], + { + "collapsed": False, + "help_text": "Link for the whole card. If a call-to-action is present, the link will display on the title only.", + "label": "Link", + "required": False, + }, + ), + 90: ("wagtail.blocks.CharBlock", (), {"label": "Top detail: text", "required": False}), + 91: ( + "content_manager.blocks.buttons_links.IconPickerBlock", + (), + {"label": "Top detail: icon", "required": False}, + ), + 92: ("wagtail.blocks.StreamBlock", [[("badge", 53)]], {}), + 93: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {}), + 94: ( + "wagtail.blocks.StreamBlock", + [[("badges", 92), ("tags", 93)]], + {"label": "Top detail: badges or tags", "max_num": 1, "required": False}, + ), + 95: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Incompatible with the bottom call-to-action. If the card links to a downloadable document, the values are pre-filled.", + "label": "Bottom detail: text", + "required": False, + }, + ), + 96: ( + "content_manager.blocks.buttons_links.IconPickerBlock", + (), + {"label": "Bottom detail: icon", "required": False}, + ), + 97: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ] + ], + {"label": "Link"}, + ), + 98: ("wagtail.blocks.StreamBlock", [[("link", 97)]], {"label": "Links"}), + 99: ( + "wagtail.blocks.StreamBlock", + [[("links", 98), ("buttons", 39)]], + { + "help_text": "Incompatible with the bottom detail text. Allow you to add link or button.", + "label": "Bottom call-to-action: links or buttons", + "max_num": 1, + "required": False, + }, + ), + 100: ( + "wagtail.blocks.BooleanBlock", + (), + {"label": "Card with grey background", "required": False}, + ), + 101: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without background", "required": False}), + 102: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without border", "required": False}), + 103: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with a shadow", "required": False}), + 104: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 87), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 95), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {"group": "2. DSFR components", "label": "Horizontal card"}, + ), + 105: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": ["bold", "italic", "superscript", "subscript", "strikethrough"], + "label": "Content", + "required": False, + }, + ), + 106: ( + "wagtail.images.blocks.ImageChooserBlock", + (), + {"help_text": "Prefer SVG files.", "label": "Image", "required": False}, + ), + 107: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ] + ], + {"label": "Link", "required": False}, + ), + 108: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "If the tile links to a downloadable document, the values are pre-filled.", + "label": "Detail text", + "required": False, + }, + ), + 109: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tile", "required": False}), + 110: ( + "wagtail.blocks.BooleanBlock", + (), + {"label": "Tile with grey background", "required": False}, + ), + 111: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without background", "required": False}), + 112: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without border", "required": False}), + 113: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with a shadow", "required": False}), + 114: ("wagtail.blocks.BooleanBlock", (), {"label": "Horizontal tile", "required": False}), + 115: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 105), + ("image", 106), + ("link", 107), + ("top_detail_badges_tags", 94), + ("detail_text", 108), + ("is_small", 109), + ("grey_background", 110), + ("no_background", 111), + ("no_border", 112), + ("shadow", 113), + ("is_horizontal", 114), + ] + ], + {"group": "2. DSFR components", "label": "Tile"}, + ), + 116: ( + "wagtail.blocks.StreamBlock", + [[("title", 55), ("accordion", 66)]], + {"group": "DSFR components", "label": "Accordions"}, + ), + 117: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 31), + ("icon_class", 36), + ("text", 68), + ("button", 69), + ("color", 70), + ] + ], + {"group": "DSFR components", "label": "Callout"}, + ), + 118: ( + "wagtail.blocks.StructBlock", + [[("text", 72), ("color", 70), ("size", 73)]], + {"group": "DSFR components", "label": "Highlight"}, + ), + 119: ( + "wagtail.blocks.StructBlock", + [[("image", 75), ("quote", 76), ("author_name", 77), ("author_title", 78), ("color", 70)]], + {"group": "DSFR components", "label": "Quote"}, + ), + 120: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 105), + ("image", 106), + ("link", 107), + ("top_detail_badges_tags", 94), + ("detail_text", 108), + ("is_small", 109), + ("grey_background", 110), + ("no_background", 111), + ("no_border", 112), + ("shadow", 113), + ("is_horizontal", 114), + ] + ], + {"group": "DSFR components", "label": "Tile"}, + ), + 121: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + "required": False, + }, + ), + 122: ( + "wagtail.blocks.PageChooserBlock", + (), + {"label": "Blog", "page_type": ["blog.BlogIndexPage"]}, + ), + 123: ( + "wagtail.blocks.IntegerBlock", + (), + { + "default": 3, + "label": "Number of entries", + "max_value": 8, + "min_value": 1, + "required": False, + }, + ), + 124: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Category",), + {"label": "Filter by category", "required": False}, + ), + 125: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("content_manager.Tag",), + {"label": "Filter by tag", "required": False}, + ), + 126: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Person",), + {"label": "Filter by author", "required": False}, + ), + 127: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Organization",), + { + "help_text": "The source is the organization of the post author", + "label": "Filter by source", + "required": False, + }, + ), + 128: ( + "wagtail.blocks.BooleanBlock", + (), + {"default": False, "label": "Show filters", "required": False}, + ), + 129: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("blog", 122), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "Website structure", "label": "Blog recent entries"}, + ), + 130: ( + "wagtail.blocks.PageChooserBlock", + (), + {"label": "Event calendar", "page_type": ["events.EventsIndexPage"]}, + ), + 131: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("index_page", 130), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "Website structure", "label": "Event calendar recent entries"}, + ), + 132: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("heading_tag", 80), ("total", 81), ("current", 82), ("steps", 85)]], + {"group": "DSFR components", "label": "Stepper"}, + ), + 133: ("wagtailmarkdown.blocks.MarkdownBlock", (), {"group": "Expert syntax", "label": "Markdown"}), + 134: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Accessibility: The title should describe, in a clear and concise manner, the embedded content.", + "label": "Title", + }, + ), + 135: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Example for Tally: https://tally.so/embed/w2jMRa", + "label": "URL of the iframe", + }, + ), + 136: ("wagtail.blocks.IntegerBlock", (), {"label": "Height (in pixels)"}), + 137: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "For example: \"allow='geolocation'\".", + "label": "Parameters", + "required": False, + }, + ), + 138: ( + "wagtail.blocks.StructBlock", + [[("title", 134), ("url", 135), ("height", 136), ("parameters", 137)]], + {"group": "Expert syntax", "label": "Iframe"}, + ), + 139: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "group": "Expert syntax", + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "readonly": True, + }, + ), + 140: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Allows the creation of a link to this specific part of the page. Allowed characters: A-Z, a-z, 0-9, - and _.", + "label": "Anchor ID", + "validators": [ + django.core.validators.RegexValidator( + re.compile("^[-a-zA-Z0-9_]+\\Z"), + "Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.", + "invalid", + ) + ], + }, + ), + 141: ( + "wagtail.blocks.StructBlock", + [[("anchor_id", 140)]], + {"group": "Page structure", "label": "Anchor"}, + ), + 142: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 3, "label": "Top margin", "max_value": 15, "min_value": 0}, + ), + 143: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 3, "label": "Bottom margin", "max_value": 15, "min_value": 0}, + ), + 144: ( + "wagtail.blocks.StructBlock", + [[("top_margin", 142), ("bottom_margin", 143)]], + {"group": "Page structure", "label": "Separator"}, + ), + 145: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Incompatible with the bottom call-to-action.", + "label": "Bottom detail: text", + "required": False, + }, + ), + 146: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 6), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 145), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {"group": "DSFR components", "label": "Vertical card"}, + ), + 147: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Person",), + { + "help_text": "Optional, all values can be manually specified or overriden below", + "label": "Person", + "required": False, + }, + ), + 148: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255, "required": False}), + 149: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255, "required": False}), + 150: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Organization", "max_length": 255, "required": False}, + ), + 151: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Contact info", "max_length": 500, "required": False}, + ), + 152: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {"label": "Tags", "required": False}), + 153: ( + "wagtail.blocks.StructBlock", + [ + [ + ("contact", 147), + ("link", 107), + ("heading_tag", 2), + ("name", 148), + ("role", 149), + ("organization", 150), + ("contact_info", 151), + ("image", 75), + ("tags", 152), + ] + ], + {"group": "Extra components", "label": "Contact card"}, + ), + 154: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("contact_card", 153), + ] + ], + {"label": "Content"}, + ), + 155: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("content", 154)]], + {"label": "Tab", "max_num": 15, "min_num": 1}, + ), + 156: ( + "wagtail.blocks.StreamBlock", + [[("tabs", 155)]], + {"group": "2. DSFR components", "label": "Tabs"}, + ), + 157: ( + "wagtailmarkdown.blocks.MarkdownBlock", + (), + {"group": "5. Expert syntax", "label": "Markdown"}, + ), + 158: ( + "wagtail.blocks.StructBlock", + [[("title", 134), ("url", 135), ("height", 136), ("parameters", 137)]], + {"group": "5. Expert syntax", "label": "Iframe"}, + ), + 159: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "group": "5. Expert syntax", + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "readonly": True, + }, + ), + 160: ( + "wagtail.blocks.StructBlock", + [[("anchor_id", 140)]], + {"group": "3. Page structure", "label": "Anchor"}, + ), + 161: ( + "wagtail.blocks.StructBlock", + [[("top_margin", 142), ("bottom_margin", 143)]], + {"group": "3. Page structure", "label": "Separator"}, + ), + 162: ( + "wagtail.images.blocks.ImageChooserBlock", + (), + {"label": "Background image", "required": False}, + ), + 163: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("Primary colors", [("blue-france", "Blue France"), ("red-marianne", "Red Marianne")]), + ("Neutral colors", [("grey", "Grey")]), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "help_text": "Uses the French Design System colors", + "label": "Background color", + "required": False, + }, + ), + 164: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + "required": False, + }, + ), + 165: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 5, "label": "Top margin", "max_value": 15, "min_value": 0, "required": False}, + ), + 166: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 5, "label": "Bottom margin", "max_value": 15, "min_value": 0, "required": False}, + ), + 167: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("top", "Top"), ("middle", "Middle"), ("bottom", "Bottom")], + "label": "Vertical align", + "required": False, + }, + ), + 168: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("3", "3/12"), + ("4", "4/12"), + ("5", "5/12"), + ("6", "6/12"), + ("7", "7/12"), + ("8", "8/12"), + ("9", "9/12"), + ], + "help_text": "The total width of all columns should be 12.", + "label": "Column width", + "required": False, + }, + ), + 169: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("contact_card", 153), + ] + ], + {"label": "Column content"}, + ), + 170: ( + "wagtail.blocks.StructBlock", + [[("width", 168), ("content", 169)]], + {"group": "Page structure", "label": "Adjustable column"}, + ), + 171: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("column", 170), + ] + ], + {"label": "Columns"}, + ), + 172: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 162), + ("bg_color_class", 163), + ("title", 1), + ("heading_tag", 164), + ("top_margin", 165), + ("bottom_margin", 166), + ("vertical_align", 167), + ("columns", 171), + ] + ], + {"group": "3. Page structure", "label": "Multiple columns"}, + ), + 173: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("3", "3/12"), ("4", "4/12"), ("6", "6/12")], "label": "Column width"}, + ), + 174: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("center", "Center"), ("right", "Right")], + "label": "Horizontal align", + "required": False, + }, + ), + 175: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("contact_card", 153), + ] + ], + {"label": "Items"}, + ), + 176: ( + "wagtail.blocks.StructBlock", + [[("column_width", 173), ("horizontal_align", 174), ("vertical_align", 167), ("items", 175)]], + {"group": "3. Page structure", "label": "Item grid"}, + ), + 177: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 87), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 95), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {"group": "DSFR components", "label": "Horizontal card"}, + ), + 178: ( + "wagtail.blocks.StreamBlock", + [[("tabs", 155)]], + {"group": "DSFR components", "label": "Tabs"}, + ), + 179: ( + "wagtail.blocks.StructBlock", + [[("column_width", 173), ("horizontal_align", 174), ("vertical_align", 167), ("items", 175)]], + {"group": "Page structure", "label": "Item grid"}, + ), + 180: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("image_and_text", 23), + ("card", 177), + ("tabs", 178), + ("item_grid", 179), + ] + ], + {"label": "Content"}, + ), + 181: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 162), + ("bg_color_class", 163), + ("top_margin", 165), + ("bottom_margin", 166), + ("content", 180), + ] + ], + {"group": "3. Page structure", "label": "Full width background"}, + ), + 182: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("image_and_text", 23), + ("card", 177), + ("tabs", 178), + ("item_grid", 179), + ] + ], + {"label": "Main content"}, + ), + 183: ("wagtail.blocks.CharBlock", (), {"label": "Side menu title", "required": False}), + 184: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "label": "HTML", + }, + ), + 185: ("wagtail.blocks.PageChooserBlock", (), {"label": "Parent page"}), + 186: ("wagtail.blocks.StructBlock", [[("page", 185)]], {"label": "Page tree"}), + 187: ( + "wagtail.blocks.StreamBlock", + [[("html", 184), ("pagetree", 186)]], + {"label": "Side menu content"}, + ), + 188: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 162), + ("bg_color_class", 163), + ("top_margin", 165), + ("bottom_margin", 166), + ("main_content", 182), + ("sidemenu_title", 183), + ("sidemenu_content", 187), + ] + ], + {"group": "3. Page structure", "label": "Full width background with side menu"}, + ), + 189: ( + "wagtail.blocks.static_block.StaticBlock", + (), + { + "admin_text": "A simple, alphabetical list of the subpages of the current page.", + "group": "4. Website structure", + "label": "Subpages list", + "template": "content_manager/blocks/subpages_list.html", + }, + ), + 190: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("blog", 122), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "4. Website structure", "label": "Blog recent entries"}, + ), + 191: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("index_page", 130), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "4. Website structure", "label": "Event calendar recent entries"}, + ), + 192: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "

En savoir plus


Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "features": ["bold", "italic", "link", "document-link", "strikethrough", "h2", "h3", "h4"], + "label": "Rich text", + }, + ), + 193: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("6", "small"), ("8", "medium"), ("12", "large")], "label": "Block width"}, + ), + 194: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("", "Center"), ("right", "Right")], + "label": "Block alignment", + "required": False, + }, + ), + 195: ( + "wagtail.blocks.StructBlock", + [[("text", 192), ("width", 193), ("alignment", 194)]], + {"group": "1. Section templates to be adapted", "label": "Rich text with layout"}, + ), + 196: ( + "wagtail.blocks.CharBlock", + (), + {"default": "Titre de la section", "label": "Section title"}, + ), + 197: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("Primary colors", [("blue-france", "Blue France"), ("red-marianne", "Red Marianne")]), + ("Neutral colors", [("grey", "Grey")]), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "help_text": "Uses the French Design System colors.
If you want to design a classic website, choose the colour ‘white’ or ‘French blue’.", + "label": "Background color", + "required": False, + }, + ), + 198: ( + "wagtail.blocks.StructBlock", + [[("background_color", 197), ("top_margin", 165), ("bottom_margin", 166)]], + {"collapsed": True, "label": "Layout"}, + ), + 199: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("center", "Center"), ("right", "Right")], + "label": "Items alignement", + }, + ), + 200: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("6", "2"), ("4", "3"), ("3", "4")], "label": "Items per row"}, + ), + 201: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("80", "Small (80px)"), ("140", "Medium (140px)"), ("200", "Large (200px)")], + "help_text": "Images are always displayed in a square (1:1) ratio. Three sizes are available: if the original image is smaller than the selected size, it will be displayed at its maximum available size.", + "label": "Image size of items", + }, + ), + 202: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": True}), + 203: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "Add a short description to help your visitors better understand what you offer.", + "features": ["bold", "italic", "link", "document-link"], + "label": "Text", + }, + ), + 204: ("wagtail.blocks.StructBlock", [[("image", 10), ("title", 202), ("text", 203)]], {}), + 205: ( + "content_manager.blocks.sections.ImageAndTextListBlock", + (204,), + {"collapsed": True, "label": "Items"}, + ), + 206: ( + "wagtail.blocks.StructBlock", + [ + [ + ("section_title", 196), + ("layout", 198), + ("items_alignement", 199), + ("items_per_row", 200), + ("images_size", 201), + ("items", 205), + ] + ], + {"group": "1. Section templates to be adapted", "label": "Items grid (image and text)"}, + ), + 207: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "

Titre de la section


Lorem ipsum dolor sit amet, consectetur adipiscing elit, ", + "features": ["bold", "italic", "link", "document-link", "strikethrough", "h2", "h3", "h4"], + "label": "Text block", + }, + ), + 208: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("right", "Right")], + "help_text": "This field allows you to define the placement of text relative to adjacent content.", + "label": "Text content position", + }, + ), + 209: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + { + "default": { + "button_type": "fr-btn fr-btn--secondary", + "external_url": "https://tube.numerique.gouv.fr/", + "icon_side": "--", + "link_type": "external_url", + "text": "Appel à l'action", + }, + "label": "Button", + }, + ), + 210: ( + "wagtail.blocks.StructBlock", + [[("text", 207), ("position", 208), ("button", 209), ("image", 10), ("layout", 198)]], + {"group": "1. Section templates to be adapted", "label": "Image, text and cta"}, + ), + 211: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididun", + "features": ["bold", "italic", "link", "document-link"], + "label": "Text", + }, + ), + 212: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + { + "default": { + "button_type": "fr-btn", + "external_url": "https://tube.numerique.gouv.fr/", + "icon_side": "--", + "link_type": "external_url", + "text": "Appel à l'action", + }, + "label": "Button", + }, + ), + 213: ( + "wagtail.blocks.StructBlock", + [[("section_title", 196), ("layout", 198), ("text", 211), ("button", 212)]], + {"group": "1. Section templates to be adapted", "label": "Text and button"}, + ), + 214: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ] + ], + { + "collapsed": True, + "help_text": "This link appears at the bottom left of the section if completed", + "label": "Section link", + "required": False, + }, + ), + 215: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 6), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 145), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {}, + ), + 216: ("wagtail.blocks.StreamBlock", [[("card", 215)]], {"label": "Items"}), + 217: ( + "wagtail.blocks.StructBlock", + [ + [ + ("section_title", 196), + ("layout", 198), + ("items_per_row", 200), + ("link", 214), + ("items", 216), + ] + ], + {"group": "1. Section templates to be adapted", "label": "In the spotlight"}, + ), + 218: ( + "wagtail.blocks.StreamBlock", + [[("title", 55), ("accordion", 66)]], + { + "default": [ + ("title", "Accordéon"), + ( + "accordion", + { + "content": "

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

", + "title": "Titre de l'accordéon 1", + }, + ), + ( + "accordion", + { + "content": "

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

", + "title": "Titre de l'accordéon 2", + }, + ), + ], + "label": "Accordion", + }, + ), + 219: ( + "wagtail.blocks.StructBlock", + [[("accordion", 218), ("layout", 198)]], + {"group": "1. Section templates to be adapted", "label": "Accordions with layout"}, + ), + }, + ), + ), + ] From e5e92469ea62ad5d74961622478beb38ff1d3dc5 Mon Sep 17 00:00:00 2001 From: Lucie Laporte Date: Mon, 23 Mar 2026 16:35:22 +0100 Subject: [PATCH 07/13] add i8n --- blog/locale/fr/LC_MESSAGES/django.po | 8 +- events/locale/fr/LC_MESSAGES/django.mo | Bin 3253 -> 3377 bytes locale/fr/LC_MESSAGES/djangojs.po | 1019 +++++++++++++++++++++++- 3 files changed, 1025 insertions(+), 2 deletions(-) diff --git a/blog/locale/fr/LC_MESSAGES/django.po b/blog/locale/fr/LC_MESSAGES/django.po index 2a87b460f..8116fef7f 100644 --- a/blog/locale/fr/LC_MESSAGES/django.po +++ b/blog/locale/fr/LC_MESSAGES/django.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-02-26 18:17+0100\n" +"POT-Creation-Date: 2026-03-23 16:30+0100\n" "PO-Revision-Date: 2025-10-28 13:46+0100\n" "Last-Translator: \n" "Language-Team: \n" @@ -160,6 +160,12 @@ msgstr "Source :" msgid "Filters" msgstr "Filtres" +msgid "selected" +msgstr "" + +msgid "unselected" +msgstr "" + msgid "Posts" msgstr "Articles" diff --git a/events/locale/fr/LC_MESSAGES/django.mo b/events/locale/fr/LC_MESSAGES/django.mo index 40a481590230b7b48b503056f6407a9e09977242..45cb586d06ca95a4ed9887456bdfa320ff9dc42c 100644 GIT binary patch delta 1261 zcmZA0OK1~89LMp|rfy7aZIY^O)i(8!THDoTw-#v;G?zdTM0{Zp@wGxryH%5d9?E(X zPoh!~1qD4t5Gh4L^dRP_f(Twzyj3sKc+`WB?=RhebYS)~nb~>#|Fe10GSeD-Nkpa% zrH{If`eKPOIXqUwgK{xq%v!vJQJh8>@1lk8F@_(*@i|=1?|H1npJD%>u-~GyiT?P4 zfl1S7pkolV&=5A_AzX%MF^=QdjsdR3d#D3H##VfTdjA`0{yZk|FKYb+gX-_VdUUYC z1jg*9p-A?jCLBRUI*N)UkJ@MowefAN!-wJcQ`Es3Ry>||`;0+`h z<~b@uuVUnXHH{B+D0Sb%f#0b9Mvko)J5dK6Kz$2YRHhDw{YP;#zfYpRg)6A}_fdg7 zLq+@+6~HH4gFouXzZy}((84Ly3l0*T$)Pf`KO8@STId35qsw>z@1Wii{LZmP5v9{MZlK+2YiHd|aa(xGe9H=|-x zm5pjqruwM5l0Z=?14@&M?u+lHQWTNykzgwSfUT%3>8=%>uB3;mk2FoK7G0U{xtpr* z#-(njDzmz_rPN+3Wi}USu1V&-G4FK2J7XsOYV+oCD_h@h_qw*@rZW8lt~2|{iq`Hd g6$>NhC%r`r&Y+Q0(1qsFg)d_kZ^id_(2d_m7k+}yQ$r(tiyQH4bQN814Ku7C>NK3N zjb4%wa<~P1&|?`vHXY7mk>k0DyLhg$OE2T<{p0;(09K6*Pi-xD%hDk-Wq0_yx!D5B6dot2u5Q_u^?Jwr~^8$ZhPy2WX~V zWXQiS-ozIlv*tr|`$F?bSaU*k6rm|JMko%}^YLaRey__CHt9W 1);\n" "X-Generator: Poedit 3.4.2\n" +msgid "$ZodError" +msgstr "" + +msgid "ZodMiniType" +msgstr "" + +msgid "ZodMiniString" +msgstr "" + +msgid "ZodMiniStringFormat" +msgstr "" + +msgid "ZodMiniNumber" +msgstr "" + +msgid "ZodMiniBoolean" +msgstr "" + +msgid "ZodMiniBigInt" +msgstr "" + +msgid "ZodMiniDate" +msgstr "" + +msgid "ZodMiniISODateTime" +msgstr "" + +msgid "ZodMiniISODate" +msgstr "" + +msgid "ZodMiniISOTime" +msgstr "" + +msgid "ZodMiniISODuration" +msgstr "" + +msgid "ZodISODateTime" +msgstr "" + +msgid "ZodISODate" +msgstr "" + +msgid "ZodISOTime" +msgstr "" + +msgid "ZodISODuration" +msgstr "" + +msgid "ZodError" +msgstr "" + +msgid "ZodType" +msgstr "" + +msgid "_ZodString" +msgstr "" + +msgid "ZodString" +msgstr "" + +msgid "ZodStringFormat" +msgstr "" + +msgid "ZodEmail" +msgstr "" + +msgid "ZodGUID" +msgstr "" + +msgid "ZodUUID" +msgstr "" + +msgid "ZodURL" +msgstr "" + +msgid "ZodEmoji" +msgstr "" + +msgid "ZodNanoID" +msgstr "" + +msgid "ZodCUID" +msgstr "" + +msgid "ZodCUID2" +msgstr "" + +msgid "ZodULID" +msgstr "" + +msgid "ZodXID" +msgstr "" + +msgid "ZodKSUID" +msgstr "" + +msgid "ZodIPv4" +msgstr "" + +msgid "ZodMAC" +msgstr "" + +msgid "ZodIPv6" +msgstr "" + +msgid "ZodCIDRv4" +msgstr "" + +msgid "ZodCIDRv6" +msgstr "" + +msgid "ZodBase64" +msgstr "" + +msgid "ZodBase64URL" +msgstr "" + +msgid "ZodE164" +msgstr "" + +msgid "ZodJWT" +msgstr "" + +msgid "ZodCustomStringFormat" +msgstr "" + +msgid "ZodNumber" +msgstr "" + +msgid "ZodNumberFormat" +msgstr "" + +msgid "ZodBoolean" +msgstr "" + +msgid "ZodBigInt" +msgstr "" + +msgid "ZodBigIntFormat" +msgstr "" + +msgid "ZodSymbol" +msgstr "" + +msgid "ZodUndefined" +msgstr "" + +msgid "ZodNull" +msgstr "" + +msgid "ZodAny" +msgstr "" + +msgid "ZodUnknown" +msgstr "" + +msgid "ZodNever" +msgstr "" + +msgid "ZodVoid" +msgstr "" + +msgid "ZodDate" +msgstr "" + +msgid "ZodArray" +msgstr "" + +msgid "ZodObject" +msgstr "" + +msgid "ZodUnion" +msgstr "" + +msgid "ZodXor" +msgstr "" + +msgid "ZodDiscriminatedUnion" +msgstr "" + +msgid "ZodIntersection" +msgstr "" + +msgid "ZodTuple" +msgstr "" + +msgid "ZodRecord" +msgstr "" + +msgid "ZodMap" +msgstr "" + +msgid "ZodSet" +msgstr "" + +msgid "ZodEnum" +msgstr "" + +msgid "ZodLiteral" +msgstr "" + +msgid "ZodFile" +msgstr "" + +msgid "ZodTransform" +msgstr "" + +msgid "ZodOptional" +msgstr "" + +msgid "ZodExactOptional" +msgstr "" + +msgid "ZodNullable" +msgstr "" + +msgid "ZodDefault" +msgstr "" + +msgid "ZodPrefault" +msgstr "" + +msgid "ZodNonOptional" +msgstr "" + +msgid "ZodSuccess" +msgstr "" + +msgid "ZodCatch" +msgstr "" + +msgid "ZodNaN" +msgstr "" + +msgid "ZodPipe" +msgstr "" + +msgid "ZodCodec" +msgstr "" + +msgid "ZodReadonly" +msgstr "" + +msgid "ZodTemplateLiteral" +msgstr "" + +msgid "ZodLazy" +msgstr "" + +msgid "ZodPromise" +msgstr "" + +msgid "ZodFunction" +msgstr "" + +msgid "ZodCustom" +msgstr "" + +msgid "arrayExpression" +msgstr "" + +msgid "assignmentExpression" +msgstr "" + +msgid "binaryExpression" +msgstr "" + +msgid "interpreterDirective" +msgstr "" + +msgid "directive" +msgstr "" + +msgid "directiveLiteral" +msgstr "" + +msgid "blockStatement" +msgstr "" + +msgid "breakStatement" +msgstr "" + +msgid "callExpression" +msgstr "" + +msgid "catchClause" +msgstr "" + +msgid "conditionalExpression" +msgstr "" + +msgid "continueStatement" +msgstr "" + +msgid "debuggerStatement" +msgstr "" + +msgid "doWhileStatement" +msgstr "" + +msgid "emptyStatement" +msgstr "" + +msgid "expressionStatement" +msgstr "" + +msgid "file" +msgstr "" + +msgid "forInStatement" +msgstr "" + +msgid "forStatement" +msgstr "" + +msgid "functionDeclaration" +msgstr "" + +msgid "functionExpression" +msgstr "" + +msgid "identifier" +msgstr "" + +msgid "ifStatement" +msgstr "" + +msgid "labeledStatement" +msgstr "" + +msgid "stringLiteral" +msgstr "" + +msgid "numericLiteral" +msgstr "" + +msgid "nullLiteral" +msgstr "" + +msgid "booleanLiteral" +msgstr "" + +msgid "regExpLiteral" +msgstr "" + +msgid "logicalExpression" +msgstr "" + +msgid "memberExpression" +msgstr "" + +msgid "newExpression" +msgstr "" + +msgid "program" +msgstr "" + +msgid "objectExpression" +msgstr "" + +msgid "objectMethod" +msgstr "" + +msgid "objectProperty" +msgstr "" + +msgid "restElement" +msgstr "" + +msgid "returnStatement" +msgstr "" + +msgid "sequenceExpression" +msgstr "" + +msgid "parenthesizedExpression" +msgstr "" + +msgid "switchCase" +msgstr "" + +msgid "switchStatement" +msgstr "" + +msgid "thisExpression" +msgstr "" + +msgid "throwStatement" +msgstr "" + +msgid "tryStatement" +msgstr "" + +msgid "unaryExpression" +msgstr "" + +msgid "updateExpression" +msgstr "" + +msgid "variableDeclaration" +msgstr "" + +msgid "variableDeclarator" +msgstr "" + +msgid "whileStatement" +msgstr "" + +msgid "withStatement" +msgstr "" + +msgid "assignmentPattern" +msgstr "" + +msgid "arrayPattern" +msgstr "" + +msgid "arrowFunctionExpression" +msgstr "" + +msgid "classBody" +msgstr "" + +msgid "classExpression" +msgstr "" + +msgid "classDeclaration" +msgstr "" + +msgid "exportAllDeclaration" +msgstr "" + +msgid "exportDefaultDeclaration" +msgstr "" + +msgid "exportNamedDeclaration" +msgstr "" + +msgid "exportSpecifier" +msgstr "" + +msgid "forOfStatement" +msgstr "" + +msgid "importDeclaration" +msgstr "" + +msgid "importDefaultSpecifier" +msgstr "" + +msgid "importNamespaceSpecifier" +msgstr "" + +msgid "importSpecifier" +msgstr "" + +msgid "importExpression" +msgstr "" + +msgid "metaProperty" +msgstr "" + +msgid "classMethod" +msgstr "" + +msgid "objectPattern" +msgstr "" + +msgid "spreadElement" +msgstr "" + +msgid "super" +msgstr "" + +msgid "taggedTemplateExpression" +msgstr "" + +msgid "templateElement" +msgstr "" + +msgid "templateLiteral" +msgstr "" + +msgid "yieldExpression" +msgstr "" + +msgid "awaitExpression" +msgstr "" + +msgid "import" +msgstr "" + +msgid "bigIntLiteral" +msgstr "" + +msgid "exportNamespaceSpecifier" +msgstr "" + +msgid "optionalMemberExpression" +msgstr "" + +msgid "optionalCallExpression" +msgstr "" + +msgid "classProperty" +msgstr "" + +msgid "classAccessorProperty" +msgstr "" + +msgid "classPrivateProperty" +msgstr "" + +msgid "classPrivateMethod" +msgstr "" + +msgid "privateName" +msgstr "" + +msgid "staticBlock" +msgstr "" + +msgid "importAttribute" +msgstr "" + +msgid "anyTypeAnnotation" +msgstr "" + +msgid "arrayTypeAnnotation" +msgstr "" + +msgid "booleanTypeAnnotation" +msgstr "" + +msgid "booleanLiteralTypeAnnotation" +msgstr "" + +msgid "nullLiteralTypeAnnotation" +msgstr "" + +msgid "classImplements" +msgstr "" + +msgid "declareClass" +msgstr "" + +msgid "declareFunction" +msgstr "" + +msgid "declareInterface" +msgstr "" + +msgid "declareModule" +msgstr "" + +msgid "declareModuleExports" +msgstr "" + +msgid "declareTypeAlias" +msgstr "" + +msgid "declareOpaqueType" +msgstr "" + +msgid "declareVariable" +msgstr "" + +msgid "declareExportDeclaration" +msgstr "" + +msgid "declareExportAllDeclaration" +msgstr "" + +msgid "declaredPredicate" +msgstr "" + +msgid "existsTypeAnnotation" +msgstr "" + +msgid "functionTypeAnnotation" +msgstr "" + +msgid "functionTypeParam" +msgstr "" + +msgid "genericTypeAnnotation" +msgstr "" + +msgid "inferredPredicate" +msgstr "" + +msgid "interfaceExtends" +msgstr "" + +msgid "interfaceDeclaration" +msgstr "" + +msgid "interfaceTypeAnnotation" +msgstr "" + +msgid "intersectionTypeAnnotation" +msgstr "" + +msgid "mixedTypeAnnotation" +msgstr "" + +msgid "emptyTypeAnnotation" +msgstr "" + +msgid "nullableTypeAnnotation" +msgstr "" + +msgid "numberLiteralTypeAnnotation" +msgstr "" + +msgid "numberTypeAnnotation" +msgstr "" + +msgid "objectTypeAnnotation" +msgstr "" + +msgid "objectTypeInternalSlot" +msgstr "" + +msgid "objectTypeCallProperty" +msgstr "" + +msgid "objectTypeIndexer" +msgstr "" + +msgid "objectTypeProperty" +msgstr "" + +msgid "objectTypeSpreadProperty" +msgstr "" + +msgid "opaqueType" +msgstr "" + +msgid "qualifiedTypeIdentifier" +msgstr "" + +msgid "stringLiteralTypeAnnotation" +msgstr "" + +msgid "stringTypeAnnotation" +msgstr "" + +msgid "symbolTypeAnnotation" +msgstr "" + +msgid "thisTypeAnnotation" +msgstr "" + +msgid "tupleTypeAnnotation" +msgstr "" + +msgid "typeofTypeAnnotation" +msgstr "" + +msgid "typeAlias" +msgstr "" + +msgid "typeAnnotation" +msgstr "" + +msgid "typeCastExpression" +msgstr "" + +msgid "typeParameter" +msgstr "" + +msgid "typeParameterDeclaration" +msgstr "" + +msgid "typeParameterInstantiation" +msgstr "" + +msgid "unionTypeAnnotation" +msgstr "" + +msgid "variance" +msgstr "" + +msgid "voidTypeAnnotation" +msgstr "" + +msgid "enumDeclaration" +msgstr "" + +msgid "enumBooleanBody" +msgstr "" + +msgid "enumNumberBody" +msgstr "" + +msgid "enumStringBody" +msgstr "" + +msgid "enumSymbolBody" +msgstr "" + +msgid "enumBooleanMember" +msgstr "" + +msgid "enumNumberMember" +msgstr "" + +msgid "enumStringMember" +msgstr "" + +msgid "enumDefaultedMember" +msgstr "" + +msgid "indexedAccessType" +msgstr "" + +msgid "optionalIndexedAccessType" +msgstr "" + +msgid "jsxAttribute" +msgstr "" + +msgid "jsxClosingElement" +msgstr "" + +msgid "jsxElement" +msgstr "" + +msgid "jsxEmptyExpression" +msgstr "" + +msgid "jsxExpressionContainer" +msgstr "" + +msgid "jsxSpreadChild" +msgstr "" + +msgid "jsxIdentifier" +msgstr "" + +msgid "jsxMemberExpression" +msgstr "" + +msgid "jsxNamespacedName" +msgstr "" + +msgid "jsxOpeningElement" +msgstr "" + +msgid "jsxSpreadAttribute" +msgstr "" + +msgid "jsxText" +msgstr "" + +msgid "jsxFragment" +msgstr "" + +msgid "jsxOpeningFragment" +msgstr "" + +msgid "jsxClosingFragment" +msgstr "" + +msgid "noop" +msgstr "" + +msgid "placeholder" +msgstr "" + +msgid "v8IntrinsicIdentifier" +msgstr "" + +msgid "argumentPlaceholder" +msgstr "" + +msgid "bindExpression" +msgstr "" + +msgid "decorator" +msgstr "" + +msgid "doExpression" +msgstr "" + +msgid "exportDefaultSpecifier" +msgstr "" + +msgid "recordExpression" +msgstr "" + +msgid "tupleExpression" +msgstr "" + +msgid "decimalLiteral" +msgstr "" + +msgid "moduleExpression" +msgstr "" + +msgid "topicReference" +msgstr "" + +msgid "pipelineTopicExpression" +msgstr "" + +msgid "pipelineBareFunction" +msgstr "" + +msgid "pipelinePrimaryTopicReference" +msgstr "" + +msgid "voidPattern" +msgstr "" + +msgid "tsParameterProperty" +msgstr "" + +msgid "tsDeclareFunction" +msgstr "" + +msgid "tsDeclareMethod" +msgstr "" + +msgid "tsQualifiedName" +msgstr "" + +msgid "tsCallSignatureDeclaration" +msgstr "" + +msgid "tsConstructSignatureDeclaration" +msgstr "" + +msgid "tsPropertySignature" +msgstr "" + +msgid "tsMethodSignature" +msgstr "" + +msgid "tsIndexSignature" +msgstr "" + +msgid "tsAnyKeyword" +msgstr "" + +msgid "tsBooleanKeyword" +msgstr "" + +msgid "tsBigIntKeyword" +msgstr "" + +msgid "tsIntrinsicKeyword" +msgstr "" + +msgid "tsNeverKeyword" +msgstr "" + +msgid "tsNullKeyword" +msgstr "" + +msgid "tsNumberKeyword" +msgstr "" + +msgid "tsObjectKeyword" +msgstr "" + +msgid "tsStringKeyword" +msgstr "" + +msgid "tsSymbolKeyword" +msgstr "" + +msgid "tsUndefinedKeyword" +msgstr "" + +msgid "tsUnknownKeyword" +msgstr "" + +msgid "tsVoidKeyword" +msgstr "" + +msgid "tsThisType" +msgstr "" + +msgid "tsFunctionType" +msgstr "" + +msgid "tsConstructorType" +msgstr "" + +msgid "tsTypeReference" +msgstr "" + +msgid "tsTypePredicate" +msgstr "" + +msgid "tsTypeQuery" +msgstr "" + +msgid "tsTypeLiteral" +msgstr "" + +msgid "tsArrayType" +msgstr "" + +msgid "tsTupleType" +msgstr "" + +msgid "tsOptionalType" +msgstr "" + +msgid "tsRestType" +msgstr "" + +msgid "tsNamedTupleMember" +msgstr "" + +msgid "tsUnionType" +msgstr "" + +msgid "tsIntersectionType" +msgstr "" + +msgid "tsConditionalType" +msgstr "" + +msgid "tsInferType" +msgstr "" + +msgid "tsParenthesizedType" +msgstr "" + +msgid "tsTypeOperator" +msgstr "" + +msgid "tsIndexedAccessType" +msgstr "" + +msgid "tsMappedType" +msgstr "" + +msgid "tsTemplateLiteralType" +msgstr "" + +msgid "tsLiteralType" +msgstr "" + +msgid "tsExpressionWithTypeArguments" +msgstr "" + +msgid "tsInterfaceDeclaration" +msgstr "" + +msgid "tsInterfaceBody" +msgstr "" + +msgid "tsTypeAliasDeclaration" +msgstr "" + +msgid "tsInstantiationExpression" +msgstr "" + +msgid "tsAsExpression" +msgstr "" + +msgid "tsSatisfiesExpression" +msgstr "" + +msgid "tsTypeAssertion" +msgstr "" + +msgid "tsEnumBody" +msgstr "" + +msgid "tsEnumDeclaration" +msgstr "" + +msgid "tsEnumMember" +msgstr "" + +msgid "tsModuleDeclaration" +msgstr "" + +msgid "tsModuleBlock" +msgstr "" + +msgid "tsImportType" +msgstr "" + +msgid "tsImportEqualsDeclaration" +msgstr "" + +msgid "tsExternalModuleReference" +msgstr "" + +msgid "tsNonNullExpression" +msgstr "" + +msgid "tsExportAssignment" +msgstr "" + +msgid "tsNamespaceExportDeclaration" +msgstr "" + +msgid "tsTypeAnnotation" +msgstr "" + +msgid "tsTypeParameterInstantiation" +msgstr "" + +msgid "tsTypeParameterDeclaration" +msgstr "" + +msgid "tsTypeParameter" +msgstr "" + msgid "" "Warning: this URL is longer than the 2000 character limit for URL fields." msgstr "" From 56a8f5b8ec9a4abf157cdce90e191119f51fccf7 Mon Sep 17 00:00:00 2001 From: Lucie Laporte Date: Mon, 23 Mar 2026 16:38:55 +0100 Subject: [PATCH 08/13] add i8n --- blog/locale/fr/LC_MESSAGES/django.po | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/blog/locale/fr/LC_MESSAGES/django.po b/blog/locale/fr/LC_MESSAGES/django.po index 8116fef7f..a22357be6 100644 --- a/blog/locale/fr/LC_MESSAGES/django.po +++ b/blog/locale/fr/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2026-03-23 16:30+0100\n" -"PO-Revision-Date: 2025-10-28 13:46+0100\n" +"PO-Revision-Date: 2026-03-23 16:34+0100\n" "Last-Translator: \n" "Language-Team: \n" "Language: fr\n" @@ -85,8 +85,7 @@ msgid "Filter by source" msgstr "Filtrer par source" msgid "The source is the organization of the post author" -msgstr "" -"La source est l’organisation à laquelle appartient l’auteur de l’article" +msgstr "La source est l’organisation à laquelle appartient l’auteur de l’article" msgid "Show filters" msgstr "Afficher les filtres" @@ -161,10 +160,10 @@ msgid "Filters" msgstr "Filtres" msgid "selected" -msgstr "" +msgstr "étiquette sélectionnée" msgid "unselected" -msgstr "" +msgstr "étiquette non-sélectionnée" msgid "Posts" msgstr "Articles" From 4f6db93536515d286d6eedcd1d57b039116ddaa6 Mon Sep 17 00:00:00 2001 From: Lucie Laporte Date: Mon, 23 Mar 2026 17:21:12 +0100 Subject: [PATCH 09/13] fix i8n --- blog/locale/fr/LC_MESSAGES/django.mo | Bin 3280 -> 3388 bytes locale/fr/LC_MESSAGES/djangojs.po | 1019 +------------------------- 2 files changed, 1 insertion(+), 1018 deletions(-) diff --git a/blog/locale/fr/LC_MESSAGES/django.mo b/blog/locale/fr/LC_MESSAGES/django.mo index 4617b74961208faa4c5572340ce48c91d67ccc50..d1fe6eea39638aa9617885cd23dcdf6736092aeb 100644 GIT binary patch delta 952 zcmZ9~Pe_w-9LMpm>{)BJng3Y0Y7Pvl>C$a#q8_3_=&7PEEDJzdnZKW_MB7=bj&*MJ2L`>c50%aIK#G z*B5>vpdI**DXe2vCDes#AH-9bN1gEm>XOak39O(#tOOF#g?Jzv)M;f`F9$lDmZCf1-YU7b zZOZ#wTquUlNBh$~xpX#{%=8cDdRI3>4Z(q0wN$t><(5irvRJEXSYguhYE{?%Y4Ik# I^nb0t0S*3b?EnA( delta 843 zcmXZay-QnB7{~D^Br$1Bj7_Z)jT%reElJ6nHjN;(f?@`Xe?SHY!ATH0wxksoEro(Q zh(*CE;L?)CqFK7=A}9`Zkh-`iE~Sum5&He6E~DD5VK;6$^>y@9KEx27pxRwv(5zxt_klIA znGbF+lVKQJ@dZY(BVYpe|Jj`*9Yvl251sw^2v5gZ%8ksXs*}dX8%U2U&yp$xib{g7Nzf xaVm7XlUTrUe2wpeD@Au!w}Nw>clUW#s=k+@!Bi%l$`<08TrodXYxr8c{{cz3N&Wx; diff --git a/locale/fr/LC_MESSAGES/djangojs.po b/locale/fr/LC_MESSAGES/djangojs.po index b57494ef5..0404b57cd 100644 --- a/locale/fr/LC_MESSAGES/djangojs.po +++ b/locale/fr/LC_MESSAGES/djangojs.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-03-23 16:30+0100\n" +"POT-Creation-Date: 2026-03-05 16:18+0100\n" "PO-Revision-Date: 2025-05-13 12:35+0200\n" "Last-Translator: \n" "Language-Team: \n" @@ -19,1023 +19,6 @@ msgstr "" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "X-Generator: Poedit 3.4.2\n" -msgid "$ZodError" -msgstr "" - -msgid "ZodMiniType" -msgstr "" - -msgid "ZodMiniString" -msgstr "" - -msgid "ZodMiniStringFormat" -msgstr "" - -msgid "ZodMiniNumber" -msgstr "" - -msgid "ZodMiniBoolean" -msgstr "" - -msgid "ZodMiniBigInt" -msgstr "" - -msgid "ZodMiniDate" -msgstr "" - -msgid "ZodMiniISODateTime" -msgstr "" - -msgid "ZodMiniISODate" -msgstr "" - -msgid "ZodMiniISOTime" -msgstr "" - -msgid "ZodMiniISODuration" -msgstr "" - -msgid "ZodISODateTime" -msgstr "" - -msgid "ZodISODate" -msgstr "" - -msgid "ZodISOTime" -msgstr "" - -msgid "ZodISODuration" -msgstr "" - -msgid "ZodError" -msgstr "" - -msgid "ZodType" -msgstr "" - -msgid "_ZodString" -msgstr "" - -msgid "ZodString" -msgstr "" - -msgid "ZodStringFormat" -msgstr "" - -msgid "ZodEmail" -msgstr "" - -msgid "ZodGUID" -msgstr "" - -msgid "ZodUUID" -msgstr "" - -msgid "ZodURL" -msgstr "" - -msgid "ZodEmoji" -msgstr "" - -msgid "ZodNanoID" -msgstr "" - -msgid "ZodCUID" -msgstr "" - -msgid "ZodCUID2" -msgstr "" - -msgid "ZodULID" -msgstr "" - -msgid "ZodXID" -msgstr "" - -msgid "ZodKSUID" -msgstr "" - -msgid "ZodIPv4" -msgstr "" - -msgid "ZodMAC" -msgstr "" - -msgid "ZodIPv6" -msgstr "" - -msgid "ZodCIDRv4" -msgstr "" - -msgid "ZodCIDRv6" -msgstr "" - -msgid "ZodBase64" -msgstr "" - -msgid "ZodBase64URL" -msgstr "" - -msgid "ZodE164" -msgstr "" - -msgid "ZodJWT" -msgstr "" - -msgid "ZodCustomStringFormat" -msgstr "" - -msgid "ZodNumber" -msgstr "" - -msgid "ZodNumberFormat" -msgstr "" - -msgid "ZodBoolean" -msgstr "" - -msgid "ZodBigInt" -msgstr "" - -msgid "ZodBigIntFormat" -msgstr "" - -msgid "ZodSymbol" -msgstr "" - -msgid "ZodUndefined" -msgstr "" - -msgid "ZodNull" -msgstr "" - -msgid "ZodAny" -msgstr "" - -msgid "ZodUnknown" -msgstr "" - -msgid "ZodNever" -msgstr "" - -msgid "ZodVoid" -msgstr "" - -msgid "ZodDate" -msgstr "" - -msgid "ZodArray" -msgstr "" - -msgid "ZodObject" -msgstr "" - -msgid "ZodUnion" -msgstr "" - -msgid "ZodXor" -msgstr "" - -msgid "ZodDiscriminatedUnion" -msgstr "" - -msgid "ZodIntersection" -msgstr "" - -msgid "ZodTuple" -msgstr "" - -msgid "ZodRecord" -msgstr "" - -msgid "ZodMap" -msgstr "" - -msgid "ZodSet" -msgstr "" - -msgid "ZodEnum" -msgstr "" - -msgid "ZodLiteral" -msgstr "" - -msgid "ZodFile" -msgstr "" - -msgid "ZodTransform" -msgstr "" - -msgid "ZodOptional" -msgstr "" - -msgid "ZodExactOptional" -msgstr "" - -msgid "ZodNullable" -msgstr "" - -msgid "ZodDefault" -msgstr "" - -msgid "ZodPrefault" -msgstr "" - -msgid "ZodNonOptional" -msgstr "" - -msgid "ZodSuccess" -msgstr "" - -msgid "ZodCatch" -msgstr "" - -msgid "ZodNaN" -msgstr "" - -msgid "ZodPipe" -msgstr "" - -msgid "ZodCodec" -msgstr "" - -msgid "ZodReadonly" -msgstr "" - -msgid "ZodTemplateLiteral" -msgstr "" - -msgid "ZodLazy" -msgstr "" - -msgid "ZodPromise" -msgstr "" - -msgid "ZodFunction" -msgstr "" - -msgid "ZodCustom" -msgstr "" - -msgid "arrayExpression" -msgstr "" - -msgid "assignmentExpression" -msgstr "" - -msgid "binaryExpression" -msgstr "" - -msgid "interpreterDirective" -msgstr "" - -msgid "directive" -msgstr "" - -msgid "directiveLiteral" -msgstr "" - -msgid "blockStatement" -msgstr "" - -msgid "breakStatement" -msgstr "" - -msgid "callExpression" -msgstr "" - -msgid "catchClause" -msgstr "" - -msgid "conditionalExpression" -msgstr "" - -msgid "continueStatement" -msgstr "" - -msgid "debuggerStatement" -msgstr "" - -msgid "doWhileStatement" -msgstr "" - -msgid "emptyStatement" -msgstr "" - -msgid "expressionStatement" -msgstr "" - -msgid "file" -msgstr "" - -msgid "forInStatement" -msgstr "" - -msgid "forStatement" -msgstr "" - -msgid "functionDeclaration" -msgstr "" - -msgid "functionExpression" -msgstr "" - -msgid "identifier" -msgstr "" - -msgid "ifStatement" -msgstr "" - -msgid "labeledStatement" -msgstr "" - -msgid "stringLiteral" -msgstr "" - -msgid "numericLiteral" -msgstr "" - -msgid "nullLiteral" -msgstr "" - -msgid "booleanLiteral" -msgstr "" - -msgid "regExpLiteral" -msgstr "" - -msgid "logicalExpression" -msgstr "" - -msgid "memberExpression" -msgstr "" - -msgid "newExpression" -msgstr "" - -msgid "program" -msgstr "" - -msgid "objectExpression" -msgstr "" - -msgid "objectMethod" -msgstr "" - -msgid "objectProperty" -msgstr "" - -msgid "restElement" -msgstr "" - -msgid "returnStatement" -msgstr "" - -msgid "sequenceExpression" -msgstr "" - -msgid "parenthesizedExpression" -msgstr "" - -msgid "switchCase" -msgstr "" - -msgid "switchStatement" -msgstr "" - -msgid "thisExpression" -msgstr "" - -msgid "throwStatement" -msgstr "" - -msgid "tryStatement" -msgstr "" - -msgid "unaryExpression" -msgstr "" - -msgid "updateExpression" -msgstr "" - -msgid "variableDeclaration" -msgstr "" - -msgid "variableDeclarator" -msgstr "" - -msgid "whileStatement" -msgstr "" - -msgid "withStatement" -msgstr "" - -msgid "assignmentPattern" -msgstr "" - -msgid "arrayPattern" -msgstr "" - -msgid "arrowFunctionExpression" -msgstr "" - -msgid "classBody" -msgstr "" - -msgid "classExpression" -msgstr "" - -msgid "classDeclaration" -msgstr "" - -msgid "exportAllDeclaration" -msgstr "" - -msgid "exportDefaultDeclaration" -msgstr "" - -msgid "exportNamedDeclaration" -msgstr "" - -msgid "exportSpecifier" -msgstr "" - -msgid "forOfStatement" -msgstr "" - -msgid "importDeclaration" -msgstr "" - -msgid "importDefaultSpecifier" -msgstr "" - -msgid "importNamespaceSpecifier" -msgstr "" - -msgid "importSpecifier" -msgstr "" - -msgid "importExpression" -msgstr "" - -msgid "metaProperty" -msgstr "" - -msgid "classMethod" -msgstr "" - -msgid "objectPattern" -msgstr "" - -msgid "spreadElement" -msgstr "" - -msgid "super" -msgstr "" - -msgid "taggedTemplateExpression" -msgstr "" - -msgid "templateElement" -msgstr "" - -msgid "templateLiteral" -msgstr "" - -msgid "yieldExpression" -msgstr "" - -msgid "awaitExpression" -msgstr "" - -msgid "import" -msgstr "" - -msgid "bigIntLiteral" -msgstr "" - -msgid "exportNamespaceSpecifier" -msgstr "" - -msgid "optionalMemberExpression" -msgstr "" - -msgid "optionalCallExpression" -msgstr "" - -msgid "classProperty" -msgstr "" - -msgid "classAccessorProperty" -msgstr "" - -msgid "classPrivateProperty" -msgstr "" - -msgid "classPrivateMethod" -msgstr "" - -msgid "privateName" -msgstr "" - -msgid "staticBlock" -msgstr "" - -msgid "importAttribute" -msgstr "" - -msgid "anyTypeAnnotation" -msgstr "" - -msgid "arrayTypeAnnotation" -msgstr "" - -msgid "booleanTypeAnnotation" -msgstr "" - -msgid "booleanLiteralTypeAnnotation" -msgstr "" - -msgid "nullLiteralTypeAnnotation" -msgstr "" - -msgid "classImplements" -msgstr "" - -msgid "declareClass" -msgstr "" - -msgid "declareFunction" -msgstr "" - -msgid "declareInterface" -msgstr "" - -msgid "declareModule" -msgstr "" - -msgid "declareModuleExports" -msgstr "" - -msgid "declareTypeAlias" -msgstr "" - -msgid "declareOpaqueType" -msgstr "" - -msgid "declareVariable" -msgstr "" - -msgid "declareExportDeclaration" -msgstr "" - -msgid "declareExportAllDeclaration" -msgstr "" - -msgid "declaredPredicate" -msgstr "" - -msgid "existsTypeAnnotation" -msgstr "" - -msgid "functionTypeAnnotation" -msgstr "" - -msgid "functionTypeParam" -msgstr "" - -msgid "genericTypeAnnotation" -msgstr "" - -msgid "inferredPredicate" -msgstr "" - -msgid "interfaceExtends" -msgstr "" - -msgid "interfaceDeclaration" -msgstr "" - -msgid "interfaceTypeAnnotation" -msgstr "" - -msgid "intersectionTypeAnnotation" -msgstr "" - -msgid "mixedTypeAnnotation" -msgstr "" - -msgid "emptyTypeAnnotation" -msgstr "" - -msgid "nullableTypeAnnotation" -msgstr "" - -msgid "numberLiteralTypeAnnotation" -msgstr "" - -msgid "numberTypeAnnotation" -msgstr "" - -msgid "objectTypeAnnotation" -msgstr "" - -msgid "objectTypeInternalSlot" -msgstr "" - -msgid "objectTypeCallProperty" -msgstr "" - -msgid "objectTypeIndexer" -msgstr "" - -msgid "objectTypeProperty" -msgstr "" - -msgid "objectTypeSpreadProperty" -msgstr "" - -msgid "opaqueType" -msgstr "" - -msgid "qualifiedTypeIdentifier" -msgstr "" - -msgid "stringLiteralTypeAnnotation" -msgstr "" - -msgid "stringTypeAnnotation" -msgstr "" - -msgid "symbolTypeAnnotation" -msgstr "" - -msgid "thisTypeAnnotation" -msgstr "" - -msgid "tupleTypeAnnotation" -msgstr "" - -msgid "typeofTypeAnnotation" -msgstr "" - -msgid "typeAlias" -msgstr "" - -msgid "typeAnnotation" -msgstr "" - -msgid "typeCastExpression" -msgstr "" - -msgid "typeParameter" -msgstr "" - -msgid "typeParameterDeclaration" -msgstr "" - -msgid "typeParameterInstantiation" -msgstr "" - -msgid "unionTypeAnnotation" -msgstr "" - -msgid "variance" -msgstr "" - -msgid "voidTypeAnnotation" -msgstr "" - -msgid "enumDeclaration" -msgstr "" - -msgid "enumBooleanBody" -msgstr "" - -msgid "enumNumberBody" -msgstr "" - -msgid "enumStringBody" -msgstr "" - -msgid "enumSymbolBody" -msgstr "" - -msgid "enumBooleanMember" -msgstr "" - -msgid "enumNumberMember" -msgstr "" - -msgid "enumStringMember" -msgstr "" - -msgid "enumDefaultedMember" -msgstr "" - -msgid "indexedAccessType" -msgstr "" - -msgid "optionalIndexedAccessType" -msgstr "" - -msgid "jsxAttribute" -msgstr "" - -msgid "jsxClosingElement" -msgstr "" - -msgid "jsxElement" -msgstr "" - -msgid "jsxEmptyExpression" -msgstr "" - -msgid "jsxExpressionContainer" -msgstr "" - -msgid "jsxSpreadChild" -msgstr "" - -msgid "jsxIdentifier" -msgstr "" - -msgid "jsxMemberExpression" -msgstr "" - -msgid "jsxNamespacedName" -msgstr "" - -msgid "jsxOpeningElement" -msgstr "" - -msgid "jsxSpreadAttribute" -msgstr "" - -msgid "jsxText" -msgstr "" - -msgid "jsxFragment" -msgstr "" - -msgid "jsxOpeningFragment" -msgstr "" - -msgid "jsxClosingFragment" -msgstr "" - -msgid "noop" -msgstr "" - -msgid "placeholder" -msgstr "" - -msgid "v8IntrinsicIdentifier" -msgstr "" - -msgid "argumentPlaceholder" -msgstr "" - -msgid "bindExpression" -msgstr "" - -msgid "decorator" -msgstr "" - -msgid "doExpression" -msgstr "" - -msgid "exportDefaultSpecifier" -msgstr "" - -msgid "recordExpression" -msgstr "" - -msgid "tupleExpression" -msgstr "" - -msgid "decimalLiteral" -msgstr "" - -msgid "moduleExpression" -msgstr "" - -msgid "topicReference" -msgstr "" - -msgid "pipelineTopicExpression" -msgstr "" - -msgid "pipelineBareFunction" -msgstr "" - -msgid "pipelinePrimaryTopicReference" -msgstr "" - -msgid "voidPattern" -msgstr "" - -msgid "tsParameterProperty" -msgstr "" - -msgid "tsDeclareFunction" -msgstr "" - -msgid "tsDeclareMethod" -msgstr "" - -msgid "tsQualifiedName" -msgstr "" - -msgid "tsCallSignatureDeclaration" -msgstr "" - -msgid "tsConstructSignatureDeclaration" -msgstr "" - -msgid "tsPropertySignature" -msgstr "" - -msgid "tsMethodSignature" -msgstr "" - -msgid "tsIndexSignature" -msgstr "" - -msgid "tsAnyKeyword" -msgstr "" - -msgid "tsBooleanKeyword" -msgstr "" - -msgid "tsBigIntKeyword" -msgstr "" - -msgid "tsIntrinsicKeyword" -msgstr "" - -msgid "tsNeverKeyword" -msgstr "" - -msgid "tsNullKeyword" -msgstr "" - -msgid "tsNumberKeyword" -msgstr "" - -msgid "tsObjectKeyword" -msgstr "" - -msgid "tsStringKeyword" -msgstr "" - -msgid "tsSymbolKeyword" -msgstr "" - -msgid "tsUndefinedKeyword" -msgstr "" - -msgid "tsUnknownKeyword" -msgstr "" - -msgid "tsVoidKeyword" -msgstr "" - -msgid "tsThisType" -msgstr "" - -msgid "tsFunctionType" -msgstr "" - -msgid "tsConstructorType" -msgstr "" - -msgid "tsTypeReference" -msgstr "" - -msgid "tsTypePredicate" -msgstr "" - -msgid "tsTypeQuery" -msgstr "" - -msgid "tsTypeLiteral" -msgstr "" - -msgid "tsArrayType" -msgstr "" - -msgid "tsTupleType" -msgstr "" - -msgid "tsOptionalType" -msgstr "" - -msgid "tsRestType" -msgstr "" - -msgid "tsNamedTupleMember" -msgstr "" - -msgid "tsUnionType" -msgstr "" - -msgid "tsIntersectionType" -msgstr "" - -msgid "tsConditionalType" -msgstr "" - -msgid "tsInferType" -msgstr "" - -msgid "tsParenthesizedType" -msgstr "" - -msgid "tsTypeOperator" -msgstr "" - -msgid "tsIndexedAccessType" -msgstr "" - -msgid "tsMappedType" -msgstr "" - -msgid "tsTemplateLiteralType" -msgstr "" - -msgid "tsLiteralType" -msgstr "" - -msgid "tsExpressionWithTypeArguments" -msgstr "" - -msgid "tsInterfaceDeclaration" -msgstr "" - -msgid "tsInterfaceBody" -msgstr "" - -msgid "tsTypeAliasDeclaration" -msgstr "" - -msgid "tsInstantiationExpression" -msgstr "" - -msgid "tsAsExpression" -msgstr "" - -msgid "tsSatisfiesExpression" -msgstr "" - -msgid "tsTypeAssertion" -msgstr "" - -msgid "tsEnumBody" -msgstr "" - -msgid "tsEnumDeclaration" -msgstr "" - -msgid "tsEnumMember" -msgstr "" - -msgid "tsModuleDeclaration" -msgstr "" - -msgid "tsModuleBlock" -msgstr "" - -msgid "tsImportType" -msgstr "" - -msgid "tsImportEqualsDeclaration" -msgstr "" - -msgid "tsExternalModuleReference" -msgstr "" - -msgid "tsNonNullExpression" -msgstr "" - -msgid "tsExportAssignment" -msgstr "" - -msgid "tsNamespaceExportDeclaration" -msgstr "" - -msgid "tsTypeAnnotation" -msgstr "" - -msgid "tsTypeParameterInstantiation" -msgstr "" - -msgid "tsTypeParameterDeclaration" -msgstr "" - -msgid "tsTypeParameter" -msgstr "" - msgid "" "Warning: this URL is longer than the 2000 character limit for URL fields." msgstr "" From eed16ad2d2a8cc8c4cef124d5151a110e1a0df4a Mon Sep 17 00:00:00 2001 From: Lucie Laporte Date: Thu, 26 Mar 2026 13:51:37 +0100 Subject: [PATCH 10/13] regenerate migrations after rebase --- ..._body_alter_blogindexpage_body_and_more.py | 5435 ----------------- ...ogindexpage_body_alter_contentpage_body.py | 4127 ------------- ...rypage_body_alter_eventsindexpage_body.py} | 4 +- 3 files changed, 2 insertions(+), 9564 deletions(-) delete mode 100644 blog/migrations/0059_alter_blogentrypage_body_alter_blogindexpage_body_and_more.py delete mode 100644 content_manager/migrations/0075_alter_catalogindexpage_body_alter_contentpage_body.py rename events/migrations/{0031_alter_evententrypage_body_alter_eventsindexpage_body.py => 0032_alter_evententrypage_body_alter_eventsindexpage_body.py} (99%) diff --git a/blog/migrations/0059_alter_blogentrypage_body_alter_blogindexpage_body_and_more.py b/blog/migrations/0059_alter_blogentrypage_body_alter_blogindexpage_body_and_more.py deleted file mode 100644 index f7db12e7f..000000000 --- a/blog/migrations/0059_alter_blogentrypage_body_alter_blogindexpage_body_and_more.py +++ /dev/null @@ -1,5435 +0,0 @@ -# Generated by Django 6.0.3 on 2026-03-23 15:24 - -import content_manager.validators -import django.core.validators -import re -import wagtail.fields -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ("blog", "0058_invert_hero_text_position"), - ] - - operations = [ - migrations.AlterField( - model_name="blogentrypage", - name="body", - field=wagtail.fields.StreamField( - [ - ("paragraph", 0), - ("image", 9), - ("imageandtext", 23), - ("table", 27), - ("alert", 32), - ("text_cta", 41), - ("video", 48), - ("transcription", 49), - ("badges_list", 54), - ("tags_list", 60), - ("buttons_list", 63), - ("link", 64), - ("accordions", 67), - ("callout", 71), - ("highlight", 74), - ("quote", 79), - ("stepper", 86), - ("card", 104), - ("tile", 115), - ("tabs", 156), - ("markdown", 157), - ("iframe", 158), - ("html", 159), - ("anchor", 160), - ("separator", 161), - ("multicolumns", 172), - ("item_grid", 176), - ("fullwidthbackground", 181), - ("fullwidthbackgroundwithsidemenu", 188), - ("subpageslist", 189), - ("blog_recent_entries", 190), - ("events_recent_entries", 191), - ("layout_richtext", 195), - ("image_text_grid_section", 206), - ("image_text_cta_section", 210), - ("cta_section", 213), - ("spotlight_section", 217), - ("accordion_section", 219), - ], - blank=True, - block_lookup={ - 0: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text"}), - 1: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": False}), - 2: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("h2", "Heading 2"), - ("h3", "Heading 3"), - ("h4", "Heading 4"), - ("h5", "Heading 5"), - ("h6", "Heading 6"), - ("p", "Paragraph"), - ], - "help_text": "Adapt to the page layout. Defaults to heading 3.", - "label": "Heading level", - "required": False, - }, - ), - 3: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image"}), - 4: ( - "wagtail.blocks.CharBlock", - (), - {"label": "Alternative text (textual description of the image)", "required": False}, - ), - 5: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("fr-content-media--sm", "Small"), - ("", "Medium"), - ("fr-content-media--lg", "Large"), - ], - "label": "Witdh", - "required": False, - }, - ), - 6: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("fr-ratio-32x9", "32x9"), - ("fr-ratio-16x9", "16x9"), - ("fr-ratio-3x2", "3x2"), - ("fr-ratio-4x3", "4x3"), - ("fr-ratio-1x1", "1x1"), - ("fr-ratio-3x4", "3x4"), - ("fr-ratio-2x3", "2x3"), - ], - "label": "Image ratio", - "required": False, - }, - ), - 7: ("wagtail.blocks.CharBlock", (), {"label": "Caption", "required": False}), - 8: ("wagtail.blocks.URLBlock", (), {"label": "Link", "required": False}), - 9: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 1), - ("heading_tag", 2), - ("image", 3), - ("alt", 4), - ("width", 5), - ("image_ratio", 6), - ("caption", 7), - ("url", 8), - ] - ], - {"label": "Centered image"}, - ), - 10: ("wagtail.images.blocks.ImageBlock", [], {"label": "Image"}), - 11: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("left", "Left (displayed above text in mobile view)"), - ("left_below", "Left (displayed below text in mobile view)"), - ("right", "Right (displayed below text in mobile view)"), - ("right_above", "Right (displayed above text in mobile view)"), - ], - "label": "Image position", - }, - ), - 12: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("3", "3/12"), ("4", "4/12"), ("5", "5/12"), ("6", "6/12")], - "label": "Image width", - }, - ), - 13: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("page", "Page"), - ("external_url", "External URL"), - ("document", "Document"), - ("anchor", "Anchor link"), - ], - "help_text": "Select the type of link.", - "label": "Link type", - "required": False, - }, - ), - 14: ( - "wagtail.blocks.PageChooserBlock", - (), - { - "help_text": "Link to a page of this site. Use either this, the document, or the external URL parameter.", - "label": "Page", - "required": False, - }, - ), - 15: ( - "wagtail.documents.blocks.DocumentChooserBlock", - (), - { - "help_text": "Use either this, the external URL or the page parameter.", - "label": "Document", - "required": False, - }, - ), - 16: ( - "wagtail.blocks.URLBlock", - (), - { - "help_text": "Use either this, the document or the page parameter.", - "label": "External URL", - "required": False, - }, - ), - 17: ( - "wagtail.blocks.CharBlock", - (), - { - "default": "", - "help_text": "Link to an anchor block on the page. Allowed characters: A-Z, a-z, 0-9, - and _.", - "label": "Anchor ID", - "required": False, - "validators": [ - django.core.validators.RegexValidator( - re.compile("^[-a-zA-Z0-9_]+\\Z"), - "Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.", - "invalid", - ) - ], - }, - ), - 18: ( - "wagtail.blocks.CharBlock", - (), - { - "default": "", - "help_text": "Extra query parameters at the end of the link, e.g. filtering options.", - "label": "Extra query parameters", - "required": False, - "validators": [content_manager.validators.validate_query_string], - }, - ), - 19: ("wagtail.blocks.CharBlock", (), {"label": "Link label", "required": False}), - 20: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("", "No icon"), - ("fr-icon-arrow-right-line fr-link--icon-right", "Icon on the right side"), - ("fr-icon-arrow-right-line fr-link--icon-left", "Icon on the left side"), - ], - "help_text": "Only used for internal links.", - "label": "Icon", - "required": False, - }, - ), - 21: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("fr-link--sm", "Small"), ("", "Medium"), ("fr-link--lg", "Large")], - "label": "Size", - "required": False, - }, - ), - 22: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ("text", 19), - ("icon", 20), - ("size", 21), - ] - ], - { - "help_text": "The link is shown at the bottom of the text block, with an arrow", - "label": "Link", - "required": False, - }, - ), - 23: ( - "wagtail.blocks.StructBlock", - [[("image", 10), ("image_side", 11), ("image_ratio", 12), ("text", 0), ("link", 22)]], - {"label": "Image and text"}, - ), - 24: ("wagtail.blocks.CharBlock", (), {"label": "Row heading", "required": False}), - 25: ( - "wagtail.blocks.RichTextBlock", - (), - { - "features": [ - "bold", - "italic", - "link", - "document-link", - "superscript", - "subscript", - "strikethrough", - "text-left", - "text-center", - "text-right", - ], - "label": "Text", - "required": False, - }, - ), - 26: ("wagtail.images.blocks.ImageBlock", [], {"label": "Pictogram"}), - 27: ( - "wagtail.contrib.typed_table_block.blocks.TypedTableBlock", - [[("row_heading", 24), ("text", 25), ("pictogram", 26)]], - {"label": "Table"}, - ), - 28: ("wagtail.blocks.CharBlock", (), {"label": "Message title", "required": False}), - 29: ("wagtail.blocks.TextBlock", (), {"label": "Message text", "required": False}), - 30: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("error", "Error"), - ("success", "Success"), - ("info", "Information"), - ("warning", "Warning"), - ], - "label": "Message type", - }, - ), - 31: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("h2", "Heading 2"), - ("h3", "Heading 3"), - ("h4", "Heading 4"), - ("h5", "Heading 5"), - ("h6", "Heading 6"), - ("p", "Paragraph"), - ], - "help_text": "Adapt to the page layout. Defaults to heading 3.", - "label": "Heading level", - }, - ), - 32: ( - "wagtail.blocks.StructBlock", - [[("title", 28), ("description", 29), ("level", 30), ("heading_tag", 31)]], - {"label": "Alert message"}, - ), - 33: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text", "required": False}), - 34: ("wagtail.blocks.CharBlock", (), {"label": "Button label", "required": False}), - 35: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("fr-btn", "Primary"), - ("fr-btn fr-btn--secondary", "Secundary"), - ("fr-btn fr-btn--tertiary", "Tertiary"), - ("fr-btn fr-btn--tertiary-no-outline", "Tertiary without border"), - ], - "label": "Button type", - "required": False, - }, - ), - 36: ( - "content_manager.blocks.buttons_links.IconPickerBlock", - (), - {"label": "Icon", "required": False}, - ), - 37: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")], - "label": "Icon side", - "required": False, - }, - ), - 38: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ("text", 34), - ("button_type", 35), - ("icon_class", 36), - ("icon_side", 37), - ] - ], - {"label": "Button"}, - ), - 39: ( - "wagtail.blocks.StreamBlock", - [[("button", 38)]], - { - "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", - "label": "Buttons", - }, - ), - 40: ( - "wagtail.blocks.StreamBlock", - [[("buttons", 39)]], - {"label": "Call-to-action buttons", "max_num": 1, "required": False}, - ), - 41: ( - "wagtail.blocks.StructBlock", - [[("text", 33), ("cta_buttons", 40)]], - {"label": "Text and call to action"}, - ), - 42: ("wagtail.blocks.CharBlock", (), {"label": "Video title", "required": False}), - 43: ( - "wagtail.blocks.URLBlock", - (), - { - "help_text": "Use embed format, with a version that doesn't require a consent banner if available. (e.g. : https://www.youtube-nocookie.com/embed/gLzXOViPX-0) For Youtube, use Embed video and check Enable privacy-enhanced mode.", - "label": "Video URL", - }, - ), - 44: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("fr-ratio-16x9", "16x9"), ("fr-ratio-4x3", "4x3"), ("fr-ratio-1x1", "1x1")], - "label": "Video ratio", - "required": False, - }, - ), - 45: ( - "wagtail.blocks.CharBlock", - (), - {"default": "Transcription", "label": "Title", "required": False}, - ), - 46: ("wagtail.blocks.RichTextBlock", (), {"label": "Transcription content", "required": False}), - 47: ( - "wagtail.blocks.StructBlock", - [[("title", 45), ("content", 46)]], - {"label": "Transcription", "required": False}, - ), - 48: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 42), - ("caption", 7), - ("url", 43), - ("width", 5), - ("video_ratio", 44), - ("transcription", 47), - ] - ], - {"label": "Video"}, - ), - 49: ("wagtail.blocks.StructBlock", [[("title", 45), ("content", 46)]], {"label": "Transcription"}), - 50: ("wagtail.blocks.CharBlock", (), {"label": "Badge label", "required": False}), - 51: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("", [("new", "New"), ("grey", "Grey")]), - ( - "System colors", - [ - ("info", "Info"), - ("success", "Success"), - ("warning", "Warning"), - ("error", "Error"), - ], - ), - ( - "Illustration colors", - [ - ("green-tilleul-verveine", "Tilleul verveine"), - ("green-bourgeon", "Bourgeon"), - ("green-emeraude", "Émeraude"), - ("green-menthe", "Menthe"), - ("green-archipel", "Archipel"), - ("blue-ecume", "Écume"), - ("blue-cumulus", "Cumulus"), - ("purple-glycine", "Glycine"), - ("pink-macaron", "Macaron"), - ("pink-tuile", "Tuile"), - ("yellow-tournesol", "Tournesol"), - ("yellow-moutarde", "Moutarde"), - ("orange-terre-battue", "Terre battue"), - ("brown-cafe-creme", "Café crème"), - ("brown-caramel", "Caramel"), - ("brown-opera", "Opéra"), - ("beige-gris-galet", "Gris galet"), - ], - ), - ], - "label": "Badge color", - "required": False, - }, - ), - 52: ("wagtail.blocks.BooleanBlock", (), {"label": "Hide badge icon", "required": False}), - 53: ( - "wagtail.blocks.StructBlock", - [[("text", 50), ("color", 51), ("hide_icon", 52)]], - {"label": "Badge"}, - ), - 54: ("wagtail.blocks.StreamBlock", [[("badge", 53)]], {"label": "Badge list"}), - 55: ("wagtail.blocks.CharBlock", (), {"label": "Title"}), - 56: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tag", "required": False}), - 57: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("green-tilleul-verveine", "Tilleul verveine"), - ("green-bourgeon", "Bourgeon"), - ("green-emeraude", "Émeraude"), - ("green-menthe", "Menthe"), - ("green-archipel", "Archipel"), - ("blue-ecume", "Écume"), - ("blue-cumulus", "Cumulus"), - ("purple-glycine", "Glycine"), - ("pink-macaron", "Macaron"), - ("pink-tuile", "Tuile"), - ("yellow-tournesol", "Tournesol"), - ("yellow-moutarde", "Moutarde"), - ("orange-terre-battue", "Terre battue"), - ("brown-cafe-creme", "Café crème"), - ("brown-caramel", "Caramel"), - ("brown-opera", "Opéra"), - ("beige-gris-galet", "Gris galet"), - ], - "help_text": "Only for clickable tags", - "label": "Tag color", - "required": False, - }, - ), - 58: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ] - ], - {"required": False}, - ), - 59: ( - "wagtail.blocks.StructBlock", - [[("label", 55), ("is_small", 56), ("color", 57), ("icon_class", 36), ("link", 58)]], - {"label": "Tag"}, - ), - 60: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {"label": "Tag list"}), - 61: ( - "wagtail.blocks.StreamBlock", - [[("button", 38)]], - { - "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", - "label": "Buttons", - }, - ), - 62: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("", "Left"), - ("fr-btns-group--center", "Center"), - ("fr-btns-group--right", "Right"), - ( - "fr-btns-group--right fr-btns-group--inline-reverse", - "Right (reverse order on desktop)", - ), - ], - "label": "Position", - "required": False, - }, - ), - 63: ( - "wagtail.blocks.StructBlock", - [[("buttons", 61), ("position", 62)]], - {"label": "Button list"}, - ), - 64: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ("text", 19), - ("icon", 20), - ("size", 21), - ] - ], - {"label": "Single link"}, - ), - 65: ("wagtail.blocks.RichTextBlock", (), {"label": "Content"}), - 66: ( - "wagtail.blocks.StructBlock", - [[("title", 55), ("content", 65)]], - {"label": "Accordion", "max_num": 15, "min_num": 1}, - ), - 67: ( - "wagtail.blocks.StreamBlock", - [[("title", 55), ("accordion", 66)]], - {"group": "2. DSFR components", "label": "Accordions"}, - ), - 68: ( - "wagtail.blocks.RichTextBlock", - (), - { - "features": [ - "bold", - "italic", - "link", - "document-link", - "superscript", - "subscript", - "strikethrough", - "text-left", - "text-center", - "text-right", - ], - "label": "Content", - "required": False, - }, - ), - 69: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ("text", 34), - ("button_type", 35), - ("icon_class", 36), - ("icon_side", 37), - ] - ], - {"label": "Button", "required": False}, - ), - 70: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("green-tilleul-verveine", "Tilleul verveine"), - ("green-bourgeon", "Bourgeon"), - ("green-emeraude", "Émeraude"), - ("green-menthe", "Menthe"), - ("green-archipel", "Archipel"), - ("blue-ecume", "Écume"), - ("blue-cumulus", "Cumulus"), - ("purple-glycine", "Glycine"), - ("pink-macaron", "Macaron"), - ("pink-tuile", "Tuile"), - ("yellow-tournesol", "Tournesol"), - ("yellow-moutarde", "Moutarde"), - ("orange-terre-battue", "Terre battue"), - ("brown-cafe-creme", "Café crème"), - ("brown-caramel", "Caramel"), - ("brown-opera", "Opéra"), - ("beige-gris-galet", "Gris galet"), - ], - "label": "Color", - "required": False, - }, - ), - 71: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 1), - ("heading_tag", 31), - ("icon_class", 36), - ("text", 68), - ("button", 69), - ("color", 70), - ] - ], - {"group": "2. DSFR components", "label": "Callout"}, - ), - 72: ( - "wagtail.blocks.RichTextBlock", - (), - { - "features": [ - "bold", - "italic", - "link", - "document-link", - "superscript", - "subscript", - "strikethrough", - "text-left", - "text-center", - "text-right", - ], - "label": "Content", - }, - ), - 73: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("fr-text--sm", "Small"), ("", "Medium"), ("fr-text--lg", "Large")], - "label": "Size", - "required": False, - }, - ), - 74: ( - "wagtail.blocks.StructBlock", - [[("text", 72), ("color", 70), ("size", 73)]], - {"group": "2. DSFR components", "label": "Highlight"}, - ), - 75: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image", "required": False}), - 76: ("wagtail.blocks.CharBlock", (), {"label": "Quote"}), - 77: ("wagtail.blocks.CharBlock", (), {"label": "Author name", "required": False}), - 78: ("wagtail.blocks.CharBlock", (), {"label": "Author title", "required": False}), - 79: ( - "wagtail.blocks.StructBlock", - [[("image", 75), ("quote", 76), ("author_name", 77), ("author_title", 78), ("color", 70)]], - {"group": "2. DSFR components", "label": "Quote"}, - ), - 80: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("h2", "Heading 2"), - ("h3", "Heading 3"), - ("h4", "Heading 4"), - ("h5", "Heading 5"), - ("h6", "Heading 6"), - ("p", "Paragraph"), - ], - "help_text": "Adapt to the page layout. Defaults to heading 2.", - "label": "Heading level", - }, - ), - 81: ( - "wagtail.blocks.IntegerBlock", - (), - {"label": "Number of steps", "max_value": 8, "min_value": 1}, - ), - 82: ("wagtail.blocks.IntegerBlock", (), {"label": "Current step", "max_value": 8, "min_value": 1}), - 83: ("wagtail.blocks.TextBlock", (), {"label": "Detail", "required": False}), - 84: ("wagtail.blocks.StructBlock", [[("title", 55), ("detail", 83)]], {"label": "Step"}), - 85: ("wagtail.blocks.StreamBlock", [[("step", 84)]], {"label": "Steps"}), - 86: ( - "wagtail.blocks.StructBlock", - [[("title", 55), ("heading_tag", 80), ("total", 81), ("current", 82), ("steps", 85)]], - {"group": "2. DSFR components", "label": "Stepper"}, - ), - 87: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("fr-card--horizontal-tier", "1/3"), ("fr-card--horizontal-half", "50/50")], - "label": "Image ratio", - "required": False, - }, - ), - 88: ( - "wagtail.blocks.StreamBlock", - [[("badge", 53)]], - { - "help_text": "Only used if the card has an image.", - "label": "Image area badge", - "max_num": 1, - "required": False, - }, - ), - 89: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ] - ], - { - "collapsed": False, - "help_text": "Link for the whole card. If a call-to-action is present, the link will display on the title only.", - "label": "Link", - "required": False, - }, - ), - 90: ("wagtail.blocks.CharBlock", (), {"label": "Top detail: text", "required": False}), - 91: ( - "content_manager.blocks.buttons_links.IconPickerBlock", - (), - {"label": "Top detail: icon", "required": False}, - ), - 92: ("wagtail.blocks.StreamBlock", [[("badge", 53)]], {}), - 93: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {}), - 94: ( - "wagtail.blocks.StreamBlock", - [[("badges", 92), ("tags", 93)]], - {"label": "Top detail: badges or tags", "max_num": 1, "required": False}, - ), - 95: ( - "wagtail.blocks.CharBlock", - (), - { - "help_text": "Incompatible with the bottom call-to-action. If the card links to a downloadable document, the values are pre-filled.", - "label": "Bottom detail: text", - "required": False, - }, - ), - 96: ( - "content_manager.blocks.buttons_links.IconPickerBlock", - (), - {"label": "Bottom detail: icon", "required": False}, - ), - 97: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ("text", 19), - ] - ], - {"label": "Link"}, - ), - 98: ("wagtail.blocks.StreamBlock", [[("link", 97)]], {"label": "Links"}), - 99: ( - "wagtail.blocks.StreamBlock", - [[("links", 98), ("buttons", 39)]], - { - "help_text": "Incompatible with the bottom detail text. Allow you to add link or button.", - "label": "Bottom call-to-action: links or buttons", - "max_num": 1, - "required": False, - }, - ), - 100: ( - "wagtail.blocks.BooleanBlock", - (), - {"label": "Card with grey background", "required": False}, - ), - 101: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without background", "required": False}), - 102: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without border", "required": False}), - 103: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with a shadow", "required": False}), - 104: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 55), - ("heading_tag", 31), - ("description", 68), - ("image", 10), - ("image_ratio", 87), - ("image_badge", 88), - ("link", 89), - ("top_detail_text", 90), - ("top_detail_icon", 91), - ("top_detail_badges_tags", 94), - ("bottom_detail_text", 95), - ("bottom_detail_icon", 96), - ("call_to_action", 99), - ("grey_background", 100), - ("no_background", 101), - ("no_border", 102), - ("shadow", 103), - ] - ], - {"group": "2. DSFR components", "label": "Horizontal card"}, - ), - 105: ( - "wagtail.blocks.RichTextBlock", - (), - { - "features": ["bold", "italic", "superscript", "subscript", "strikethrough"], - "label": "Content", - "required": False, - }, - ), - 106: ( - "wagtail.images.blocks.ImageChooserBlock", - (), - {"help_text": "Prefer SVG files.", "label": "Image", "required": False}, - ), - 107: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ] - ], - {"label": "Link", "required": False}, - ), - 108: ( - "wagtail.blocks.CharBlock", - (), - { - "help_text": "If the tile links to a downloadable document, the values are pre-filled.", - "label": "Detail text", - "required": False, - }, - ), - 109: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tile", "required": False}), - 110: ( - "wagtail.blocks.BooleanBlock", - (), - {"label": "Tile with grey background", "required": False}, - ), - 111: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without background", "required": False}), - 112: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without border", "required": False}), - 113: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with a shadow", "required": False}), - 114: ("wagtail.blocks.BooleanBlock", (), {"label": "Horizontal tile", "required": False}), - 115: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 55), - ("heading_tag", 31), - ("description", 105), - ("image", 106), - ("link", 107), - ("top_detail_badges_tags", 94), - ("detail_text", 108), - ("is_small", 109), - ("grey_background", 110), - ("no_background", 111), - ("no_border", 112), - ("shadow", 113), - ("is_horizontal", 114), - ] - ], - {"group": "2. DSFR components", "label": "Tile"}, - ), - 116: ( - "wagtail.blocks.StreamBlock", - [[("title", 55), ("accordion", 66)]], - {"group": "DSFR components", "label": "Accordions"}, - ), - 117: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 1), - ("heading_tag", 31), - ("icon_class", 36), - ("text", 68), - ("button", 69), - ("color", 70), - ] - ], - {"group": "DSFR components", "label": "Callout"}, - ), - 118: ( - "wagtail.blocks.StructBlock", - [[("text", 72), ("color", 70), ("size", 73)]], - {"group": "DSFR components", "label": "Highlight"}, - ), - 119: ( - "wagtail.blocks.StructBlock", - [[("image", 75), ("quote", 76), ("author_name", 77), ("author_title", 78), ("color", 70)]], - {"group": "DSFR components", "label": "Quote"}, - ), - 120: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 55), - ("heading_tag", 31), - ("description", 105), - ("image", 106), - ("link", 107), - ("top_detail_badges_tags", 94), - ("detail_text", 108), - ("is_small", 109), - ("grey_background", 110), - ("no_background", 111), - ("no_border", 112), - ("shadow", 113), - ("is_horizontal", 114), - ] - ], - {"group": "DSFR components", "label": "Tile"}, - ), - 121: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("h2", "Heading 2"), - ("h3", "Heading 3"), - ("h4", "Heading 4"), - ("h5", "Heading 5"), - ], - "help_text": "Adapt to the page layout. Defaults to heading 2.", - "label": "Heading level", - "required": False, - }, - ), - 122: ( - "wagtail.blocks.PageChooserBlock", - (), - {"label": "Blog", "page_type": ["blog.BlogIndexPage"]}, - ), - 123: ( - "wagtail.blocks.IntegerBlock", - (), - { - "default": 3, - "label": "Number of entries", - "max_value": 8, - "min_value": 1, - "required": False, - }, - ), - 124: ( - "wagtail.snippets.blocks.SnippetChooserBlock", - ("blog.Category",), - {"label": "Filter by category", "required": False}, - ), - 125: ( - "wagtail.snippets.blocks.SnippetChooserBlock", - ("content_manager.Tag",), - {"label": "Filter by tag", "required": False}, - ), - 126: ( - "wagtail.snippets.blocks.SnippetChooserBlock", - ("blog.Person",), - {"label": "Filter by author", "required": False}, - ), - 127: ( - "wagtail.snippets.blocks.SnippetChooserBlock", - ("blog.Organization",), - { - "help_text": "The source is the organization of the post author", - "label": "Filter by source", - "required": False, - }, - ), - 128: ( - "wagtail.blocks.BooleanBlock", - (), - {"default": False, "label": "Show filters", "required": False}, - ), - 129: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 1), - ("heading_tag", 121), - ("blog", 122), - ("entries_count", 123), - ("category_filter", 124), - ("tag_filter", 125), - ("author_filter", 126), - ("source_filter", 127), - ("show_filters", 128), - ] - ], - {"group": "Website structure", "label": "Blog recent entries"}, - ), - 130: ( - "wagtail.blocks.PageChooserBlock", - (), - {"label": "Event calendar", "page_type": ["events.EventsIndexPage"]}, - ), - 131: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 1), - ("heading_tag", 121), - ("index_page", 130), - ("entries_count", 123), - ("category_filter", 124), - ("tag_filter", 125), - ("author_filter", 126), - ("source_filter", 127), - ("show_filters", 128), - ] - ], - {"group": "Website structure", "label": "Event calendar recent entries"}, - ), - 132: ( - "wagtail.blocks.StructBlock", - [[("title", 55), ("heading_tag", 80), ("total", 81), ("current", 82), ("steps", 85)]], - {"group": "DSFR components", "label": "Stepper"}, - ), - 133: ("wagtailmarkdown.blocks.MarkdownBlock", (), {"group": "Expert syntax", "label": "Markdown"}), - 134: ( - "wagtail.blocks.CharBlock", - (), - { - "help_text": "Accessibility: The title should describe, in a clear and concise manner, the embedded content.", - "label": "Title", - }, - ), - 135: ( - "wagtail.blocks.URLBlock", - (), - { - "help_text": "Example for Tally: https://tally.so/embed/w2jMRa", - "label": "URL of the iframe", - }, - ), - 136: ("wagtail.blocks.IntegerBlock", (), {"label": "Height (in pixels)"}), - 137: ( - "wagtail.blocks.CharBlock", - (), - { - "help_text": "For example: \"allow='geolocation'\".", - "label": "Parameters", - "required": False, - }, - ), - 138: ( - "wagtail.blocks.StructBlock", - [[("title", 134), ("url", 135), ("height", 136), ("parameters", 137)]], - {"group": "Expert syntax", "label": "Iframe"}, - ), - 139: ( - "wagtail.blocks.RawHTMLBlock", - (), - { - "group": "Expert syntax", - "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", - "readonly": True, - }, - ), - 140: ( - "wagtail.blocks.CharBlock", - (), - { - "help_text": "Allows the creation of a link to this specific part of the page. Allowed characters: A-Z, a-z, 0-9, - and _.", - "label": "Anchor ID", - "validators": [ - django.core.validators.RegexValidator( - re.compile("^[-a-zA-Z0-9_]+\\Z"), - "Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.", - "invalid", - ) - ], - }, - ), - 141: ( - "wagtail.blocks.StructBlock", - [[("anchor_id", 140)]], - {"group": "Page structure", "label": "Anchor"}, - ), - 142: ( - "wagtail.blocks.IntegerBlock", - (), - {"default": 3, "label": "Top margin", "max_value": 15, "min_value": 0}, - ), - 143: ( - "wagtail.blocks.IntegerBlock", - (), - {"default": 3, "label": "Bottom margin", "max_value": 15, "min_value": 0}, - ), - 144: ( - "wagtail.blocks.StructBlock", - [[("top_margin", 142), ("bottom_margin", 143)]], - {"group": "Page structure", "label": "Separator"}, - ), - 145: ( - "wagtail.blocks.CharBlock", - (), - { - "help_text": "Incompatible with the bottom call-to-action.", - "label": "Bottom detail: text", - "required": False, - }, - ), - 146: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 55), - ("heading_tag", 31), - ("description", 68), - ("image", 10), - ("image_ratio", 6), - ("image_badge", 88), - ("link", 89), - ("top_detail_text", 90), - ("top_detail_icon", 91), - ("top_detail_badges_tags", 94), - ("bottom_detail_text", 145), - ("bottom_detail_icon", 96), - ("call_to_action", 99), - ("grey_background", 100), - ("no_background", 101), - ("no_border", 102), - ("shadow", 103), - ] - ], - {"group": "DSFR components", "label": "Vertical card"}, - ), - 147: ( - "wagtail.snippets.blocks.SnippetChooserBlock", - ("blog.Person",), - { - "help_text": "Optional, all values can be manually specified or overriden below", - "label": "Person", - "required": False, - }, - ), - 148: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255, "required": False}), - 149: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255, "required": False}), - 150: ( - "wagtail.blocks.CharBlock", - (), - {"label": "Organization", "max_length": 255, "required": False}, - ), - 151: ( - "wagtail.blocks.CharBlock", - (), - {"label": "Contact info", "max_length": 500, "required": False}, - ), - 152: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {"label": "Tags", "required": False}), - 153: ( - "wagtail.blocks.StructBlock", - [ - [ - ("contact", 147), - ("link", 107), - ("heading_tag", 2), - ("name", 148), - ("role", 149), - ("organization", 150), - ("contact_info", 151), - ("image", 75), - ("tags", 152), - ] - ], - {"group": "Extra components", "label": "Contact card"}, - ), - 154: ( - "wagtail.blocks.StreamBlock", - [ - [ - ("text", 0), - ("image", 9), - ("imageandtext", 23), - ("table", 27), - ("alert", 32), - ("text_cta", 41), - ("video", 48), - ("transcription", 49), - ("badges_list", 54), - ("tags_list", 60), - ("buttons_list", 63), - ("accordions", 116), - ("callout", 117), - ("highlight", 118), - ("quote", 119), - ("link", 64), - ("tile", 120), - ("blog_recent_entries", 129), - ("events_recent_entries", 131), - ("stepper", 132), - ("markdown", 133), - ("iframe", 138), - ("html", 139), - ("anchor", 141), - ("separator", 144), - ("card", 146), - ("contact_card", 153), - ] - ], - {"label": "Content"}, - ), - 155: ( - "wagtail.blocks.StructBlock", - [[("title", 55), ("content", 154)]], - {"label": "Tab", "max_num": 15, "min_num": 1}, - ), - 156: ( - "wagtail.blocks.StreamBlock", - [[("tabs", 155)]], - {"group": "2. DSFR components", "label": "Tabs"}, - ), - 157: ( - "wagtailmarkdown.blocks.MarkdownBlock", - (), - {"group": "5. Expert syntax", "label": "Markdown"}, - ), - 158: ( - "wagtail.blocks.StructBlock", - [[("title", 134), ("url", 135), ("height", 136), ("parameters", 137)]], - {"group": "5. Expert syntax", "label": "Iframe"}, - ), - 159: ( - "wagtail.blocks.RawHTMLBlock", - (), - { - "group": "5. Expert syntax", - "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", - "readonly": True, - }, - ), - 160: ( - "wagtail.blocks.StructBlock", - [[("anchor_id", 140)]], - {"group": "3. Page structure", "label": "Anchor"}, - ), - 161: ( - "wagtail.blocks.StructBlock", - [[("top_margin", 142), ("bottom_margin", 143)]], - {"group": "3. Page structure", "label": "Separator"}, - ), - 162: ( - "wagtail.images.blocks.ImageChooserBlock", - (), - {"label": "Background image", "required": False}, - ), - 163: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("Primary colors", [("blue-france", "Blue France"), ("red-marianne", "Red Marianne")]), - ("Neutral colors", [("grey", "Grey")]), - ( - "Illustration colors", - [ - ("green-tilleul-verveine", "Tilleul verveine"), - ("green-bourgeon", "Bourgeon"), - ("green-emeraude", "Émeraude"), - ("green-menthe", "Menthe"), - ("green-archipel", "Archipel"), - ("blue-ecume", "Écume"), - ("blue-cumulus", "Cumulus"), - ("purple-glycine", "Glycine"), - ("pink-macaron", "Macaron"), - ("pink-tuile", "Tuile"), - ("yellow-tournesol", "Tournesol"), - ("yellow-moutarde", "Moutarde"), - ("orange-terre-battue", "Terre battue"), - ("brown-cafe-creme", "Café crème"), - ("brown-caramel", "Caramel"), - ("brown-opera", "Opéra"), - ("beige-gris-galet", "Gris galet"), - ], - ), - ], - "help_text": "Uses the French Design System colors", - "label": "Background color", - "required": False, - }, - ), - 164: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("h2", "Heading 2"), - ("h3", "Heading 3"), - ("h4", "Heading 4"), - ("h5", "Heading 5"), - ("h6", "Heading 6"), - ("p", "Paragraph"), - ], - "help_text": "Adapt to the page layout. Defaults to heading 2.", - "label": "Heading level", - "required": False, - }, - ), - 165: ( - "wagtail.blocks.IntegerBlock", - (), - {"default": 5, "label": "Top margin", "max_value": 15, "min_value": 0, "required": False}, - ), - 166: ( - "wagtail.blocks.IntegerBlock", - (), - {"default": 5, "label": "Bottom margin", "max_value": 15, "min_value": 0, "required": False}, - ), - 167: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("top", "Top"), ("middle", "Middle"), ("bottom", "Bottom")], - "label": "Vertical align", - "required": False, - }, - ), - 168: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("3", "3/12"), - ("4", "4/12"), - ("5", "5/12"), - ("6", "6/12"), - ("7", "7/12"), - ("8", "8/12"), - ("9", "9/12"), - ], - "help_text": "The total width of all columns should be 12.", - "label": "Column width", - "required": False, - }, - ), - 169: ( - "wagtail.blocks.StreamBlock", - [ - [ - ("text", 0), - ("image", 9), - ("imageandtext", 23), - ("table", 27), - ("alert", 32), - ("text_cta", 41), - ("video", 48), - ("transcription", 49), - ("badges_list", 54), - ("tags_list", 60), - ("buttons_list", 63), - ("accordions", 116), - ("callout", 117), - ("highlight", 118), - ("quote", 119), - ("link", 64), - ("tile", 120), - ("blog_recent_entries", 129), - ("events_recent_entries", 131), - ("stepper", 132), - ("markdown", 133), - ("iframe", 138), - ("html", 139), - ("anchor", 141), - ("separator", 144), - ("card", 146), - ("contact_card", 153), - ] - ], - {"label": "Column content"}, - ), - 170: ( - "wagtail.blocks.StructBlock", - [[("width", 168), ("content", 169)]], - {"group": "Page structure", "label": "Adjustable column"}, - ), - 171: ( - "wagtail.blocks.StreamBlock", - [ - [ - ("text", 0), - ("image", 9), - ("imageandtext", 23), - ("table", 27), - ("alert", 32), - ("text_cta", 41), - ("video", 48), - ("transcription", 49), - ("badges_list", 54), - ("tags_list", 60), - ("buttons_list", 63), - ("accordions", 116), - ("callout", 117), - ("highlight", 118), - ("quote", 119), - ("link", 64), - ("tile", 120), - ("blog_recent_entries", 129), - ("events_recent_entries", 131), - ("stepper", 132), - ("markdown", 133), - ("iframe", 138), - ("html", 139), - ("anchor", 141), - ("separator", 144), - ("card", 146), - ("column", 170), - ] - ], - {"label": "Columns"}, - ), - 172: ( - "wagtail.blocks.StructBlock", - [ - [ - ("bg_image", 162), - ("bg_color_class", 163), - ("title", 1), - ("heading_tag", 164), - ("top_margin", 165), - ("bottom_margin", 166), - ("vertical_align", 167), - ("columns", 171), - ] - ], - {"group": "3. Page structure", "label": "Multiple columns"}, - ), - 173: ( - "wagtail.blocks.ChoiceBlock", - [], - {"choices": [("3", "3/12"), ("4", "4/12"), ("6", "6/12")], "label": "Column width"}, - ), - 174: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("left", "Left"), ("center", "Center"), ("right", "Right")], - "label": "Horizontal align", - "required": False, - }, - ), - 175: ( - "wagtail.blocks.StreamBlock", - [ - [ - ("text", 0), - ("image", 9), - ("imageandtext", 23), - ("table", 27), - ("alert", 32), - ("text_cta", 41), - ("video", 48), - ("transcription", 49), - ("badges_list", 54), - ("tags_list", 60), - ("buttons_list", 63), - ("accordions", 116), - ("callout", 117), - ("highlight", 118), - ("quote", 119), - ("link", 64), - ("tile", 120), - ("blog_recent_entries", 129), - ("events_recent_entries", 131), - ("stepper", 132), - ("markdown", 133), - ("iframe", 138), - ("html", 139), - ("anchor", 141), - ("separator", 144), - ("card", 146), - ("contact_card", 153), - ] - ], - {"label": "Items"}, - ), - 176: ( - "wagtail.blocks.StructBlock", - [[("column_width", 173), ("horizontal_align", 174), ("vertical_align", 167), ("items", 175)]], - {"group": "3. Page structure", "label": "Item grid"}, - ), - 177: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 55), - ("heading_tag", 31), - ("description", 68), - ("image", 10), - ("image_ratio", 87), - ("image_badge", 88), - ("link", 89), - ("top_detail_text", 90), - ("top_detail_icon", 91), - ("top_detail_badges_tags", 94), - ("bottom_detail_text", 95), - ("bottom_detail_icon", 96), - ("call_to_action", 99), - ("grey_background", 100), - ("no_background", 101), - ("no_border", 102), - ("shadow", 103), - ] - ], - {"group": "DSFR components", "label": "Horizontal card"}, - ), - 178: ( - "wagtail.blocks.StreamBlock", - [[("tabs", 155)]], - {"group": "DSFR components", "label": "Tabs"}, - ), - 179: ( - "wagtail.blocks.StructBlock", - [[("column_width", 173), ("horizontal_align", 174), ("vertical_align", 167), ("items", 175)]], - {"group": "Page structure", "label": "Item grid"}, - ), - 180: ( - "wagtail.blocks.StreamBlock", - [ - [ - ("text", 0), - ("image", 9), - ("imageandtext", 23), - ("table", 27), - ("alert", 32), - ("text_cta", 41), - ("video", 48), - ("transcription", 49), - ("badges_list", 54), - ("tags_list", 60), - ("buttons_list", 63), - ("accordions", 116), - ("callout", 117), - ("highlight", 118), - ("quote", 119), - ("link", 64), - ("tile", 120), - ("blog_recent_entries", 129), - ("events_recent_entries", 131), - ("stepper", 132), - ("markdown", 133), - ("iframe", 138), - ("html", 139), - ("anchor", 141), - ("separator", 144), - ("image_and_text", 23), - ("card", 177), - ("tabs", 178), - ("item_grid", 179), - ] - ], - {"label": "Content"}, - ), - 181: ( - "wagtail.blocks.StructBlock", - [ - [ - ("bg_image", 162), - ("bg_color_class", 163), - ("top_margin", 165), - ("bottom_margin", 166), - ("content", 180), - ] - ], - {"group": "3. Page structure", "label": "Full width background"}, - ), - 182: ( - "wagtail.blocks.StreamBlock", - [ - [ - ("text", 0), - ("image", 9), - ("imageandtext", 23), - ("table", 27), - ("alert", 32), - ("text_cta", 41), - ("video", 48), - ("transcription", 49), - ("badges_list", 54), - ("tags_list", 60), - ("buttons_list", 63), - ("accordions", 116), - ("callout", 117), - ("highlight", 118), - ("quote", 119), - ("link", 64), - ("tile", 120), - ("blog_recent_entries", 129), - ("events_recent_entries", 131), - ("stepper", 132), - ("markdown", 133), - ("iframe", 138), - ("html", 139), - ("anchor", 141), - ("separator", 144), - ("image_and_text", 23), - ("card", 177), - ("tabs", 178), - ("item_grid", 179), - ] - ], - {"label": "Main content"}, - ), - 183: ("wagtail.blocks.CharBlock", (), {"label": "Side menu title", "required": False}), - 184: ( - "wagtail.blocks.RawHTMLBlock", - (), - { - "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", - "label": "HTML", - }, - ), - 185: ("wagtail.blocks.PageChooserBlock", (), {"label": "Parent page"}), - 186: ("wagtail.blocks.StructBlock", [[("page", 185)]], {"label": "Page tree"}), - 187: ( - "wagtail.blocks.StreamBlock", - [[("html", 184), ("pagetree", 186)]], - {"label": "Side menu content"}, - ), - 188: ( - "wagtail.blocks.StructBlock", - [ - [ - ("bg_image", 162), - ("bg_color_class", 163), - ("top_margin", 165), - ("bottom_margin", 166), - ("main_content", 182), - ("sidemenu_title", 183), - ("sidemenu_content", 187), - ] - ], - {"group": "3. Page structure", "label": "Full width background with side menu"}, - ), - 189: ( - "wagtail.blocks.static_block.StaticBlock", - (), - { - "admin_text": "A simple, alphabetical list of the subpages of the current page.", - "group": "4. Website structure", - "label": "Subpages list", - "template": "content_manager/blocks/subpages_list.html", - }, - ), - 190: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 1), - ("heading_tag", 121), - ("blog", 122), - ("entries_count", 123), - ("category_filter", 124), - ("tag_filter", 125), - ("author_filter", 126), - ("source_filter", 127), - ("show_filters", 128), - ] - ], - {"group": "4. Website structure", "label": "Blog recent entries"}, - ), - 191: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 1), - ("heading_tag", 121), - ("index_page", 130), - ("entries_count", 123), - ("category_filter", 124), - ("tag_filter", 125), - ("author_filter", 126), - ("source_filter", 127), - ("show_filters", 128), - ] - ], - {"group": "4. Website structure", "label": "Event calendar recent entries"}, - ), - 192: ( - "wagtail.blocks.RichTextBlock", - (), - { - "default": "

En savoir plus


Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", - "features": ["bold", "italic", "link", "document-link", "strikethrough", "h2", "h3", "h4"], - "label": "Rich text", - }, - ), - 193: ( - "wagtail.blocks.ChoiceBlock", - [], - {"choices": [("6", "small"), ("8", "medium"), ("12", "large")], "label": "Block width"}, - ), - 194: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("left", "Left"), ("", "Center"), ("right", "Right")], - "label": "Block alignment", - "required": False, - }, - ), - 195: ( - "wagtail.blocks.StructBlock", - [[("text", 192), ("width", 193), ("alignment", 194)]], - {"group": "1. Section templates to be adapted", "label": "Rich text with layout"}, - ), - 196: ( - "wagtail.blocks.CharBlock", - (), - {"default": "Titre de la section", "label": "Section title"}, - ), - 197: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("Primary colors", [("blue-france", "Blue France"), ("red-marianne", "Red Marianne")]), - ("Neutral colors", [("grey", "Grey")]), - ( - "Illustration colors", - [ - ("green-tilleul-verveine", "Tilleul verveine"), - ("green-bourgeon", "Bourgeon"), - ("green-emeraude", "Émeraude"), - ("green-menthe", "Menthe"), - ("green-archipel", "Archipel"), - ("blue-ecume", "Écume"), - ("blue-cumulus", "Cumulus"), - ("purple-glycine", "Glycine"), - ("pink-macaron", "Macaron"), - ("pink-tuile", "Tuile"), - ("yellow-tournesol", "Tournesol"), - ("yellow-moutarde", "Moutarde"), - ("orange-terre-battue", "Terre battue"), - ("brown-cafe-creme", "Café crème"), - ("brown-caramel", "Caramel"), - ("brown-opera", "Opéra"), - ("beige-gris-galet", "Gris galet"), - ], - ), - ], - "help_text": "Uses the French Design System colors.
If you want to design a classic website, choose the colour ‘white’ or ‘French blue’.", - "label": "Background color", - "required": False, - }, - ), - 198: ( - "wagtail.blocks.StructBlock", - [[("background_color", 197), ("top_margin", 165), ("bottom_margin", 166)]], - {"collapsed": True, "label": "Layout"}, - ), - 199: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("left", "Left"), ("center", "Center"), ("right", "Right")], - "label": "Items alignement", - }, - ), - 200: ( - "wagtail.blocks.ChoiceBlock", - [], - {"choices": [("6", "2"), ("4", "3"), ("3", "4")], "label": "Items per row"}, - ), - 201: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("80", "Small (80px)"), ("140", "Medium (140px)"), ("200", "Large (200px)")], - "help_text": "Images are always displayed in a square (1:1) ratio. Three sizes are available: if the original image is smaller than the selected size, it will be displayed at its maximum available size.", - "label": "Image size of items", - }, - ), - 202: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": True}), - 203: ( - "wagtail.blocks.RichTextBlock", - (), - { - "default": "Add a short description to help your visitors better understand what you offer.", - "features": ["bold", "italic", "link", "document-link"], - "label": "Text", - }, - ), - 204: ("wagtail.blocks.StructBlock", [[("image", 10), ("title", 202), ("text", 203)]], {}), - 205: ( - "content_manager.blocks.sections.ImageAndTextListBlock", - (204,), - {"collapsed": True, "label": "Items"}, - ), - 206: ( - "wagtail.blocks.StructBlock", - [ - [ - ("section_title", 196), - ("layout", 198), - ("items_alignement", 199), - ("items_per_row", 200), - ("images_size", 201), - ("items", 205), - ] - ], - {"group": "1. Section templates to be adapted", "label": "Items grid (image and text)"}, - ), - 207: ( - "wagtail.blocks.RichTextBlock", - (), - { - "default": "

Titre de la section


Lorem ipsum dolor sit amet, consectetur adipiscing elit, ", - "features": ["bold", "italic", "link", "document-link", "strikethrough", "h2", "h3", "h4"], - "label": "Text block", - }, - ), - 208: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("left", "Left"), ("right", "Right")], - "help_text": "This field allows you to define the placement of text relative to adjacent content.", - "label": "Text content position", - }, - ), - 209: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ("text", 34), - ("button_type", 35), - ("icon_class", 36), - ("icon_side", 37), - ] - ], - { - "default": { - "button_type": "fr-btn fr-btn--secondary", - "external_url": "https://tube.numerique.gouv.fr/", - "icon_side": "--", - "link_type": "external_url", - "text": "Appel à l'action", - }, - "label": "Button", - }, - ), - 210: ( - "wagtail.blocks.StructBlock", - [[("text", 207), ("position", 208), ("button", 209), ("image", 10), ("layout", 198)]], - {"group": "1. Section templates to be adapted", "label": "Image, text and cta"}, - ), - 211: ( - "wagtail.blocks.RichTextBlock", - (), - { - "default": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididun", - "features": ["bold", "italic", "link", "document-link"], - "label": "Text", - }, - ), - 212: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ("text", 34), - ("button_type", 35), - ("icon_class", 36), - ("icon_side", 37), - ] - ], - { - "default": { - "button_type": "fr-btn", - "external_url": "https://tube.numerique.gouv.fr/", - "icon_side": "--", - "link_type": "external_url", - "text": "Appel à l'action", - }, - "label": "Button", - }, - ), - 213: ( - "wagtail.blocks.StructBlock", - [[("section_title", 196), ("layout", 198), ("text", 211), ("button", 212)]], - {"group": "1. Section templates to be adapted", "label": "Text and button"}, - ), - 214: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ("text", 19), - ] - ], - { - "collapsed": True, - "help_text": "This link appears at the bottom left of the section if completed", - "label": "Section link", - "required": False, - }, - ), - 215: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 55), - ("heading_tag", 31), - ("description", 68), - ("image", 10), - ("image_ratio", 6), - ("image_badge", 88), - ("link", 89), - ("top_detail_text", 90), - ("top_detail_icon", 91), - ("top_detail_badges_tags", 94), - ("bottom_detail_text", 145), - ("bottom_detail_icon", 96), - ("call_to_action", 99), - ("grey_background", 100), - ("no_background", 101), - ("no_border", 102), - ("shadow", 103), - ] - ], - {}, - ), - 216: ("wagtail.blocks.StreamBlock", [[("card", 215)]], {"label": "Items"}), - 217: ( - "wagtail.blocks.StructBlock", - [ - [ - ("section_title", 196), - ("layout", 198), - ("items_per_row", 200), - ("link", 214), - ("items", 216), - ] - ], - {"group": "1. Section templates to be adapted", "label": "In the spotlight"}, - ), - 218: ( - "wagtail.blocks.StreamBlock", - [[("title", 55), ("accordion", 66)]], - { - "default": [ - ("title", "Accordéon"), - ( - "accordion", - { - "content": "

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

", - "title": "Titre de l'accordéon 1", - }, - ), - ( - "accordion", - { - "content": "

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

", - "title": "Titre de l'accordéon 2", - }, - ), - ], - "label": "Accordion", - }, - ), - 219: ( - "wagtail.blocks.StructBlock", - [[("accordion", 218), ("layout", 198)]], - {"group": "1. Section templates to be adapted", "label": "Accordions with layout"}, - ), - }, - ), - ), - migrations.AlterField( - model_name="blogindexpage", - name="body", - field=wagtail.fields.StreamField( - [ - ("paragraph", 0), - ("image", 9), - ("imageandtext", 23), - ("table", 27), - ("alert", 32), - ("text_cta", 41), - ("video", 48), - ("transcription", 49), - ("badges_list", 54), - ("tags_list", 60), - ("buttons_list", 63), - ("link", 64), - ("accordions", 67), - ("callout", 71), - ("highlight", 74), - ("quote", 79), - ("stepper", 86), - ("card", 104), - ("tile", 115), - ("tabs", 156), - ("markdown", 157), - ("iframe", 158), - ("html", 159), - ("anchor", 160), - ("separator", 161), - ("multicolumns", 172), - ("item_grid", 176), - ("fullwidthbackground", 181), - ("fullwidthbackgroundwithsidemenu", 188), - ("subpageslist", 189), - ("blog_recent_entries", 190), - ("events_recent_entries", 191), - ("layout_richtext", 195), - ("image_text_grid_section", 206), - ("image_text_cta_section", 210), - ("cta_section", 213), - ("spotlight_section", 217), - ("accordion_section", 219), - ], - blank=True, - block_lookup={ - 0: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text"}), - 1: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": False}), - 2: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("h2", "Heading 2"), - ("h3", "Heading 3"), - ("h4", "Heading 4"), - ("h5", "Heading 5"), - ("h6", "Heading 6"), - ("p", "Paragraph"), - ], - "help_text": "Adapt to the page layout. Defaults to heading 3.", - "label": "Heading level", - "required": False, - }, - ), - 3: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image"}), - 4: ( - "wagtail.blocks.CharBlock", - (), - {"label": "Alternative text (textual description of the image)", "required": False}, - ), - 5: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("fr-content-media--sm", "Small"), - ("", "Medium"), - ("fr-content-media--lg", "Large"), - ], - "label": "Witdh", - "required": False, - }, - ), - 6: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("fr-ratio-32x9", "32x9"), - ("fr-ratio-16x9", "16x9"), - ("fr-ratio-3x2", "3x2"), - ("fr-ratio-4x3", "4x3"), - ("fr-ratio-1x1", "1x1"), - ("fr-ratio-3x4", "3x4"), - ("fr-ratio-2x3", "2x3"), - ], - "label": "Image ratio", - "required": False, - }, - ), - 7: ("wagtail.blocks.CharBlock", (), {"label": "Caption", "required": False}), - 8: ("wagtail.blocks.URLBlock", (), {"label": "Link", "required": False}), - 9: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 1), - ("heading_tag", 2), - ("image", 3), - ("alt", 4), - ("width", 5), - ("image_ratio", 6), - ("caption", 7), - ("url", 8), - ] - ], - {"label": "Centered image"}, - ), - 10: ("wagtail.images.blocks.ImageBlock", [], {"label": "Image"}), - 11: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("left", "Left (displayed above text in mobile view)"), - ("left_below", "Left (displayed below text in mobile view)"), - ("right", "Right (displayed below text in mobile view)"), - ("right_above", "Right (displayed above text in mobile view)"), - ], - "label": "Image position", - }, - ), - 12: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("3", "3/12"), ("4", "4/12"), ("5", "5/12"), ("6", "6/12")], - "label": "Image width", - }, - ), - 13: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("page", "Page"), - ("external_url", "External URL"), - ("document", "Document"), - ("anchor", "Anchor link"), - ], - "help_text": "Select the type of link.", - "label": "Link type", - "required": False, - }, - ), - 14: ( - "wagtail.blocks.PageChooserBlock", - (), - { - "help_text": "Link to a page of this site. Use either this, the document, or the external URL parameter.", - "label": "Page", - "required": False, - }, - ), - 15: ( - "wagtail.documents.blocks.DocumentChooserBlock", - (), - { - "help_text": "Use either this, the external URL or the page parameter.", - "label": "Document", - "required": False, - }, - ), - 16: ( - "wagtail.blocks.URLBlock", - (), - { - "help_text": "Use either this, the document or the page parameter.", - "label": "External URL", - "required": False, - }, - ), - 17: ( - "wagtail.blocks.CharBlock", - (), - { - "default": "", - "help_text": "Link to an anchor block on the page. Allowed characters: A-Z, a-z, 0-9, - and _.", - "label": "Anchor ID", - "required": False, - "validators": [ - django.core.validators.RegexValidator( - re.compile("^[-a-zA-Z0-9_]+\\Z"), - "Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.", - "invalid", - ) - ], - }, - ), - 18: ( - "wagtail.blocks.CharBlock", - (), - { - "default": "", - "help_text": "Extra query parameters at the end of the link, e.g. filtering options.", - "label": "Extra query parameters", - "required": False, - "validators": [content_manager.validators.validate_query_string], - }, - ), - 19: ("wagtail.blocks.CharBlock", (), {"label": "Link label", "required": False}), - 20: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("", "No icon"), - ("fr-icon-arrow-right-line fr-link--icon-right", "Icon on the right side"), - ("fr-icon-arrow-right-line fr-link--icon-left", "Icon on the left side"), - ], - "help_text": "Only used for internal links.", - "label": "Icon", - "required": False, - }, - ), - 21: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("fr-link--sm", "Small"), ("", "Medium"), ("fr-link--lg", "Large")], - "label": "Size", - "required": False, - }, - ), - 22: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ("text", 19), - ("icon", 20), - ("size", 21), - ] - ], - { - "help_text": "The link is shown at the bottom of the text block, with an arrow", - "label": "Link", - "required": False, - }, - ), - 23: ( - "wagtail.blocks.StructBlock", - [[("image", 10), ("image_side", 11), ("image_ratio", 12), ("text", 0), ("link", 22)]], - {"label": "Image and text"}, - ), - 24: ("wagtail.blocks.CharBlock", (), {"label": "Row heading", "required": False}), - 25: ( - "wagtail.blocks.RichTextBlock", - (), - { - "features": [ - "bold", - "italic", - "link", - "document-link", - "superscript", - "subscript", - "strikethrough", - "text-left", - "text-center", - "text-right", - ], - "label": "Text", - "required": False, - }, - ), - 26: ("wagtail.images.blocks.ImageBlock", [], {"label": "Pictogram"}), - 27: ( - "wagtail.contrib.typed_table_block.blocks.TypedTableBlock", - [[("row_heading", 24), ("text", 25), ("pictogram", 26)]], - {"label": "Table"}, - ), - 28: ("wagtail.blocks.CharBlock", (), {"label": "Message title", "required": False}), - 29: ("wagtail.blocks.TextBlock", (), {"label": "Message text", "required": False}), - 30: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("error", "Error"), - ("success", "Success"), - ("info", "Information"), - ("warning", "Warning"), - ], - "label": "Message type", - }, - ), - 31: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("h2", "Heading 2"), - ("h3", "Heading 3"), - ("h4", "Heading 4"), - ("h5", "Heading 5"), - ("h6", "Heading 6"), - ("p", "Paragraph"), - ], - "help_text": "Adapt to the page layout. Defaults to heading 3.", - "label": "Heading level", - }, - ), - 32: ( - "wagtail.blocks.StructBlock", - [[("title", 28), ("description", 29), ("level", 30), ("heading_tag", 31)]], - {"label": "Alert message"}, - ), - 33: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text", "required": False}), - 34: ("wagtail.blocks.CharBlock", (), {"label": "Button label", "required": False}), - 35: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("fr-btn", "Primary"), - ("fr-btn fr-btn--secondary", "Secundary"), - ("fr-btn fr-btn--tertiary", "Tertiary"), - ("fr-btn fr-btn--tertiary-no-outline", "Tertiary without border"), - ], - "label": "Button type", - "required": False, - }, - ), - 36: ( - "content_manager.blocks.buttons_links.IconPickerBlock", - (), - {"label": "Icon", "required": False}, - ), - 37: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")], - "label": "Icon side", - "required": False, - }, - ), - 38: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ("text", 34), - ("button_type", 35), - ("icon_class", 36), - ("icon_side", 37), - ] - ], - {"label": "Button"}, - ), - 39: ( - "wagtail.blocks.StreamBlock", - [[("button", 38)]], - { - "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", - "label": "Buttons", - }, - ), - 40: ( - "wagtail.blocks.StreamBlock", - [[("buttons", 39)]], - {"label": "Call-to-action buttons", "max_num": 1, "required": False}, - ), - 41: ( - "wagtail.blocks.StructBlock", - [[("text", 33), ("cta_buttons", 40)]], - {"label": "Text and call to action"}, - ), - 42: ("wagtail.blocks.CharBlock", (), {"label": "Video title", "required": False}), - 43: ( - "wagtail.blocks.URLBlock", - (), - { - "help_text": "Use embed format, with a version that doesn't require a consent banner if available. (e.g. : https://www.youtube-nocookie.com/embed/gLzXOViPX-0) For Youtube, use Embed video and check Enable privacy-enhanced mode.", - "label": "Video URL", - }, - ), - 44: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("fr-ratio-16x9", "16x9"), ("fr-ratio-4x3", "4x3"), ("fr-ratio-1x1", "1x1")], - "label": "Video ratio", - "required": False, - }, - ), - 45: ( - "wagtail.blocks.CharBlock", - (), - {"default": "Transcription", "label": "Title", "required": False}, - ), - 46: ("wagtail.blocks.RichTextBlock", (), {"label": "Transcription content", "required": False}), - 47: ( - "wagtail.blocks.StructBlock", - [[("title", 45), ("content", 46)]], - {"label": "Transcription", "required": False}, - ), - 48: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 42), - ("caption", 7), - ("url", 43), - ("width", 5), - ("video_ratio", 44), - ("transcription", 47), - ] - ], - {"label": "Video"}, - ), - 49: ("wagtail.blocks.StructBlock", [[("title", 45), ("content", 46)]], {"label": "Transcription"}), - 50: ("wagtail.blocks.CharBlock", (), {"label": "Badge label", "required": False}), - 51: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("", [("new", "New"), ("grey", "Grey")]), - ( - "System colors", - [ - ("info", "Info"), - ("success", "Success"), - ("warning", "Warning"), - ("error", "Error"), - ], - ), - ( - "Illustration colors", - [ - ("green-tilleul-verveine", "Tilleul verveine"), - ("green-bourgeon", "Bourgeon"), - ("green-emeraude", "Émeraude"), - ("green-menthe", "Menthe"), - ("green-archipel", "Archipel"), - ("blue-ecume", "Écume"), - ("blue-cumulus", "Cumulus"), - ("purple-glycine", "Glycine"), - ("pink-macaron", "Macaron"), - ("pink-tuile", "Tuile"), - ("yellow-tournesol", "Tournesol"), - ("yellow-moutarde", "Moutarde"), - ("orange-terre-battue", "Terre battue"), - ("brown-cafe-creme", "Café crème"), - ("brown-caramel", "Caramel"), - ("brown-opera", "Opéra"), - ("beige-gris-galet", "Gris galet"), - ], - ), - ], - "label": "Badge color", - "required": False, - }, - ), - 52: ("wagtail.blocks.BooleanBlock", (), {"label": "Hide badge icon", "required": False}), - 53: ( - "wagtail.blocks.StructBlock", - [[("text", 50), ("color", 51), ("hide_icon", 52)]], - {"label": "Badge"}, - ), - 54: ("wagtail.blocks.StreamBlock", [[("badge", 53)]], {"label": "Badge list"}), - 55: ("wagtail.blocks.CharBlock", (), {"label": "Title"}), - 56: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tag", "required": False}), - 57: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("green-tilleul-verveine", "Tilleul verveine"), - ("green-bourgeon", "Bourgeon"), - ("green-emeraude", "Émeraude"), - ("green-menthe", "Menthe"), - ("green-archipel", "Archipel"), - ("blue-ecume", "Écume"), - ("blue-cumulus", "Cumulus"), - ("purple-glycine", "Glycine"), - ("pink-macaron", "Macaron"), - ("pink-tuile", "Tuile"), - ("yellow-tournesol", "Tournesol"), - ("yellow-moutarde", "Moutarde"), - ("orange-terre-battue", "Terre battue"), - ("brown-cafe-creme", "Café crème"), - ("brown-caramel", "Caramel"), - ("brown-opera", "Opéra"), - ("beige-gris-galet", "Gris galet"), - ], - "help_text": "Only for clickable tags", - "label": "Tag color", - "required": False, - }, - ), - 58: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ] - ], - {"required": False}, - ), - 59: ( - "wagtail.blocks.StructBlock", - [[("label", 55), ("is_small", 56), ("color", 57), ("icon_class", 36), ("link", 58)]], - {"label": "Tag"}, - ), - 60: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {"label": "Tag list"}), - 61: ( - "wagtail.blocks.StreamBlock", - [[("button", 38)]], - { - "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", - "label": "Buttons", - }, - ), - 62: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("", "Left"), - ("fr-btns-group--center", "Center"), - ("fr-btns-group--right", "Right"), - ( - "fr-btns-group--right fr-btns-group--inline-reverse", - "Right (reverse order on desktop)", - ), - ], - "label": "Position", - "required": False, - }, - ), - 63: ( - "wagtail.blocks.StructBlock", - [[("buttons", 61), ("position", 62)]], - {"label": "Button list"}, - ), - 64: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ("text", 19), - ("icon", 20), - ("size", 21), - ] - ], - {"label": "Single link"}, - ), - 65: ("wagtail.blocks.RichTextBlock", (), {"label": "Content"}), - 66: ( - "wagtail.blocks.StructBlock", - [[("title", 55), ("content", 65)]], - {"label": "Accordion", "max_num": 15, "min_num": 1}, - ), - 67: ( - "wagtail.blocks.StreamBlock", - [[("title", 55), ("accordion", 66)]], - {"group": "2. DSFR components", "label": "Accordions"}, - ), - 68: ( - "wagtail.blocks.RichTextBlock", - (), - { - "features": [ - "bold", - "italic", - "link", - "document-link", - "superscript", - "subscript", - "strikethrough", - "text-left", - "text-center", - "text-right", - ], - "label": "Content", - "required": False, - }, - ), - 69: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ("text", 34), - ("button_type", 35), - ("icon_class", 36), - ("icon_side", 37), - ] - ], - {"label": "Button", "required": False}, - ), - 70: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("green-tilleul-verveine", "Tilleul verveine"), - ("green-bourgeon", "Bourgeon"), - ("green-emeraude", "Émeraude"), - ("green-menthe", "Menthe"), - ("green-archipel", "Archipel"), - ("blue-ecume", "Écume"), - ("blue-cumulus", "Cumulus"), - ("purple-glycine", "Glycine"), - ("pink-macaron", "Macaron"), - ("pink-tuile", "Tuile"), - ("yellow-tournesol", "Tournesol"), - ("yellow-moutarde", "Moutarde"), - ("orange-terre-battue", "Terre battue"), - ("brown-cafe-creme", "Café crème"), - ("brown-caramel", "Caramel"), - ("brown-opera", "Opéra"), - ("beige-gris-galet", "Gris galet"), - ], - "label": "Color", - "required": False, - }, - ), - 71: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 1), - ("heading_tag", 31), - ("icon_class", 36), - ("text", 68), - ("button", 69), - ("color", 70), - ] - ], - {"group": "2. DSFR components", "label": "Callout"}, - ), - 72: ( - "wagtail.blocks.RichTextBlock", - (), - { - "features": [ - "bold", - "italic", - "link", - "document-link", - "superscript", - "subscript", - "strikethrough", - "text-left", - "text-center", - "text-right", - ], - "label": "Content", - }, - ), - 73: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("fr-text--sm", "Small"), ("", "Medium"), ("fr-text--lg", "Large")], - "label": "Size", - "required": False, - }, - ), - 74: ( - "wagtail.blocks.StructBlock", - [[("text", 72), ("color", 70), ("size", 73)]], - {"group": "2. DSFR components", "label": "Highlight"}, - ), - 75: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image", "required": False}), - 76: ("wagtail.blocks.CharBlock", (), {"label": "Quote"}), - 77: ("wagtail.blocks.CharBlock", (), {"label": "Author name", "required": False}), - 78: ("wagtail.blocks.CharBlock", (), {"label": "Author title", "required": False}), - 79: ( - "wagtail.blocks.StructBlock", - [[("image", 75), ("quote", 76), ("author_name", 77), ("author_title", 78), ("color", 70)]], - {"group": "2. DSFR components", "label": "Quote"}, - ), - 80: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("h2", "Heading 2"), - ("h3", "Heading 3"), - ("h4", "Heading 4"), - ("h5", "Heading 5"), - ("h6", "Heading 6"), - ("p", "Paragraph"), - ], - "help_text": "Adapt to the page layout. Defaults to heading 2.", - "label": "Heading level", - }, - ), - 81: ( - "wagtail.blocks.IntegerBlock", - (), - {"label": "Number of steps", "max_value": 8, "min_value": 1}, - ), - 82: ("wagtail.blocks.IntegerBlock", (), {"label": "Current step", "max_value": 8, "min_value": 1}), - 83: ("wagtail.blocks.TextBlock", (), {"label": "Detail", "required": False}), - 84: ("wagtail.blocks.StructBlock", [[("title", 55), ("detail", 83)]], {"label": "Step"}), - 85: ("wagtail.blocks.StreamBlock", [[("step", 84)]], {"label": "Steps"}), - 86: ( - "wagtail.blocks.StructBlock", - [[("title", 55), ("heading_tag", 80), ("total", 81), ("current", 82), ("steps", 85)]], - {"group": "2. DSFR components", "label": "Stepper"}, - ), - 87: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("fr-card--horizontal-tier", "1/3"), ("fr-card--horizontal-half", "50/50")], - "label": "Image ratio", - "required": False, - }, - ), - 88: ( - "wagtail.blocks.StreamBlock", - [[("badge", 53)]], - { - "help_text": "Only used if the card has an image.", - "label": "Image area badge", - "max_num": 1, - "required": False, - }, - ), - 89: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ] - ], - { - "collapsed": False, - "help_text": "Link for the whole card. If a call-to-action is present, the link will display on the title only.", - "label": "Link", - "required": False, - }, - ), - 90: ("wagtail.blocks.CharBlock", (), {"label": "Top detail: text", "required": False}), - 91: ( - "content_manager.blocks.buttons_links.IconPickerBlock", - (), - {"label": "Top detail: icon", "required": False}, - ), - 92: ("wagtail.blocks.StreamBlock", [[("badge", 53)]], {}), - 93: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {}), - 94: ( - "wagtail.blocks.StreamBlock", - [[("badges", 92), ("tags", 93)]], - {"label": "Top detail: badges or tags", "max_num": 1, "required": False}, - ), - 95: ( - "wagtail.blocks.CharBlock", - (), - { - "help_text": "Incompatible with the bottom call-to-action. If the card links to a downloadable document, the values are pre-filled.", - "label": "Bottom detail: text", - "required": False, - }, - ), - 96: ( - "content_manager.blocks.buttons_links.IconPickerBlock", - (), - {"label": "Bottom detail: icon", "required": False}, - ), - 97: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ("text", 19), - ] - ], - {"label": "Link"}, - ), - 98: ("wagtail.blocks.StreamBlock", [[("link", 97)]], {"label": "Links"}), - 99: ( - "wagtail.blocks.StreamBlock", - [[("links", 98), ("buttons", 39)]], - { - "help_text": "Incompatible with the bottom detail text. Allow you to add link or button.", - "label": "Bottom call-to-action: links or buttons", - "max_num": 1, - "required": False, - }, - ), - 100: ( - "wagtail.blocks.BooleanBlock", - (), - {"label": "Card with grey background", "required": False}, - ), - 101: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without background", "required": False}), - 102: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without border", "required": False}), - 103: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with a shadow", "required": False}), - 104: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 55), - ("heading_tag", 31), - ("description", 68), - ("image", 10), - ("image_ratio", 87), - ("image_badge", 88), - ("link", 89), - ("top_detail_text", 90), - ("top_detail_icon", 91), - ("top_detail_badges_tags", 94), - ("bottom_detail_text", 95), - ("bottom_detail_icon", 96), - ("call_to_action", 99), - ("grey_background", 100), - ("no_background", 101), - ("no_border", 102), - ("shadow", 103), - ] - ], - {"group": "2. DSFR components", "label": "Horizontal card"}, - ), - 105: ( - "wagtail.blocks.RichTextBlock", - (), - { - "features": ["bold", "italic", "superscript", "subscript", "strikethrough"], - "label": "Content", - "required": False, - }, - ), - 106: ( - "wagtail.images.blocks.ImageChooserBlock", - (), - {"help_text": "Prefer SVG files.", "label": "Image", "required": False}, - ), - 107: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ] - ], - {"label": "Link", "required": False}, - ), - 108: ( - "wagtail.blocks.CharBlock", - (), - { - "help_text": "If the tile links to a downloadable document, the values are pre-filled.", - "label": "Detail text", - "required": False, - }, - ), - 109: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tile", "required": False}), - 110: ( - "wagtail.blocks.BooleanBlock", - (), - {"label": "Tile with grey background", "required": False}, - ), - 111: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without background", "required": False}), - 112: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without border", "required": False}), - 113: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with a shadow", "required": False}), - 114: ("wagtail.blocks.BooleanBlock", (), {"label": "Horizontal tile", "required": False}), - 115: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 55), - ("heading_tag", 31), - ("description", 105), - ("image", 106), - ("link", 107), - ("top_detail_badges_tags", 94), - ("detail_text", 108), - ("is_small", 109), - ("grey_background", 110), - ("no_background", 111), - ("no_border", 112), - ("shadow", 113), - ("is_horizontal", 114), - ] - ], - {"group": "2. DSFR components", "label": "Tile"}, - ), - 116: ( - "wagtail.blocks.StreamBlock", - [[("title", 55), ("accordion", 66)]], - {"group": "DSFR components", "label": "Accordions"}, - ), - 117: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 1), - ("heading_tag", 31), - ("icon_class", 36), - ("text", 68), - ("button", 69), - ("color", 70), - ] - ], - {"group": "DSFR components", "label": "Callout"}, - ), - 118: ( - "wagtail.blocks.StructBlock", - [[("text", 72), ("color", 70), ("size", 73)]], - {"group": "DSFR components", "label": "Highlight"}, - ), - 119: ( - "wagtail.blocks.StructBlock", - [[("image", 75), ("quote", 76), ("author_name", 77), ("author_title", 78), ("color", 70)]], - {"group": "DSFR components", "label": "Quote"}, - ), - 120: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 55), - ("heading_tag", 31), - ("description", 105), - ("image", 106), - ("link", 107), - ("top_detail_badges_tags", 94), - ("detail_text", 108), - ("is_small", 109), - ("grey_background", 110), - ("no_background", 111), - ("no_border", 112), - ("shadow", 113), - ("is_horizontal", 114), - ] - ], - {"group": "DSFR components", "label": "Tile"}, - ), - 121: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("h2", "Heading 2"), - ("h3", "Heading 3"), - ("h4", "Heading 4"), - ("h5", "Heading 5"), - ], - "help_text": "Adapt to the page layout. Defaults to heading 2.", - "label": "Heading level", - "required": False, - }, - ), - 122: ( - "wagtail.blocks.PageChooserBlock", - (), - {"label": "Blog", "page_type": ["blog.BlogIndexPage"]}, - ), - 123: ( - "wagtail.blocks.IntegerBlock", - (), - { - "default": 3, - "label": "Number of entries", - "max_value": 8, - "min_value": 1, - "required": False, - }, - ), - 124: ( - "wagtail.snippets.blocks.SnippetChooserBlock", - ("blog.Category",), - {"label": "Filter by category", "required": False}, - ), - 125: ( - "wagtail.snippets.blocks.SnippetChooserBlock", - ("content_manager.Tag",), - {"label": "Filter by tag", "required": False}, - ), - 126: ( - "wagtail.snippets.blocks.SnippetChooserBlock", - ("blog.Person",), - {"label": "Filter by author", "required": False}, - ), - 127: ( - "wagtail.snippets.blocks.SnippetChooserBlock", - ("blog.Organization",), - { - "help_text": "The source is the organization of the post author", - "label": "Filter by source", - "required": False, - }, - ), - 128: ( - "wagtail.blocks.BooleanBlock", - (), - {"default": False, "label": "Show filters", "required": False}, - ), - 129: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 1), - ("heading_tag", 121), - ("blog", 122), - ("entries_count", 123), - ("category_filter", 124), - ("tag_filter", 125), - ("author_filter", 126), - ("source_filter", 127), - ("show_filters", 128), - ] - ], - {"group": "Website structure", "label": "Blog recent entries"}, - ), - 130: ( - "wagtail.blocks.PageChooserBlock", - (), - {"label": "Event calendar", "page_type": ["events.EventsIndexPage"]}, - ), - 131: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 1), - ("heading_tag", 121), - ("index_page", 130), - ("entries_count", 123), - ("category_filter", 124), - ("tag_filter", 125), - ("author_filter", 126), - ("source_filter", 127), - ("show_filters", 128), - ] - ], - {"group": "Website structure", "label": "Event calendar recent entries"}, - ), - 132: ( - "wagtail.blocks.StructBlock", - [[("title", 55), ("heading_tag", 80), ("total", 81), ("current", 82), ("steps", 85)]], - {"group": "DSFR components", "label": "Stepper"}, - ), - 133: ("wagtailmarkdown.blocks.MarkdownBlock", (), {"group": "Expert syntax", "label": "Markdown"}), - 134: ( - "wagtail.blocks.CharBlock", - (), - { - "help_text": "Accessibility: The title should describe, in a clear and concise manner, the embedded content.", - "label": "Title", - }, - ), - 135: ( - "wagtail.blocks.URLBlock", - (), - { - "help_text": "Example for Tally: https://tally.so/embed/w2jMRa", - "label": "URL of the iframe", - }, - ), - 136: ("wagtail.blocks.IntegerBlock", (), {"label": "Height (in pixels)"}), - 137: ( - "wagtail.blocks.CharBlock", - (), - { - "help_text": "For example: \"allow='geolocation'\".", - "label": "Parameters", - "required": False, - }, - ), - 138: ( - "wagtail.blocks.StructBlock", - [[("title", 134), ("url", 135), ("height", 136), ("parameters", 137)]], - {"group": "Expert syntax", "label": "Iframe"}, - ), - 139: ( - "wagtail.blocks.RawHTMLBlock", - (), - { - "group": "Expert syntax", - "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", - "readonly": True, - }, - ), - 140: ( - "wagtail.blocks.CharBlock", - (), - { - "help_text": "Allows the creation of a link to this specific part of the page. Allowed characters: A-Z, a-z, 0-9, - and _.", - "label": "Anchor ID", - "validators": [ - django.core.validators.RegexValidator( - re.compile("^[-a-zA-Z0-9_]+\\Z"), - "Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.", - "invalid", - ) - ], - }, - ), - 141: ( - "wagtail.blocks.StructBlock", - [[("anchor_id", 140)]], - {"group": "Page structure", "label": "Anchor"}, - ), - 142: ( - "wagtail.blocks.IntegerBlock", - (), - {"default": 3, "label": "Top margin", "max_value": 15, "min_value": 0}, - ), - 143: ( - "wagtail.blocks.IntegerBlock", - (), - {"default": 3, "label": "Bottom margin", "max_value": 15, "min_value": 0}, - ), - 144: ( - "wagtail.blocks.StructBlock", - [[("top_margin", 142), ("bottom_margin", 143)]], - {"group": "Page structure", "label": "Separator"}, - ), - 145: ( - "wagtail.blocks.CharBlock", - (), - { - "help_text": "Incompatible with the bottom call-to-action.", - "label": "Bottom detail: text", - "required": False, - }, - ), - 146: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 55), - ("heading_tag", 31), - ("description", 68), - ("image", 10), - ("image_ratio", 6), - ("image_badge", 88), - ("link", 89), - ("top_detail_text", 90), - ("top_detail_icon", 91), - ("top_detail_badges_tags", 94), - ("bottom_detail_text", 145), - ("bottom_detail_icon", 96), - ("call_to_action", 99), - ("grey_background", 100), - ("no_background", 101), - ("no_border", 102), - ("shadow", 103), - ] - ], - {"group": "DSFR components", "label": "Vertical card"}, - ), - 147: ( - "wagtail.snippets.blocks.SnippetChooserBlock", - ("blog.Person",), - { - "help_text": "Optional, all values can be manually specified or overriden below", - "label": "Person", - "required": False, - }, - ), - 148: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255, "required": False}), - 149: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255, "required": False}), - 150: ( - "wagtail.blocks.CharBlock", - (), - {"label": "Organization", "max_length": 255, "required": False}, - ), - 151: ( - "wagtail.blocks.CharBlock", - (), - {"label": "Contact info", "max_length": 500, "required": False}, - ), - 152: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {"label": "Tags", "required": False}), - 153: ( - "wagtail.blocks.StructBlock", - [ - [ - ("contact", 147), - ("link", 107), - ("heading_tag", 2), - ("name", 148), - ("role", 149), - ("organization", 150), - ("contact_info", 151), - ("image", 75), - ("tags", 152), - ] - ], - {"group": "Extra components", "label": "Contact card"}, - ), - 154: ( - "wagtail.blocks.StreamBlock", - [ - [ - ("text", 0), - ("image", 9), - ("imageandtext", 23), - ("table", 27), - ("alert", 32), - ("text_cta", 41), - ("video", 48), - ("transcription", 49), - ("badges_list", 54), - ("tags_list", 60), - ("buttons_list", 63), - ("accordions", 116), - ("callout", 117), - ("highlight", 118), - ("quote", 119), - ("link", 64), - ("tile", 120), - ("blog_recent_entries", 129), - ("events_recent_entries", 131), - ("stepper", 132), - ("markdown", 133), - ("iframe", 138), - ("html", 139), - ("anchor", 141), - ("separator", 144), - ("card", 146), - ("contact_card", 153), - ] - ], - {"label": "Content"}, - ), - 155: ( - "wagtail.blocks.StructBlock", - [[("title", 55), ("content", 154)]], - {"label": "Tab", "max_num": 15, "min_num": 1}, - ), - 156: ( - "wagtail.blocks.StreamBlock", - [[("tabs", 155)]], - {"group": "2. DSFR components", "label": "Tabs"}, - ), - 157: ( - "wagtailmarkdown.blocks.MarkdownBlock", - (), - {"group": "5. Expert syntax", "label": "Markdown"}, - ), - 158: ( - "wagtail.blocks.StructBlock", - [[("title", 134), ("url", 135), ("height", 136), ("parameters", 137)]], - {"group": "5. Expert syntax", "label": "Iframe"}, - ), - 159: ( - "wagtail.blocks.RawHTMLBlock", - (), - { - "group": "5. Expert syntax", - "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", - "readonly": True, - }, - ), - 160: ( - "wagtail.blocks.StructBlock", - [[("anchor_id", 140)]], - {"group": "3. Page structure", "label": "Anchor"}, - ), - 161: ( - "wagtail.blocks.StructBlock", - [[("top_margin", 142), ("bottom_margin", 143)]], - {"group": "3. Page structure", "label": "Separator"}, - ), - 162: ( - "wagtail.images.blocks.ImageChooserBlock", - (), - {"label": "Background image", "required": False}, - ), - 163: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("Primary colors", [("blue-france", "Blue France"), ("red-marianne", "Red Marianne")]), - ("Neutral colors", [("grey", "Grey")]), - ( - "Illustration colors", - [ - ("green-tilleul-verveine", "Tilleul verveine"), - ("green-bourgeon", "Bourgeon"), - ("green-emeraude", "Émeraude"), - ("green-menthe", "Menthe"), - ("green-archipel", "Archipel"), - ("blue-ecume", "Écume"), - ("blue-cumulus", "Cumulus"), - ("purple-glycine", "Glycine"), - ("pink-macaron", "Macaron"), - ("pink-tuile", "Tuile"), - ("yellow-tournesol", "Tournesol"), - ("yellow-moutarde", "Moutarde"), - ("orange-terre-battue", "Terre battue"), - ("brown-cafe-creme", "Café crème"), - ("brown-caramel", "Caramel"), - ("brown-opera", "Opéra"), - ("beige-gris-galet", "Gris galet"), - ], - ), - ], - "help_text": "Uses the French Design System colors", - "label": "Background color", - "required": False, - }, - ), - 164: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("h2", "Heading 2"), - ("h3", "Heading 3"), - ("h4", "Heading 4"), - ("h5", "Heading 5"), - ("h6", "Heading 6"), - ("p", "Paragraph"), - ], - "help_text": "Adapt to the page layout. Defaults to heading 2.", - "label": "Heading level", - "required": False, - }, - ), - 165: ( - "wagtail.blocks.IntegerBlock", - (), - {"default": 5, "label": "Top margin", "max_value": 15, "min_value": 0, "required": False}, - ), - 166: ( - "wagtail.blocks.IntegerBlock", - (), - {"default": 5, "label": "Bottom margin", "max_value": 15, "min_value": 0, "required": False}, - ), - 167: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("top", "Top"), ("middle", "Middle"), ("bottom", "Bottom")], - "label": "Vertical align", - "required": False, - }, - ), - 168: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("3", "3/12"), - ("4", "4/12"), - ("5", "5/12"), - ("6", "6/12"), - ("7", "7/12"), - ("8", "8/12"), - ("9", "9/12"), - ], - "help_text": "The total width of all columns should be 12.", - "label": "Column width", - "required": False, - }, - ), - 169: ( - "wagtail.blocks.StreamBlock", - [ - [ - ("text", 0), - ("image", 9), - ("imageandtext", 23), - ("table", 27), - ("alert", 32), - ("text_cta", 41), - ("video", 48), - ("transcription", 49), - ("badges_list", 54), - ("tags_list", 60), - ("buttons_list", 63), - ("accordions", 116), - ("callout", 117), - ("highlight", 118), - ("quote", 119), - ("link", 64), - ("tile", 120), - ("blog_recent_entries", 129), - ("events_recent_entries", 131), - ("stepper", 132), - ("markdown", 133), - ("iframe", 138), - ("html", 139), - ("anchor", 141), - ("separator", 144), - ("card", 146), - ("contact_card", 153), - ] - ], - {"label": "Column content"}, - ), - 170: ( - "wagtail.blocks.StructBlock", - [[("width", 168), ("content", 169)]], - {"group": "Page structure", "label": "Adjustable column"}, - ), - 171: ( - "wagtail.blocks.StreamBlock", - [ - [ - ("text", 0), - ("image", 9), - ("imageandtext", 23), - ("table", 27), - ("alert", 32), - ("text_cta", 41), - ("video", 48), - ("transcription", 49), - ("badges_list", 54), - ("tags_list", 60), - ("buttons_list", 63), - ("accordions", 116), - ("callout", 117), - ("highlight", 118), - ("quote", 119), - ("link", 64), - ("tile", 120), - ("blog_recent_entries", 129), - ("events_recent_entries", 131), - ("stepper", 132), - ("markdown", 133), - ("iframe", 138), - ("html", 139), - ("anchor", 141), - ("separator", 144), - ("card", 146), - ("column", 170), - ] - ], - {"label": "Columns"}, - ), - 172: ( - "wagtail.blocks.StructBlock", - [ - [ - ("bg_image", 162), - ("bg_color_class", 163), - ("title", 1), - ("heading_tag", 164), - ("top_margin", 165), - ("bottom_margin", 166), - ("vertical_align", 167), - ("columns", 171), - ] - ], - {"group": "3. Page structure", "label": "Multiple columns"}, - ), - 173: ( - "wagtail.blocks.ChoiceBlock", - [], - {"choices": [("3", "3/12"), ("4", "4/12"), ("6", "6/12")], "label": "Column width"}, - ), - 174: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("left", "Left"), ("center", "Center"), ("right", "Right")], - "label": "Horizontal align", - "required": False, - }, - ), - 175: ( - "wagtail.blocks.StreamBlock", - [ - [ - ("text", 0), - ("image", 9), - ("imageandtext", 23), - ("table", 27), - ("alert", 32), - ("text_cta", 41), - ("video", 48), - ("transcription", 49), - ("badges_list", 54), - ("tags_list", 60), - ("buttons_list", 63), - ("accordions", 116), - ("callout", 117), - ("highlight", 118), - ("quote", 119), - ("link", 64), - ("tile", 120), - ("blog_recent_entries", 129), - ("events_recent_entries", 131), - ("stepper", 132), - ("markdown", 133), - ("iframe", 138), - ("html", 139), - ("anchor", 141), - ("separator", 144), - ("card", 146), - ("contact_card", 153), - ] - ], - {"label": "Items"}, - ), - 176: ( - "wagtail.blocks.StructBlock", - [[("column_width", 173), ("horizontal_align", 174), ("vertical_align", 167), ("items", 175)]], - {"group": "3. Page structure", "label": "Item grid"}, - ), - 177: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 55), - ("heading_tag", 31), - ("description", 68), - ("image", 10), - ("image_ratio", 87), - ("image_badge", 88), - ("link", 89), - ("top_detail_text", 90), - ("top_detail_icon", 91), - ("top_detail_badges_tags", 94), - ("bottom_detail_text", 95), - ("bottom_detail_icon", 96), - ("call_to_action", 99), - ("grey_background", 100), - ("no_background", 101), - ("no_border", 102), - ("shadow", 103), - ] - ], - {"group": "DSFR components", "label": "Horizontal card"}, - ), - 178: ( - "wagtail.blocks.StreamBlock", - [[("tabs", 155)]], - {"group": "DSFR components", "label": "Tabs"}, - ), - 179: ( - "wagtail.blocks.StructBlock", - [[("column_width", 173), ("horizontal_align", 174), ("vertical_align", 167), ("items", 175)]], - {"group": "Page structure", "label": "Item grid"}, - ), - 180: ( - "wagtail.blocks.StreamBlock", - [ - [ - ("text", 0), - ("image", 9), - ("imageandtext", 23), - ("table", 27), - ("alert", 32), - ("text_cta", 41), - ("video", 48), - ("transcription", 49), - ("badges_list", 54), - ("tags_list", 60), - ("buttons_list", 63), - ("accordions", 116), - ("callout", 117), - ("highlight", 118), - ("quote", 119), - ("link", 64), - ("tile", 120), - ("blog_recent_entries", 129), - ("events_recent_entries", 131), - ("stepper", 132), - ("markdown", 133), - ("iframe", 138), - ("html", 139), - ("anchor", 141), - ("separator", 144), - ("image_and_text", 23), - ("card", 177), - ("tabs", 178), - ("item_grid", 179), - ] - ], - {"label": "Content"}, - ), - 181: ( - "wagtail.blocks.StructBlock", - [ - [ - ("bg_image", 162), - ("bg_color_class", 163), - ("top_margin", 165), - ("bottom_margin", 166), - ("content", 180), - ] - ], - {"group": "3. Page structure", "label": "Full width background"}, - ), - 182: ( - "wagtail.blocks.StreamBlock", - [ - [ - ("text", 0), - ("image", 9), - ("imageandtext", 23), - ("table", 27), - ("alert", 32), - ("text_cta", 41), - ("video", 48), - ("transcription", 49), - ("badges_list", 54), - ("tags_list", 60), - ("buttons_list", 63), - ("accordions", 116), - ("callout", 117), - ("highlight", 118), - ("quote", 119), - ("link", 64), - ("tile", 120), - ("blog_recent_entries", 129), - ("events_recent_entries", 131), - ("stepper", 132), - ("markdown", 133), - ("iframe", 138), - ("html", 139), - ("anchor", 141), - ("separator", 144), - ("image_and_text", 23), - ("card", 177), - ("tabs", 178), - ("item_grid", 179), - ] - ], - {"label": "Main content"}, - ), - 183: ("wagtail.blocks.CharBlock", (), {"label": "Side menu title", "required": False}), - 184: ( - "wagtail.blocks.RawHTMLBlock", - (), - { - "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", - "label": "HTML", - }, - ), - 185: ("wagtail.blocks.PageChooserBlock", (), {"label": "Parent page"}), - 186: ("wagtail.blocks.StructBlock", [[("page", 185)]], {"label": "Page tree"}), - 187: ( - "wagtail.blocks.StreamBlock", - [[("html", 184), ("pagetree", 186)]], - {"label": "Side menu content"}, - ), - 188: ( - "wagtail.blocks.StructBlock", - [ - [ - ("bg_image", 162), - ("bg_color_class", 163), - ("top_margin", 165), - ("bottom_margin", 166), - ("main_content", 182), - ("sidemenu_title", 183), - ("sidemenu_content", 187), - ] - ], - {"group": "3. Page structure", "label": "Full width background with side menu"}, - ), - 189: ( - "wagtail.blocks.static_block.StaticBlock", - (), - { - "admin_text": "A simple, alphabetical list of the subpages of the current page.", - "group": "4. Website structure", - "label": "Subpages list", - "template": "content_manager/blocks/subpages_list.html", - }, - ), - 190: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 1), - ("heading_tag", 121), - ("blog", 122), - ("entries_count", 123), - ("category_filter", 124), - ("tag_filter", 125), - ("author_filter", 126), - ("source_filter", 127), - ("show_filters", 128), - ] - ], - {"group": "4. Website structure", "label": "Blog recent entries"}, - ), - 191: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 1), - ("heading_tag", 121), - ("index_page", 130), - ("entries_count", 123), - ("category_filter", 124), - ("tag_filter", 125), - ("author_filter", 126), - ("source_filter", 127), - ("show_filters", 128), - ] - ], - {"group": "4. Website structure", "label": "Event calendar recent entries"}, - ), - 192: ( - "wagtail.blocks.RichTextBlock", - (), - { - "default": "

En savoir plus


Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", - "features": ["bold", "italic", "link", "document-link", "strikethrough", "h2", "h3", "h4"], - "label": "Rich text", - }, - ), - 193: ( - "wagtail.blocks.ChoiceBlock", - [], - {"choices": [("6", "small"), ("8", "medium"), ("12", "large")], "label": "Block width"}, - ), - 194: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("left", "Left"), ("", "Center"), ("right", "Right")], - "label": "Block alignment", - "required": False, - }, - ), - 195: ( - "wagtail.blocks.StructBlock", - [[("text", 192), ("width", 193), ("alignment", 194)]], - {"group": "1. Section templates to be adapted", "label": "Rich text with layout"}, - ), - 196: ( - "wagtail.blocks.CharBlock", - (), - {"default": "Titre de la section", "label": "Section title"}, - ), - 197: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("Primary colors", [("blue-france", "Blue France"), ("red-marianne", "Red Marianne")]), - ("Neutral colors", [("grey", "Grey")]), - ( - "Illustration colors", - [ - ("green-tilleul-verveine", "Tilleul verveine"), - ("green-bourgeon", "Bourgeon"), - ("green-emeraude", "Émeraude"), - ("green-menthe", "Menthe"), - ("green-archipel", "Archipel"), - ("blue-ecume", "Écume"), - ("blue-cumulus", "Cumulus"), - ("purple-glycine", "Glycine"), - ("pink-macaron", "Macaron"), - ("pink-tuile", "Tuile"), - ("yellow-tournesol", "Tournesol"), - ("yellow-moutarde", "Moutarde"), - ("orange-terre-battue", "Terre battue"), - ("brown-cafe-creme", "Café crème"), - ("brown-caramel", "Caramel"), - ("brown-opera", "Opéra"), - ("beige-gris-galet", "Gris galet"), - ], - ), - ], - "help_text": "Uses the French Design System colors.
If you want to design a classic website, choose the colour ‘white’ or ‘French blue’.", - "label": "Background color", - "required": False, - }, - ), - 198: ( - "wagtail.blocks.StructBlock", - [[("background_color", 197), ("top_margin", 165), ("bottom_margin", 166)]], - {"collapsed": True, "label": "Layout"}, - ), - 199: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("left", "Left"), ("center", "Center"), ("right", "Right")], - "label": "Items alignement", - }, - ), - 200: ( - "wagtail.blocks.ChoiceBlock", - [], - {"choices": [("6", "2"), ("4", "3"), ("3", "4")], "label": "Items per row"}, - ), - 201: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("80", "Small (80px)"), ("140", "Medium (140px)"), ("200", "Large (200px)")], - "help_text": "Images are always displayed in a square (1:1) ratio. Three sizes are available: if the original image is smaller than the selected size, it will be displayed at its maximum available size.", - "label": "Image size of items", - }, - ), - 202: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": True}), - 203: ( - "wagtail.blocks.RichTextBlock", - (), - { - "default": "Add a short description to help your visitors better understand what you offer.", - "features": ["bold", "italic", "link", "document-link"], - "label": "Text", - }, - ), - 204: ("wagtail.blocks.StructBlock", [[("image", 10), ("title", 202), ("text", 203)]], {}), - 205: ( - "content_manager.blocks.sections.ImageAndTextListBlock", - (204,), - {"collapsed": True, "label": "Items"}, - ), - 206: ( - "wagtail.blocks.StructBlock", - [ - [ - ("section_title", 196), - ("layout", 198), - ("items_alignement", 199), - ("items_per_row", 200), - ("images_size", 201), - ("items", 205), - ] - ], - {"group": "1. Section templates to be adapted", "label": "Items grid (image and text)"}, - ), - 207: ( - "wagtail.blocks.RichTextBlock", - (), - { - "default": "

Titre de la section


Lorem ipsum dolor sit amet, consectetur adipiscing elit, ", - "features": ["bold", "italic", "link", "document-link", "strikethrough", "h2", "h3", "h4"], - "label": "Text block", - }, - ), - 208: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("left", "Left"), ("right", "Right")], - "help_text": "This field allows you to define the placement of text relative to adjacent content.", - "label": "Text content position", - }, - ), - 209: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ("text", 34), - ("button_type", 35), - ("icon_class", 36), - ("icon_side", 37), - ] - ], - { - "default": { - "button_type": "fr-btn fr-btn--secondary", - "external_url": "https://tube.numerique.gouv.fr/", - "icon_side": "--", - "link_type": "external_url", - "text": "Appel à l'action", - }, - "label": "Button", - }, - ), - 210: ( - "wagtail.blocks.StructBlock", - [[("text", 207), ("position", 208), ("button", 209), ("image", 10), ("layout", 198)]], - {"group": "1. Section templates to be adapted", "label": "Image, text and cta"}, - ), - 211: ( - "wagtail.blocks.RichTextBlock", - (), - { - "default": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididun", - "features": ["bold", "italic", "link", "document-link"], - "label": "Text", - }, - ), - 212: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ("text", 34), - ("button_type", 35), - ("icon_class", 36), - ("icon_side", 37), - ] - ], - { - "default": { - "button_type": "fr-btn", - "external_url": "https://tube.numerique.gouv.fr/", - "icon_side": "--", - "link_type": "external_url", - "text": "Appel à l'action", - }, - "label": "Button", - }, - ), - 213: ( - "wagtail.blocks.StructBlock", - [[("section_title", 196), ("layout", 198), ("text", 211), ("button", 212)]], - {"group": "1. Section templates to be adapted", "label": "Text and button"}, - ), - 214: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ("text", 19), - ] - ], - { - "collapsed": True, - "help_text": "This link appears at the bottom left of the section if completed", - "label": "Section link", - "required": False, - }, - ), - 215: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 55), - ("heading_tag", 31), - ("description", 68), - ("image", 10), - ("image_ratio", 6), - ("image_badge", 88), - ("link", 89), - ("top_detail_text", 90), - ("top_detail_icon", 91), - ("top_detail_badges_tags", 94), - ("bottom_detail_text", 145), - ("bottom_detail_icon", 96), - ("call_to_action", 99), - ("grey_background", 100), - ("no_background", 101), - ("no_border", 102), - ("shadow", 103), - ] - ], - {}, - ), - 216: ("wagtail.blocks.StreamBlock", [[("card", 215)]], {"label": "Items"}), - 217: ( - "wagtail.blocks.StructBlock", - [ - [ - ("section_title", 196), - ("layout", 198), - ("items_per_row", 200), - ("link", 214), - ("items", 216), - ] - ], - {"group": "1. Section templates to be adapted", "label": "In the spotlight"}, - ), - 218: ( - "wagtail.blocks.StreamBlock", - [[("title", 55), ("accordion", 66)]], - { - "default": [ - ("title", "Accordéon"), - ( - "accordion", - { - "content": "

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

", - "title": "Titre de l'accordéon 1", - }, - ), - ( - "accordion", - { - "content": "

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

", - "title": "Titre de l'accordéon 2", - }, - ), - ], - "label": "Accordion", - }, - ), - 219: ( - "wagtail.blocks.StructBlock", - [[("accordion", 218), ("layout", 198)]], - {"group": "1. Section templates to be adapted", "label": "Accordions with layout"}, - ), - }, - ), - ), - migrations.AlterField( - model_name="category", - name="colophon", - field=wagtail.fields.StreamField( - [("paragraph", 0), ("imageandtext", 14), ("quote", 20), ("multicolumns", 157), ("contact_card", 161)], - blank=True, - block_lookup={ - 0: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text"}), - 1: ("wagtail.images.blocks.ImageBlock", [], {"label": "Image"}), - 2: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("left", "Left (displayed above text in mobile view)"), - ("left_below", "Left (displayed below text in mobile view)"), - ("right", "Right (displayed below text in mobile view)"), - ("right_above", "Right (displayed above text in mobile view)"), - ], - "label": "Image position", - }, - ), - 3: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("3", "3/12"), ("4", "4/12"), ("5", "5/12"), ("6", "6/12")], - "label": "Image width", - }, - ), - 4: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("page", "Page"), - ("external_url", "External URL"), - ("document", "Document"), - ("anchor", "Anchor link"), - ], - "help_text": "Select the type of link.", - "label": "Link type", - "required": False, - }, - ), - 5: ( - "wagtail.blocks.PageChooserBlock", - (), - { - "help_text": "Link to a page of this site. Use either this, the document, or the external URL parameter.", - "label": "Page", - "required": False, - }, - ), - 6: ( - "wagtail.documents.blocks.DocumentChooserBlock", - (), - { - "help_text": "Use either this, the external URL or the page parameter.", - "label": "Document", - "required": False, - }, - ), - 7: ( - "wagtail.blocks.URLBlock", - (), - { - "help_text": "Use either this, the document or the page parameter.", - "label": "External URL", - "required": False, - }, - ), - 8: ( - "wagtail.blocks.CharBlock", - (), - { - "default": "", - "help_text": "Link to an anchor block on the page. Allowed characters: A-Z, a-z, 0-9, - and _.", - "label": "Anchor ID", - "required": False, - "validators": [ - django.core.validators.RegexValidator( - re.compile("^[-a-zA-Z0-9_]+\\Z"), - "Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.", - "invalid", - ) - ], - }, - ), - 9: ( - "wagtail.blocks.CharBlock", - (), - { - "default": "", - "help_text": "Extra query parameters at the end of the link, e.g. filtering options.", - "label": "Extra query parameters", - "required": False, - "validators": [content_manager.validators.validate_query_string], - }, - ), - 10: ("wagtail.blocks.CharBlock", (), {"label": "Link label", "required": False}), - 11: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("", "No icon"), - ("fr-icon-arrow-right-line fr-link--icon-right", "Icon on the right side"), - ("fr-icon-arrow-right-line fr-link--icon-left", "Icon on the left side"), - ], - "help_text": "Only used for internal links.", - "label": "Icon", - "required": False, - }, - ), - 12: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("fr-link--sm", "Small"), ("", "Medium"), ("fr-link--lg", "Large")], - "label": "Size", - "required": False, - }, - ), - 13: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 4), - ("page", 5), - ("document", 6), - ("external_url", 7), - ("anchor", 8), - ("query_string", 9), - ("text", 10), - ("icon", 11), - ("size", 12), - ] - ], - { - "help_text": "The link is shown at the bottom of the text block, with an arrow", - "label": "Link", - "required": False, - }, - ), - 14: ( - "wagtail.blocks.StructBlock", - [[("image", 1), ("image_side", 2), ("image_ratio", 3), ("text", 0), ("link", 13)]], - {"label": "Bloc image et texte"}, - ), - 15: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image", "required": False}), - 16: ("wagtail.blocks.CharBlock", (), {"label": "Quote"}), - 17: ("wagtail.blocks.CharBlock", (), {"label": "Author name", "required": False}), - 18: ("wagtail.blocks.CharBlock", (), {"label": "Author title", "required": False}), - 19: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("green-tilleul-verveine", "Tilleul verveine"), - ("green-bourgeon", "Bourgeon"), - ("green-emeraude", "Émeraude"), - ("green-menthe", "Menthe"), - ("green-archipel", "Archipel"), - ("blue-ecume", "Écume"), - ("blue-cumulus", "Cumulus"), - ("purple-glycine", "Glycine"), - ("pink-macaron", "Macaron"), - ("pink-tuile", "Tuile"), - ("yellow-tournesol", "Tournesol"), - ("yellow-moutarde", "Moutarde"), - ("orange-terre-battue", "Terre battue"), - ("brown-cafe-creme", "Café crème"), - ("brown-caramel", "Caramel"), - ("brown-opera", "Opéra"), - ("beige-gris-galet", "Gris galet"), - ], - "label": "Color", - "required": False, - }, - ), - 20: ( - "wagtail.blocks.StructBlock", - [[("image", 15), ("quote", 16), ("author_name", 17), ("author_title", 18), ("color", 19)]], - {"label": "Citation"}, - ), - 21: ( - "wagtail.images.blocks.ImageChooserBlock", - (), - {"label": "Background image", "required": False}, - ), - 22: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("Primary colors", [("blue-france", "Blue France"), ("red-marianne", "Red Marianne")]), - ("Neutral colors", [("grey", "Grey")]), - ( - "Illustration colors", - [ - ("green-tilleul-verveine", "Tilleul verveine"), - ("green-bourgeon", "Bourgeon"), - ("green-emeraude", "Émeraude"), - ("green-menthe", "Menthe"), - ("green-archipel", "Archipel"), - ("blue-ecume", "Écume"), - ("blue-cumulus", "Cumulus"), - ("purple-glycine", "Glycine"), - ("pink-macaron", "Macaron"), - ("pink-tuile", "Tuile"), - ("yellow-tournesol", "Tournesol"), - ("yellow-moutarde", "Moutarde"), - ("orange-terre-battue", "Terre battue"), - ("brown-cafe-creme", "Café crème"), - ("brown-caramel", "Caramel"), - ("brown-opera", "Opéra"), - ("beige-gris-galet", "Gris galet"), - ], - ), - ], - "help_text": "Uses the French Design System colors", - "label": "Background color", - "required": False, - }, - ), - 23: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": False}), - 24: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("h2", "Heading 2"), - ("h3", "Heading 3"), - ("h4", "Heading 4"), - ("h5", "Heading 5"), - ("h6", "Heading 6"), - ("p", "Paragraph"), - ], - "help_text": "Adapt to the page layout. Defaults to heading 2.", - "label": "Heading level", - "required": False, - }, - ), - 25: ( - "wagtail.blocks.IntegerBlock", - (), - {"default": 5, "label": "Top margin", "max_value": 15, "min_value": 0, "required": False}, - ), - 26: ( - "wagtail.blocks.IntegerBlock", - (), - {"default": 5, "label": "Bottom margin", "max_value": 15, "min_value": 0, "required": False}, - ), - 27: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("top", "Top"), ("middle", "Middle"), ("bottom", "Bottom")], - "label": "Vertical align", - "required": False, - }, - ), - 28: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("h2", "Heading 2"), - ("h3", "Heading 3"), - ("h4", "Heading 4"), - ("h5", "Heading 5"), - ("h6", "Heading 6"), - ("p", "Paragraph"), - ], - "help_text": "Adapt to the page layout. Defaults to heading 3.", - "label": "Heading level", - "required": False, - }, - ), - 29: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image"}), - 30: ( - "wagtail.blocks.CharBlock", - (), - {"label": "Alternative text (textual description of the image)", "required": False}, - ), - 31: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("fr-content-media--sm", "Small"), - ("", "Medium"), - ("fr-content-media--lg", "Large"), - ], - "label": "Witdh", - "required": False, - }, - ), - 32: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("fr-ratio-32x9", "32x9"), - ("fr-ratio-16x9", "16x9"), - ("fr-ratio-3x2", "3x2"), - ("fr-ratio-4x3", "4x3"), - ("fr-ratio-1x1", "1x1"), - ("fr-ratio-3x4", "3x4"), - ("fr-ratio-2x3", "2x3"), - ], - "label": "Image ratio", - "required": False, - }, - ), - 33: ("wagtail.blocks.CharBlock", (), {"label": "Caption", "required": False}), - 34: ("wagtail.blocks.URLBlock", (), {"label": "Link", "required": False}), - 35: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 23), - ("heading_tag", 28), - ("image", 29), - ("alt", 30), - ("width", 31), - ("image_ratio", 32), - ("caption", 33), - ("url", 34), - ] - ], - {"label": "Centered image"}, - ), - 36: ( - "wagtail.blocks.StructBlock", - [[("image", 1), ("image_side", 2), ("image_ratio", 3), ("text", 0), ("link", 13)]], - {"label": "Image and text"}, - ), - 37: ("wagtail.blocks.CharBlock", (), {"label": "Row heading", "required": False}), - 38: ( - "wagtail.blocks.RichTextBlock", - (), - { - "features": [ - "bold", - "italic", - "link", - "document-link", - "superscript", - "subscript", - "strikethrough", - "text-left", - "text-center", - "text-right", - ], - "label": "Text", - "required": False, - }, - ), - 39: ("wagtail.images.blocks.ImageBlock", [], {"label": "Pictogram"}), - 40: ( - "wagtail.contrib.typed_table_block.blocks.TypedTableBlock", - [[("row_heading", 37), ("text", 38), ("pictogram", 39)]], - {"label": "Table"}, - ), - 41: ("wagtail.blocks.CharBlock", (), {"label": "Message title", "required": False}), - 42: ("wagtail.blocks.TextBlock", (), {"label": "Message text", "required": False}), - 43: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("error", "Error"), - ("success", "Success"), - ("info", "Information"), - ("warning", "Warning"), - ], - "label": "Message type", - }, - ), - 44: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("h2", "Heading 2"), - ("h3", "Heading 3"), - ("h4", "Heading 4"), - ("h5", "Heading 5"), - ("h6", "Heading 6"), - ("p", "Paragraph"), - ], - "help_text": "Adapt to the page layout. Defaults to heading 3.", - "label": "Heading level", - }, - ), - 45: ( - "wagtail.blocks.StructBlock", - [[("title", 41), ("description", 42), ("level", 43), ("heading_tag", 44)]], - {"label": "Alert message"}, - ), - 46: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text", "required": False}), - 47: ("wagtail.blocks.CharBlock", (), {"label": "Button label", "required": False}), - 48: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("fr-btn", "Primary"), - ("fr-btn fr-btn--secondary", "Secundary"), - ("fr-btn fr-btn--tertiary", "Tertiary"), - ("fr-btn fr-btn--tertiary-no-outline", "Tertiary without border"), - ], - "label": "Button type", - "required": False, - }, - ), - 49: ( - "content_manager.blocks.buttons_links.IconPickerBlock", - (), - {"label": "Icon", "required": False}, - ), - 50: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")], - "label": "Icon side", - "required": False, - }, - ), - 51: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 4), - ("page", 5), - ("document", 6), - ("external_url", 7), - ("anchor", 8), - ("query_string", 9), - ("text", 47), - ("button_type", 48), - ("icon_class", 49), - ("icon_side", 50), - ] - ], - {"label": "Button"}, - ), - 52: ( - "wagtail.blocks.StreamBlock", - [[("button", 51)]], - { - "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", - "label": "Buttons", - }, - ), - 53: ( - "wagtail.blocks.StreamBlock", - [[("buttons", 52)]], - {"label": "Call-to-action buttons", "max_num": 1, "required": False}, - ), - 54: ( - "wagtail.blocks.StructBlock", - [[("text", 46), ("cta_buttons", 53)]], - {"label": "Text and call to action"}, - ), - 55: ("wagtail.blocks.CharBlock", (), {"label": "Video title", "required": False}), - 56: ( - "wagtail.blocks.URLBlock", - (), - { - "help_text": "Use embed format, with a version that doesn't require a consent banner if available. (e.g. : https://www.youtube-nocookie.com/embed/gLzXOViPX-0) For Youtube, use Embed video and check Enable privacy-enhanced mode.", - "label": "Video URL", - }, - ), - 57: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("fr-ratio-16x9", "16x9"), ("fr-ratio-4x3", "4x3"), ("fr-ratio-1x1", "1x1")], - "label": "Video ratio", - "required": False, - }, - ), - 58: ( - "wagtail.blocks.CharBlock", - (), - {"default": "Transcription", "label": "Title", "required": False}, - ), - 59: ("wagtail.blocks.RichTextBlock", (), {"label": "Transcription content", "required": False}), - 60: ( - "wagtail.blocks.StructBlock", - [[("title", 58), ("content", 59)]], - {"label": "Transcription", "required": False}, - ), - 61: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 55), - ("caption", 33), - ("url", 56), - ("width", 31), - ("video_ratio", 57), - ("transcription", 60), - ] - ], - {"label": "Video"}, - ), - 62: ("wagtail.blocks.StructBlock", [[("title", 58), ("content", 59)]], {"label": "Transcription"}), - 63: ("wagtail.blocks.CharBlock", (), {"label": "Badge label", "required": False}), - 64: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("", [("new", "New"), ("grey", "Grey")]), - ( - "System colors", - [ - ("info", "Info"), - ("success", "Success"), - ("warning", "Warning"), - ("error", "Error"), - ], - ), - ( - "Illustration colors", - [ - ("green-tilleul-verveine", "Tilleul verveine"), - ("green-bourgeon", "Bourgeon"), - ("green-emeraude", "Émeraude"), - ("green-menthe", "Menthe"), - ("green-archipel", "Archipel"), - ("blue-ecume", "Écume"), - ("blue-cumulus", "Cumulus"), - ("purple-glycine", "Glycine"), - ("pink-macaron", "Macaron"), - ("pink-tuile", "Tuile"), - ("yellow-tournesol", "Tournesol"), - ("yellow-moutarde", "Moutarde"), - ("orange-terre-battue", "Terre battue"), - ("brown-cafe-creme", "Café crème"), - ("brown-caramel", "Caramel"), - ("brown-opera", "Opéra"), - ("beige-gris-galet", "Gris galet"), - ], - ), - ], - "label": "Badge color", - "required": False, - }, - ), - 65: ("wagtail.blocks.BooleanBlock", (), {"label": "Hide badge icon", "required": False}), - 66: ( - "wagtail.blocks.StructBlock", - [[("text", 63), ("color", 64), ("hide_icon", 65)]], - {"label": "Badge"}, - ), - 67: ("wagtail.blocks.StreamBlock", [[("badge", 66)]], {"label": "Badge list"}), - 68: ("wagtail.blocks.CharBlock", (), {"label": "Title"}), - 69: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tag", "required": False}), - 70: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("green-tilleul-verveine", "Tilleul verveine"), - ("green-bourgeon", "Bourgeon"), - ("green-emeraude", "Émeraude"), - ("green-menthe", "Menthe"), - ("green-archipel", "Archipel"), - ("blue-ecume", "Écume"), - ("blue-cumulus", "Cumulus"), - ("purple-glycine", "Glycine"), - ("pink-macaron", "Macaron"), - ("pink-tuile", "Tuile"), - ("yellow-tournesol", "Tournesol"), - ("yellow-moutarde", "Moutarde"), - ("orange-terre-battue", "Terre battue"), - ("brown-cafe-creme", "Café crème"), - ("brown-caramel", "Caramel"), - ("brown-opera", "Opéra"), - ("beige-gris-galet", "Gris galet"), - ], - "help_text": "Only for clickable tags", - "label": "Tag color", - "required": False, - }, - ), - 71: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 4), - ("page", 5), - ("document", 6), - ("external_url", 7), - ("anchor", 8), - ("query_string", 9), - ] - ], - {"required": False}, - ), - 72: ( - "wagtail.blocks.StructBlock", - [[("label", 68), ("is_small", 69), ("color", 70), ("icon_class", 49), ("link", 71)]], - {"label": "Tag"}, - ), - 73: ("wagtail.blocks.StreamBlock", [[("tag", 72)]], {"label": "Tag list"}), - 74: ( - "wagtail.blocks.StreamBlock", - [[("button", 51)]], - { - "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", - "label": "Buttons", - }, - ), - 75: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("", "Left"), - ("fr-btns-group--center", "Center"), - ("fr-btns-group--right", "Right"), - ( - "fr-btns-group--right fr-btns-group--inline-reverse", - "Right (reverse order on desktop)", - ), - ], - "label": "Position", - "required": False, - }, - ), - 76: ( - "wagtail.blocks.StructBlock", - [[("buttons", 74), ("position", 75)]], - {"label": "Button list"}, - ), - 77: ("wagtail.blocks.RichTextBlock", (), {"label": "Content"}), - 78: ( - "wagtail.blocks.StructBlock", - [[("title", 68), ("content", 77)]], - {"label": "Accordion", "max_num": 15, "min_num": 1}, - ), - 79: ( - "wagtail.blocks.StreamBlock", - [[("title", 68), ("accordion", 78)]], - {"group": "DSFR components", "label": "Accordions"}, - ), - 80: ( - "wagtail.blocks.RichTextBlock", - (), - { - "features": [ - "bold", - "italic", - "link", - "document-link", - "superscript", - "subscript", - "strikethrough", - "text-left", - "text-center", - "text-right", - ], - "label": "Content", - "required": False, - }, - ), - 81: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 4), - ("page", 5), - ("document", 6), - ("external_url", 7), - ("anchor", 8), - ("query_string", 9), - ("text", 47), - ("button_type", 48), - ("icon_class", 49), - ("icon_side", 50), - ] - ], - {"label": "Button", "required": False}, - ), - 82: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 23), - ("heading_tag", 44), - ("icon_class", 49), - ("text", 80), - ("button", 81), - ("color", 19), - ] - ], - {"group": "DSFR components", "label": "Callout"}, - ), - 83: ( - "wagtail.blocks.RichTextBlock", - (), - { - "features": [ - "bold", - "italic", - "link", - "document-link", - "superscript", - "subscript", - "strikethrough", - "text-left", - "text-center", - "text-right", - ], - "label": "Content", - }, - ), - 84: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("fr-text--sm", "Small"), ("", "Medium"), ("fr-text--lg", "Large")], - "label": "Size", - "required": False, - }, - ), - 85: ( - "wagtail.blocks.StructBlock", - [[("text", 83), ("color", 19), ("size", 84)]], - {"group": "DSFR components", "label": "Highlight"}, - ), - 86: ( - "wagtail.blocks.StructBlock", - [[("image", 15), ("quote", 16), ("author_name", 17), ("author_title", 18), ("color", 19)]], - {"group": "DSFR components", "label": "Quote"}, - ), - 87: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 4), - ("page", 5), - ("document", 6), - ("external_url", 7), - ("anchor", 8), - ("query_string", 9), - ("text", 10), - ("icon", 11), - ("size", 12), - ] - ], - {"label": "Single link"}, - ), - 88: ( - "wagtail.blocks.RichTextBlock", - (), - { - "features": ["bold", "italic", "superscript", "subscript", "strikethrough"], - "label": "Content", - "required": False, - }, - ), - 89: ( - "wagtail.images.blocks.ImageChooserBlock", - (), - {"help_text": "Prefer SVG files.", "label": "Image", "required": False}, - ), - 90: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 4), - ("page", 5), - ("document", 6), - ("external_url", 7), - ("anchor", 8), - ("query_string", 9), - ] - ], - {"label": "Link", "required": False}, - ), - 91: ("wagtail.blocks.StreamBlock", [[("badge", 66)]], {}), - 92: ("wagtail.blocks.StreamBlock", [[("tag", 72)]], {}), - 93: ( - "wagtail.blocks.StreamBlock", - [[("badges", 91), ("tags", 92)]], - {"label": "Top detail: badges or tags", "max_num": 1, "required": False}, - ), - 94: ( - "wagtail.blocks.CharBlock", - (), - { - "help_text": "If the tile links to a downloadable document, the values are pre-filled.", - "label": "Detail text", - "required": False, - }, - ), - 95: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tile", "required": False}), - 96: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with grey background", "required": False}), - 97: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without background", "required": False}), - 98: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without border", "required": False}), - 99: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with a shadow", "required": False}), - 100: ("wagtail.blocks.BooleanBlock", (), {"label": "Horizontal tile", "required": False}), - 101: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 68), - ("heading_tag", 44), - ("description", 88), - ("image", 89), - ("link", 90), - ("top_detail_badges_tags", 93), - ("detail_text", 94), - ("is_small", 95), - ("grey_background", 96), - ("no_background", 97), - ("no_border", 98), - ("shadow", 99), - ("is_horizontal", 100), - ] - ], - {"group": "DSFR components", "label": "Tile"}, - ), - 102: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("h2", "Heading 2"), - ("h3", "Heading 3"), - ("h4", "Heading 4"), - ("h5", "Heading 5"), - ], - "help_text": "Adapt to the page layout. Defaults to heading 2.", - "label": "Heading level", - "required": False, - }, - ), - 103: ( - "wagtail.blocks.PageChooserBlock", - (), - {"label": "Blog", "page_type": ["blog.BlogIndexPage"]}, - ), - 104: ( - "wagtail.blocks.IntegerBlock", - (), - { - "default": 3, - "label": "Number of entries", - "max_value": 8, - "min_value": 1, - "required": False, - }, - ), - 105: ( - "wagtail.snippets.blocks.SnippetChooserBlock", - ("blog.Category",), - {"label": "Filter by category", "required": False}, - ), - 106: ( - "wagtail.snippets.blocks.SnippetChooserBlock", - ("content_manager.Tag",), - {"label": "Filter by tag", "required": False}, - ), - 107: ( - "wagtail.snippets.blocks.SnippetChooserBlock", - ("blog.Person",), - {"label": "Filter by author", "required": False}, - ), - 108: ( - "wagtail.snippets.blocks.SnippetChooserBlock", - ("blog.Organization",), - { - "help_text": "The source is the organization of the post author", - "label": "Filter by source", - "required": False, - }, - ), - 109: ( - "wagtail.blocks.BooleanBlock", - (), - {"default": False, "label": "Show filters", "required": False}, - ), - 110: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 23), - ("heading_tag", 102), - ("blog", 103), - ("entries_count", 104), - ("category_filter", 105), - ("tag_filter", 106), - ("author_filter", 107), - ("source_filter", 108), - ("show_filters", 109), - ] - ], - {"group": "Website structure", "label": "Blog recent entries"}, - ), - 111: ( - "wagtail.blocks.PageChooserBlock", - (), - {"label": "Event calendar", "page_type": ["events.EventsIndexPage"]}, - ), - 112: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 23), - ("heading_tag", 102), - ("index_page", 111), - ("entries_count", 104), - ("category_filter", 105), - ("tag_filter", 106), - ("author_filter", 107), - ("source_filter", 108), - ("show_filters", 109), - ] - ], - {"group": "Website structure", "label": "Event calendar recent entries"}, - ), - 113: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("h2", "Heading 2"), - ("h3", "Heading 3"), - ("h4", "Heading 4"), - ("h5", "Heading 5"), - ("h6", "Heading 6"), - ("p", "Paragraph"), - ], - "help_text": "Adapt to the page layout. Defaults to heading 2.", - "label": "Heading level", - }, - ), - 114: ( - "wagtail.blocks.IntegerBlock", - (), - {"label": "Number of steps", "max_value": 8, "min_value": 1}, - ), - 115: ( - "wagtail.blocks.IntegerBlock", - (), - {"label": "Current step", "max_value": 8, "min_value": 1}, - ), - 116: ("wagtail.blocks.TextBlock", (), {"label": "Detail", "required": False}), - 117: ("wagtail.blocks.StructBlock", [[("title", 68), ("detail", 116)]], {"label": "Step"}), - 118: ("wagtail.blocks.StreamBlock", [[("step", 117)]], {"label": "Steps"}), - 119: ( - "wagtail.blocks.StructBlock", - [[("title", 68), ("heading_tag", 113), ("total", 114), ("current", 115), ("steps", 118)]], - {"group": "DSFR components", "label": "Stepper"}, - ), - 120: ("wagtailmarkdown.blocks.MarkdownBlock", (), {"group": "Expert syntax", "label": "Markdown"}), - 121: ( - "wagtail.blocks.CharBlock", - (), - { - "help_text": "Accessibility: The title should describe, in a clear and concise manner, the embedded content.", - "label": "Title", - }, - ), - 122: ( - "wagtail.blocks.URLBlock", - (), - { - "help_text": "Example for Tally: https://tally.so/embed/w2jMRa", - "label": "URL of the iframe", - }, - ), - 123: ("wagtail.blocks.IntegerBlock", (), {"label": "Height (in pixels)"}), - 124: ( - "wagtail.blocks.CharBlock", - (), - { - "help_text": "For example: \"allow='geolocation'\".", - "label": "Parameters", - "required": False, - }, - ), - 125: ( - "wagtail.blocks.StructBlock", - [[("title", 121), ("url", 122), ("height", 123), ("parameters", 124)]], - {"group": "Expert syntax", "label": "Iframe"}, - ), - 126: ( - "wagtail.blocks.RawHTMLBlock", - (), - { - "group": "Expert syntax", - "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", - "readonly": True, - }, - ), - 127: ( - "wagtail.blocks.CharBlock", - (), - { - "help_text": "Allows the creation of a link to this specific part of the page. Allowed characters: A-Z, a-z, 0-9, - and _.", - "label": "Anchor ID", - "validators": [ - django.core.validators.RegexValidator( - re.compile("^[-a-zA-Z0-9_]+\\Z"), - "Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.", - "invalid", - ) - ], - }, - ), - 128: ( - "wagtail.blocks.StructBlock", - [[("anchor_id", 127)]], - {"group": "Page structure", "label": "Anchor"}, - ), - 129: ( - "wagtail.blocks.IntegerBlock", - (), - {"default": 3, "label": "Top margin", "max_value": 15, "min_value": 0}, - ), - 130: ( - "wagtail.blocks.IntegerBlock", - (), - {"default": 3, "label": "Bottom margin", "max_value": 15, "min_value": 0}, - ), - 131: ( - "wagtail.blocks.StructBlock", - [[("top_margin", 129), ("bottom_margin", 130)]], - {"group": "Page structure", "label": "Separator"}, - ), - 132: ( - "wagtail.blocks.StreamBlock", - [[("badge", 66)]], - { - "help_text": "Only used if the card has an image.", - "label": "Image area badge", - "max_num": 1, - "required": False, - }, - ), - 133: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 4), - ("page", 5), - ("document", 6), - ("external_url", 7), - ("anchor", 8), - ("query_string", 9), - ] - ], - { - "collapsed": False, - "help_text": "Link for the whole card. If a call-to-action is present, the link will display on the title only.", - "label": "Link", - "required": False, - }, - ), - 134: ("wagtail.blocks.CharBlock", (), {"label": "Top detail: text", "required": False}), - 135: ( - "content_manager.blocks.buttons_links.IconPickerBlock", - (), - {"label": "Top detail: icon", "required": False}, - ), - 136: ( - "wagtail.blocks.CharBlock", - (), - { - "help_text": "Incompatible with the bottom call-to-action.", - "label": "Bottom detail: text", - "required": False, - }, - ), - 137: ( - "content_manager.blocks.buttons_links.IconPickerBlock", - (), - {"label": "Bottom detail: icon", "required": False}, - ), - 138: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 4), - ("page", 5), - ("document", 6), - ("external_url", 7), - ("anchor", 8), - ("query_string", 9), - ("text", 10), - ] - ], - {"label": "Link"}, - ), - 139: ("wagtail.blocks.StreamBlock", [[("link", 138)]], {"label": "Links"}), - 140: ( - "wagtail.blocks.StreamBlock", - [[("links", 139), ("buttons", 52)]], - { - "help_text": "Incompatible with the bottom detail text. Allow you to add link or button.", - "label": "Bottom call-to-action: links or buttons", - "max_num": 1, - "required": False, - }, - ), - 141: ( - "wagtail.blocks.BooleanBlock", - (), - {"label": "Card with grey background", "required": False}, - ), - 142: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without background", "required": False}), - 143: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without border", "required": False}), - 144: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with a shadow", "required": False}), - 145: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 68), - ("heading_tag", 44), - ("description", 80), - ("image", 1), - ("image_ratio", 32), - ("image_badge", 132), - ("link", 133), - ("top_detail_text", 134), - ("top_detail_icon", 135), - ("top_detail_badges_tags", 93), - ("bottom_detail_text", 136), - ("bottom_detail_icon", 137), - ("call_to_action", 140), - ("grey_background", 141), - ("no_background", 142), - ("no_border", 143), - ("shadow", 144), - ] - ], - {"group": "DSFR components", "label": "Vertical card"}, - ), - 146: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("3", "3/12"), - ("4", "4/12"), - ("5", "5/12"), - ("6", "6/12"), - ("7", "7/12"), - ("8", "8/12"), - ("9", "9/12"), - ], - "help_text": "The total width of all columns should be 12.", - "label": "Column width", - "required": False, - }, - ), - 147: ( - "wagtail.snippets.blocks.SnippetChooserBlock", - ("blog.Person",), - { - "help_text": "Optional, all values can be manually specified or overriden below", - "label": "Person", - "required": False, - }, - ), - 148: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255, "required": False}), - 149: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255, "required": False}), - 150: ( - "wagtail.blocks.CharBlock", - (), - {"label": "Organization", "max_length": 255, "required": False}, - ), - 151: ( - "wagtail.blocks.CharBlock", - (), - {"label": "Contact info", "max_length": 500, "required": False}, - ), - 152: ("wagtail.blocks.StreamBlock", [[("tag", 72)]], {"label": "Tags", "required": False}), - 153: ( - "wagtail.blocks.StructBlock", - [ - [ - ("contact", 147), - ("link", 90), - ("heading_tag", 28), - ("name", 148), - ("role", 149), - ("organization", 150), - ("contact_info", 151), - ("image", 15), - ("tags", 152), - ] - ], - {"group": "Extra components", "label": "Contact card"}, - ), - 154: ( - "wagtail.blocks.StreamBlock", - [ - [ - ("text", 0), - ("image", 35), - ("imageandtext", 36), - ("table", 40), - ("alert", 45), - ("text_cta", 54), - ("video", 61), - ("transcription", 62), - ("badges_list", 67), - ("tags_list", 73), - ("buttons_list", 76), - ("accordions", 79), - ("callout", 82), - ("highlight", 85), - ("quote", 86), - ("link", 87), - ("tile", 101), - ("blog_recent_entries", 110), - ("events_recent_entries", 112), - ("stepper", 119), - ("markdown", 120), - ("iframe", 125), - ("html", 126), - ("anchor", 128), - ("separator", 131), - ("card", 145), - ("contact_card", 153), - ] - ], - {"label": "Column content"}, - ), - 155: ( - "wagtail.blocks.StructBlock", - [[("width", 146), ("content", 154)]], - {"group": "Page structure", "label": "Adjustable column"}, - ), - 156: ( - "wagtail.blocks.StreamBlock", - [ - [ - ("text", 0), - ("image", 35), - ("imageandtext", 36), - ("table", 40), - ("alert", 45), - ("text_cta", 54), - ("video", 61), - ("transcription", 62), - ("badges_list", 67), - ("tags_list", 73), - ("buttons_list", 76), - ("accordions", 79), - ("callout", 82), - ("highlight", 85), - ("quote", 86), - ("link", 87), - ("tile", 101), - ("blog_recent_entries", 110), - ("events_recent_entries", 112), - ("stepper", 119), - ("markdown", 120), - ("iframe", 125), - ("html", 126), - ("anchor", 128), - ("separator", 131), - ("card", 145), - ("column", 155), - ] - ], - {"label": "Columns"}, - ), - 157: ( - "wagtail.blocks.StructBlock", - [ - [ - ("bg_image", 21), - ("bg_color_class", 22), - ("title", 23), - ("heading_tag", 24), - ("top_margin", 25), - ("bottom_margin", 26), - ("vertical_align", 27), - ("columns", 156), - ] - ], - {"label": "Multi-colonnes"}, - ), - 158: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255}), - 159: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255}), - 160: ("wagtail.blocks.CharBlock", (), {"label": "Organization", "max_length": 255}), - 161: ( - "wagtail.blocks.StructBlock", - [[("name", 158), ("role", 159), ("organization", 160), ("contact_info", 151), ("image", 29)]], - {"label": "Contact card"}, - ), - }, - help_text="Text displayed at the end of every page in the category", - ), - ), - ] diff --git a/content_manager/migrations/0075_alter_catalogindexpage_body_alter_contentpage_body.py b/content_manager/migrations/0075_alter_catalogindexpage_body_alter_contentpage_body.py deleted file mode 100644 index b44a45eb5..000000000 --- a/content_manager/migrations/0075_alter_catalogindexpage_body_alter_contentpage_body.py +++ /dev/null @@ -1,4127 +0,0 @@ -# Generated by Django 6.0.3 on 2026-03-23 15:24 - -import content_manager.validators -import django.core.validators -import re -import wagtail.fields -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ("content_manager", "0074_invert_hero_text_position"), - ] - - operations = [ - migrations.AlterField( - model_name="catalogindexpage", - name="body", - field=wagtail.fields.StreamField( - [ - ("paragraph", 0), - ("image", 9), - ("imageandtext", 23), - ("table", 27), - ("alert", 32), - ("text_cta", 41), - ("video", 48), - ("transcription", 49), - ("badges_list", 54), - ("tags_list", 60), - ("buttons_list", 63), - ("link", 64), - ("accordions", 67), - ("callout", 71), - ("highlight", 74), - ("quote", 79), - ("stepper", 86), - ("card", 104), - ("tile", 115), - ("tabs", 156), - ("markdown", 157), - ("iframe", 158), - ("html", 159), - ("anchor", 160), - ("separator", 161), - ("multicolumns", 172), - ("item_grid", 176), - ("fullwidthbackground", 181), - ("fullwidthbackgroundwithsidemenu", 188), - ("subpageslist", 189), - ("blog_recent_entries", 190), - ("events_recent_entries", 191), - ("layout_richtext", 195), - ("image_text_grid_section", 206), - ("image_text_cta_section", 210), - ("cta_section", 213), - ("spotlight_section", 217), - ("accordion_section", 219), - ], - blank=True, - block_lookup={ - 0: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text"}), - 1: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": False}), - 2: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("h2", "Heading 2"), - ("h3", "Heading 3"), - ("h4", "Heading 4"), - ("h5", "Heading 5"), - ("h6", "Heading 6"), - ("p", "Paragraph"), - ], - "help_text": "Adapt to the page layout. Defaults to heading 3.", - "label": "Heading level", - "required": False, - }, - ), - 3: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image"}), - 4: ( - "wagtail.blocks.CharBlock", - (), - {"label": "Alternative text (textual description of the image)", "required": False}, - ), - 5: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("fr-content-media--sm", "Small"), - ("", "Medium"), - ("fr-content-media--lg", "Large"), - ], - "label": "Witdh", - "required": False, - }, - ), - 6: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("fr-ratio-32x9", "32x9"), - ("fr-ratio-16x9", "16x9"), - ("fr-ratio-3x2", "3x2"), - ("fr-ratio-4x3", "4x3"), - ("fr-ratio-1x1", "1x1"), - ("fr-ratio-3x4", "3x4"), - ("fr-ratio-2x3", "2x3"), - ], - "label": "Image ratio", - "required": False, - }, - ), - 7: ("wagtail.blocks.CharBlock", (), {"label": "Caption", "required": False}), - 8: ("wagtail.blocks.URLBlock", (), {"label": "Link", "required": False}), - 9: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 1), - ("heading_tag", 2), - ("image", 3), - ("alt", 4), - ("width", 5), - ("image_ratio", 6), - ("caption", 7), - ("url", 8), - ] - ], - {"label": "Centered image"}, - ), - 10: ("wagtail.images.blocks.ImageBlock", [], {"label": "Image"}), - 11: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("left", "Left (displayed above text in mobile view)"), - ("left_below", "Left (displayed below text in mobile view)"), - ("right", "Right (displayed below text in mobile view)"), - ("right_above", "Right (displayed above text in mobile view)"), - ], - "label": "Image position", - }, - ), - 12: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("3", "3/12"), ("4", "4/12"), ("5", "5/12"), ("6", "6/12")], - "label": "Image width", - }, - ), - 13: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("page", "Page"), - ("external_url", "External URL"), - ("document", "Document"), - ("anchor", "Anchor link"), - ], - "help_text": "Select the type of link.", - "label": "Link type", - "required": False, - }, - ), - 14: ( - "wagtail.blocks.PageChooserBlock", - (), - { - "help_text": "Link to a page of this site. Use either this, the document, or the external URL parameter.", - "label": "Page", - "required": False, - }, - ), - 15: ( - "wagtail.documents.blocks.DocumentChooserBlock", - (), - { - "help_text": "Use either this, the external URL or the page parameter.", - "label": "Document", - "required": False, - }, - ), - 16: ( - "wagtail.blocks.URLBlock", - (), - { - "help_text": "Use either this, the document or the page parameter.", - "label": "External URL", - "required": False, - }, - ), - 17: ( - "wagtail.blocks.CharBlock", - (), - { - "default": "", - "help_text": "Link to an anchor block on the page. Allowed characters: A-Z, a-z, 0-9, - and _.", - "label": "Anchor ID", - "required": False, - "validators": [ - django.core.validators.RegexValidator( - re.compile("^[-a-zA-Z0-9_]+\\Z"), - "Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.", - "invalid", - ) - ], - }, - ), - 18: ( - "wagtail.blocks.CharBlock", - (), - { - "default": "", - "help_text": "Extra query parameters at the end of the link, e.g. filtering options.", - "label": "Extra query parameters", - "required": False, - "validators": [content_manager.validators.validate_query_string], - }, - ), - 19: ("wagtail.blocks.CharBlock", (), {"label": "Link label", "required": False}), - 20: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("", "No icon"), - ("fr-icon-arrow-right-line fr-link--icon-right", "Icon on the right side"), - ("fr-icon-arrow-right-line fr-link--icon-left", "Icon on the left side"), - ], - "help_text": "Only used for internal links.", - "label": "Icon", - "required": False, - }, - ), - 21: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("fr-link--sm", "Small"), ("", "Medium"), ("fr-link--lg", "Large")], - "label": "Size", - "required": False, - }, - ), - 22: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ("text", 19), - ("icon", 20), - ("size", 21), - ] - ], - { - "help_text": "The link is shown at the bottom of the text block, with an arrow", - "label": "Link", - "required": False, - }, - ), - 23: ( - "wagtail.blocks.StructBlock", - [[("image", 10), ("image_side", 11), ("image_ratio", 12), ("text", 0), ("link", 22)]], - {"label": "Image and text"}, - ), - 24: ("wagtail.blocks.CharBlock", (), {"label": "Row heading", "required": False}), - 25: ( - "wagtail.blocks.RichTextBlock", - (), - { - "features": [ - "bold", - "italic", - "link", - "document-link", - "superscript", - "subscript", - "strikethrough", - "text-left", - "text-center", - "text-right", - ], - "label": "Text", - "required": False, - }, - ), - 26: ("wagtail.images.blocks.ImageBlock", [], {"label": "Pictogram"}), - 27: ( - "wagtail.contrib.typed_table_block.blocks.TypedTableBlock", - [[("row_heading", 24), ("text", 25), ("pictogram", 26)]], - {"label": "Table"}, - ), - 28: ("wagtail.blocks.CharBlock", (), {"label": "Message title", "required": False}), - 29: ("wagtail.blocks.TextBlock", (), {"label": "Message text", "required": False}), - 30: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("error", "Error"), - ("success", "Success"), - ("info", "Information"), - ("warning", "Warning"), - ], - "label": "Message type", - }, - ), - 31: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("h2", "Heading 2"), - ("h3", "Heading 3"), - ("h4", "Heading 4"), - ("h5", "Heading 5"), - ("h6", "Heading 6"), - ("p", "Paragraph"), - ], - "help_text": "Adapt to the page layout. Defaults to heading 3.", - "label": "Heading level", - }, - ), - 32: ( - "wagtail.blocks.StructBlock", - [[("title", 28), ("description", 29), ("level", 30), ("heading_tag", 31)]], - {"label": "Alert message"}, - ), - 33: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text", "required": False}), - 34: ("wagtail.blocks.CharBlock", (), {"label": "Button label", "required": False}), - 35: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("fr-btn", "Primary"), - ("fr-btn fr-btn--secondary", "Secundary"), - ("fr-btn fr-btn--tertiary", "Tertiary"), - ("fr-btn fr-btn--tertiary-no-outline", "Tertiary without border"), - ], - "label": "Button type", - "required": False, - }, - ), - 36: ( - "content_manager.blocks.buttons_links.IconPickerBlock", - (), - {"label": "Icon", "required": False}, - ), - 37: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")], - "label": "Icon side", - "required": False, - }, - ), - 38: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ("text", 34), - ("button_type", 35), - ("icon_class", 36), - ("icon_side", 37), - ] - ], - {"label": "Button"}, - ), - 39: ( - "wagtail.blocks.StreamBlock", - [[("button", 38)]], - { - "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", - "label": "Buttons", - }, - ), - 40: ( - "wagtail.blocks.StreamBlock", - [[("buttons", 39)]], - {"label": "Call-to-action buttons", "max_num": 1, "required": False}, - ), - 41: ( - "wagtail.blocks.StructBlock", - [[("text", 33), ("cta_buttons", 40)]], - {"label": "Text and call to action"}, - ), - 42: ("wagtail.blocks.CharBlock", (), {"label": "Video title", "required": False}), - 43: ( - "wagtail.blocks.URLBlock", - (), - { - "help_text": "Use embed format, with a version that doesn't require a consent banner if available. (e.g. : https://www.youtube-nocookie.com/embed/gLzXOViPX-0) For Youtube, use Embed video and check Enable privacy-enhanced mode.", - "label": "Video URL", - }, - ), - 44: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("fr-ratio-16x9", "16x9"), ("fr-ratio-4x3", "4x3"), ("fr-ratio-1x1", "1x1")], - "label": "Video ratio", - "required": False, - }, - ), - 45: ( - "wagtail.blocks.CharBlock", - (), - {"default": "Transcription", "label": "Title", "required": False}, - ), - 46: ("wagtail.blocks.RichTextBlock", (), {"label": "Transcription content", "required": False}), - 47: ( - "wagtail.blocks.StructBlock", - [[("title", 45), ("content", 46)]], - {"label": "Transcription", "required": False}, - ), - 48: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 42), - ("caption", 7), - ("url", 43), - ("width", 5), - ("video_ratio", 44), - ("transcription", 47), - ] - ], - {"label": "Video"}, - ), - 49: ("wagtail.blocks.StructBlock", [[("title", 45), ("content", 46)]], {"label": "Transcription"}), - 50: ("wagtail.blocks.CharBlock", (), {"label": "Badge label", "required": False}), - 51: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("", [("new", "New"), ("grey", "Grey")]), - ( - "System colors", - [ - ("info", "Info"), - ("success", "Success"), - ("warning", "Warning"), - ("error", "Error"), - ], - ), - ( - "Illustration colors", - [ - ("green-tilleul-verveine", "Tilleul verveine"), - ("green-bourgeon", "Bourgeon"), - ("green-emeraude", "Émeraude"), - ("green-menthe", "Menthe"), - ("green-archipel", "Archipel"), - ("blue-ecume", "Écume"), - ("blue-cumulus", "Cumulus"), - ("purple-glycine", "Glycine"), - ("pink-macaron", "Macaron"), - ("pink-tuile", "Tuile"), - ("yellow-tournesol", "Tournesol"), - ("yellow-moutarde", "Moutarde"), - ("orange-terre-battue", "Terre battue"), - ("brown-cafe-creme", "Café crème"), - ("brown-caramel", "Caramel"), - ("brown-opera", "Opéra"), - ("beige-gris-galet", "Gris galet"), - ], - ), - ], - "label": "Badge color", - "required": False, - }, - ), - 52: ("wagtail.blocks.BooleanBlock", (), {"label": "Hide badge icon", "required": False}), - 53: ( - "wagtail.blocks.StructBlock", - [[("text", 50), ("color", 51), ("hide_icon", 52)]], - {"label": "Badge"}, - ), - 54: ("wagtail.blocks.StreamBlock", [[("badge", 53)]], {"label": "Badge list"}), - 55: ("wagtail.blocks.CharBlock", (), {"label": "Title"}), - 56: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tag", "required": False}), - 57: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("green-tilleul-verveine", "Tilleul verveine"), - ("green-bourgeon", "Bourgeon"), - ("green-emeraude", "Émeraude"), - ("green-menthe", "Menthe"), - ("green-archipel", "Archipel"), - ("blue-ecume", "Écume"), - ("blue-cumulus", "Cumulus"), - ("purple-glycine", "Glycine"), - ("pink-macaron", "Macaron"), - ("pink-tuile", "Tuile"), - ("yellow-tournesol", "Tournesol"), - ("yellow-moutarde", "Moutarde"), - ("orange-terre-battue", "Terre battue"), - ("brown-cafe-creme", "Café crème"), - ("brown-caramel", "Caramel"), - ("brown-opera", "Opéra"), - ("beige-gris-galet", "Gris galet"), - ], - "help_text": "Only for clickable tags", - "label": "Tag color", - "required": False, - }, - ), - 58: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ] - ], - {"required": False}, - ), - 59: ( - "wagtail.blocks.StructBlock", - [[("label", 55), ("is_small", 56), ("color", 57), ("icon_class", 36), ("link", 58)]], - {"label": "Tag"}, - ), - 60: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {"label": "Tag list"}), - 61: ( - "wagtail.blocks.StreamBlock", - [[("button", 38)]], - { - "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", - "label": "Buttons", - }, - ), - 62: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("", "Left"), - ("fr-btns-group--center", "Center"), - ("fr-btns-group--right", "Right"), - ( - "fr-btns-group--right fr-btns-group--inline-reverse", - "Right (reverse order on desktop)", - ), - ], - "label": "Position", - "required": False, - }, - ), - 63: ( - "wagtail.blocks.StructBlock", - [[("buttons", 61), ("position", 62)]], - {"label": "Button list"}, - ), - 64: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ("text", 19), - ("icon", 20), - ("size", 21), - ] - ], - {"label": "Single link"}, - ), - 65: ("wagtail.blocks.RichTextBlock", (), {"label": "Content"}), - 66: ( - "wagtail.blocks.StructBlock", - [[("title", 55), ("content", 65)]], - {"label": "Accordion", "max_num": 15, "min_num": 1}, - ), - 67: ( - "wagtail.blocks.StreamBlock", - [[("title", 55), ("accordion", 66)]], - {"group": "2. DSFR components", "label": "Accordions"}, - ), - 68: ( - "wagtail.blocks.RichTextBlock", - (), - { - "features": [ - "bold", - "italic", - "link", - "document-link", - "superscript", - "subscript", - "strikethrough", - "text-left", - "text-center", - "text-right", - ], - "label": "Content", - "required": False, - }, - ), - 69: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ("text", 34), - ("button_type", 35), - ("icon_class", 36), - ("icon_side", 37), - ] - ], - {"label": "Button", "required": False}, - ), - 70: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("green-tilleul-verveine", "Tilleul verveine"), - ("green-bourgeon", "Bourgeon"), - ("green-emeraude", "Émeraude"), - ("green-menthe", "Menthe"), - ("green-archipel", "Archipel"), - ("blue-ecume", "Écume"), - ("blue-cumulus", "Cumulus"), - ("purple-glycine", "Glycine"), - ("pink-macaron", "Macaron"), - ("pink-tuile", "Tuile"), - ("yellow-tournesol", "Tournesol"), - ("yellow-moutarde", "Moutarde"), - ("orange-terre-battue", "Terre battue"), - ("brown-cafe-creme", "Café crème"), - ("brown-caramel", "Caramel"), - ("brown-opera", "Opéra"), - ("beige-gris-galet", "Gris galet"), - ], - "label": "Color", - "required": False, - }, - ), - 71: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 1), - ("heading_tag", 31), - ("icon_class", 36), - ("text", 68), - ("button", 69), - ("color", 70), - ] - ], - {"group": "2. DSFR components", "label": "Callout"}, - ), - 72: ( - "wagtail.blocks.RichTextBlock", - (), - { - "features": [ - "bold", - "italic", - "link", - "document-link", - "superscript", - "subscript", - "strikethrough", - "text-left", - "text-center", - "text-right", - ], - "label": "Content", - }, - ), - 73: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("fr-text--sm", "Small"), ("", "Medium"), ("fr-text--lg", "Large")], - "label": "Size", - "required": False, - }, - ), - 74: ( - "wagtail.blocks.StructBlock", - [[("text", 72), ("color", 70), ("size", 73)]], - {"group": "2. DSFR components", "label": "Highlight"}, - ), - 75: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image", "required": False}), - 76: ("wagtail.blocks.CharBlock", (), {"label": "Quote"}), - 77: ("wagtail.blocks.CharBlock", (), {"label": "Author name", "required": False}), - 78: ("wagtail.blocks.CharBlock", (), {"label": "Author title", "required": False}), - 79: ( - "wagtail.blocks.StructBlock", - [[("image", 75), ("quote", 76), ("author_name", 77), ("author_title", 78), ("color", 70)]], - {"group": "2. DSFR components", "label": "Quote"}, - ), - 80: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("h2", "Heading 2"), - ("h3", "Heading 3"), - ("h4", "Heading 4"), - ("h5", "Heading 5"), - ("h6", "Heading 6"), - ("p", "Paragraph"), - ], - "help_text": "Adapt to the page layout. Defaults to heading 2.", - "label": "Heading level", - }, - ), - 81: ( - "wagtail.blocks.IntegerBlock", - (), - {"label": "Number of steps", "max_value": 8, "min_value": 1}, - ), - 82: ("wagtail.blocks.IntegerBlock", (), {"label": "Current step", "max_value": 8, "min_value": 1}), - 83: ("wagtail.blocks.TextBlock", (), {"label": "Detail", "required": False}), - 84: ("wagtail.blocks.StructBlock", [[("title", 55), ("detail", 83)]], {"label": "Step"}), - 85: ("wagtail.blocks.StreamBlock", [[("step", 84)]], {"label": "Steps"}), - 86: ( - "wagtail.blocks.StructBlock", - [[("title", 55), ("heading_tag", 80), ("total", 81), ("current", 82), ("steps", 85)]], - {"group": "2. DSFR components", "label": "Stepper"}, - ), - 87: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("fr-card--horizontal-tier", "1/3"), ("fr-card--horizontal-half", "50/50")], - "label": "Image ratio", - "required": False, - }, - ), - 88: ( - "wagtail.blocks.StreamBlock", - [[("badge", 53)]], - { - "help_text": "Only used if the card has an image.", - "label": "Image area badge", - "max_num": 1, - "required": False, - }, - ), - 89: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ] - ], - { - "collapsed": False, - "help_text": "Link for the whole card. If a call-to-action is present, the link will display on the title only.", - "label": "Link", - "required": False, - }, - ), - 90: ("wagtail.blocks.CharBlock", (), {"label": "Top detail: text", "required": False}), - 91: ( - "content_manager.blocks.buttons_links.IconPickerBlock", - (), - {"label": "Top detail: icon", "required": False}, - ), - 92: ("wagtail.blocks.StreamBlock", [[("badge", 53)]], {}), - 93: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {}), - 94: ( - "wagtail.blocks.StreamBlock", - [[("badges", 92), ("tags", 93)]], - {"label": "Top detail: badges or tags", "max_num": 1, "required": False}, - ), - 95: ( - "wagtail.blocks.CharBlock", - (), - { - "help_text": "Incompatible with the bottom call-to-action. If the card links to a downloadable document, the values are pre-filled.", - "label": "Bottom detail: text", - "required": False, - }, - ), - 96: ( - "content_manager.blocks.buttons_links.IconPickerBlock", - (), - {"label": "Bottom detail: icon", "required": False}, - ), - 97: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ("text", 19), - ] - ], - {"label": "Link"}, - ), - 98: ("wagtail.blocks.StreamBlock", [[("link", 97)]], {"label": "Links"}), - 99: ( - "wagtail.blocks.StreamBlock", - [[("links", 98), ("buttons", 39)]], - { - "help_text": "Incompatible with the bottom detail text. Allow you to add link or button.", - "label": "Bottom call-to-action: links or buttons", - "max_num": 1, - "required": False, - }, - ), - 100: ( - "wagtail.blocks.BooleanBlock", - (), - {"label": "Card with grey background", "required": False}, - ), - 101: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without background", "required": False}), - 102: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without border", "required": False}), - 103: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with a shadow", "required": False}), - 104: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 55), - ("heading_tag", 31), - ("description", 68), - ("image", 10), - ("image_ratio", 87), - ("image_badge", 88), - ("link", 89), - ("top_detail_text", 90), - ("top_detail_icon", 91), - ("top_detail_badges_tags", 94), - ("bottom_detail_text", 95), - ("bottom_detail_icon", 96), - ("call_to_action", 99), - ("grey_background", 100), - ("no_background", 101), - ("no_border", 102), - ("shadow", 103), - ] - ], - {"group": "2. DSFR components", "label": "Horizontal card"}, - ), - 105: ( - "wagtail.blocks.RichTextBlock", - (), - { - "features": ["bold", "italic", "superscript", "subscript", "strikethrough"], - "label": "Content", - "required": False, - }, - ), - 106: ( - "wagtail.images.blocks.ImageChooserBlock", - (), - {"help_text": "Prefer SVG files.", "label": "Image", "required": False}, - ), - 107: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ] - ], - {"label": "Link", "required": False}, - ), - 108: ( - "wagtail.blocks.CharBlock", - (), - { - "help_text": "If the tile links to a downloadable document, the values are pre-filled.", - "label": "Detail text", - "required": False, - }, - ), - 109: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tile", "required": False}), - 110: ( - "wagtail.blocks.BooleanBlock", - (), - {"label": "Tile with grey background", "required": False}, - ), - 111: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without background", "required": False}), - 112: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without border", "required": False}), - 113: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with a shadow", "required": False}), - 114: ("wagtail.blocks.BooleanBlock", (), {"label": "Horizontal tile", "required": False}), - 115: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 55), - ("heading_tag", 31), - ("description", 105), - ("image", 106), - ("link", 107), - ("top_detail_badges_tags", 94), - ("detail_text", 108), - ("is_small", 109), - ("grey_background", 110), - ("no_background", 111), - ("no_border", 112), - ("shadow", 113), - ("is_horizontal", 114), - ] - ], - {"group": "2. DSFR components", "label": "Tile"}, - ), - 116: ( - "wagtail.blocks.StreamBlock", - [[("title", 55), ("accordion", 66)]], - {"group": "DSFR components", "label": "Accordions"}, - ), - 117: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 1), - ("heading_tag", 31), - ("icon_class", 36), - ("text", 68), - ("button", 69), - ("color", 70), - ] - ], - {"group": "DSFR components", "label": "Callout"}, - ), - 118: ( - "wagtail.blocks.StructBlock", - [[("text", 72), ("color", 70), ("size", 73)]], - {"group": "DSFR components", "label": "Highlight"}, - ), - 119: ( - "wagtail.blocks.StructBlock", - [[("image", 75), ("quote", 76), ("author_name", 77), ("author_title", 78), ("color", 70)]], - {"group": "DSFR components", "label": "Quote"}, - ), - 120: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 55), - ("heading_tag", 31), - ("description", 105), - ("image", 106), - ("link", 107), - ("top_detail_badges_tags", 94), - ("detail_text", 108), - ("is_small", 109), - ("grey_background", 110), - ("no_background", 111), - ("no_border", 112), - ("shadow", 113), - ("is_horizontal", 114), - ] - ], - {"group": "DSFR components", "label": "Tile"}, - ), - 121: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("h2", "Heading 2"), - ("h3", "Heading 3"), - ("h4", "Heading 4"), - ("h5", "Heading 5"), - ], - "help_text": "Adapt to the page layout. Defaults to heading 2.", - "label": "Heading level", - "required": False, - }, - ), - 122: ( - "wagtail.blocks.PageChooserBlock", - (), - {"label": "Blog", "page_type": ["blog.BlogIndexPage"]}, - ), - 123: ( - "wagtail.blocks.IntegerBlock", - (), - { - "default": 3, - "label": "Number of entries", - "max_value": 8, - "min_value": 1, - "required": False, - }, - ), - 124: ( - "wagtail.snippets.blocks.SnippetChooserBlock", - ("blog.Category",), - {"label": "Filter by category", "required": False}, - ), - 125: ( - "wagtail.snippets.blocks.SnippetChooserBlock", - ("content_manager.Tag",), - {"label": "Filter by tag", "required": False}, - ), - 126: ( - "wagtail.snippets.blocks.SnippetChooserBlock", - ("blog.Person",), - {"label": "Filter by author", "required": False}, - ), - 127: ( - "wagtail.snippets.blocks.SnippetChooserBlock", - ("blog.Organization",), - { - "help_text": "The source is the organization of the post author", - "label": "Filter by source", - "required": False, - }, - ), - 128: ( - "wagtail.blocks.BooleanBlock", - (), - {"default": False, "label": "Show filters", "required": False}, - ), - 129: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 1), - ("heading_tag", 121), - ("blog", 122), - ("entries_count", 123), - ("category_filter", 124), - ("tag_filter", 125), - ("author_filter", 126), - ("source_filter", 127), - ("show_filters", 128), - ] - ], - {"group": "Website structure", "label": "Blog recent entries"}, - ), - 130: ( - "wagtail.blocks.PageChooserBlock", - (), - {"label": "Event calendar", "page_type": ["events.EventsIndexPage"]}, - ), - 131: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 1), - ("heading_tag", 121), - ("index_page", 130), - ("entries_count", 123), - ("category_filter", 124), - ("tag_filter", 125), - ("author_filter", 126), - ("source_filter", 127), - ("show_filters", 128), - ] - ], - {"group": "Website structure", "label": "Event calendar recent entries"}, - ), - 132: ( - "wagtail.blocks.StructBlock", - [[("title", 55), ("heading_tag", 80), ("total", 81), ("current", 82), ("steps", 85)]], - {"group": "DSFR components", "label": "Stepper"}, - ), - 133: ("wagtailmarkdown.blocks.MarkdownBlock", (), {"group": "Expert syntax", "label": "Markdown"}), - 134: ( - "wagtail.blocks.CharBlock", - (), - { - "help_text": "Accessibility: The title should describe, in a clear and concise manner, the embedded content.", - "label": "Title", - }, - ), - 135: ( - "wagtail.blocks.URLBlock", - (), - { - "help_text": "Example for Tally: https://tally.so/embed/w2jMRa", - "label": "URL of the iframe", - }, - ), - 136: ("wagtail.blocks.IntegerBlock", (), {"label": "Height (in pixels)"}), - 137: ( - "wagtail.blocks.CharBlock", - (), - { - "help_text": "For example: \"allow='geolocation'\".", - "label": "Parameters", - "required": False, - }, - ), - 138: ( - "wagtail.blocks.StructBlock", - [[("title", 134), ("url", 135), ("height", 136), ("parameters", 137)]], - {"group": "Expert syntax", "label": "Iframe"}, - ), - 139: ( - "wagtail.blocks.RawHTMLBlock", - (), - { - "group": "Expert syntax", - "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", - "readonly": True, - }, - ), - 140: ( - "wagtail.blocks.CharBlock", - (), - { - "help_text": "Allows the creation of a link to this specific part of the page. Allowed characters: A-Z, a-z, 0-9, - and _.", - "label": "Anchor ID", - "validators": [ - django.core.validators.RegexValidator( - re.compile("^[-a-zA-Z0-9_]+\\Z"), - "Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.", - "invalid", - ) - ], - }, - ), - 141: ( - "wagtail.blocks.StructBlock", - [[("anchor_id", 140)]], - {"group": "Page structure", "label": "Anchor"}, - ), - 142: ( - "wagtail.blocks.IntegerBlock", - (), - {"default": 3, "label": "Top margin", "max_value": 15, "min_value": 0}, - ), - 143: ( - "wagtail.blocks.IntegerBlock", - (), - {"default": 3, "label": "Bottom margin", "max_value": 15, "min_value": 0}, - ), - 144: ( - "wagtail.blocks.StructBlock", - [[("top_margin", 142), ("bottom_margin", 143)]], - {"group": "Page structure", "label": "Separator"}, - ), - 145: ( - "wagtail.blocks.CharBlock", - (), - { - "help_text": "Incompatible with the bottom call-to-action.", - "label": "Bottom detail: text", - "required": False, - }, - ), - 146: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 55), - ("heading_tag", 31), - ("description", 68), - ("image", 10), - ("image_ratio", 6), - ("image_badge", 88), - ("link", 89), - ("top_detail_text", 90), - ("top_detail_icon", 91), - ("top_detail_badges_tags", 94), - ("bottom_detail_text", 145), - ("bottom_detail_icon", 96), - ("call_to_action", 99), - ("grey_background", 100), - ("no_background", 101), - ("no_border", 102), - ("shadow", 103), - ] - ], - {"group": "DSFR components", "label": "Vertical card"}, - ), - 147: ( - "wagtail.snippets.blocks.SnippetChooserBlock", - ("blog.Person",), - { - "help_text": "Optional, all values can be manually specified or overriden below", - "label": "Person", - "required": False, - }, - ), - 148: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255, "required": False}), - 149: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255, "required": False}), - 150: ( - "wagtail.blocks.CharBlock", - (), - {"label": "Organization", "max_length": 255, "required": False}, - ), - 151: ( - "wagtail.blocks.CharBlock", - (), - {"label": "Contact info", "max_length": 500, "required": False}, - ), - 152: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {"label": "Tags", "required": False}), - 153: ( - "wagtail.blocks.StructBlock", - [ - [ - ("contact", 147), - ("link", 107), - ("heading_tag", 2), - ("name", 148), - ("role", 149), - ("organization", 150), - ("contact_info", 151), - ("image", 75), - ("tags", 152), - ] - ], - {"group": "Extra components", "label": "Contact card"}, - ), - 154: ( - "wagtail.blocks.StreamBlock", - [ - [ - ("text", 0), - ("image", 9), - ("imageandtext", 23), - ("table", 27), - ("alert", 32), - ("text_cta", 41), - ("video", 48), - ("transcription", 49), - ("badges_list", 54), - ("tags_list", 60), - ("buttons_list", 63), - ("accordions", 116), - ("callout", 117), - ("highlight", 118), - ("quote", 119), - ("link", 64), - ("tile", 120), - ("blog_recent_entries", 129), - ("events_recent_entries", 131), - ("stepper", 132), - ("markdown", 133), - ("iframe", 138), - ("html", 139), - ("anchor", 141), - ("separator", 144), - ("card", 146), - ("contact_card", 153), - ] - ], - {"label": "Content"}, - ), - 155: ( - "wagtail.blocks.StructBlock", - [[("title", 55), ("content", 154)]], - {"label": "Tab", "max_num": 15, "min_num": 1}, - ), - 156: ( - "wagtail.blocks.StreamBlock", - [[("tabs", 155)]], - {"group": "2. DSFR components", "label": "Tabs"}, - ), - 157: ( - "wagtailmarkdown.blocks.MarkdownBlock", - (), - {"group": "5. Expert syntax", "label": "Markdown"}, - ), - 158: ( - "wagtail.blocks.StructBlock", - [[("title", 134), ("url", 135), ("height", 136), ("parameters", 137)]], - {"group": "5. Expert syntax", "label": "Iframe"}, - ), - 159: ( - "wagtail.blocks.RawHTMLBlock", - (), - { - "group": "5. Expert syntax", - "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", - "readonly": True, - }, - ), - 160: ( - "wagtail.blocks.StructBlock", - [[("anchor_id", 140)]], - {"group": "3. Page structure", "label": "Anchor"}, - ), - 161: ( - "wagtail.blocks.StructBlock", - [[("top_margin", 142), ("bottom_margin", 143)]], - {"group": "3. Page structure", "label": "Separator"}, - ), - 162: ( - "wagtail.images.blocks.ImageChooserBlock", - (), - {"label": "Background image", "required": False}, - ), - 163: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("Primary colors", [("blue-france", "Blue France"), ("red-marianne", "Red Marianne")]), - ("Neutral colors", [("grey", "Grey")]), - ( - "Illustration colors", - [ - ("green-tilleul-verveine", "Tilleul verveine"), - ("green-bourgeon", "Bourgeon"), - ("green-emeraude", "Émeraude"), - ("green-menthe", "Menthe"), - ("green-archipel", "Archipel"), - ("blue-ecume", "Écume"), - ("blue-cumulus", "Cumulus"), - ("purple-glycine", "Glycine"), - ("pink-macaron", "Macaron"), - ("pink-tuile", "Tuile"), - ("yellow-tournesol", "Tournesol"), - ("yellow-moutarde", "Moutarde"), - ("orange-terre-battue", "Terre battue"), - ("brown-cafe-creme", "Café crème"), - ("brown-caramel", "Caramel"), - ("brown-opera", "Opéra"), - ("beige-gris-galet", "Gris galet"), - ], - ), - ], - "help_text": "Uses the French Design System colors", - "label": "Background color", - "required": False, - }, - ), - 164: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("h2", "Heading 2"), - ("h3", "Heading 3"), - ("h4", "Heading 4"), - ("h5", "Heading 5"), - ("h6", "Heading 6"), - ("p", "Paragraph"), - ], - "help_text": "Adapt to the page layout. Defaults to heading 2.", - "label": "Heading level", - "required": False, - }, - ), - 165: ( - "wagtail.blocks.IntegerBlock", - (), - {"default": 5, "label": "Top margin", "max_value": 15, "min_value": 0, "required": False}, - ), - 166: ( - "wagtail.blocks.IntegerBlock", - (), - {"default": 5, "label": "Bottom margin", "max_value": 15, "min_value": 0, "required": False}, - ), - 167: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("top", "Top"), ("middle", "Middle"), ("bottom", "Bottom")], - "label": "Vertical align", - "required": False, - }, - ), - 168: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("3", "3/12"), - ("4", "4/12"), - ("5", "5/12"), - ("6", "6/12"), - ("7", "7/12"), - ("8", "8/12"), - ("9", "9/12"), - ], - "help_text": "The total width of all columns should be 12.", - "label": "Column width", - "required": False, - }, - ), - 169: ( - "wagtail.blocks.StreamBlock", - [ - [ - ("text", 0), - ("image", 9), - ("imageandtext", 23), - ("table", 27), - ("alert", 32), - ("text_cta", 41), - ("video", 48), - ("transcription", 49), - ("badges_list", 54), - ("tags_list", 60), - ("buttons_list", 63), - ("accordions", 116), - ("callout", 117), - ("highlight", 118), - ("quote", 119), - ("link", 64), - ("tile", 120), - ("blog_recent_entries", 129), - ("events_recent_entries", 131), - ("stepper", 132), - ("markdown", 133), - ("iframe", 138), - ("html", 139), - ("anchor", 141), - ("separator", 144), - ("card", 146), - ("contact_card", 153), - ] - ], - {"label": "Column content"}, - ), - 170: ( - "wagtail.blocks.StructBlock", - [[("width", 168), ("content", 169)]], - {"group": "Page structure", "label": "Adjustable column"}, - ), - 171: ( - "wagtail.blocks.StreamBlock", - [ - [ - ("text", 0), - ("image", 9), - ("imageandtext", 23), - ("table", 27), - ("alert", 32), - ("text_cta", 41), - ("video", 48), - ("transcription", 49), - ("badges_list", 54), - ("tags_list", 60), - ("buttons_list", 63), - ("accordions", 116), - ("callout", 117), - ("highlight", 118), - ("quote", 119), - ("link", 64), - ("tile", 120), - ("blog_recent_entries", 129), - ("events_recent_entries", 131), - ("stepper", 132), - ("markdown", 133), - ("iframe", 138), - ("html", 139), - ("anchor", 141), - ("separator", 144), - ("card", 146), - ("column", 170), - ] - ], - {"label": "Columns"}, - ), - 172: ( - "wagtail.blocks.StructBlock", - [ - [ - ("bg_image", 162), - ("bg_color_class", 163), - ("title", 1), - ("heading_tag", 164), - ("top_margin", 165), - ("bottom_margin", 166), - ("vertical_align", 167), - ("columns", 171), - ] - ], - {"group": "3. Page structure", "label": "Multiple columns"}, - ), - 173: ( - "wagtail.blocks.ChoiceBlock", - [], - {"choices": [("3", "3/12"), ("4", "4/12"), ("6", "6/12")], "label": "Column width"}, - ), - 174: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("left", "Left"), ("center", "Center"), ("right", "Right")], - "label": "Horizontal align", - "required": False, - }, - ), - 175: ( - "wagtail.blocks.StreamBlock", - [ - [ - ("text", 0), - ("image", 9), - ("imageandtext", 23), - ("table", 27), - ("alert", 32), - ("text_cta", 41), - ("video", 48), - ("transcription", 49), - ("badges_list", 54), - ("tags_list", 60), - ("buttons_list", 63), - ("accordions", 116), - ("callout", 117), - ("highlight", 118), - ("quote", 119), - ("link", 64), - ("tile", 120), - ("blog_recent_entries", 129), - ("events_recent_entries", 131), - ("stepper", 132), - ("markdown", 133), - ("iframe", 138), - ("html", 139), - ("anchor", 141), - ("separator", 144), - ("card", 146), - ("contact_card", 153), - ] - ], - {"label": "Items"}, - ), - 176: ( - "wagtail.blocks.StructBlock", - [[("column_width", 173), ("horizontal_align", 174), ("vertical_align", 167), ("items", 175)]], - {"group": "3. Page structure", "label": "Item grid"}, - ), - 177: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 55), - ("heading_tag", 31), - ("description", 68), - ("image", 10), - ("image_ratio", 87), - ("image_badge", 88), - ("link", 89), - ("top_detail_text", 90), - ("top_detail_icon", 91), - ("top_detail_badges_tags", 94), - ("bottom_detail_text", 95), - ("bottom_detail_icon", 96), - ("call_to_action", 99), - ("grey_background", 100), - ("no_background", 101), - ("no_border", 102), - ("shadow", 103), - ] - ], - {"group": "DSFR components", "label": "Horizontal card"}, - ), - 178: ( - "wagtail.blocks.StreamBlock", - [[("tabs", 155)]], - {"group": "DSFR components", "label": "Tabs"}, - ), - 179: ( - "wagtail.blocks.StructBlock", - [[("column_width", 173), ("horizontal_align", 174), ("vertical_align", 167), ("items", 175)]], - {"group": "Page structure", "label": "Item grid"}, - ), - 180: ( - "wagtail.blocks.StreamBlock", - [ - [ - ("text", 0), - ("image", 9), - ("imageandtext", 23), - ("table", 27), - ("alert", 32), - ("text_cta", 41), - ("video", 48), - ("transcription", 49), - ("badges_list", 54), - ("tags_list", 60), - ("buttons_list", 63), - ("accordions", 116), - ("callout", 117), - ("highlight", 118), - ("quote", 119), - ("link", 64), - ("tile", 120), - ("blog_recent_entries", 129), - ("events_recent_entries", 131), - ("stepper", 132), - ("markdown", 133), - ("iframe", 138), - ("html", 139), - ("anchor", 141), - ("separator", 144), - ("image_and_text", 23), - ("card", 177), - ("tabs", 178), - ("item_grid", 179), - ] - ], - {"label": "Content"}, - ), - 181: ( - "wagtail.blocks.StructBlock", - [ - [ - ("bg_image", 162), - ("bg_color_class", 163), - ("top_margin", 165), - ("bottom_margin", 166), - ("content", 180), - ] - ], - {"group": "3. Page structure", "label": "Full width background"}, - ), - 182: ( - "wagtail.blocks.StreamBlock", - [ - [ - ("text", 0), - ("image", 9), - ("imageandtext", 23), - ("table", 27), - ("alert", 32), - ("text_cta", 41), - ("video", 48), - ("transcription", 49), - ("badges_list", 54), - ("tags_list", 60), - ("buttons_list", 63), - ("accordions", 116), - ("callout", 117), - ("highlight", 118), - ("quote", 119), - ("link", 64), - ("tile", 120), - ("blog_recent_entries", 129), - ("events_recent_entries", 131), - ("stepper", 132), - ("markdown", 133), - ("iframe", 138), - ("html", 139), - ("anchor", 141), - ("separator", 144), - ("image_and_text", 23), - ("card", 177), - ("tabs", 178), - ("item_grid", 179), - ] - ], - {"label": "Main content"}, - ), - 183: ("wagtail.blocks.CharBlock", (), {"label": "Side menu title", "required": False}), - 184: ( - "wagtail.blocks.RawHTMLBlock", - (), - { - "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", - "label": "HTML", - }, - ), - 185: ("wagtail.blocks.PageChooserBlock", (), {"label": "Parent page"}), - 186: ("wagtail.blocks.StructBlock", [[("page", 185)]], {"label": "Page tree"}), - 187: ( - "wagtail.blocks.StreamBlock", - [[("html", 184), ("pagetree", 186)]], - {"label": "Side menu content"}, - ), - 188: ( - "wagtail.blocks.StructBlock", - [ - [ - ("bg_image", 162), - ("bg_color_class", 163), - ("top_margin", 165), - ("bottom_margin", 166), - ("main_content", 182), - ("sidemenu_title", 183), - ("sidemenu_content", 187), - ] - ], - {"group": "3. Page structure", "label": "Full width background with side menu"}, - ), - 189: ( - "wagtail.blocks.static_block.StaticBlock", - (), - { - "admin_text": "A simple, alphabetical list of the subpages of the current page.", - "group": "4. Website structure", - "label": "Subpages list", - "template": "content_manager/blocks/subpages_list.html", - }, - ), - 190: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 1), - ("heading_tag", 121), - ("blog", 122), - ("entries_count", 123), - ("category_filter", 124), - ("tag_filter", 125), - ("author_filter", 126), - ("source_filter", 127), - ("show_filters", 128), - ] - ], - {"group": "4. Website structure", "label": "Blog recent entries"}, - ), - 191: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 1), - ("heading_tag", 121), - ("index_page", 130), - ("entries_count", 123), - ("category_filter", 124), - ("tag_filter", 125), - ("author_filter", 126), - ("source_filter", 127), - ("show_filters", 128), - ] - ], - {"group": "4. Website structure", "label": "Event calendar recent entries"}, - ), - 192: ( - "wagtail.blocks.RichTextBlock", - (), - { - "default": "

En savoir plus


Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", - "features": ["bold", "italic", "link", "document-link", "strikethrough", "h2", "h3", "h4"], - "label": "Rich text", - }, - ), - 193: ( - "wagtail.blocks.ChoiceBlock", - [], - {"choices": [("6", "small"), ("8", "medium"), ("12", "large")], "label": "Block width"}, - ), - 194: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("left", "Left"), ("", "Center"), ("right", "Right")], - "label": "Block alignment", - "required": False, - }, - ), - 195: ( - "wagtail.blocks.StructBlock", - [[("text", 192), ("width", 193), ("alignment", 194)]], - {"group": "1. Section templates to be adapted", "label": "Rich text with layout"}, - ), - 196: ( - "wagtail.blocks.CharBlock", - (), - {"default": "Titre de la section", "label": "Section title"}, - ), - 197: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("Primary colors", [("blue-france", "Blue France"), ("red-marianne", "Red Marianne")]), - ("Neutral colors", [("grey", "Grey")]), - ( - "Illustration colors", - [ - ("green-tilleul-verveine", "Tilleul verveine"), - ("green-bourgeon", "Bourgeon"), - ("green-emeraude", "Émeraude"), - ("green-menthe", "Menthe"), - ("green-archipel", "Archipel"), - ("blue-ecume", "Écume"), - ("blue-cumulus", "Cumulus"), - ("purple-glycine", "Glycine"), - ("pink-macaron", "Macaron"), - ("pink-tuile", "Tuile"), - ("yellow-tournesol", "Tournesol"), - ("yellow-moutarde", "Moutarde"), - ("orange-terre-battue", "Terre battue"), - ("brown-cafe-creme", "Café crème"), - ("brown-caramel", "Caramel"), - ("brown-opera", "Opéra"), - ("beige-gris-galet", "Gris galet"), - ], - ), - ], - "help_text": "Uses the French Design System colors.
If you want to design a classic website, choose the colour ‘white’ or ‘French blue’.", - "label": "Background color", - "required": False, - }, - ), - 198: ( - "wagtail.blocks.StructBlock", - [[("background_color", 197), ("top_margin", 165), ("bottom_margin", 166)]], - {"collapsed": True, "label": "Layout"}, - ), - 199: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("left", "Left"), ("center", "Center"), ("right", "Right")], - "label": "Items alignement", - }, - ), - 200: ( - "wagtail.blocks.ChoiceBlock", - [], - {"choices": [("6", "2"), ("4", "3"), ("3", "4")], "label": "Items per row"}, - ), - 201: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("80", "Small (80px)"), ("140", "Medium (140px)"), ("200", "Large (200px)")], - "help_text": "Images are always displayed in a square (1:1) ratio. Three sizes are available: if the original image is smaller than the selected size, it will be displayed at its maximum available size.", - "label": "Image size of items", - }, - ), - 202: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": True}), - 203: ( - "wagtail.blocks.RichTextBlock", - (), - { - "default": "Add a short description to help your visitors better understand what you offer.", - "features": ["bold", "italic", "link", "document-link"], - "label": "Text", - }, - ), - 204: ("wagtail.blocks.StructBlock", [[("image", 10), ("title", 202), ("text", 203)]], {}), - 205: ( - "content_manager.blocks.sections.ImageAndTextListBlock", - (204,), - {"collapsed": True, "label": "Items"}, - ), - 206: ( - "wagtail.blocks.StructBlock", - [ - [ - ("section_title", 196), - ("layout", 198), - ("items_alignement", 199), - ("items_per_row", 200), - ("images_size", 201), - ("items", 205), - ] - ], - {"group": "1. Section templates to be adapted", "label": "Items grid (image and text)"}, - ), - 207: ( - "wagtail.blocks.RichTextBlock", - (), - { - "default": "

Titre de la section


Lorem ipsum dolor sit amet, consectetur adipiscing elit, ", - "features": ["bold", "italic", "link", "document-link", "strikethrough", "h2", "h3", "h4"], - "label": "Text block", - }, - ), - 208: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("left", "Left"), ("right", "Right")], - "help_text": "This field allows you to define the placement of text relative to adjacent content.", - "label": "Text content position", - }, - ), - 209: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ("text", 34), - ("button_type", 35), - ("icon_class", 36), - ("icon_side", 37), - ] - ], - { - "default": { - "button_type": "fr-btn fr-btn--secondary", - "external_url": "https://tube.numerique.gouv.fr/", - "icon_side": "--", - "link_type": "external_url", - "text": "Appel à l'action", - }, - "label": "Button", - }, - ), - 210: ( - "wagtail.blocks.StructBlock", - [[("text", 207), ("position", 208), ("button", 209), ("image", 10), ("layout", 198)]], - {"group": "1. Section templates to be adapted", "label": "Image, text and cta"}, - ), - 211: ( - "wagtail.blocks.RichTextBlock", - (), - { - "default": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididun", - "features": ["bold", "italic", "link", "document-link"], - "label": "Text", - }, - ), - 212: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ("text", 34), - ("button_type", 35), - ("icon_class", 36), - ("icon_side", 37), - ] - ], - { - "default": { - "button_type": "fr-btn", - "external_url": "https://tube.numerique.gouv.fr/", - "icon_side": "--", - "link_type": "external_url", - "text": "Appel à l'action", - }, - "label": "Button", - }, - ), - 213: ( - "wagtail.blocks.StructBlock", - [[("section_title", 196), ("layout", 198), ("text", 211), ("button", 212)]], - {"group": "1. Section templates to be adapted", "label": "Text and button"}, - ), - 214: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ("text", 19), - ] - ], - { - "collapsed": True, - "help_text": "This link appears at the bottom left of the section if completed", - "label": "Section link", - "required": False, - }, - ), - 215: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 55), - ("heading_tag", 31), - ("description", 68), - ("image", 10), - ("image_ratio", 6), - ("image_badge", 88), - ("link", 89), - ("top_detail_text", 90), - ("top_detail_icon", 91), - ("top_detail_badges_tags", 94), - ("bottom_detail_text", 145), - ("bottom_detail_icon", 96), - ("call_to_action", 99), - ("grey_background", 100), - ("no_background", 101), - ("no_border", 102), - ("shadow", 103), - ] - ], - {}, - ), - 216: ("wagtail.blocks.StreamBlock", [[("card", 215)]], {"label": "Items"}), - 217: ( - "wagtail.blocks.StructBlock", - [ - [ - ("section_title", 196), - ("layout", 198), - ("items_per_row", 200), - ("link", 214), - ("items", 216), - ] - ], - {"group": "1. Section templates to be adapted", "label": "In the spotlight"}, - ), - 218: ( - "wagtail.blocks.StreamBlock", - [[("title", 55), ("accordion", 66)]], - { - "default": [ - ("title", "Accordéon"), - ( - "accordion", - { - "content": "

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

", - "title": "Titre de l'accordéon 1", - }, - ), - ( - "accordion", - { - "content": "

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

", - "title": "Titre de l'accordéon 2", - }, - ), - ], - "label": "Accordion", - }, - ), - 219: ( - "wagtail.blocks.StructBlock", - [[("accordion", 218), ("layout", 198)]], - {"group": "1. Section templates to be adapted", "label": "Accordions with layout"}, - ), - }, - ), - ), - migrations.AlterField( - model_name="contentpage", - name="body", - field=wagtail.fields.StreamField( - [ - ("paragraph", 0), - ("image", 9), - ("imageandtext", 23), - ("table", 27), - ("alert", 32), - ("text_cta", 41), - ("video", 48), - ("transcription", 49), - ("badges_list", 54), - ("tags_list", 60), - ("buttons_list", 63), - ("link", 64), - ("accordions", 67), - ("callout", 71), - ("highlight", 74), - ("quote", 79), - ("stepper", 86), - ("card", 104), - ("tile", 115), - ("tabs", 156), - ("markdown", 157), - ("iframe", 158), - ("html", 159), - ("anchor", 160), - ("separator", 161), - ("multicolumns", 172), - ("item_grid", 176), - ("fullwidthbackground", 181), - ("fullwidthbackgroundwithsidemenu", 188), - ("subpageslist", 189), - ("blog_recent_entries", 190), - ("events_recent_entries", 191), - ("layout_richtext", 195), - ("image_text_grid_section", 206), - ("image_text_cta_section", 210), - ("cta_section", 213), - ("spotlight_section", 217), - ("accordion_section", 219), - ], - blank=True, - block_lookup={ - 0: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text"}), - 1: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": False}), - 2: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("h2", "Heading 2"), - ("h3", "Heading 3"), - ("h4", "Heading 4"), - ("h5", "Heading 5"), - ("h6", "Heading 6"), - ("p", "Paragraph"), - ], - "help_text": "Adapt to the page layout. Defaults to heading 3.", - "label": "Heading level", - "required": False, - }, - ), - 3: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image"}), - 4: ( - "wagtail.blocks.CharBlock", - (), - {"label": "Alternative text (textual description of the image)", "required": False}, - ), - 5: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("fr-content-media--sm", "Small"), - ("", "Medium"), - ("fr-content-media--lg", "Large"), - ], - "label": "Witdh", - "required": False, - }, - ), - 6: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("fr-ratio-32x9", "32x9"), - ("fr-ratio-16x9", "16x9"), - ("fr-ratio-3x2", "3x2"), - ("fr-ratio-4x3", "4x3"), - ("fr-ratio-1x1", "1x1"), - ("fr-ratio-3x4", "3x4"), - ("fr-ratio-2x3", "2x3"), - ], - "label": "Image ratio", - "required": False, - }, - ), - 7: ("wagtail.blocks.CharBlock", (), {"label": "Caption", "required": False}), - 8: ("wagtail.blocks.URLBlock", (), {"label": "Link", "required": False}), - 9: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 1), - ("heading_tag", 2), - ("image", 3), - ("alt", 4), - ("width", 5), - ("image_ratio", 6), - ("caption", 7), - ("url", 8), - ] - ], - {"label": "Centered image"}, - ), - 10: ("wagtail.images.blocks.ImageBlock", [], {"label": "Image"}), - 11: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("left", "Left (displayed above text in mobile view)"), - ("left_below", "Left (displayed below text in mobile view)"), - ("right", "Right (displayed below text in mobile view)"), - ("right_above", "Right (displayed above text in mobile view)"), - ], - "label": "Image position", - }, - ), - 12: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("3", "3/12"), ("4", "4/12"), ("5", "5/12"), ("6", "6/12")], - "label": "Image width", - }, - ), - 13: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("page", "Page"), - ("external_url", "External URL"), - ("document", "Document"), - ("anchor", "Anchor link"), - ], - "help_text": "Select the type of link.", - "label": "Link type", - "required": False, - }, - ), - 14: ( - "wagtail.blocks.PageChooserBlock", - (), - { - "help_text": "Link to a page of this site. Use either this, the document, or the external URL parameter.", - "label": "Page", - "required": False, - }, - ), - 15: ( - "wagtail.documents.blocks.DocumentChooserBlock", - (), - { - "help_text": "Use either this, the external URL or the page parameter.", - "label": "Document", - "required": False, - }, - ), - 16: ( - "wagtail.blocks.URLBlock", - (), - { - "help_text": "Use either this, the document or the page parameter.", - "label": "External URL", - "required": False, - }, - ), - 17: ( - "wagtail.blocks.CharBlock", - (), - { - "default": "", - "help_text": "Link to an anchor block on the page. Allowed characters: A-Z, a-z, 0-9, - and _.", - "label": "Anchor ID", - "required": False, - "validators": [ - django.core.validators.RegexValidator( - re.compile("^[-a-zA-Z0-9_]+\\Z"), - "Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.", - "invalid", - ) - ], - }, - ), - 18: ( - "wagtail.blocks.CharBlock", - (), - { - "default": "", - "help_text": "Extra query parameters at the end of the link, e.g. filtering options.", - "label": "Extra query parameters", - "required": False, - "validators": [content_manager.validators.validate_query_string], - }, - ), - 19: ("wagtail.blocks.CharBlock", (), {"label": "Link label", "required": False}), - 20: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("", "No icon"), - ("fr-icon-arrow-right-line fr-link--icon-right", "Icon on the right side"), - ("fr-icon-arrow-right-line fr-link--icon-left", "Icon on the left side"), - ], - "help_text": "Only used for internal links.", - "label": "Icon", - "required": False, - }, - ), - 21: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("fr-link--sm", "Small"), ("", "Medium"), ("fr-link--lg", "Large")], - "label": "Size", - "required": False, - }, - ), - 22: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ("text", 19), - ("icon", 20), - ("size", 21), - ] - ], - { - "help_text": "The link is shown at the bottom of the text block, with an arrow", - "label": "Link", - "required": False, - }, - ), - 23: ( - "wagtail.blocks.StructBlock", - [[("image", 10), ("image_side", 11), ("image_ratio", 12), ("text", 0), ("link", 22)]], - {"label": "Image and text"}, - ), - 24: ("wagtail.blocks.CharBlock", (), {"label": "Row heading", "required": False}), - 25: ( - "wagtail.blocks.RichTextBlock", - (), - { - "features": [ - "bold", - "italic", - "link", - "document-link", - "superscript", - "subscript", - "strikethrough", - "text-left", - "text-center", - "text-right", - ], - "label": "Text", - "required": False, - }, - ), - 26: ("wagtail.images.blocks.ImageBlock", [], {"label": "Pictogram"}), - 27: ( - "wagtail.contrib.typed_table_block.blocks.TypedTableBlock", - [[("row_heading", 24), ("text", 25), ("pictogram", 26)]], - {"label": "Table"}, - ), - 28: ("wagtail.blocks.CharBlock", (), {"label": "Message title", "required": False}), - 29: ("wagtail.blocks.TextBlock", (), {"label": "Message text", "required": False}), - 30: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("error", "Error"), - ("success", "Success"), - ("info", "Information"), - ("warning", "Warning"), - ], - "label": "Message type", - }, - ), - 31: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("h2", "Heading 2"), - ("h3", "Heading 3"), - ("h4", "Heading 4"), - ("h5", "Heading 5"), - ("h6", "Heading 6"), - ("p", "Paragraph"), - ], - "help_text": "Adapt to the page layout. Defaults to heading 3.", - "label": "Heading level", - }, - ), - 32: ( - "wagtail.blocks.StructBlock", - [[("title", 28), ("description", 29), ("level", 30), ("heading_tag", 31)]], - {"label": "Alert message"}, - ), - 33: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text", "required": False}), - 34: ("wagtail.blocks.CharBlock", (), {"label": "Button label", "required": False}), - 35: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("fr-btn", "Primary"), - ("fr-btn fr-btn--secondary", "Secundary"), - ("fr-btn fr-btn--tertiary", "Tertiary"), - ("fr-btn fr-btn--tertiary-no-outline", "Tertiary without border"), - ], - "label": "Button type", - "required": False, - }, - ), - 36: ( - "content_manager.blocks.buttons_links.IconPickerBlock", - (), - {"label": "Icon", "required": False}, - ), - 37: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")], - "label": "Icon side", - "required": False, - }, - ), - 38: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ("text", 34), - ("button_type", 35), - ("icon_class", 36), - ("icon_side", 37), - ] - ], - {"label": "Button"}, - ), - 39: ( - "wagtail.blocks.StreamBlock", - [[("button", 38)]], - { - "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", - "label": "Buttons", - }, - ), - 40: ( - "wagtail.blocks.StreamBlock", - [[("buttons", 39)]], - {"label": "Call-to-action buttons", "max_num": 1, "required": False}, - ), - 41: ( - "wagtail.blocks.StructBlock", - [[("text", 33), ("cta_buttons", 40)]], - {"label": "Text and call to action"}, - ), - 42: ("wagtail.blocks.CharBlock", (), {"label": "Video title", "required": False}), - 43: ( - "wagtail.blocks.URLBlock", - (), - { - "help_text": "Use embed format, with a version that doesn't require a consent banner if available. (e.g. : https://www.youtube-nocookie.com/embed/gLzXOViPX-0) For Youtube, use Embed video and check Enable privacy-enhanced mode.", - "label": "Video URL", - }, - ), - 44: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("fr-ratio-16x9", "16x9"), ("fr-ratio-4x3", "4x3"), ("fr-ratio-1x1", "1x1")], - "label": "Video ratio", - "required": False, - }, - ), - 45: ( - "wagtail.blocks.CharBlock", - (), - {"default": "Transcription", "label": "Title", "required": False}, - ), - 46: ("wagtail.blocks.RichTextBlock", (), {"label": "Transcription content", "required": False}), - 47: ( - "wagtail.blocks.StructBlock", - [[("title", 45), ("content", 46)]], - {"label": "Transcription", "required": False}, - ), - 48: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 42), - ("caption", 7), - ("url", 43), - ("width", 5), - ("video_ratio", 44), - ("transcription", 47), - ] - ], - {"label": "Video"}, - ), - 49: ("wagtail.blocks.StructBlock", [[("title", 45), ("content", 46)]], {"label": "Transcription"}), - 50: ("wagtail.blocks.CharBlock", (), {"label": "Badge label", "required": False}), - 51: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("", [("new", "New"), ("grey", "Grey")]), - ( - "System colors", - [ - ("info", "Info"), - ("success", "Success"), - ("warning", "Warning"), - ("error", "Error"), - ], - ), - ( - "Illustration colors", - [ - ("green-tilleul-verveine", "Tilleul verveine"), - ("green-bourgeon", "Bourgeon"), - ("green-emeraude", "Émeraude"), - ("green-menthe", "Menthe"), - ("green-archipel", "Archipel"), - ("blue-ecume", "Écume"), - ("blue-cumulus", "Cumulus"), - ("purple-glycine", "Glycine"), - ("pink-macaron", "Macaron"), - ("pink-tuile", "Tuile"), - ("yellow-tournesol", "Tournesol"), - ("yellow-moutarde", "Moutarde"), - ("orange-terre-battue", "Terre battue"), - ("brown-cafe-creme", "Café crème"), - ("brown-caramel", "Caramel"), - ("brown-opera", "Opéra"), - ("beige-gris-galet", "Gris galet"), - ], - ), - ], - "label": "Badge color", - "required": False, - }, - ), - 52: ("wagtail.blocks.BooleanBlock", (), {"label": "Hide badge icon", "required": False}), - 53: ( - "wagtail.blocks.StructBlock", - [[("text", 50), ("color", 51), ("hide_icon", 52)]], - {"label": "Badge"}, - ), - 54: ("wagtail.blocks.StreamBlock", [[("badge", 53)]], {"label": "Badge list"}), - 55: ("wagtail.blocks.CharBlock", (), {"label": "Title"}), - 56: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tag", "required": False}), - 57: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("green-tilleul-verveine", "Tilleul verveine"), - ("green-bourgeon", "Bourgeon"), - ("green-emeraude", "Émeraude"), - ("green-menthe", "Menthe"), - ("green-archipel", "Archipel"), - ("blue-ecume", "Écume"), - ("blue-cumulus", "Cumulus"), - ("purple-glycine", "Glycine"), - ("pink-macaron", "Macaron"), - ("pink-tuile", "Tuile"), - ("yellow-tournesol", "Tournesol"), - ("yellow-moutarde", "Moutarde"), - ("orange-terre-battue", "Terre battue"), - ("brown-cafe-creme", "Café crème"), - ("brown-caramel", "Caramel"), - ("brown-opera", "Opéra"), - ("beige-gris-galet", "Gris galet"), - ], - "help_text": "Only for clickable tags", - "label": "Tag color", - "required": False, - }, - ), - 58: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ] - ], - {"required": False}, - ), - 59: ( - "wagtail.blocks.StructBlock", - [[("label", 55), ("is_small", 56), ("color", 57), ("icon_class", 36), ("link", 58)]], - {"label": "Tag"}, - ), - 60: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {"label": "Tag list"}), - 61: ( - "wagtail.blocks.StreamBlock", - [[("button", 38)]], - { - "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", - "label": "Buttons", - }, - ), - 62: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("", "Left"), - ("fr-btns-group--center", "Center"), - ("fr-btns-group--right", "Right"), - ( - "fr-btns-group--right fr-btns-group--inline-reverse", - "Right (reverse order on desktop)", - ), - ], - "label": "Position", - "required": False, - }, - ), - 63: ( - "wagtail.blocks.StructBlock", - [[("buttons", 61), ("position", 62)]], - {"label": "Button list"}, - ), - 64: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ("text", 19), - ("icon", 20), - ("size", 21), - ] - ], - {"label": "Single link"}, - ), - 65: ("wagtail.blocks.RichTextBlock", (), {"label": "Content"}), - 66: ( - "wagtail.blocks.StructBlock", - [[("title", 55), ("content", 65)]], - {"label": "Accordion", "max_num": 15, "min_num": 1}, - ), - 67: ( - "wagtail.blocks.StreamBlock", - [[("title", 55), ("accordion", 66)]], - {"group": "2. DSFR components", "label": "Accordions"}, - ), - 68: ( - "wagtail.blocks.RichTextBlock", - (), - { - "features": [ - "bold", - "italic", - "link", - "document-link", - "superscript", - "subscript", - "strikethrough", - "text-left", - "text-center", - "text-right", - ], - "label": "Content", - "required": False, - }, - ), - 69: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ("text", 34), - ("button_type", 35), - ("icon_class", 36), - ("icon_side", 37), - ] - ], - {"label": "Button", "required": False}, - ), - 70: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("green-tilleul-verveine", "Tilleul verveine"), - ("green-bourgeon", "Bourgeon"), - ("green-emeraude", "Émeraude"), - ("green-menthe", "Menthe"), - ("green-archipel", "Archipel"), - ("blue-ecume", "Écume"), - ("blue-cumulus", "Cumulus"), - ("purple-glycine", "Glycine"), - ("pink-macaron", "Macaron"), - ("pink-tuile", "Tuile"), - ("yellow-tournesol", "Tournesol"), - ("yellow-moutarde", "Moutarde"), - ("orange-terre-battue", "Terre battue"), - ("brown-cafe-creme", "Café crème"), - ("brown-caramel", "Caramel"), - ("brown-opera", "Opéra"), - ("beige-gris-galet", "Gris galet"), - ], - "label": "Color", - "required": False, - }, - ), - 71: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 1), - ("heading_tag", 31), - ("icon_class", 36), - ("text", 68), - ("button", 69), - ("color", 70), - ] - ], - {"group": "2. DSFR components", "label": "Callout"}, - ), - 72: ( - "wagtail.blocks.RichTextBlock", - (), - { - "features": [ - "bold", - "italic", - "link", - "document-link", - "superscript", - "subscript", - "strikethrough", - "text-left", - "text-center", - "text-right", - ], - "label": "Content", - }, - ), - 73: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("fr-text--sm", "Small"), ("", "Medium"), ("fr-text--lg", "Large")], - "label": "Size", - "required": False, - }, - ), - 74: ( - "wagtail.blocks.StructBlock", - [[("text", 72), ("color", 70), ("size", 73)]], - {"group": "2. DSFR components", "label": "Highlight"}, - ), - 75: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image", "required": False}), - 76: ("wagtail.blocks.CharBlock", (), {"label": "Quote"}), - 77: ("wagtail.blocks.CharBlock", (), {"label": "Author name", "required": False}), - 78: ("wagtail.blocks.CharBlock", (), {"label": "Author title", "required": False}), - 79: ( - "wagtail.blocks.StructBlock", - [[("image", 75), ("quote", 76), ("author_name", 77), ("author_title", 78), ("color", 70)]], - {"group": "2. DSFR components", "label": "Quote"}, - ), - 80: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("h2", "Heading 2"), - ("h3", "Heading 3"), - ("h4", "Heading 4"), - ("h5", "Heading 5"), - ("h6", "Heading 6"), - ("p", "Paragraph"), - ], - "help_text": "Adapt to the page layout. Defaults to heading 2.", - "label": "Heading level", - }, - ), - 81: ( - "wagtail.blocks.IntegerBlock", - (), - {"label": "Number of steps", "max_value": 8, "min_value": 1}, - ), - 82: ("wagtail.blocks.IntegerBlock", (), {"label": "Current step", "max_value": 8, "min_value": 1}), - 83: ("wagtail.blocks.TextBlock", (), {"label": "Detail", "required": False}), - 84: ("wagtail.blocks.StructBlock", [[("title", 55), ("detail", 83)]], {"label": "Step"}), - 85: ("wagtail.blocks.StreamBlock", [[("step", 84)]], {"label": "Steps"}), - 86: ( - "wagtail.blocks.StructBlock", - [[("title", 55), ("heading_tag", 80), ("total", 81), ("current", 82), ("steps", 85)]], - {"group": "2. DSFR components", "label": "Stepper"}, - ), - 87: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("fr-card--horizontal-tier", "1/3"), ("fr-card--horizontal-half", "50/50")], - "label": "Image ratio", - "required": False, - }, - ), - 88: ( - "wagtail.blocks.StreamBlock", - [[("badge", 53)]], - { - "help_text": "Only used if the card has an image.", - "label": "Image area badge", - "max_num": 1, - "required": False, - }, - ), - 89: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ] - ], - { - "collapsed": False, - "help_text": "Link for the whole card. If a call-to-action is present, the link will display on the title only.", - "label": "Link", - "required": False, - }, - ), - 90: ("wagtail.blocks.CharBlock", (), {"label": "Top detail: text", "required": False}), - 91: ( - "content_manager.blocks.buttons_links.IconPickerBlock", - (), - {"label": "Top detail: icon", "required": False}, - ), - 92: ("wagtail.blocks.StreamBlock", [[("badge", 53)]], {}), - 93: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {}), - 94: ( - "wagtail.blocks.StreamBlock", - [[("badges", 92), ("tags", 93)]], - {"label": "Top detail: badges or tags", "max_num": 1, "required": False}, - ), - 95: ( - "wagtail.blocks.CharBlock", - (), - { - "help_text": "Incompatible with the bottom call-to-action. If the card links to a downloadable document, the values are pre-filled.", - "label": "Bottom detail: text", - "required": False, - }, - ), - 96: ( - "content_manager.blocks.buttons_links.IconPickerBlock", - (), - {"label": "Bottom detail: icon", "required": False}, - ), - 97: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ("text", 19), - ] - ], - {"label": "Link"}, - ), - 98: ("wagtail.blocks.StreamBlock", [[("link", 97)]], {"label": "Links"}), - 99: ( - "wagtail.blocks.StreamBlock", - [[("links", 98), ("buttons", 39)]], - { - "help_text": "Incompatible with the bottom detail text. Allow you to add link or button.", - "label": "Bottom call-to-action: links or buttons", - "max_num": 1, - "required": False, - }, - ), - 100: ( - "wagtail.blocks.BooleanBlock", - (), - {"label": "Card with grey background", "required": False}, - ), - 101: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without background", "required": False}), - 102: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without border", "required": False}), - 103: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with a shadow", "required": False}), - 104: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 55), - ("heading_tag", 31), - ("description", 68), - ("image", 10), - ("image_ratio", 87), - ("image_badge", 88), - ("link", 89), - ("top_detail_text", 90), - ("top_detail_icon", 91), - ("top_detail_badges_tags", 94), - ("bottom_detail_text", 95), - ("bottom_detail_icon", 96), - ("call_to_action", 99), - ("grey_background", 100), - ("no_background", 101), - ("no_border", 102), - ("shadow", 103), - ] - ], - {"group": "2. DSFR components", "label": "Horizontal card"}, - ), - 105: ( - "wagtail.blocks.RichTextBlock", - (), - { - "features": ["bold", "italic", "superscript", "subscript", "strikethrough"], - "label": "Content", - "required": False, - }, - ), - 106: ( - "wagtail.images.blocks.ImageChooserBlock", - (), - {"help_text": "Prefer SVG files.", "label": "Image", "required": False}, - ), - 107: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ] - ], - {"label": "Link", "required": False}, - ), - 108: ( - "wagtail.blocks.CharBlock", - (), - { - "help_text": "If the tile links to a downloadable document, the values are pre-filled.", - "label": "Detail text", - "required": False, - }, - ), - 109: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tile", "required": False}), - 110: ( - "wagtail.blocks.BooleanBlock", - (), - {"label": "Tile with grey background", "required": False}, - ), - 111: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without background", "required": False}), - 112: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without border", "required": False}), - 113: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with a shadow", "required": False}), - 114: ("wagtail.blocks.BooleanBlock", (), {"label": "Horizontal tile", "required": False}), - 115: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 55), - ("heading_tag", 31), - ("description", 105), - ("image", 106), - ("link", 107), - ("top_detail_badges_tags", 94), - ("detail_text", 108), - ("is_small", 109), - ("grey_background", 110), - ("no_background", 111), - ("no_border", 112), - ("shadow", 113), - ("is_horizontal", 114), - ] - ], - {"group": "2. DSFR components", "label": "Tile"}, - ), - 116: ( - "wagtail.blocks.StreamBlock", - [[("title", 55), ("accordion", 66)]], - {"group": "DSFR components", "label": "Accordions"}, - ), - 117: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 1), - ("heading_tag", 31), - ("icon_class", 36), - ("text", 68), - ("button", 69), - ("color", 70), - ] - ], - {"group": "DSFR components", "label": "Callout"}, - ), - 118: ( - "wagtail.blocks.StructBlock", - [[("text", 72), ("color", 70), ("size", 73)]], - {"group": "DSFR components", "label": "Highlight"}, - ), - 119: ( - "wagtail.blocks.StructBlock", - [[("image", 75), ("quote", 76), ("author_name", 77), ("author_title", 78), ("color", 70)]], - {"group": "DSFR components", "label": "Quote"}, - ), - 120: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 55), - ("heading_tag", 31), - ("description", 105), - ("image", 106), - ("link", 107), - ("top_detail_badges_tags", 94), - ("detail_text", 108), - ("is_small", 109), - ("grey_background", 110), - ("no_background", 111), - ("no_border", 112), - ("shadow", 113), - ("is_horizontal", 114), - ] - ], - {"group": "DSFR components", "label": "Tile"}, - ), - 121: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("h2", "Heading 2"), - ("h3", "Heading 3"), - ("h4", "Heading 4"), - ("h5", "Heading 5"), - ], - "help_text": "Adapt to the page layout. Defaults to heading 2.", - "label": "Heading level", - "required": False, - }, - ), - 122: ( - "wagtail.blocks.PageChooserBlock", - (), - {"label": "Blog", "page_type": ["blog.BlogIndexPage"]}, - ), - 123: ( - "wagtail.blocks.IntegerBlock", - (), - { - "default": 3, - "label": "Number of entries", - "max_value": 8, - "min_value": 1, - "required": False, - }, - ), - 124: ( - "wagtail.snippets.blocks.SnippetChooserBlock", - ("blog.Category",), - {"label": "Filter by category", "required": False}, - ), - 125: ( - "wagtail.snippets.blocks.SnippetChooserBlock", - ("content_manager.Tag",), - {"label": "Filter by tag", "required": False}, - ), - 126: ( - "wagtail.snippets.blocks.SnippetChooserBlock", - ("blog.Person",), - {"label": "Filter by author", "required": False}, - ), - 127: ( - "wagtail.snippets.blocks.SnippetChooserBlock", - ("blog.Organization",), - { - "help_text": "The source is the organization of the post author", - "label": "Filter by source", - "required": False, - }, - ), - 128: ( - "wagtail.blocks.BooleanBlock", - (), - {"default": False, "label": "Show filters", "required": False}, - ), - 129: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 1), - ("heading_tag", 121), - ("blog", 122), - ("entries_count", 123), - ("category_filter", 124), - ("tag_filter", 125), - ("author_filter", 126), - ("source_filter", 127), - ("show_filters", 128), - ] - ], - {"group": "Website structure", "label": "Blog recent entries"}, - ), - 130: ( - "wagtail.blocks.PageChooserBlock", - (), - {"label": "Event calendar", "page_type": ["events.EventsIndexPage"]}, - ), - 131: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 1), - ("heading_tag", 121), - ("index_page", 130), - ("entries_count", 123), - ("category_filter", 124), - ("tag_filter", 125), - ("author_filter", 126), - ("source_filter", 127), - ("show_filters", 128), - ] - ], - {"group": "Website structure", "label": "Event calendar recent entries"}, - ), - 132: ( - "wagtail.blocks.StructBlock", - [[("title", 55), ("heading_tag", 80), ("total", 81), ("current", 82), ("steps", 85)]], - {"group": "DSFR components", "label": "Stepper"}, - ), - 133: ("wagtailmarkdown.blocks.MarkdownBlock", (), {"group": "Expert syntax", "label": "Markdown"}), - 134: ( - "wagtail.blocks.CharBlock", - (), - { - "help_text": "Accessibility: The title should describe, in a clear and concise manner, the embedded content.", - "label": "Title", - }, - ), - 135: ( - "wagtail.blocks.URLBlock", - (), - { - "help_text": "Example for Tally: https://tally.so/embed/w2jMRa", - "label": "URL of the iframe", - }, - ), - 136: ("wagtail.blocks.IntegerBlock", (), {"label": "Height (in pixels)"}), - 137: ( - "wagtail.blocks.CharBlock", - (), - { - "help_text": "For example: \"allow='geolocation'\".", - "label": "Parameters", - "required": False, - }, - ), - 138: ( - "wagtail.blocks.StructBlock", - [[("title", 134), ("url", 135), ("height", 136), ("parameters", 137)]], - {"group": "Expert syntax", "label": "Iframe"}, - ), - 139: ( - "wagtail.blocks.RawHTMLBlock", - (), - { - "group": "Expert syntax", - "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", - "readonly": True, - }, - ), - 140: ( - "wagtail.blocks.CharBlock", - (), - { - "help_text": "Allows the creation of a link to this specific part of the page. Allowed characters: A-Z, a-z, 0-9, - and _.", - "label": "Anchor ID", - "validators": [ - django.core.validators.RegexValidator( - re.compile("^[-a-zA-Z0-9_]+\\Z"), - "Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.", - "invalid", - ) - ], - }, - ), - 141: ( - "wagtail.blocks.StructBlock", - [[("anchor_id", 140)]], - {"group": "Page structure", "label": "Anchor"}, - ), - 142: ( - "wagtail.blocks.IntegerBlock", - (), - {"default": 3, "label": "Top margin", "max_value": 15, "min_value": 0}, - ), - 143: ( - "wagtail.blocks.IntegerBlock", - (), - {"default": 3, "label": "Bottom margin", "max_value": 15, "min_value": 0}, - ), - 144: ( - "wagtail.blocks.StructBlock", - [[("top_margin", 142), ("bottom_margin", 143)]], - {"group": "Page structure", "label": "Separator"}, - ), - 145: ( - "wagtail.blocks.CharBlock", - (), - { - "help_text": "Incompatible with the bottom call-to-action.", - "label": "Bottom detail: text", - "required": False, - }, - ), - 146: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 55), - ("heading_tag", 31), - ("description", 68), - ("image", 10), - ("image_ratio", 6), - ("image_badge", 88), - ("link", 89), - ("top_detail_text", 90), - ("top_detail_icon", 91), - ("top_detail_badges_tags", 94), - ("bottom_detail_text", 145), - ("bottom_detail_icon", 96), - ("call_to_action", 99), - ("grey_background", 100), - ("no_background", 101), - ("no_border", 102), - ("shadow", 103), - ] - ], - {"group": "DSFR components", "label": "Vertical card"}, - ), - 147: ( - "wagtail.snippets.blocks.SnippetChooserBlock", - ("blog.Person",), - { - "help_text": "Optional, all values can be manually specified or overriden below", - "label": "Person", - "required": False, - }, - ), - 148: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255, "required": False}), - 149: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255, "required": False}), - 150: ( - "wagtail.blocks.CharBlock", - (), - {"label": "Organization", "max_length": 255, "required": False}, - ), - 151: ( - "wagtail.blocks.CharBlock", - (), - {"label": "Contact info", "max_length": 500, "required": False}, - ), - 152: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {"label": "Tags", "required": False}), - 153: ( - "wagtail.blocks.StructBlock", - [ - [ - ("contact", 147), - ("link", 107), - ("heading_tag", 2), - ("name", 148), - ("role", 149), - ("organization", 150), - ("contact_info", 151), - ("image", 75), - ("tags", 152), - ] - ], - {"group": "Extra components", "label": "Contact card"}, - ), - 154: ( - "wagtail.blocks.StreamBlock", - [ - [ - ("text", 0), - ("image", 9), - ("imageandtext", 23), - ("table", 27), - ("alert", 32), - ("text_cta", 41), - ("video", 48), - ("transcription", 49), - ("badges_list", 54), - ("tags_list", 60), - ("buttons_list", 63), - ("accordions", 116), - ("callout", 117), - ("highlight", 118), - ("quote", 119), - ("link", 64), - ("tile", 120), - ("blog_recent_entries", 129), - ("events_recent_entries", 131), - ("stepper", 132), - ("markdown", 133), - ("iframe", 138), - ("html", 139), - ("anchor", 141), - ("separator", 144), - ("card", 146), - ("contact_card", 153), - ] - ], - {"label": "Content"}, - ), - 155: ( - "wagtail.blocks.StructBlock", - [[("title", 55), ("content", 154)]], - {"label": "Tab", "max_num": 15, "min_num": 1}, - ), - 156: ( - "wagtail.blocks.StreamBlock", - [[("tabs", 155)]], - {"group": "2. DSFR components", "label": "Tabs"}, - ), - 157: ( - "wagtailmarkdown.blocks.MarkdownBlock", - (), - {"group": "5. Expert syntax", "label": "Markdown"}, - ), - 158: ( - "wagtail.blocks.StructBlock", - [[("title", 134), ("url", 135), ("height", 136), ("parameters", 137)]], - {"group": "5. Expert syntax", "label": "Iframe"}, - ), - 159: ( - "wagtail.blocks.RawHTMLBlock", - (), - { - "group": "5. Expert syntax", - "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", - "readonly": True, - }, - ), - 160: ( - "wagtail.blocks.StructBlock", - [[("anchor_id", 140)]], - {"group": "3. Page structure", "label": "Anchor"}, - ), - 161: ( - "wagtail.blocks.StructBlock", - [[("top_margin", 142), ("bottom_margin", 143)]], - {"group": "3. Page structure", "label": "Separator"}, - ), - 162: ( - "wagtail.images.blocks.ImageChooserBlock", - (), - {"label": "Background image", "required": False}, - ), - 163: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("Primary colors", [("blue-france", "Blue France"), ("red-marianne", "Red Marianne")]), - ("Neutral colors", [("grey", "Grey")]), - ( - "Illustration colors", - [ - ("green-tilleul-verveine", "Tilleul verveine"), - ("green-bourgeon", "Bourgeon"), - ("green-emeraude", "Émeraude"), - ("green-menthe", "Menthe"), - ("green-archipel", "Archipel"), - ("blue-ecume", "Écume"), - ("blue-cumulus", "Cumulus"), - ("purple-glycine", "Glycine"), - ("pink-macaron", "Macaron"), - ("pink-tuile", "Tuile"), - ("yellow-tournesol", "Tournesol"), - ("yellow-moutarde", "Moutarde"), - ("orange-terre-battue", "Terre battue"), - ("brown-cafe-creme", "Café crème"), - ("brown-caramel", "Caramel"), - ("brown-opera", "Opéra"), - ("beige-gris-galet", "Gris galet"), - ], - ), - ], - "help_text": "Uses the French Design System colors", - "label": "Background color", - "required": False, - }, - ), - 164: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("h2", "Heading 2"), - ("h3", "Heading 3"), - ("h4", "Heading 4"), - ("h5", "Heading 5"), - ("h6", "Heading 6"), - ("p", "Paragraph"), - ], - "help_text": "Adapt to the page layout. Defaults to heading 2.", - "label": "Heading level", - "required": False, - }, - ), - 165: ( - "wagtail.blocks.IntegerBlock", - (), - {"default": 5, "label": "Top margin", "max_value": 15, "min_value": 0, "required": False}, - ), - 166: ( - "wagtail.blocks.IntegerBlock", - (), - {"default": 5, "label": "Bottom margin", "max_value": 15, "min_value": 0, "required": False}, - ), - 167: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("top", "Top"), ("middle", "Middle"), ("bottom", "Bottom")], - "label": "Vertical align", - "required": False, - }, - ), - 168: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("3", "3/12"), - ("4", "4/12"), - ("5", "5/12"), - ("6", "6/12"), - ("7", "7/12"), - ("8", "8/12"), - ("9", "9/12"), - ], - "help_text": "The total width of all columns should be 12.", - "label": "Column width", - "required": False, - }, - ), - 169: ( - "wagtail.blocks.StreamBlock", - [ - [ - ("text", 0), - ("image", 9), - ("imageandtext", 23), - ("table", 27), - ("alert", 32), - ("text_cta", 41), - ("video", 48), - ("transcription", 49), - ("badges_list", 54), - ("tags_list", 60), - ("buttons_list", 63), - ("accordions", 116), - ("callout", 117), - ("highlight", 118), - ("quote", 119), - ("link", 64), - ("tile", 120), - ("blog_recent_entries", 129), - ("events_recent_entries", 131), - ("stepper", 132), - ("markdown", 133), - ("iframe", 138), - ("html", 139), - ("anchor", 141), - ("separator", 144), - ("card", 146), - ("contact_card", 153), - ] - ], - {"label": "Column content"}, - ), - 170: ( - "wagtail.blocks.StructBlock", - [[("width", 168), ("content", 169)]], - {"group": "Page structure", "label": "Adjustable column"}, - ), - 171: ( - "wagtail.blocks.StreamBlock", - [ - [ - ("text", 0), - ("image", 9), - ("imageandtext", 23), - ("table", 27), - ("alert", 32), - ("text_cta", 41), - ("video", 48), - ("transcription", 49), - ("badges_list", 54), - ("tags_list", 60), - ("buttons_list", 63), - ("accordions", 116), - ("callout", 117), - ("highlight", 118), - ("quote", 119), - ("link", 64), - ("tile", 120), - ("blog_recent_entries", 129), - ("events_recent_entries", 131), - ("stepper", 132), - ("markdown", 133), - ("iframe", 138), - ("html", 139), - ("anchor", 141), - ("separator", 144), - ("card", 146), - ("column", 170), - ] - ], - {"label": "Columns"}, - ), - 172: ( - "wagtail.blocks.StructBlock", - [ - [ - ("bg_image", 162), - ("bg_color_class", 163), - ("title", 1), - ("heading_tag", 164), - ("top_margin", 165), - ("bottom_margin", 166), - ("vertical_align", 167), - ("columns", 171), - ] - ], - {"group": "3. Page structure", "label": "Multiple columns"}, - ), - 173: ( - "wagtail.blocks.ChoiceBlock", - [], - {"choices": [("3", "3/12"), ("4", "4/12"), ("6", "6/12")], "label": "Column width"}, - ), - 174: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("left", "Left"), ("center", "Center"), ("right", "Right")], - "label": "Horizontal align", - "required": False, - }, - ), - 175: ( - "wagtail.blocks.StreamBlock", - [ - [ - ("text", 0), - ("image", 9), - ("imageandtext", 23), - ("table", 27), - ("alert", 32), - ("text_cta", 41), - ("video", 48), - ("transcription", 49), - ("badges_list", 54), - ("tags_list", 60), - ("buttons_list", 63), - ("accordions", 116), - ("callout", 117), - ("highlight", 118), - ("quote", 119), - ("link", 64), - ("tile", 120), - ("blog_recent_entries", 129), - ("events_recent_entries", 131), - ("stepper", 132), - ("markdown", 133), - ("iframe", 138), - ("html", 139), - ("anchor", 141), - ("separator", 144), - ("card", 146), - ("contact_card", 153), - ] - ], - {"label": "Items"}, - ), - 176: ( - "wagtail.blocks.StructBlock", - [[("column_width", 173), ("horizontal_align", 174), ("vertical_align", 167), ("items", 175)]], - {"group": "3. Page structure", "label": "Item grid"}, - ), - 177: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 55), - ("heading_tag", 31), - ("description", 68), - ("image", 10), - ("image_ratio", 87), - ("image_badge", 88), - ("link", 89), - ("top_detail_text", 90), - ("top_detail_icon", 91), - ("top_detail_badges_tags", 94), - ("bottom_detail_text", 95), - ("bottom_detail_icon", 96), - ("call_to_action", 99), - ("grey_background", 100), - ("no_background", 101), - ("no_border", 102), - ("shadow", 103), - ] - ], - {"group": "DSFR components", "label": "Horizontal card"}, - ), - 178: ( - "wagtail.blocks.StreamBlock", - [[("tabs", 155)]], - {"group": "DSFR components", "label": "Tabs"}, - ), - 179: ( - "wagtail.blocks.StructBlock", - [[("column_width", 173), ("horizontal_align", 174), ("vertical_align", 167), ("items", 175)]], - {"group": "Page structure", "label": "Item grid"}, - ), - 180: ( - "wagtail.blocks.StreamBlock", - [ - [ - ("text", 0), - ("image", 9), - ("imageandtext", 23), - ("table", 27), - ("alert", 32), - ("text_cta", 41), - ("video", 48), - ("transcription", 49), - ("badges_list", 54), - ("tags_list", 60), - ("buttons_list", 63), - ("accordions", 116), - ("callout", 117), - ("highlight", 118), - ("quote", 119), - ("link", 64), - ("tile", 120), - ("blog_recent_entries", 129), - ("events_recent_entries", 131), - ("stepper", 132), - ("markdown", 133), - ("iframe", 138), - ("html", 139), - ("anchor", 141), - ("separator", 144), - ("image_and_text", 23), - ("card", 177), - ("tabs", 178), - ("item_grid", 179), - ] - ], - {"label": "Content"}, - ), - 181: ( - "wagtail.blocks.StructBlock", - [ - [ - ("bg_image", 162), - ("bg_color_class", 163), - ("top_margin", 165), - ("bottom_margin", 166), - ("content", 180), - ] - ], - {"group": "3. Page structure", "label": "Full width background"}, - ), - 182: ( - "wagtail.blocks.StreamBlock", - [ - [ - ("text", 0), - ("image", 9), - ("imageandtext", 23), - ("table", 27), - ("alert", 32), - ("text_cta", 41), - ("video", 48), - ("transcription", 49), - ("badges_list", 54), - ("tags_list", 60), - ("buttons_list", 63), - ("accordions", 116), - ("callout", 117), - ("highlight", 118), - ("quote", 119), - ("link", 64), - ("tile", 120), - ("blog_recent_entries", 129), - ("events_recent_entries", 131), - ("stepper", 132), - ("markdown", 133), - ("iframe", 138), - ("html", 139), - ("anchor", 141), - ("separator", 144), - ("image_and_text", 23), - ("card", 177), - ("tabs", 178), - ("item_grid", 179), - ] - ], - {"label": "Main content"}, - ), - 183: ("wagtail.blocks.CharBlock", (), {"label": "Side menu title", "required": False}), - 184: ( - "wagtail.blocks.RawHTMLBlock", - (), - { - "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", - "label": "HTML", - }, - ), - 185: ("wagtail.blocks.PageChooserBlock", (), {"label": "Parent page"}), - 186: ("wagtail.blocks.StructBlock", [[("page", 185)]], {"label": "Page tree"}), - 187: ( - "wagtail.blocks.StreamBlock", - [[("html", 184), ("pagetree", 186)]], - {"label": "Side menu content"}, - ), - 188: ( - "wagtail.blocks.StructBlock", - [ - [ - ("bg_image", 162), - ("bg_color_class", 163), - ("top_margin", 165), - ("bottom_margin", 166), - ("main_content", 182), - ("sidemenu_title", 183), - ("sidemenu_content", 187), - ] - ], - {"group": "3. Page structure", "label": "Full width background with side menu"}, - ), - 189: ( - "wagtail.blocks.static_block.StaticBlock", - (), - { - "admin_text": "A simple, alphabetical list of the subpages of the current page.", - "group": "4. Website structure", - "label": "Subpages list", - "template": "content_manager/blocks/subpages_list.html", - }, - ), - 190: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 1), - ("heading_tag", 121), - ("blog", 122), - ("entries_count", 123), - ("category_filter", 124), - ("tag_filter", 125), - ("author_filter", 126), - ("source_filter", 127), - ("show_filters", 128), - ] - ], - {"group": "4. Website structure", "label": "Blog recent entries"}, - ), - 191: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 1), - ("heading_tag", 121), - ("index_page", 130), - ("entries_count", 123), - ("category_filter", 124), - ("tag_filter", 125), - ("author_filter", 126), - ("source_filter", 127), - ("show_filters", 128), - ] - ], - {"group": "4. Website structure", "label": "Event calendar recent entries"}, - ), - 192: ( - "wagtail.blocks.RichTextBlock", - (), - { - "default": "

En savoir plus


Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", - "features": ["bold", "italic", "link", "document-link", "strikethrough", "h2", "h3", "h4"], - "label": "Rich text", - }, - ), - 193: ( - "wagtail.blocks.ChoiceBlock", - [], - {"choices": [("6", "small"), ("8", "medium"), ("12", "large")], "label": "Block width"}, - ), - 194: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("left", "Left"), ("", "Center"), ("right", "Right")], - "label": "Block alignment", - "required": False, - }, - ), - 195: ( - "wagtail.blocks.StructBlock", - [[("text", 192), ("width", 193), ("alignment", 194)]], - {"group": "1. Section templates to be adapted", "label": "Rich text with layout"}, - ), - 196: ( - "wagtail.blocks.CharBlock", - (), - {"default": "Titre de la section", "label": "Section title"}, - ), - 197: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [ - ("Primary colors", [("blue-france", "Blue France"), ("red-marianne", "Red Marianne")]), - ("Neutral colors", [("grey", "Grey")]), - ( - "Illustration colors", - [ - ("green-tilleul-verveine", "Tilleul verveine"), - ("green-bourgeon", "Bourgeon"), - ("green-emeraude", "Émeraude"), - ("green-menthe", "Menthe"), - ("green-archipel", "Archipel"), - ("blue-ecume", "Écume"), - ("blue-cumulus", "Cumulus"), - ("purple-glycine", "Glycine"), - ("pink-macaron", "Macaron"), - ("pink-tuile", "Tuile"), - ("yellow-tournesol", "Tournesol"), - ("yellow-moutarde", "Moutarde"), - ("orange-terre-battue", "Terre battue"), - ("brown-cafe-creme", "Café crème"), - ("brown-caramel", "Caramel"), - ("brown-opera", "Opéra"), - ("beige-gris-galet", "Gris galet"), - ], - ), - ], - "help_text": "Uses the French Design System colors.
If you want to design a classic website, choose the colour ‘white’ or ‘French blue’.", - "label": "Background color", - "required": False, - }, - ), - 198: ( - "wagtail.blocks.StructBlock", - [[("background_color", 197), ("top_margin", 165), ("bottom_margin", 166)]], - {"collapsed": True, "label": "Layout"}, - ), - 199: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("left", "Left"), ("center", "Center"), ("right", "Right")], - "label": "Items alignement", - }, - ), - 200: ( - "wagtail.blocks.ChoiceBlock", - [], - {"choices": [("6", "2"), ("4", "3"), ("3", "4")], "label": "Items per row"}, - ), - 201: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("80", "Small (80px)"), ("140", "Medium (140px)"), ("200", "Large (200px)")], - "help_text": "Images are always displayed in a square (1:1) ratio. Three sizes are available: if the original image is smaller than the selected size, it will be displayed at its maximum available size.", - "label": "Image size of items", - }, - ), - 202: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": True}), - 203: ( - "wagtail.blocks.RichTextBlock", - (), - { - "default": "Add a short description to help your visitors better understand what you offer.", - "features": ["bold", "italic", "link", "document-link"], - "label": "Text", - }, - ), - 204: ("wagtail.blocks.StructBlock", [[("image", 10), ("title", 202), ("text", 203)]], {}), - 205: ( - "content_manager.blocks.sections.ImageAndTextListBlock", - (204,), - {"collapsed": True, "label": "Items"}, - ), - 206: ( - "wagtail.blocks.StructBlock", - [ - [ - ("section_title", 196), - ("layout", 198), - ("items_alignement", 199), - ("items_per_row", 200), - ("images_size", 201), - ("items", 205), - ] - ], - {"group": "1. Section templates to be adapted", "label": "Items grid (image and text)"}, - ), - 207: ( - "wagtail.blocks.RichTextBlock", - (), - { - "default": "

Titre de la section


Lorem ipsum dolor sit amet, consectetur adipiscing elit, ", - "features": ["bold", "italic", "link", "document-link", "strikethrough", "h2", "h3", "h4"], - "label": "Text block", - }, - ), - 208: ( - "wagtail.blocks.ChoiceBlock", - [], - { - "choices": [("left", "Left"), ("right", "Right")], - "help_text": "This field allows you to define the placement of text relative to adjacent content.", - "label": "Text content position", - }, - ), - 209: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ("text", 34), - ("button_type", 35), - ("icon_class", 36), - ("icon_side", 37), - ] - ], - { - "default": { - "button_type": "fr-btn fr-btn--secondary", - "external_url": "https://tube.numerique.gouv.fr/", - "icon_side": "--", - "link_type": "external_url", - "text": "Appel à l'action", - }, - "label": "Button", - }, - ), - 210: ( - "wagtail.blocks.StructBlock", - [[("text", 207), ("position", 208), ("button", 209), ("image", 10), ("layout", 198)]], - {"group": "1. Section templates to be adapted", "label": "Image, text and cta"}, - ), - 211: ( - "wagtail.blocks.RichTextBlock", - (), - { - "default": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididun", - "features": ["bold", "italic", "link", "document-link"], - "label": "Text", - }, - ), - 212: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ("text", 34), - ("button_type", 35), - ("icon_class", 36), - ("icon_side", 37), - ] - ], - { - "default": { - "button_type": "fr-btn", - "external_url": "https://tube.numerique.gouv.fr/", - "icon_side": "--", - "link_type": "external_url", - "text": "Appel à l'action", - }, - "label": "Button", - }, - ), - 213: ( - "wagtail.blocks.StructBlock", - [[("section_title", 196), ("layout", 198), ("text", 211), ("button", 212)]], - {"group": "1. Section templates to be adapted", "label": "Text and button"}, - ), - 214: ( - "wagtail.blocks.StructBlock", - [ - [ - ("link_type", 13), - ("page", 14), - ("document", 15), - ("external_url", 16), - ("anchor", 17), - ("query_string", 18), - ("text", 19), - ] - ], - { - "collapsed": True, - "help_text": "This link appears at the bottom left of the section if completed", - "label": "Section link", - "required": False, - }, - ), - 215: ( - "wagtail.blocks.StructBlock", - [ - [ - ("title", 55), - ("heading_tag", 31), - ("description", 68), - ("image", 10), - ("image_ratio", 6), - ("image_badge", 88), - ("link", 89), - ("top_detail_text", 90), - ("top_detail_icon", 91), - ("top_detail_badges_tags", 94), - ("bottom_detail_text", 145), - ("bottom_detail_icon", 96), - ("call_to_action", 99), - ("grey_background", 100), - ("no_background", 101), - ("no_border", 102), - ("shadow", 103), - ] - ], - {}, - ), - 216: ("wagtail.blocks.StreamBlock", [[("card", 215)]], {"label": "Items"}), - 217: ( - "wagtail.blocks.StructBlock", - [ - [ - ("section_title", 196), - ("layout", 198), - ("items_per_row", 200), - ("link", 214), - ("items", 216), - ] - ], - {"group": "1. Section templates to be adapted", "label": "In the spotlight"}, - ), - 218: ( - "wagtail.blocks.StreamBlock", - [[("title", 55), ("accordion", 66)]], - { - "default": [ - ("title", "Accordéon"), - ( - "accordion", - { - "content": "

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

", - "title": "Titre de l'accordéon 1", - }, - ), - ( - "accordion", - { - "content": "

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

", - "title": "Titre de l'accordéon 2", - }, - ), - ], - "label": "Accordion", - }, - ), - 219: ( - "wagtail.blocks.StructBlock", - [[("accordion", 218), ("layout", 198)]], - {"group": "1. Section templates to be adapted", "label": "Accordions with layout"}, - ), - }, - ), - ), - ] diff --git a/events/migrations/0031_alter_evententrypage_body_alter_eventsindexpage_body.py b/events/migrations/0032_alter_evententrypage_body_alter_eventsindexpage_body.py similarity index 99% rename from events/migrations/0031_alter_evententrypage_body_alter_eventsindexpage_body.py rename to events/migrations/0032_alter_evententrypage_body_alter_eventsindexpage_body.py index 066be9d7c..b075a0d52 100644 --- a/events/migrations/0031_alter_evententrypage_body_alter_eventsindexpage_body.py +++ b/events/migrations/0032_alter_evententrypage_body_alter_eventsindexpage_body.py @@ -1,4 +1,4 @@ -# Generated by Django 6.0.3 on 2026-03-23 15:24 +# Generated by Django 6.0.3 on 2026-03-26 12:50 import content_manager.validators import django.core.validators @@ -10,7 +10,7 @@ class Migration(migrations.Migration): dependencies = [ - ("events", "0030_invert_hero_text_position"), + ("events", "0031_evententrypage_exclude_from_sitemap_and_more"), ] operations = [ From 0fdfdfd534f712c1cace610886b865554fa1f2a0 Mon Sep 17 00:00:00 2001 From: Lucie Laporte Date: Thu, 26 Mar 2026 13:53:36 +0100 Subject: [PATCH 11/13] add migrations --- ..._body_alter_blogindexpage_body_and_more.py | 5435 +++++++++++++++++ ...ogindexpage_body_alter_contentpage_body.py | 4127 +++++++++++++ 2 files changed, 9562 insertions(+) create mode 100644 blog/migrations/0060_alter_blogentrypage_body_alter_blogindexpage_body_and_more.py create mode 100644 content_manager/migrations/0076_alter_catalogindexpage_body_alter_contentpage_body.py diff --git a/blog/migrations/0060_alter_blogentrypage_body_alter_blogindexpage_body_and_more.py b/blog/migrations/0060_alter_blogentrypage_body_alter_blogindexpage_body_and_more.py new file mode 100644 index 000000000..fe97202cd --- /dev/null +++ b/blog/migrations/0060_alter_blogentrypage_body_alter_blogindexpage_body_and_more.py @@ -0,0 +1,5435 @@ +# Generated by Django 6.0.3 on 2026-03-26 12:50 + +import content_manager.validators +import django.core.validators +import re +import wagtail.fields +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("blog", "0059_blogentrypage_exclude_from_sitemap_and_more"), + ] + + operations = [ + migrations.AlterField( + model_name="blogentrypage", + name="body", + field=wagtail.fields.StreamField( + [ + ("paragraph", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("link", 64), + ("accordions", 67), + ("callout", 71), + ("highlight", 74), + ("quote", 79), + ("stepper", 86), + ("card", 104), + ("tile", 115), + ("tabs", 156), + ("markdown", 157), + ("iframe", 158), + ("html", 159), + ("anchor", 160), + ("separator", 161), + ("multicolumns", 172), + ("item_grid", 176), + ("fullwidthbackground", 181), + ("fullwidthbackgroundwithsidemenu", 188), + ("subpageslist", 189), + ("blog_recent_entries", 190), + ("events_recent_entries", 191), + ("layout_richtext", 195), + ("image_text_grid_section", 206), + ("image_text_cta_section", 210), + ("cta_section", 213), + ("spotlight_section", 217), + ("accordion_section", 219), + ], + blank=True, + block_lookup={ + 0: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text"}), + 1: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": False}), + 2: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 3.", + "label": "Heading level", + "required": False, + }, + ), + 3: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image"}), + 4: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Alternative text (textual description of the image)", "required": False}, + ), + 5: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-content-media--sm", "Small"), + ("", "Medium"), + ("fr-content-media--lg", "Large"), + ], + "label": "Witdh", + "required": False, + }, + ), + 6: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-ratio-32x9", "32x9"), + ("fr-ratio-16x9", "16x9"), + ("fr-ratio-3x2", "3x2"), + ("fr-ratio-4x3", "4x3"), + ("fr-ratio-1x1", "1x1"), + ("fr-ratio-3x4", "3x4"), + ("fr-ratio-2x3", "2x3"), + ], + "label": "Image ratio", + "required": False, + }, + ), + 7: ("wagtail.blocks.CharBlock", (), {"label": "Caption", "required": False}), + 8: ("wagtail.blocks.URLBlock", (), {"label": "Link", "required": False}), + 9: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 2), + ("image", 3), + ("alt", 4), + ("width", 5), + ("image_ratio", 6), + ("caption", 7), + ("url", 8), + ] + ], + {"label": "Centered image"}, + ), + 10: ("wagtail.images.blocks.ImageBlock", [], {"label": "Image"}), + 11: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("left", "Left (displayed above text in mobile view)"), + ("left_below", "Left (displayed below text in mobile view)"), + ("right", "Right (displayed below text in mobile view)"), + ("right_above", "Right (displayed above text in mobile view)"), + ], + "label": "Image position", + }, + ), + 12: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("3", "3/12"), ("4", "4/12"), ("5", "5/12"), ("6", "6/12")], + "label": "Image width", + }, + ), + 13: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("page", "Page"), + ("external_url", "External URL"), + ("document", "Document"), + ("anchor", "Anchor link"), + ], + "help_text": "Select the type of link.", + "label": "Link type", + "required": False, + }, + ), + 14: ( + "wagtail.blocks.PageChooserBlock", + (), + { + "help_text": "Link to a page of this site. Use either this, the document, or the external URL parameter.", + "label": "Page", + "required": False, + }, + ), + 15: ( + "wagtail.documents.blocks.DocumentChooserBlock", + (), + { + "help_text": "Use either this, the external URL or the page parameter.", + "label": "Document", + "required": False, + }, + ), + 16: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Use either this, the document or the page parameter.", + "label": "External URL", + "required": False, + }, + ), + 17: ( + "wagtail.blocks.CharBlock", + (), + { + "default": "", + "help_text": "Link to an anchor block on the page. Allowed characters: A-Z, a-z, 0-9, - and _.", + "label": "Anchor ID", + "required": False, + "validators": [ + django.core.validators.RegexValidator( + re.compile("^[-a-zA-Z0-9_]+\\Z"), + "Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.", + "invalid", + ) + ], + }, + ), + 18: ( + "wagtail.blocks.CharBlock", + (), + { + "default": "", + "help_text": "Extra query parameters at the end of the link, e.g. filtering options.", + "label": "Extra query parameters", + "required": False, + "validators": [content_manager.validators.validate_query_string], + }, + ), + 19: ("wagtail.blocks.CharBlock", (), {"label": "Link label", "required": False}), + 20: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", "No icon"), + ("fr-icon-arrow-right-line fr-link--icon-right", "Icon on the right side"), + ("fr-icon-arrow-right-line fr-link--icon-left", "Icon on the left side"), + ], + "help_text": "Only used for internal links.", + "label": "Icon", + "required": False, + }, + ), + 21: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-link--sm", "Small"), ("", "Medium"), ("fr-link--lg", "Large")], + "label": "Size", + "required": False, + }, + ), + 22: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ("icon", 20), + ("size", 21), + ] + ], + { + "help_text": "The link is shown at the bottom of the text block, with an arrow", + "label": "Link", + "required": False, + }, + ), + 23: ( + "wagtail.blocks.StructBlock", + [[("image", 10), ("image_side", 11), ("image_ratio", 12), ("text", 0), ("link", 22)]], + {"label": "Image and text"}, + ), + 24: ("wagtail.blocks.CharBlock", (), {"label": "Row heading", "required": False}), + 25: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "text-left", + "text-center", + "text-right", + ], + "label": "Text", + "required": False, + }, + ), + 26: ("wagtail.images.blocks.ImageBlock", [], {"label": "Pictogram"}), + 27: ( + "wagtail.contrib.typed_table_block.blocks.TypedTableBlock", + [[("row_heading", 24), ("text", 25), ("pictogram", 26)]], + {"label": "Table"}, + ), + 28: ("wagtail.blocks.CharBlock", (), {"label": "Message title", "required": False}), + 29: ("wagtail.blocks.TextBlock", (), {"label": "Message text", "required": False}), + 30: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("error", "Error"), + ("success", "Success"), + ("info", "Information"), + ("warning", "Warning"), + ], + "label": "Message type", + }, + ), + 31: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 3.", + "label": "Heading level", + }, + ), + 32: ( + "wagtail.blocks.StructBlock", + [[("title", 28), ("description", 29), ("level", 30), ("heading_tag", 31)]], + {"label": "Alert message"}, + ), + 33: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text", "required": False}), + 34: ("wagtail.blocks.CharBlock", (), {"label": "Button label", "required": False}), + 35: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-btn", "Primary"), + ("fr-btn fr-btn--secondary", "Secundary"), + ("fr-btn fr-btn--tertiary", "Tertiary"), + ("fr-btn fr-btn--tertiary-no-outline", "Tertiary without border"), + ], + "label": "Button type", + "required": False, + }, + ), + 36: ( + "content_manager.blocks.buttons_links.IconPickerBlock", + (), + {"label": "Icon", "required": False}, + ), + 37: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")], + "label": "Icon side", + "required": False, + }, + ), + 38: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + {"label": "Button"}, + ), + 39: ( + "wagtail.blocks.StreamBlock", + [[("button", 38)]], + { + "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", + "label": "Buttons", + }, + ), + 40: ( + "wagtail.blocks.StreamBlock", + [[("buttons", 39)]], + {"label": "Call-to-action buttons", "max_num": 1, "required": False}, + ), + 41: ( + "wagtail.blocks.StructBlock", + [[("text", 33), ("cta_buttons", 40)]], + {"label": "Text and call to action"}, + ), + 42: ("wagtail.blocks.CharBlock", (), {"label": "Video title", "required": False}), + 43: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Use embed format, with a version that doesn't require a consent banner if available. (e.g. : https://www.youtube-nocookie.com/embed/gLzXOViPX-0) For Youtube, use Embed video and check Enable privacy-enhanced mode.", + "label": "Video URL", + }, + ), + 44: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-ratio-16x9", "16x9"), ("fr-ratio-4x3", "4x3"), ("fr-ratio-1x1", "1x1")], + "label": "Video ratio", + "required": False, + }, + ), + 45: ( + "wagtail.blocks.CharBlock", + (), + {"default": "Transcription", "label": "Title", "required": False}, + ), + 46: ("wagtail.blocks.RichTextBlock", (), {"label": "Transcription content", "required": False}), + 47: ( + "wagtail.blocks.StructBlock", + [[("title", 45), ("content", 46)]], + {"label": "Transcription", "required": False}, + ), + 48: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 42), + ("caption", 7), + ("url", 43), + ("width", 5), + ("video_ratio", 44), + ("transcription", 47), + ] + ], + {"label": "Video"}, + ), + 49: ("wagtail.blocks.StructBlock", [[("title", 45), ("content", 46)]], {"label": "Transcription"}), + 50: ("wagtail.blocks.CharBlock", (), {"label": "Badge label", "required": False}), + 51: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", [("new", "New"), ("grey", "Grey")]), + ( + "System colors", + [ + ("info", "Info"), + ("success", "Success"), + ("warning", "Warning"), + ("error", "Error"), + ], + ), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "label": "Badge color", + "required": False, + }, + ), + 52: ("wagtail.blocks.BooleanBlock", (), {"label": "Hide badge icon", "required": False}), + 53: ( + "wagtail.blocks.StructBlock", + [[("text", 50), ("color", 51), ("hide_icon", 52)]], + {"label": "Badge"}, + ), + 54: ("wagtail.blocks.StreamBlock", [[("badge", 53)]], {"label": "Badge list"}), + 55: ("wagtail.blocks.CharBlock", (), {"label": "Title"}), + 56: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tag", "required": False}), + 57: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + "help_text": "Only for clickable tags", + "label": "Tag color", + "required": False, + }, + ), + 58: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ] + ], + {"required": False}, + ), + 59: ( + "wagtail.blocks.StructBlock", + [[("label", 55), ("is_small", 56), ("color", 57), ("icon_class", 36), ("link", 58)]], + {"label": "Tag"}, + ), + 60: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {"label": "Tag list"}), + 61: ( + "wagtail.blocks.StreamBlock", + [[("button", 38)]], + { + "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", + "label": "Buttons", + }, + ), + 62: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", "Left"), + ("fr-btns-group--center", "Center"), + ("fr-btns-group--right", "Right"), + ( + "fr-btns-group--right fr-btns-group--inline-reverse", + "Right (reverse order on desktop)", + ), + ], + "label": "Position", + "required": False, + }, + ), + 63: ( + "wagtail.blocks.StructBlock", + [[("buttons", 61), ("position", 62)]], + {"label": "Button list"}, + ), + 64: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ("icon", 20), + ("size", 21), + ] + ], + {"label": "Single link"}, + ), + 65: ("wagtail.blocks.RichTextBlock", (), {"label": "Content"}), + 66: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("content", 65)]], + {"label": "Accordion", "max_num": 15, "min_num": 1}, + ), + 67: ( + "wagtail.blocks.StreamBlock", + [[("title", 55), ("accordion", 66)]], + {"group": "2. DSFR components", "label": "Accordions"}, + ), + 68: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "text-left", + "text-center", + "text-right", + ], + "label": "Content", + "required": False, + }, + ), + 69: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + {"label": "Button", "required": False}, + ), + 70: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + "label": "Color", + "required": False, + }, + ), + 71: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 31), + ("icon_class", 36), + ("text", 68), + ("button", 69), + ("color", 70), + ] + ], + {"group": "2. DSFR components", "label": "Callout"}, + ), + 72: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "text-left", + "text-center", + "text-right", + ], + "label": "Content", + }, + ), + 73: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-text--sm", "Small"), ("", "Medium"), ("fr-text--lg", "Large")], + "label": "Size", + "required": False, + }, + ), + 74: ( + "wagtail.blocks.StructBlock", + [[("text", 72), ("color", 70), ("size", 73)]], + {"group": "2. DSFR components", "label": "Highlight"}, + ), + 75: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image", "required": False}), + 76: ("wagtail.blocks.CharBlock", (), {"label": "Quote"}), + 77: ("wagtail.blocks.CharBlock", (), {"label": "Author name", "required": False}), + 78: ("wagtail.blocks.CharBlock", (), {"label": "Author title", "required": False}), + 79: ( + "wagtail.blocks.StructBlock", + [[("image", 75), ("quote", 76), ("author_name", 77), ("author_title", 78), ("color", 70)]], + {"group": "2. DSFR components", "label": "Quote"}, + ), + 80: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + }, + ), + 81: ( + "wagtail.blocks.IntegerBlock", + (), + {"label": "Number of steps", "max_value": 8, "min_value": 1}, + ), + 82: ("wagtail.blocks.IntegerBlock", (), {"label": "Current step", "max_value": 8, "min_value": 1}), + 83: ("wagtail.blocks.TextBlock", (), {"label": "Detail", "required": False}), + 84: ("wagtail.blocks.StructBlock", [[("title", 55), ("detail", 83)]], {"label": "Step"}), + 85: ("wagtail.blocks.StreamBlock", [[("step", 84)]], {"label": "Steps"}), + 86: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("heading_tag", 80), ("total", 81), ("current", 82), ("steps", 85)]], + {"group": "2. DSFR components", "label": "Stepper"}, + ), + 87: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-card--horizontal-tier", "1/3"), ("fr-card--horizontal-half", "50/50")], + "label": "Image ratio", + "required": False, + }, + ), + 88: ( + "wagtail.blocks.StreamBlock", + [[("badge", 53)]], + { + "help_text": "Only used if the card has an image.", + "label": "Image area badge", + "max_num": 1, + "required": False, + }, + ), + 89: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ] + ], + { + "collapsed": False, + "help_text": "Link for the whole card. If a call-to-action is present, the link will display on the title only.", + "label": "Link", + "required": False, + }, + ), + 90: ("wagtail.blocks.CharBlock", (), {"label": "Top detail: text", "required": False}), + 91: ( + "content_manager.blocks.buttons_links.IconPickerBlock", + (), + {"label": "Top detail: icon", "required": False}, + ), + 92: ("wagtail.blocks.StreamBlock", [[("badge", 53)]], {}), + 93: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {}), + 94: ( + "wagtail.blocks.StreamBlock", + [[("badges", 92), ("tags", 93)]], + {"label": "Top detail: badges or tags", "max_num": 1, "required": False}, + ), + 95: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Incompatible with the bottom call-to-action. If the card links to a downloadable document, the values are pre-filled.", + "label": "Bottom detail: text", + "required": False, + }, + ), + 96: ( + "content_manager.blocks.buttons_links.IconPickerBlock", + (), + {"label": "Bottom detail: icon", "required": False}, + ), + 97: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ] + ], + {"label": "Link"}, + ), + 98: ("wagtail.blocks.StreamBlock", [[("link", 97)]], {"label": "Links"}), + 99: ( + "wagtail.blocks.StreamBlock", + [[("links", 98), ("buttons", 39)]], + { + "help_text": "Incompatible with the bottom detail text. Allow you to add link or button.", + "label": "Bottom call-to-action: links or buttons", + "max_num": 1, + "required": False, + }, + ), + 100: ( + "wagtail.blocks.BooleanBlock", + (), + {"label": "Card with grey background", "required": False}, + ), + 101: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without background", "required": False}), + 102: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without border", "required": False}), + 103: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with a shadow", "required": False}), + 104: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 87), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 95), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {"group": "2. DSFR components", "label": "Horizontal card"}, + ), + 105: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": ["bold", "italic", "superscript", "subscript", "strikethrough"], + "label": "Content", + "required": False, + }, + ), + 106: ( + "wagtail.images.blocks.ImageChooserBlock", + (), + {"help_text": "Prefer SVG files.", "label": "Image", "required": False}, + ), + 107: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ] + ], + {"label": "Link", "required": False}, + ), + 108: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "If the tile links to a downloadable document, the values are pre-filled.", + "label": "Detail text", + "required": False, + }, + ), + 109: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tile", "required": False}), + 110: ( + "wagtail.blocks.BooleanBlock", + (), + {"label": "Tile with grey background", "required": False}, + ), + 111: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without background", "required": False}), + 112: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without border", "required": False}), + 113: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with a shadow", "required": False}), + 114: ("wagtail.blocks.BooleanBlock", (), {"label": "Horizontal tile", "required": False}), + 115: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 105), + ("image", 106), + ("link", 107), + ("top_detail_badges_tags", 94), + ("detail_text", 108), + ("is_small", 109), + ("grey_background", 110), + ("no_background", 111), + ("no_border", 112), + ("shadow", 113), + ("is_horizontal", 114), + ] + ], + {"group": "2. DSFR components", "label": "Tile"}, + ), + 116: ( + "wagtail.blocks.StreamBlock", + [[("title", 55), ("accordion", 66)]], + {"group": "DSFR components", "label": "Accordions"}, + ), + 117: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 31), + ("icon_class", 36), + ("text", 68), + ("button", 69), + ("color", 70), + ] + ], + {"group": "DSFR components", "label": "Callout"}, + ), + 118: ( + "wagtail.blocks.StructBlock", + [[("text", 72), ("color", 70), ("size", 73)]], + {"group": "DSFR components", "label": "Highlight"}, + ), + 119: ( + "wagtail.blocks.StructBlock", + [[("image", 75), ("quote", 76), ("author_name", 77), ("author_title", 78), ("color", 70)]], + {"group": "DSFR components", "label": "Quote"}, + ), + 120: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 105), + ("image", 106), + ("link", 107), + ("top_detail_badges_tags", 94), + ("detail_text", 108), + ("is_small", 109), + ("grey_background", 110), + ("no_background", 111), + ("no_border", 112), + ("shadow", 113), + ("is_horizontal", 114), + ] + ], + {"group": "DSFR components", "label": "Tile"}, + ), + 121: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + "required": False, + }, + ), + 122: ( + "wagtail.blocks.PageChooserBlock", + (), + {"label": "Blog", "page_type": ["blog.BlogIndexPage"]}, + ), + 123: ( + "wagtail.blocks.IntegerBlock", + (), + { + "default": 3, + "label": "Number of entries", + "max_value": 8, + "min_value": 1, + "required": False, + }, + ), + 124: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Category",), + {"label": "Filter by category", "required": False}, + ), + 125: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("content_manager.Tag",), + {"label": "Filter by tag", "required": False}, + ), + 126: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Person",), + {"label": "Filter by author", "required": False}, + ), + 127: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Organization",), + { + "help_text": "The source is the organization of the post author", + "label": "Filter by source", + "required": False, + }, + ), + 128: ( + "wagtail.blocks.BooleanBlock", + (), + {"default": False, "label": "Show filters", "required": False}, + ), + 129: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("blog", 122), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "Website structure", "label": "Blog recent entries"}, + ), + 130: ( + "wagtail.blocks.PageChooserBlock", + (), + {"label": "Event calendar", "page_type": ["events.EventsIndexPage"]}, + ), + 131: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("index_page", 130), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "Website structure", "label": "Event calendar recent entries"}, + ), + 132: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("heading_tag", 80), ("total", 81), ("current", 82), ("steps", 85)]], + {"group": "DSFR components", "label": "Stepper"}, + ), + 133: ("wagtailmarkdown.blocks.MarkdownBlock", (), {"group": "Expert syntax", "label": "Markdown"}), + 134: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Accessibility: The title should describe, in a clear and concise manner, the embedded content.", + "label": "Title", + }, + ), + 135: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Example for Tally: https://tally.so/embed/w2jMRa", + "label": "URL of the iframe", + }, + ), + 136: ("wagtail.blocks.IntegerBlock", (), {"label": "Height (in pixels)"}), + 137: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "For example: \"allow='geolocation'\".", + "label": "Parameters", + "required": False, + }, + ), + 138: ( + "wagtail.blocks.StructBlock", + [[("title", 134), ("url", 135), ("height", 136), ("parameters", 137)]], + {"group": "Expert syntax", "label": "Iframe"}, + ), + 139: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "group": "Expert syntax", + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "readonly": True, + }, + ), + 140: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Allows the creation of a link to this specific part of the page. Allowed characters: A-Z, a-z, 0-9, - and _.", + "label": "Anchor ID", + "validators": [ + django.core.validators.RegexValidator( + re.compile("^[-a-zA-Z0-9_]+\\Z"), + "Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.", + "invalid", + ) + ], + }, + ), + 141: ( + "wagtail.blocks.StructBlock", + [[("anchor_id", 140)]], + {"group": "Page structure", "label": "Anchor"}, + ), + 142: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 3, "label": "Top margin", "max_value": 15, "min_value": 0}, + ), + 143: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 3, "label": "Bottom margin", "max_value": 15, "min_value": 0}, + ), + 144: ( + "wagtail.blocks.StructBlock", + [[("top_margin", 142), ("bottom_margin", 143)]], + {"group": "Page structure", "label": "Separator"}, + ), + 145: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Incompatible with the bottom call-to-action.", + "label": "Bottom detail: text", + "required": False, + }, + ), + 146: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 6), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 145), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {"group": "DSFR components", "label": "Vertical card"}, + ), + 147: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Person",), + { + "help_text": "Optional, all values can be manually specified or overriden below", + "label": "Person", + "required": False, + }, + ), + 148: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255, "required": False}), + 149: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255, "required": False}), + 150: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Organization", "max_length": 255, "required": False}, + ), + 151: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Contact info", "max_length": 500, "required": False}, + ), + 152: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {"label": "Tags", "required": False}), + 153: ( + "wagtail.blocks.StructBlock", + [ + [ + ("contact", 147), + ("link", 107), + ("heading_tag", 2), + ("name", 148), + ("role", 149), + ("organization", 150), + ("contact_info", 151), + ("image", 75), + ("tags", 152), + ] + ], + {"group": "Extra components", "label": "Contact card"}, + ), + 154: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("contact_card", 153), + ] + ], + {"label": "Content"}, + ), + 155: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("content", 154)]], + {"label": "Tab", "max_num": 15, "min_num": 1}, + ), + 156: ( + "wagtail.blocks.StreamBlock", + [[("tabs", 155)]], + {"group": "2. DSFR components", "label": "Tabs"}, + ), + 157: ( + "wagtailmarkdown.blocks.MarkdownBlock", + (), + {"group": "5. Expert syntax", "label": "Markdown"}, + ), + 158: ( + "wagtail.blocks.StructBlock", + [[("title", 134), ("url", 135), ("height", 136), ("parameters", 137)]], + {"group": "5. Expert syntax", "label": "Iframe"}, + ), + 159: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "group": "5. Expert syntax", + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "readonly": True, + }, + ), + 160: ( + "wagtail.blocks.StructBlock", + [[("anchor_id", 140)]], + {"group": "3. Page structure", "label": "Anchor"}, + ), + 161: ( + "wagtail.blocks.StructBlock", + [[("top_margin", 142), ("bottom_margin", 143)]], + {"group": "3. Page structure", "label": "Separator"}, + ), + 162: ( + "wagtail.images.blocks.ImageChooserBlock", + (), + {"label": "Background image", "required": False}, + ), + 163: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("Primary colors", [("blue-france", "Blue France"), ("red-marianne", "Red Marianne")]), + ("Neutral colors", [("grey", "Grey")]), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "help_text": "Uses the French Design System colors", + "label": "Background color", + "required": False, + }, + ), + 164: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + "required": False, + }, + ), + 165: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 5, "label": "Top margin", "max_value": 15, "min_value": 0, "required": False}, + ), + 166: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 5, "label": "Bottom margin", "max_value": 15, "min_value": 0, "required": False}, + ), + 167: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("top", "Top"), ("middle", "Middle"), ("bottom", "Bottom")], + "label": "Vertical align", + "required": False, + }, + ), + 168: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("3", "3/12"), + ("4", "4/12"), + ("5", "5/12"), + ("6", "6/12"), + ("7", "7/12"), + ("8", "8/12"), + ("9", "9/12"), + ], + "help_text": "The total width of all columns should be 12.", + "label": "Column width", + "required": False, + }, + ), + 169: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("contact_card", 153), + ] + ], + {"label": "Column content"}, + ), + 170: ( + "wagtail.blocks.StructBlock", + [[("width", 168), ("content", 169)]], + {"group": "Page structure", "label": "Adjustable column"}, + ), + 171: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("column", 170), + ] + ], + {"label": "Columns"}, + ), + 172: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 162), + ("bg_color_class", 163), + ("title", 1), + ("heading_tag", 164), + ("top_margin", 165), + ("bottom_margin", 166), + ("vertical_align", 167), + ("columns", 171), + ] + ], + {"group": "3. Page structure", "label": "Multiple columns"}, + ), + 173: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("3", "3/12"), ("4", "4/12"), ("6", "6/12")], "label": "Column width"}, + ), + 174: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("center", "Center"), ("right", "Right")], + "label": "Horizontal align", + "required": False, + }, + ), + 175: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("contact_card", 153), + ] + ], + {"label": "Items"}, + ), + 176: ( + "wagtail.blocks.StructBlock", + [[("column_width", 173), ("horizontal_align", 174), ("vertical_align", 167), ("items", 175)]], + {"group": "3. Page structure", "label": "Item grid"}, + ), + 177: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 87), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 95), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {"group": "DSFR components", "label": "Horizontal card"}, + ), + 178: ( + "wagtail.blocks.StreamBlock", + [[("tabs", 155)]], + {"group": "DSFR components", "label": "Tabs"}, + ), + 179: ( + "wagtail.blocks.StructBlock", + [[("column_width", 173), ("horizontal_align", 174), ("vertical_align", 167), ("items", 175)]], + {"group": "Page structure", "label": "Item grid"}, + ), + 180: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("image_and_text", 23), + ("card", 177), + ("tabs", 178), + ("item_grid", 179), + ] + ], + {"label": "Content"}, + ), + 181: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 162), + ("bg_color_class", 163), + ("top_margin", 165), + ("bottom_margin", 166), + ("content", 180), + ] + ], + {"group": "3. Page structure", "label": "Full width background"}, + ), + 182: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("image_and_text", 23), + ("card", 177), + ("tabs", 178), + ("item_grid", 179), + ] + ], + {"label": "Main content"}, + ), + 183: ("wagtail.blocks.CharBlock", (), {"label": "Side menu title", "required": False}), + 184: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "label": "HTML", + }, + ), + 185: ("wagtail.blocks.PageChooserBlock", (), {"label": "Parent page"}), + 186: ("wagtail.blocks.StructBlock", [[("page", 185)]], {"label": "Page tree"}), + 187: ( + "wagtail.blocks.StreamBlock", + [[("html", 184), ("pagetree", 186)]], + {"label": "Side menu content"}, + ), + 188: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 162), + ("bg_color_class", 163), + ("top_margin", 165), + ("bottom_margin", 166), + ("main_content", 182), + ("sidemenu_title", 183), + ("sidemenu_content", 187), + ] + ], + {"group": "3. Page structure", "label": "Full width background with side menu"}, + ), + 189: ( + "wagtail.blocks.static_block.StaticBlock", + (), + { + "admin_text": "A simple, alphabetical list of the subpages of the current page.", + "group": "4. Website structure", + "label": "Subpages list", + "template": "content_manager/blocks/subpages_list.html", + }, + ), + 190: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("blog", 122), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "4. Website structure", "label": "Blog recent entries"}, + ), + 191: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("index_page", 130), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "4. Website structure", "label": "Event calendar recent entries"}, + ), + 192: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "

En savoir plus


Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "features": ["bold", "italic", "link", "document-link", "strikethrough", "h2", "h3", "h4"], + "label": "Rich text", + }, + ), + 193: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("6", "small"), ("8", "medium"), ("12", "large")], "label": "Block width"}, + ), + 194: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("", "Center"), ("right", "Right")], + "label": "Block alignment", + "required": False, + }, + ), + 195: ( + "wagtail.blocks.StructBlock", + [[("text", 192), ("width", 193), ("alignment", 194)]], + {"group": "1. Section templates to be adapted", "label": "Rich text with layout"}, + ), + 196: ( + "wagtail.blocks.CharBlock", + (), + {"default": "Titre de la section", "label": "Section title"}, + ), + 197: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("Primary colors", [("blue-france", "Blue France"), ("red-marianne", "Red Marianne")]), + ("Neutral colors", [("grey", "Grey")]), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "help_text": "Uses the French Design System colors.
If you want to design a classic website, choose the colour ‘white’ or ‘French blue’.", + "label": "Background color", + "required": False, + }, + ), + 198: ( + "wagtail.blocks.StructBlock", + [[("background_color", 197), ("top_margin", 165), ("bottom_margin", 166)]], + {"collapsed": True, "label": "Layout"}, + ), + 199: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("center", "Center"), ("right", "Right")], + "label": "Items alignement", + }, + ), + 200: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("6", "2"), ("4", "3"), ("3", "4")], "label": "Items per row"}, + ), + 201: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("80", "Small (80px)"), ("140", "Medium (140px)"), ("200", "Large (200px)")], + "help_text": "Images are always displayed in a square (1:1) ratio. Three sizes are available: if the original image is smaller than the selected size, it will be displayed at its maximum available size.", + "label": "Image size of items", + }, + ), + 202: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": True}), + 203: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "Add a short description to help your visitors better understand what you offer.", + "features": ["bold", "italic", "link", "document-link"], + "label": "Text", + }, + ), + 204: ("wagtail.blocks.StructBlock", [[("image", 10), ("title", 202), ("text", 203)]], {}), + 205: ( + "content_manager.blocks.sections.ImageAndTextListBlock", + (204,), + {"collapsed": True, "label": "Items"}, + ), + 206: ( + "wagtail.blocks.StructBlock", + [ + [ + ("section_title", 196), + ("layout", 198), + ("items_alignement", 199), + ("items_per_row", 200), + ("images_size", 201), + ("items", 205), + ] + ], + {"group": "1. Section templates to be adapted", "label": "Items grid (image and text)"}, + ), + 207: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "

Titre de la section


Lorem ipsum dolor sit amet, consectetur adipiscing elit, ", + "features": ["bold", "italic", "link", "document-link", "strikethrough", "h2", "h3", "h4"], + "label": "Text block", + }, + ), + 208: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("right", "Right")], + "help_text": "This field allows you to define the placement of text relative to adjacent content.", + "label": "Text content position", + }, + ), + 209: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + { + "default": { + "button_type": "fr-btn fr-btn--secondary", + "external_url": "https://tube.numerique.gouv.fr/", + "icon_side": "--", + "link_type": "external_url", + "text": "Appel à l'action", + }, + "label": "Button", + }, + ), + 210: ( + "wagtail.blocks.StructBlock", + [[("text", 207), ("position", 208), ("button", 209), ("image", 10), ("layout", 198)]], + {"group": "1. Section templates to be adapted", "label": "Image, text and cta"}, + ), + 211: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididun", + "features": ["bold", "italic", "link", "document-link"], + "label": "Text", + }, + ), + 212: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + { + "default": { + "button_type": "fr-btn", + "external_url": "https://tube.numerique.gouv.fr/", + "icon_side": "--", + "link_type": "external_url", + "text": "Appel à l'action", + }, + "label": "Button", + }, + ), + 213: ( + "wagtail.blocks.StructBlock", + [[("section_title", 196), ("layout", 198), ("text", 211), ("button", 212)]], + {"group": "1. Section templates to be adapted", "label": "Text and button"}, + ), + 214: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ] + ], + { + "collapsed": True, + "help_text": "This link appears at the bottom left of the section if completed", + "label": "Section link", + "required": False, + }, + ), + 215: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 6), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 145), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {}, + ), + 216: ("wagtail.blocks.StreamBlock", [[("card", 215)]], {"label": "Items"}), + 217: ( + "wagtail.blocks.StructBlock", + [ + [ + ("section_title", 196), + ("layout", 198), + ("items_per_row", 200), + ("link", 214), + ("items", 216), + ] + ], + {"group": "1. Section templates to be adapted", "label": "In the spotlight"}, + ), + 218: ( + "wagtail.blocks.StreamBlock", + [[("title", 55), ("accordion", 66)]], + { + "default": [ + ("title", "Accordéon"), + ( + "accordion", + { + "content": "

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

", + "title": "Titre de l'accordéon 1", + }, + ), + ( + "accordion", + { + "content": "

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

", + "title": "Titre de l'accordéon 2", + }, + ), + ], + "label": "Accordion", + }, + ), + 219: ( + "wagtail.blocks.StructBlock", + [[("accordion", 218), ("layout", 198)]], + {"group": "1. Section templates to be adapted", "label": "Accordions with layout"}, + ), + }, + ), + ), + migrations.AlterField( + model_name="blogindexpage", + name="body", + field=wagtail.fields.StreamField( + [ + ("paragraph", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("link", 64), + ("accordions", 67), + ("callout", 71), + ("highlight", 74), + ("quote", 79), + ("stepper", 86), + ("card", 104), + ("tile", 115), + ("tabs", 156), + ("markdown", 157), + ("iframe", 158), + ("html", 159), + ("anchor", 160), + ("separator", 161), + ("multicolumns", 172), + ("item_grid", 176), + ("fullwidthbackground", 181), + ("fullwidthbackgroundwithsidemenu", 188), + ("subpageslist", 189), + ("blog_recent_entries", 190), + ("events_recent_entries", 191), + ("layout_richtext", 195), + ("image_text_grid_section", 206), + ("image_text_cta_section", 210), + ("cta_section", 213), + ("spotlight_section", 217), + ("accordion_section", 219), + ], + blank=True, + block_lookup={ + 0: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text"}), + 1: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": False}), + 2: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 3.", + "label": "Heading level", + "required": False, + }, + ), + 3: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image"}), + 4: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Alternative text (textual description of the image)", "required": False}, + ), + 5: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-content-media--sm", "Small"), + ("", "Medium"), + ("fr-content-media--lg", "Large"), + ], + "label": "Witdh", + "required": False, + }, + ), + 6: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-ratio-32x9", "32x9"), + ("fr-ratio-16x9", "16x9"), + ("fr-ratio-3x2", "3x2"), + ("fr-ratio-4x3", "4x3"), + ("fr-ratio-1x1", "1x1"), + ("fr-ratio-3x4", "3x4"), + ("fr-ratio-2x3", "2x3"), + ], + "label": "Image ratio", + "required": False, + }, + ), + 7: ("wagtail.blocks.CharBlock", (), {"label": "Caption", "required": False}), + 8: ("wagtail.blocks.URLBlock", (), {"label": "Link", "required": False}), + 9: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 2), + ("image", 3), + ("alt", 4), + ("width", 5), + ("image_ratio", 6), + ("caption", 7), + ("url", 8), + ] + ], + {"label": "Centered image"}, + ), + 10: ("wagtail.images.blocks.ImageBlock", [], {"label": "Image"}), + 11: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("left", "Left (displayed above text in mobile view)"), + ("left_below", "Left (displayed below text in mobile view)"), + ("right", "Right (displayed below text in mobile view)"), + ("right_above", "Right (displayed above text in mobile view)"), + ], + "label": "Image position", + }, + ), + 12: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("3", "3/12"), ("4", "4/12"), ("5", "5/12"), ("6", "6/12")], + "label": "Image width", + }, + ), + 13: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("page", "Page"), + ("external_url", "External URL"), + ("document", "Document"), + ("anchor", "Anchor link"), + ], + "help_text": "Select the type of link.", + "label": "Link type", + "required": False, + }, + ), + 14: ( + "wagtail.blocks.PageChooserBlock", + (), + { + "help_text": "Link to a page of this site. Use either this, the document, or the external URL parameter.", + "label": "Page", + "required": False, + }, + ), + 15: ( + "wagtail.documents.blocks.DocumentChooserBlock", + (), + { + "help_text": "Use either this, the external URL or the page parameter.", + "label": "Document", + "required": False, + }, + ), + 16: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Use either this, the document or the page parameter.", + "label": "External URL", + "required": False, + }, + ), + 17: ( + "wagtail.blocks.CharBlock", + (), + { + "default": "", + "help_text": "Link to an anchor block on the page. Allowed characters: A-Z, a-z, 0-9, - and _.", + "label": "Anchor ID", + "required": False, + "validators": [ + django.core.validators.RegexValidator( + re.compile("^[-a-zA-Z0-9_]+\\Z"), + "Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.", + "invalid", + ) + ], + }, + ), + 18: ( + "wagtail.blocks.CharBlock", + (), + { + "default": "", + "help_text": "Extra query parameters at the end of the link, e.g. filtering options.", + "label": "Extra query parameters", + "required": False, + "validators": [content_manager.validators.validate_query_string], + }, + ), + 19: ("wagtail.blocks.CharBlock", (), {"label": "Link label", "required": False}), + 20: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", "No icon"), + ("fr-icon-arrow-right-line fr-link--icon-right", "Icon on the right side"), + ("fr-icon-arrow-right-line fr-link--icon-left", "Icon on the left side"), + ], + "help_text": "Only used for internal links.", + "label": "Icon", + "required": False, + }, + ), + 21: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-link--sm", "Small"), ("", "Medium"), ("fr-link--lg", "Large")], + "label": "Size", + "required": False, + }, + ), + 22: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ("icon", 20), + ("size", 21), + ] + ], + { + "help_text": "The link is shown at the bottom of the text block, with an arrow", + "label": "Link", + "required": False, + }, + ), + 23: ( + "wagtail.blocks.StructBlock", + [[("image", 10), ("image_side", 11), ("image_ratio", 12), ("text", 0), ("link", 22)]], + {"label": "Image and text"}, + ), + 24: ("wagtail.blocks.CharBlock", (), {"label": "Row heading", "required": False}), + 25: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "text-left", + "text-center", + "text-right", + ], + "label": "Text", + "required": False, + }, + ), + 26: ("wagtail.images.blocks.ImageBlock", [], {"label": "Pictogram"}), + 27: ( + "wagtail.contrib.typed_table_block.blocks.TypedTableBlock", + [[("row_heading", 24), ("text", 25), ("pictogram", 26)]], + {"label": "Table"}, + ), + 28: ("wagtail.blocks.CharBlock", (), {"label": "Message title", "required": False}), + 29: ("wagtail.blocks.TextBlock", (), {"label": "Message text", "required": False}), + 30: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("error", "Error"), + ("success", "Success"), + ("info", "Information"), + ("warning", "Warning"), + ], + "label": "Message type", + }, + ), + 31: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 3.", + "label": "Heading level", + }, + ), + 32: ( + "wagtail.blocks.StructBlock", + [[("title", 28), ("description", 29), ("level", 30), ("heading_tag", 31)]], + {"label": "Alert message"}, + ), + 33: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text", "required": False}), + 34: ("wagtail.blocks.CharBlock", (), {"label": "Button label", "required": False}), + 35: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-btn", "Primary"), + ("fr-btn fr-btn--secondary", "Secundary"), + ("fr-btn fr-btn--tertiary", "Tertiary"), + ("fr-btn fr-btn--tertiary-no-outline", "Tertiary without border"), + ], + "label": "Button type", + "required": False, + }, + ), + 36: ( + "content_manager.blocks.buttons_links.IconPickerBlock", + (), + {"label": "Icon", "required": False}, + ), + 37: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")], + "label": "Icon side", + "required": False, + }, + ), + 38: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + {"label": "Button"}, + ), + 39: ( + "wagtail.blocks.StreamBlock", + [[("button", 38)]], + { + "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", + "label": "Buttons", + }, + ), + 40: ( + "wagtail.blocks.StreamBlock", + [[("buttons", 39)]], + {"label": "Call-to-action buttons", "max_num": 1, "required": False}, + ), + 41: ( + "wagtail.blocks.StructBlock", + [[("text", 33), ("cta_buttons", 40)]], + {"label": "Text and call to action"}, + ), + 42: ("wagtail.blocks.CharBlock", (), {"label": "Video title", "required": False}), + 43: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Use embed format, with a version that doesn't require a consent banner if available. (e.g. : https://www.youtube-nocookie.com/embed/gLzXOViPX-0) For Youtube, use Embed video and check Enable privacy-enhanced mode.", + "label": "Video URL", + }, + ), + 44: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-ratio-16x9", "16x9"), ("fr-ratio-4x3", "4x3"), ("fr-ratio-1x1", "1x1")], + "label": "Video ratio", + "required": False, + }, + ), + 45: ( + "wagtail.blocks.CharBlock", + (), + {"default": "Transcription", "label": "Title", "required": False}, + ), + 46: ("wagtail.blocks.RichTextBlock", (), {"label": "Transcription content", "required": False}), + 47: ( + "wagtail.blocks.StructBlock", + [[("title", 45), ("content", 46)]], + {"label": "Transcription", "required": False}, + ), + 48: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 42), + ("caption", 7), + ("url", 43), + ("width", 5), + ("video_ratio", 44), + ("transcription", 47), + ] + ], + {"label": "Video"}, + ), + 49: ("wagtail.blocks.StructBlock", [[("title", 45), ("content", 46)]], {"label": "Transcription"}), + 50: ("wagtail.blocks.CharBlock", (), {"label": "Badge label", "required": False}), + 51: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", [("new", "New"), ("grey", "Grey")]), + ( + "System colors", + [ + ("info", "Info"), + ("success", "Success"), + ("warning", "Warning"), + ("error", "Error"), + ], + ), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "label": "Badge color", + "required": False, + }, + ), + 52: ("wagtail.blocks.BooleanBlock", (), {"label": "Hide badge icon", "required": False}), + 53: ( + "wagtail.blocks.StructBlock", + [[("text", 50), ("color", 51), ("hide_icon", 52)]], + {"label": "Badge"}, + ), + 54: ("wagtail.blocks.StreamBlock", [[("badge", 53)]], {"label": "Badge list"}), + 55: ("wagtail.blocks.CharBlock", (), {"label": "Title"}), + 56: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tag", "required": False}), + 57: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + "help_text": "Only for clickable tags", + "label": "Tag color", + "required": False, + }, + ), + 58: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ] + ], + {"required": False}, + ), + 59: ( + "wagtail.blocks.StructBlock", + [[("label", 55), ("is_small", 56), ("color", 57), ("icon_class", 36), ("link", 58)]], + {"label": "Tag"}, + ), + 60: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {"label": "Tag list"}), + 61: ( + "wagtail.blocks.StreamBlock", + [[("button", 38)]], + { + "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", + "label": "Buttons", + }, + ), + 62: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", "Left"), + ("fr-btns-group--center", "Center"), + ("fr-btns-group--right", "Right"), + ( + "fr-btns-group--right fr-btns-group--inline-reverse", + "Right (reverse order on desktop)", + ), + ], + "label": "Position", + "required": False, + }, + ), + 63: ( + "wagtail.blocks.StructBlock", + [[("buttons", 61), ("position", 62)]], + {"label": "Button list"}, + ), + 64: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ("icon", 20), + ("size", 21), + ] + ], + {"label": "Single link"}, + ), + 65: ("wagtail.blocks.RichTextBlock", (), {"label": "Content"}), + 66: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("content", 65)]], + {"label": "Accordion", "max_num": 15, "min_num": 1}, + ), + 67: ( + "wagtail.blocks.StreamBlock", + [[("title", 55), ("accordion", 66)]], + {"group": "2. DSFR components", "label": "Accordions"}, + ), + 68: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "text-left", + "text-center", + "text-right", + ], + "label": "Content", + "required": False, + }, + ), + 69: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + {"label": "Button", "required": False}, + ), + 70: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + "label": "Color", + "required": False, + }, + ), + 71: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 31), + ("icon_class", 36), + ("text", 68), + ("button", 69), + ("color", 70), + ] + ], + {"group": "2. DSFR components", "label": "Callout"}, + ), + 72: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "text-left", + "text-center", + "text-right", + ], + "label": "Content", + }, + ), + 73: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-text--sm", "Small"), ("", "Medium"), ("fr-text--lg", "Large")], + "label": "Size", + "required": False, + }, + ), + 74: ( + "wagtail.blocks.StructBlock", + [[("text", 72), ("color", 70), ("size", 73)]], + {"group": "2. DSFR components", "label": "Highlight"}, + ), + 75: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image", "required": False}), + 76: ("wagtail.blocks.CharBlock", (), {"label": "Quote"}), + 77: ("wagtail.blocks.CharBlock", (), {"label": "Author name", "required": False}), + 78: ("wagtail.blocks.CharBlock", (), {"label": "Author title", "required": False}), + 79: ( + "wagtail.blocks.StructBlock", + [[("image", 75), ("quote", 76), ("author_name", 77), ("author_title", 78), ("color", 70)]], + {"group": "2. DSFR components", "label": "Quote"}, + ), + 80: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + }, + ), + 81: ( + "wagtail.blocks.IntegerBlock", + (), + {"label": "Number of steps", "max_value": 8, "min_value": 1}, + ), + 82: ("wagtail.blocks.IntegerBlock", (), {"label": "Current step", "max_value": 8, "min_value": 1}), + 83: ("wagtail.blocks.TextBlock", (), {"label": "Detail", "required": False}), + 84: ("wagtail.blocks.StructBlock", [[("title", 55), ("detail", 83)]], {"label": "Step"}), + 85: ("wagtail.blocks.StreamBlock", [[("step", 84)]], {"label": "Steps"}), + 86: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("heading_tag", 80), ("total", 81), ("current", 82), ("steps", 85)]], + {"group": "2. DSFR components", "label": "Stepper"}, + ), + 87: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-card--horizontal-tier", "1/3"), ("fr-card--horizontal-half", "50/50")], + "label": "Image ratio", + "required": False, + }, + ), + 88: ( + "wagtail.blocks.StreamBlock", + [[("badge", 53)]], + { + "help_text": "Only used if the card has an image.", + "label": "Image area badge", + "max_num": 1, + "required": False, + }, + ), + 89: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ] + ], + { + "collapsed": False, + "help_text": "Link for the whole card. If a call-to-action is present, the link will display on the title only.", + "label": "Link", + "required": False, + }, + ), + 90: ("wagtail.blocks.CharBlock", (), {"label": "Top detail: text", "required": False}), + 91: ( + "content_manager.blocks.buttons_links.IconPickerBlock", + (), + {"label": "Top detail: icon", "required": False}, + ), + 92: ("wagtail.blocks.StreamBlock", [[("badge", 53)]], {}), + 93: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {}), + 94: ( + "wagtail.blocks.StreamBlock", + [[("badges", 92), ("tags", 93)]], + {"label": "Top detail: badges or tags", "max_num": 1, "required": False}, + ), + 95: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Incompatible with the bottom call-to-action. If the card links to a downloadable document, the values are pre-filled.", + "label": "Bottom detail: text", + "required": False, + }, + ), + 96: ( + "content_manager.blocks.buttons_links.IconPickerBlock", + (), + {"label": "Bottom detail: icon", "required": False}, + ), + 97: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ] + ], + {"label": "Link"}, + ), + 98: ("wagtail.blocks.StreamBlock", [[("link", 97)]], {"label": "Links"}), + 99: ( + "wagtail.blocks.StreamBlock", + [[("links", 98), ("buttons", 39)]], + { + "help_text": "Incompatible with the bottom detail text. Allow you to add link or button.", + "label": "Bottom call-to-action: links or buttons", + "max_num": 1, + "required": False, + }, + ), + 100: ( + "wagtail.blocks.BooleanBlock", + (), + {"label": "Card with grey background", "required": False}, + ), + 101: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without background", "required": False}), + 102: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without border", "required": False}), + 103: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with a shadow", "required": False}), + 104: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 87), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 95), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {"group": "2. DSFR components", "label": "Horizontal card"}, + ), + 105: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": ["bold", "italic", "superscript", "subscript", "strikethrough"], + "label": "Content", + "required": False, + }, + ), + 106: ( + "wagtail.images.blocks.ImageChooserBlock", + (), + {"help_text": "Prefer SVG files.", "label": "Image", "required": False}, + ), + 107: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ] + ], + {"label": "Link", "required": False}, + ), + 108: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "If the tile links to a downloadable document, the values are pre-filled.", + "label": "Detail text", + "required": False, + }, + ), + 109: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tile", "required": False}), + 110: ( + "wagtail.blocks.BooleanBlock", + (), + {"label": "Tile with grey background", "required": False}, + ), + 111: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without background", "required": False}), + 112: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without border", "required": False}), + 113: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with a shadow", "required": False}), + 114: ("wagtail.blocks.BooleanBlock", (), {"label": "Horizontal tile", "required": False}), + 115: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 105), + ("image", 106), + ("link", 107), + ("top_detail_badges_tags", 94), + ("detail_text", 108), + ("is_small", 109), + ("grey_background", 110), + ("no_background", 111), + ("no_border", 112), + ("shadow", 113), + ("is_horizontal", 114), + ] + ], + {"group": "2. DSFR components", "label": "Tile"}, + ), + 116: ( + "wagtail.blocks.StreamBlock", + [[("title", 55), ("accordion", 66)]], + {"group": "DSFR components", "label": "Accordions"}, + ), + 117: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 31), + ("icon_class", 36), + ("text", 68), + ("button", 69), + ("color", 70), + ] + ], + {"group": "DSFR components", "label": "Callout"}, + ), + 118: ( + "wagtail.blocks.StructBlock", + [[("text", 72), ("color", 70), ("size", 73)]], + {"group": "DSFR components", "label": "Highlight"}, + ), + 119: ( + "wagtail.blocks.StructBlock", + [[("image", 75), ("quote", 76), ("author_name", 77), ("author_title", 78), ("color", 70)]], + {"group": "DSFR components", "label": "Quote"}, + ), + 120: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 105), + ("image", 106), + ("link", 107), + ("top_detail_badges_tags", 94), + ("detail_text", 108), + ("is_small", 109), + ("grey_background", 110), + ("no_background", 111), + ("no_border", 112), + ("shadow", 113), + ("is_horizontal", 114), + ] + ], + {"group": "DSFR components", "label": "Tile"}, + ), + 121: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + "required": False, + }, + ), + 122: ( + "wagtail.blocks.PageChooserBlock", + (), + {"label": "Blog", "page_type": ["blog.BlogIndexPage"]}, + ), + 123: ( + "wagtail.blocks.IntegerBlock", + (), + { + "default": 3, + "label": "Number of entries", + "max_value": 8, + "min_value": 1, + "required": False, + }, + ), + 124: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Category",), + {"label": "Filter by category", "required": False}, + ), + 125: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("content_manager.Tag",), + {"label": "Filter by tag", "required": False}, + ), + 126: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Person",), + {"label": "Filter by author", "required": False}, + ), + 127: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Organization",), + { + "help_text": "The source is the organization of the post author", + "label": "Filter by source", + "required": False, + }, + ), + 128: ( + "wagtail.blocks.BooleanBlock", + (), + {"default": False, "label": "Show filters", "required": False}, + ), + 129: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("blog", 122), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "Website structure", "label": "Blog recent entries"}, + ), + 130: ( + "wagtail.blocks.PageChooserBlock", + (), + {"label": "Event calendar", "page_type": ["events.EventsIndexPage"]}, + ), + 131: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("index_page", 130), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "Website structure", "label": "Event calendar recent entries"}, + ), + 132: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("heading_tag", 80), ("total", 81), ("current", 82), ("steps", 85)]], + {"group": "DSFR components", "label": "Stepper"}, + ), + 133: ("wagtailmarkdown.blocks.MarkdownBlock", (), {"group": "Expert syntax", "label": "Markdown"}), + 134: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Accessibility: The title should describe, in a clear and concise manner, the embedded content.", + "label": "Title", + }, + ), + 135: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Example for Tally: https://tally.so/embed/w2jMRa", + "label": "URL of the iframe", + }, + ), + 136: ("wagtail.blocks.IntegerBlock", (), {"label": "Height (in pixels)"}), + 137: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "For example: \"allow='geolocation'\".", + "label": "Parameters", + "required": False, + }, + ), + 138: ( + "wagtail.blocks.StructBlock", + [[("title", 134), ("url", 135), ("height", 136), ("parameters", 137)]], + {"group": "Expert syntax", "label": "Iframe"}, + ), + 139: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "group": "Expert syntax", + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "readonly": True, + }, + ), + 140: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Allows the creation of a link to this specific part of the page. Allowed characters: A-Z, a-z, 0-9, - and _.", + "label": "Anchor ID", + "validators": [ + django.core.validators.RegexValidator( + re.compile("^[-a-zA-Z0-9_]+\\Z"), + "Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.", + "invalid", + ) + ], + }, + ), + 141: ( + "wagtail.blocks.StructBlock", + [[("anchor_id", 140)]], + {"group": "Page structure", "label": "Anchor"}, + ), + 142: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 3, "label": "Top margin", "max_value": 15, "min_value": 0}, + ), + 143: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 3, "label": "Bottom margin", "max_value": 15, "min_value": 0}, + ), + 144: ( + "wagtail.blocks.StructBlock", + [[("top_margin", 142), ("bottom_margin", 143)]], + {"group": "Page structure", "label": "Separator"}, + ), + 145: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Incompatible with the bottom call-to-action.", + "label": "Bottom detail: text", + "required": False, + }, + ), + 146: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 6), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 145), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {"group": "DSFR components", "label": "Vertical card"}, + ), + 147: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Person",), + { + "help_text": "Optional, all values can be manually specified or overriden below", + "label": "Person", + "required": False, + }, + ), + 148: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255, "required": False}), + 149: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255, "required": False}), + 150: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Organization", "max_length": 255, "required": False}, + ), + 151: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Contact info", "max_length": 500, "required": False}, + ), + 152: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {"label": "Tags", "required": False}), + 153: ( + "wagtail.blocks.StructBlock", + [ + [ + ("contact", 147), + ("link", 107), + ("heading_tag", 2), + ("name", 148), + ("role", 149), + ("organization", 150), + ("contact_info", 151), + ("image", 75), + ("tags", 152), + ] + ], + {"group": "Extra components", "label": "Contact card"}, + ), + 154: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("contact_card", 153), + ] + ], + {"label": "Content"}, + ), + 155: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("content", 154)]], + {"label": "Tab", "max_num": 15, "min_num": 1}, + ), + 156: ( + "wagtail.blocks.StreamBlock", + [[("tabs", 155)]], + {"group": "2. DSFR components", "label": "Tabs"}, + ), + 157: ( + "wagtailmarkdown.blocks.MarkdownBlock", + (), + {"group": "5. Expert syntax", "label": "Markdown"}, + ), + 158: ( + "wagtail.blocks.StructBlock", + [[("title", 134), ("url", 135), ("height", 136), ("parameters", 137)]], + {"group": "5. Expert syntax", "label": "Iframe"}, + ), + 159: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "group": "5. Expert syntax", + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "readonly": True, + }, + ), + 160: ( + "wagtail.blocks.StructBlock", + [[("anchor_id", 140)]], + {"group": "3. Page structure", "label": "Anchor"}, + ), + 161: ( + "wagtail.blocks.StructBlock", + [[("top_margin", 142), ("bottom_margin", 143)]], + {"group": "3. Page structure", "label": "Separator"}, + ), + 162: ( + "wagtail.images.blocks.ImageChooserBlock", + (), + {"label": "Background image", "required": False}, + ), + 163: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("Primary colors", [("blue-france", "Blue France"), ("red-marianne", "Red Marianne")]), + ("Neutral colors", [("grey", "Grey")]), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "help_text": "Uses the French Design System colors", + "label": "Background color", + "required": False, + }, + ), + 164: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + "required": False, + }, + ), + 165: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 5, "label": "Top margin", "max_value": 15, "min_value": 0, "required": False}, + ), + 166: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 5, "label": "Bottom margin", "max_value": 15, "min_value": 0, "required": False}, + ), + 167: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("top", "Top"), ("middle", "Middle"), ("bottom", "Bottom")], + "label": "Vertical align", + "required": False, + }, + ), + 168: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("3", "3/12"), + ("4", "4/12"), + ("5", "5/12"), + ("6", "6/12"), + ("7", "7/12"), + ("8", "8/12"), + ("9", "9/12"), + ], + "help_text": "The total width of all columns should be 12.", + "label": "Column width", + "required": False, + }, + ), + 169: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("contact_card", 153), + ] + ], + {"label": "Column content"}, + ), + 170: ( + "wagtail.blocks.StructBlock", + [[("width", 168), ("content", 169)]], + {"group": "Page structure", "label": "Adjustable column"}, + ), + 171: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("column", 170), + ] + ], + {"label": "Columns"}, + ), + 172: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 162), + ("bg_color_class", 163), + ("title", 1), + ("heading_tag", 164), + ("top_margin", 165), + ("bottom_margin", 166), + ("vertical_align", 167), + ("columns", 171), + ] + ], + {"group": "3. Page structure", "label": "Multiple columns"}, + ), + 173: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("3", "3/12"), ("4", "4/12"), ("6", "6/12")], "label": "Column width"}, + ), + 174: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("center", "Center"), ("right", "Right")], + "label": "Horizontal align", + "required": False, + }, + ), + 175: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("contact_card", 153), + ] + ], + {"label": "Items"}, + ), + 176: ( + "wagtail.blocks.StructBlock", + [[("column_width", 173), ("horizontal_align", 174), ("vertical_align", 167), ("items", 175)]], + {"group": "3. Page structure", "label": "Item grid"}, + ), + 177: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 87), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 95), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {"group": "DSFR components", "label": "Horizontal card"}, + ), + 178: ( + "wagtail.blocks.StreamBlock", + [[("tabs", 155)]], + {"group": "DSFR components", "label": "Tabs"}, + ), + 179: ( + "wagtail.blocks.StructBlock", + [[("column_width", 173), ("horizontal_align", 174), ("vertical_align", 167), ("items", 175)]], + {"group": "Page structure", "label": "Item grid"}, + ), + 180: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("image_and_text", 23), + ("card", 177), + ("tabs", 178), + ("item_grid", 179), + ] + ], + {"label": "Content"}, + ), + 181: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 162), + ("bg_color_class", 163), + ("top_margin", 165), + ("bottom_margin", 166), + ("content", 180), + ] + ], + {"group": "3. Page structure", "label": "Full width background"}, + ), + 182: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("image_and_text", 23), + ("card", 177), + ("tabs", 178), + ("item_grid", 179), + ] + ], + {"label": "Main content"}, + ), + 183: ("wagtail.blocks.CharBlock", (), {"label": "Side menu title", "required": False}), + 184: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "label": "HTML", + }, + ), + 185: ("wagtail.blocks.PageChooserBlock", (), {"label": "Parent page"}), + 186: ("wagtail.blocks.StructBlock", [[("page", 185)]], {"label": "Page tree"}), + 187: ( + "wagtail.blocks.StreamBlock", + [[("html", 184), ("pagetree", 186)]], + {"label": "Side menu content"}, + ), + 188: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 162), + ("bg_color_class", 163), + ("top_margin", 165), + ("bottom_margin", 166), + ("main_content", 182), + ("sidemenu_title", 183), + ("sidemenu_content", 187), + ] + ], + {"group": "3. Page structure", "label": "Full width background with side menu"}, + ), + 189: ( + "wagtail.blocks.static_block.StaticBlock", + (), + { + "admin_text": "A simple, alphabetical list of the subpages of the current page.", + "group": "4. Website structure", + "label": "Subpages list", + "template": "content_manager/blocks/subpages_list.html", + }, + ), + 190: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("blog", 122), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "4. Website structure", "label": "Blog recent entries"}, + ), + 191: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("index_page", 130), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "4. Website structure", "label": "Event calendar recent entries"}, + ), + 192: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "

En savoir plus


Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "features": ["bold", "italic", "link", "document-link", "strikethrough", "h2", "h3", "h4"], + "label": "Rich text", + }, + ), + 193: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("6", "small"), ("8", "medium"), ("12", "large")], "label": "Block width"}, + ), + 194: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("", "Center"), ("right", "Right")], + "label": "Block alignment", + "required": False, + }, + ), + 195: ( + "wagtail.blocks.StructBlock", + [[("text", 192), ("width", 193), ("alignment", 194)]], + {"group": "1. Section templates to be adapted", "label": "Rich text with layout"}, + ), + 196: ( + "wagtail.blocks.CharBlock", + (), + {"default": "Titre de la section", "label": "Section title"}, + ), + 197: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("Primary colors", [("blue-france", "Blue France"), ("red-marianne", "Red Marianne")]), + ("Neutral colors", [("grey", "Grey")]), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "help_text": "Uses the French Design System colors.
If you want to design a classic website, choose the colour ‘white’ or ‘French blue’.", + "label": "Background color", + "required": False, + }, + ), + 198: ( + "wagtail.blocks.StructBlock", + [[("background_color", 197), ("top_margin", 165), ("bottom_margin", 166)]], + {"collapsed": True, "label": "Layout"}, + ), + 199: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("center", "Center"), ("right", "Right")], + "label": "Items alignement", + }, + ), + 200: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("6", "2"), ("4", "3"), ("3", "4")], "label": "Items per row"}, + ), + 201: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("80", "Small (80px)"), ("140", "Medium (140px)"), ("200", "Large (200px)")], + "help_text": "Images are always displayed in a square (1:1) ratio. Three sizes are available: if the original image is smaller than the selected size, it will be displayed at its maximum available size.", + "label": "Image size of items", + }, + ), + 202: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": True}), + 203: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "Add a short description to help your visitors better understand what you offer.", + "features": ["bold", "italic", "link", "document-link"], + "label": "Text", + }, + ), + 204: ("wagtail.blocks.StructBlock", [[("image", 10), ("title", 202), ("text", 203)]], {}), + 205: ( + "content_manager.blocks.sections.ImageAndTextListBlock", + (204,), + {"collapsed": True, "label": "Items"}, + ), + 206: ( + "wagtail.blocks.StructBlock", + [ + [ + ("section_title", 196), + ("layout", 198), + ("items_alignement", 199), + ("items_per_row", 200), + ("images_size", 201), + ("items", 205), + ] + ], + {"group": "1. Section templates to be adapted", "label": "Items grid (image and text)"}, + ), + 207: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "

Titre de la section


Lorem ipsum dolor sit amet, consectetur adipiscing elit, ", + "features": ["bold", "italic", "link", "document-link", "strikethrough", "h2", "h3", "h4"], + "label": "Text block", + }, + ), + 208: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("right", "Right")], + "help_text": "This field allows you to define the placement of text relative to adjacent content.", + "label": "Text content position", + }, + ), + 209: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + { + "default": { + "button_type": "fr-btn fr-btn--secondary", + "external_url": "https://tube.numerique.gouv.fr/", + "icon_side": "--", + "link_type": "external_url", + "text": "Appel à l'action", + }, + "label": "Button", + }, + ), + 210: ( + "wagtail.blocks.StructBlock", + [[("text", 207), ("position", 208), ("button", 209), ("image", 10), ("layout", 198)]], + {"group": "1. Section templates to be adapted", "label": "Image, text and cta"}, + ), + 211: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididun", + "features": ["bold", "italic", "link", "document-link"], + "label": "Text", + }, + ), + 212: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + { + "default": { + "button_type": "fr-btn", + "external_url": "https://tube.numerique.gouv.fr/", + "icon_side": "--", + "link_type": "external_url", + "text": "Appel à l'action", + }, + "label": "Button", + }, + ), + 213: ( + "wagtail.blocks.StructBlock", + [[("section_title", 196), ("layout", 198), ("text", 211), ("button", 212)]], + {"group": "1. Section templates to be adapted", "label": "Text and button"}, + ), + 214: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ] + ], + { + "collapsed": True, + "help_text": "This link appears at the bottom left of the section if completed", + "label": "Section link", + "required": False, + }, + ), + 215: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 6), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 145), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {}, + ), + 216: ("wagtail.blocks.StreamBlock", [[("card", 215)]], {"label": "Items"}), + 217: ( + "wagtail.blocks.StructBlock", + [ + [ + ("section_title", 196), + ("layout", 198), + ("items_per_row", 200), + ("link", 214), + ("items", 216), + ] + ], + {"group": "1. Section templates to be adapted", "label": "In the spotlight"}, + ), + 218: ( + "wagtail.blocks.StreamBlock", + [[("title", 55), ("accordion", 66)]], + { + "default": [ + ("title", "Accordéon"), + ( + "accordion", + { + "content": "

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

", + "title": "Titre de l'accordéon 1", + }, + ), + ( + "accordion", + { + "content": "

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

", + "title": "Titre de l'accordéon 2", + }, + ), + ], + "label": "Accordion", + }, + ), + 219: ( + "wagtail.blocks.StructBlock", + [[("accordion", 218), ("layout", 198)]], + {"group": "1. Section templates to be adapted", "label": "Accordions with layout"}, + ), + }, + ), + ), + migrations.AlterField( + model_name="category", + name="colophon", + field=wagtail.fields.StreamField( + [("paragraph", 0), ("imageandtext", 14), ("quote", 20), ("multicolumns", 157), ("contact_card", 161)], + blank=True, + block_lookup={ + 0: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text"}), + 1: ("wagtail.images.blocks.ImageBlock", [], {"label": "Image"}), + 2: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("left", "Left (displayed above text in mobile view)"), + ("left_below", "Left (displayed below text in mobile view)"), + ("right", "Right (displayed below text in mobile view)"), + ("right_above", "Right (displayed above text in mobile view)"), + ], + "label": "Image position", + }, + ), + 3: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("3", "3/12"), ("4", "4/12"), ("5", "5/12"), ("6", "6/12")], + "label": "Image width", + }, + ), + 4: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("page", "Page"), + ("external_url", "External URL"), + ("document", "Document"), + ("anchor", "Anchor link"), + ], + "help_text": "Select the type of link.", + "label": "Link type", + "required": False, + }, + ), + 5: ( + "wagtail.blocks.PageChooserBlock", + (), + { + "help_text": "Link to a page of this site. Use either this, the document, or the external URL parameter.", + "label": "Page", + "required": False, + }, + ), + 6: ( + "wagtail.documents.blocks.DocumentChooserBlock", + (), + { + "help_text": "Use either this, the external URL or the page parameter.", + "label": "Document", + "required": False, + }, + ), + 7: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Use either this, the document or the page parameter.", + "label": "External URL", + "required": False, + }, + ), + 8: ( + "wagtail.blocks.CharBlock", + (), + { + "default": "", + "help_text": "Link to an anchor block on the page. Allowed characters: A-Z, a-z, 0-9, - and _.", + "label": "Anchor ID", + "required": False, + "validators": [ + django.core.validators.RegexValidator( + re.compile("^[-a-zA-Z0-9_]+\\Z"), + "Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.", + "invalid", + ) + ], + }, + ), + 9: ( + "wagtail.blocks.CharBlock", + (), + { + "default": "", + "help_text": "Extra query parameters at the end of the link, e.g. filtering options.", + "label": "Extra query parameters", + "required": False, + "validators": [content_manager.validators.validate_query_string], + }, + ), + 10: ("wagtail.blocks.CharBlock", (), {"label": "Link label", "required": False}), + 11: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", "No icon"), + ("fr-icon-arrow-right-line fr-link--icon-right", "Icon on the right side"), + ("fr-icon-arrow-right-line fr-link--icon-left", "Icon on the left side"), + ], + "help_text": "Only used for internal links.", + "label": "Icon", + "required": False, + }, + ), + 12: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-link--sm", "Small"), ("", "Medium"), ("fr-link--lg", "Large")], + "label": "Size", + "required": False, + }, + ), + 13: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 4), + ("page", 5), + ("document", 6), + ("external_url", 7), + ("anchor", 8), + ("query_string", 9), + ("text", 10), + ("icon", 11), + ("size", 12), + ] + ], + { + "help_text": "The link is shown at the bottom of the text block, with an arrow", + "label": "Link", + "required": False, + }, + ), + 14: ( + "wagtail.blocks.StructBlock", + [[("image", 1), ("image_side", 2), ("image_ratio", 3), ("text", 0), ("link", 13)]], + {"label": "Bloc image et texte"}, + ), + 15: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image", "required": False}), + 16: ("wagtail.blocks.CharBlock", (), {"label": "Quote"}), + 17: ("wagtail.blocks.CharBlock", (), {"label": "Author name", "required": False}), + 18: ("wagtail.blocks.CharBlock", (), {"label": "Author title", "required": False}), + 19: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + "label": "Color", + "required": False, + }, + ), + 20: ( + "wagtail.blocks.StructBlock", + [[("image", 15), ("quote", 16), ("author_name", 17), ("author_title", 18), ("color", 19)]], + {"label": "Citation"}, + ), + 21: ( + "wagtail.images.blocks.ImageChooserBlock", + (), + {"label": "Background image", "required": False}, + ), + 22: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("Primary colors", [("blue-france", "Blue France"), ("red-marianne", "Red Marianne")]), + ("Neutral colors", [("grey", "Grey")]), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "help_text": "Uses the French Design System colors", + "label": "Background color", + "required": False, + }, + ), + 23: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": False}), + 24: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + "required": False, + }, + ), + 25: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 5, "label": "Top margin", "max_value": 15, "min_value": 0, "required": False}, + ), + 26: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 5, "label": "Bottom margin", "max_value": 15, "min_value": 0, "required": False}, + ), + 27: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("top", "Top"), ("middle", "Middle"), ("bottom", "Bottom")], + "label": "Vertical align", + "required": False, + }, + ), + 28: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 3.", + "label": "Heading level", + "required": False, + }, + ), + 29: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image"}), + 30: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Alternative text (textual description of the image)", "required": False}, + ), + 31: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-content-media--sm", "Small"), + ("", "Medium"), + ("fr-content-media--lg", "Large"), + ], + "label": "Witdh", + "required": False, + }, + ), + 32: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-ratio-32x9", "32x9"), + ("fr-ratio-16x9", "16x9"), + ("fr-ratio-3x2", "3x2"), + ("fr-ratio-4x3", "4x3"), + ("fr-ratio-1x1", "1x1"), + ("fr-ratio-3x4", "3x4"), + ("fr-ratio-2x3", "2x3"), + ], + "label": "Image ratio", + "required": False, + }, + ), + 33: ("wagtail.blocks.CharBlock", (), {"label": "Caption", "required": False}), + 34: ("wagtail.blocks.URLBlock", (), {"label": "Link", "required": False}), + 35: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 23), + ("heading_tag", 28), + ("image", 29), + ("alt", 30), + ("width", 31), + ("image_ratio", 32), + ("caption", 33), + ("url", 34), + ] + ], + {"label": "Centered image"}, + ), + 36: ( + "wagtail.blocks.StructBlock", + [[("image", 1), ("image_side", 2), ("image_ratio", 3), ("text", 0), ("link", 13)]], + {"label": "Image and text"}, + ), + 37: ("wagtail.blocks.CharBlock", (), {"label": "Row heading", "required": False}), + 38: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "text-left", + "text-center", + "text-right", + ], + "label": "Text", + "required": False, + }, + ), + 39: ("wagtail.images.blocks.ImageBlock", [], {"label": "Pictogram"}), + 40: ( + "wagtail.contrib.typed_table_block.blocks.TypedTableBlock", + [[("row_heading", 37), ("text", 38), ("pictogram", 39)]], + {"label": "Table"}, + ), + 41: ("wagtail.blocks.CharBlock", (), {"label": "Message title", "required": False}), + 42: ("wagtail.blocks.TextBlock", (), {"label": "Message text", "required": False}), + 43: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("error", "Error"), + ("success", "Success"), + ("info", "Information"), + ("warning", "Warning"), + ], + "label": "Message type", + }, + ), + 44: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 3.", + "label": "Heading level", + }, + ), + 45: ( + "wagtail.blocks.StructBlock", + [[("title", 41), ("description", 42), ("level", 43), ("heading_tag", 44)]], + {"label": "Alert message"}, + ), + 46: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text", "required": False}), + 47: ("wagtail.blocks.CharBlock", (), {"label": "Button label", "required": False}), + 48: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-btn", "Primary"), + ("fr-btn fr-btn--secondary", "Secundary"), + ("fr-btn fr-btn--tertiary", "Tertiary"), + ("fr-btn fr-btn--tertiary-no-outline", "Tertiary without border"), + ], + "label": "Button type", + "required": False, + }, + ), + 49: ( + "content_manager.blocks.buttons_links.IconPickerBlock", + (), + {"label": "Icon", "required": False}, + ), + 50: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")], + "label": "Icon side", + "required": False, + }, + ), + 51: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 4), + ("page", 5), + ("document", 6), + ("external_url", 7), + ("anchor", 8), + ("query_string", 9), + ("text", 47), + ("button_type", 48), + ("icon_class", 49), + ("icon_side", 50), + ] + ], + {"label": "Button"}, + ), + 52: ( + "wagtail.blocks.StreamBlock", + [[("button", 51)]], + { + "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", + "label": "Buttons", + }, + ), + 53: ( + "wagtail.blocks.StreamBlock", + [[("buttons", 52)]], + {"label": "Call-to-action buttons", "max_num": 1, "required": False}, + ), + 54: ( + "wagtail.blocks.StructBlock", + [[("text", 46), ("cta_buttons", 53)]], + {"label": "Text and call to action"}, + ), + 55: ("wagtail.blocks.CharBlock", (), {"label": "Video title", "required": False}), + 56: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Use embed format, with a version that doesn't require a consent banner if available. (e.g. : https://www.youtube-nocookie.com/embed/gLzXOViPX-0) For Youtube, use Embed video and check Enable privacy-enhanced mode.", + "label": "Video URL", + }, + ), + 57: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-ratio-16x9", "16x9"), ("fr-ratio-4x3", "4x3"), ("fr-ratio-1x1", "1x1")], + "label": "Video ratio", + "required": False, + }, + ), + 58: ( + "wagtail.blocks.CharBlock", + (), + {"default": "Transcription", "label": "Title", "required": False}, + ), + 59: ("wagtail.blocks.RichTextBlock", (), {"label": "Transcription content", "required": False}), + 60: ( + "wagtail.blocks.StructBlock", + [[("title", 58), ("content", 59)]], + {"label": "Transcription", "required": False}, + ), + 61: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("caption", 33), + ("url", 56), + ("width", 31), + ("video_ratio", 57), + ("transcription", 60), + ] + ], + {"label": "Video"}, + ), + 62: ("wagtail.blocks.StructBlock", [[("title", 58), ("content", 59)]], {"label": "Transcription"}), + 63: ("wagtail.blocks.CharBlock", (), {"label": "Badge label", "required": False}), + 64: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", [("new", "New"), ("grey", "Grey")]), + ( + "System colors", + [ + ("info", "Info"), + ("success", "Success"), + ("warning", "Warning"), + ("error", "Error"), + ], + ), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "label": "Badge color", + "required": False, + }, + ), + 65: ("wagtail.blocks.BooleanBlock", (), {"label": "Hide badge icon", "required": False}), + 66: ( + "wagtail.blocks.StructBlock", + [[("text", 63), ("color", 64), ("hide_icon", 65)]], + {"label": "Badge"}, + ), + 67: ("wagtail.blocks.StreamBlock", [[("badge", 66)]], {"label": "Badge list"}), + 68: ("wagtail.blocks.CharBlock", (), {"label": "Title"}), + 69: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tag", "required": False}), + 70: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + "help_text": "Only for clickable tags", + "label": "Tag color", + "required": False, + }, + ), + 71: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 4), + ("page", 5), + ("document", 6), + ("external_url", 7), + ("anchor", 8), + ("query_string", 9), + ] + ], + {"required": False}, + ), + 72: ( + "wagtail.blocks.StructBlock", + [[("label", 68), ("is_small", 69), ("color", 70), ("icon_class", 49), ("link", 71)]], + {"label": "Tag"}, + ), + 73: ("wagtail.blocks.StreamBlock", [[("tag", 72)]], {"label": "Tag list"}), + 74: ( + "wagtail.blocks.StreamBlock", + [[("button", 51)]], + { + "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", + "label": "Buttons", + }, + ), + 75: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", "Left"), + ("fr-btns-group--center", "Center"), + ("fr-btns-group--right", "Right"), + ( + "fr-btns-group--right fr-btns-group--inline-reverse", + "Right (reverse order on desktop)", + ), + ], + "label": "Position", + "required": False, + }, + ), + 76: ( + "wagtail.blocks.StructBlock", + [[("buttons", 74), ("position", 75)]], + {"label": "Button list"}, + ), + 77: ("wagtail.blocks.RichTextBlock", (), {"label": "Content"}), + 78: ( + "wagtail.blocks.StructBlock", + [[("title", 68), ("content", 77)]], + {"label": "Accordion", "max_num": 15, "min_num": 1}, + ), + 79: ( + "wagtail.blocks.StreamBlock", + [[("title", 68), ("accordion", 78)]], + {"group": "DSFR components", "label": "Accordions"}, + ), + 80: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "text-left", + "text-center", + "text-right", + ], + "label": "Content", + "required": False, + }, + ), + 81: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 4), + ("page", 5), + ("document", 6), + ("external_url", 7), + ("anchor", 8), + ("query_string", 9), + ("text", 47), + ("button_type", 48), + ("icon_class", 49), + ("icon_side", 50), + ] + ], + {"label": "Button", "required": False}, + ), + 82: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 23), + ("heading_tag", 44), + ("icon_class", 49), + ("text", 80), + ("button", 81), + ("color", 19), + ] + ], + {"group": "DSFR components", "label": "Callout"}, + ), + 83: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "text-left", + "text-center", + "text-right", + ], + "label": "Content", + }, + ), + 84: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-text--sm", "Small"), ("", "Medium"), ("fr-text--lg", "Large")], + "label": "Size", + "required": False, + }, + ), + 85: ( + "wagtail.blocks.StructBlock", + [[("text", 83), ("color", 19), ("size", 84)]], + {"group": "DSFR components", "label": "Highlight"}, + ), + 86: ( + "wagtail.blocks.StructBlock", + [[("image", 15), ("quote", 16), ("author_name", 17), ("author_title", 18), ("color", 19)]], + {"group": "DSFR components", "label": "Quote"}, + ), + 87: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 4), + ("page", 5), + ("document", 6), + ("external_url", 7), + ("anchor", 8), + ("query_string", 9), + ("text", 10), + ("icon", 11), + ("size", 12), + ] + ], + {"label": "Single link"}, + ), + 88: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": ["bold", "italic", "superscript", "subscript", "strikethrough"], + "label": "Content", + "required": False, + }, + ), + 89: ( + "wagtail.images.blocks.ImageChooserBlock", + (), + {"help_text": "Prefer SVG files.", "label": "Image", "required": False}, + ), + 90: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 4), + ("page", 5), + ("document", 6), + ("external_url", 7), + ("anchor", 8), + ("query_string", 9), + ] + ], + {"label": "Link", "required": False}, + ), + 91: ("wagtail.blocks.StreamBlock", [[("badge", 66)]], {}), + 92: ("wagtail.blocks.StreamBlock", [[("tag", 72)]], {}), + 93: ( + "wagtail.blocks.StreamBlock", + [[("badges", 91), ("tags", 92)]], + {"label": "Top detail: badges or tags", "max_num": 1, "required": False}, + ), + 94: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "If the tile links to a downloadable document, the values are pre-filled.", + "label": "Detail text", + "required": False, + }, + ), + 95: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tile", "required": False}), + 96: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with grey background", "required": False}), + 97: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without background", "required": False}), + 98: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without border", "required": False}), + 99: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with a shadow", "required": False}), + 100: ("wagtail.blocks.BooleanBlock", (), {"label": "Horizontal tile", "required": False}), + 101: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 68), + ("heading_tag", 44), + ("description", 88), + ("image", 89), + ("link", 90), + ("top_detail_badges_tags", 93), + ("detail_text", 94), + ("is_small", 95), + ("grey_background", 96), + ("no_background", 97), + ("no_border", 98), + ("shadow", 99), + ("is_horizontal", 100), + ] + ], + {"group": "DSFR components", "label": "Tile"}, + ), + 102: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + "required": False, + }, + ), + 103: ( + "wagtail.blocks.PageChooserBlock", + (), + {"label": "Blog", "page_type": ["blog.BlogIndexPage"]}, + ), + 104: ( + "wagtail.blocks.IntegerBlock", + (), + { + "default": 3, + "label": "Number of entries", + "max_value": 8, + "min_value": 1, + "required": False, + }, + ), + 105: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Category",), + {"label": "Filter by category", "required": False}, + ), + 106: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("content_manager.Tag",), + {"label": "Filter by tag", "required": False}, + ), + 107: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Person",), + {"label": "Filter by author", "required": False}, + ), + 108: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Organization",), + { + "help_text": "The source is the organization of the post author", + "label": "Filter by source", + "required": False, + }, + ), + 109: ( + "wagtail.blocks.BooleanBlock", + (), + {"default": False, "label": "Show filters", "required": False}, + ), + 110: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 23), + ("heading_tag", 102), + ("blog", 103), + ("entries_count", 104), + ("category_filter", 105), + ("tag_filter", 106), + ("author_filter", 107), + ("source_filter", 108), + ("show_filters", 109), + ] + ], + {"group": "Website structure", "label": "Blog recent entries"}, + ), + 111: ( + "wagtail.blocks.PageChooserBlock", + (), + {"label": "Event calendar", "page_type": ["events.EventsIndexPage"]}, + ), + 112: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 23), + ("heading_tag", 102), + ("index_page", 111), + ("entries_count", 104), + ("category_filter", 105), + ("tag_filter", 106), + ("author_filter", 107), + ("source_filter", 108), + ("show_filters", 109), + ] + ], + {"group": "Website structure", "label": "Event calendar recent entries"}, + ), + 113: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + }, + ), + 114: ( + "wagtail.blocks.IntegerBlock", + (), + {"label": "Number of steps", "max_value": 8, "min_value": 1}, + ), + 115: ( + "wagtail.blocks.IntegerBlock", + (), + {"label": "Current step", "max_value": 8, "min_value": 1}, + ), + 116: ("wagtail.blocks.TextBlock", (), {"label": "Detail", "required": False}), + 117: ("wagtail.blocks.StructBlock", [[("title", 68), ("detail", 116)]], {"label": "Step"}), + 118: ("wagtail.blocks.StreamBlock", [[("step", 117)]], {"label": "Steps"}), + 119: ( + "wagtail.blocks.StructBlock", + [[("title", 68), ("heading_tag", 113), ("total", 114), ("current", 115), ("steps", 118)]], + {"group": "DSFR components", "label": "Stepper"}, + ), + 120: ("wagtailmarkdown.blocks.MarkdownBlock", (), {"group": "Expert syntax", "label": "Markdown"}), + 121: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Accessibility: The title should describe, in a clear and concise manner, the embedded content.", + "label": "Title", + }, + ), + 122: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Example for Tally: https://tally.so/embed/w2jMRa", + "label": "URL of the iframe", + }, + ), + 123: ("wagtail.blocks.IntegerBlock", (), {"label": "Height (in pixels)"}), + 124: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "For example: \"allow='geolocation'\".", + "label": "Parameters", + "required": False, + }, + ), + 125: ( + "wagtail.blocks.StructBlock", + [[("title", 121), ("url", 122), ("height", 123), ("parameters", 124)]], + {"group": "Expert syntax", "label": "Iframe"}, + ), + 126: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "group": "Expert syntax", + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "readonly": True, + }, + ), + 127: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Allows the creation of a link to this specific part of the page. Allowed characters: A-Z, a-z, 0-9, - and _.", + "label": "Anchor ID", + "validators": [ + django.core.validators.RegexValidator( + re.compile("^[-a-zA-Z0-9_]+\\Z"), + "Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.", + "invalid", + ) + ], + }, + ), + 128: ( + "wagtail.blocks.StructBlock", + [[("anchor_id", 127)]], + {"group": "Page structure", "label": "Anchor"}, + ), + 129: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 3, "label": "Top margin", "max_value": 15, "min_value": 0}, + ), + 130: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 3, "label": "Bottom margin", "max_value": 15, "min_value": 0}, + ), + 131: ( + "wagtail.blocks.StructBlock", + [[("top_margin", 129), ("bottom_margin", 130)]], + {"group": "Page structure", "label": "Separator"}, + ), + 132: ( + "wagtail.blocks.StreamBlock", + [[("badge", 66)]], + { + "help_text": "Only used if the card has an image.", + "label": "Image area badge", + "max_num": 1, + "required": False, + }, + ), + 133: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 4), + ("page", 5), + ("document", 6), + ("external_url", 7), + ("anchor", 8), + ("query_string", 9), + ] + ], + { + "collapsed": False, + "help_text": "Link for the whole card. If a call-to-action is present, the link will display on the title only.", + "label": "Link", + "required": False, + }, + ), + 134: ("wagtail.blocks.CharBlock", (), {"label": "Top detail: text", "required": False}), + 135: ( + "content_manager.blocks.buttons_links.IconPickerBlock", + (), + {"label": "Top detail: icon", "required": False}, + ), + 136: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Incompatible with the bottom call-to-action.", + "label": "Bottom detail: text", + "required": False, + }, + ), + 137: ( + "content_manager.blocks.buttons_links.IconPickerBlock", + (), + {"label": "Bottom detail: icon", "required": False}, + ), + 138: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 4), + ("page", 5), + ("document", 6), + ("external_url", 7), + ("anchor", 8), + ("query_string", 9), + ("text", 10), + ] + ], + {"label": "Link"}, + ), + 139: ("wagtail.blocks.StreamBlock", [[("link", 138)]], {"label": "Links"}), + 140: ( + "wagtail.blocks.StreamBlock", + [[("links", 139), ("buttons", 52)]], + { + "help_text": "Incompatible with the bottom detail text. Allow you to add link or button.", + "label": "Bottom call-to-action: links or buttons", + "max_num": 1, + "required": False, + }, + ), + 141: ( + "wagtail.blocks.BooleanBlock", + (), + {"label": "Card with grey background", "required": False}, + ), + 142: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without background", "required": False}), + 143: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without border", "required": False}), + 144: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with a shadow", "required": False}), + 145: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 68), + ("heading_tag", 44), + ("description", 80), + ("image", 1), + ("image_ratio", 32), + ("image_badge", 132), + ("link", 133), + ("top_detail_text", 134), + ("top_detail_icon", 135), + ("top_detail_badges_tags", 93), + ("bottom_detail_text", 136), + ("bottom_detail_icon", 137), + ("call_to_action", 140), + ("grey_background", 141), + ("no_background", 142), + ("no_border", 143), + ("shadow", 144), + ] + ], + {"group": "DSFR components", "label": "Vertical card"}, + ), + 146: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("3", "3/12"), + ("4", "4/12"), + ("5", "5/12"), + ("6", "6/12"), + ("7", "7/12"), + ("8", "8/12"), + ("9", "9/12"), + ], + "help_text": "The total width of all columns should be 12.", + "label": "Column width", + "required": False, + }, + ), + 147: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Person",), + { + "help_text": "Optional, all values can be manually specified or overriden below", + "label": "Person", + "required": False, + }, + ), + 148: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255, "required": False}), + 149: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255, "required": False}), + 150: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Organization", "max_length": 255, "required": False}, + ), + 151: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Contact info", "max_length": 500, "required": False}, + ), + 152: ("wagtail.blocks.StreamBlock", [[("tag", 72)]], {"label": "Tags", "required": False}), + 153: ( + "wagtail.blocks.StructBlock", + [ + [ + ("contact", 147), + ("link", 90), + ("heading_tag", 28), + ("name", 148), + ("role", 149), + ("organization", 150), + ("contact_info", 151), + ("image", 15), + ("tags", 152), + ] + ], + {"group": "Extra components", "label": "Contact card"}, + ), + 154: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 35), + ("imageandtext", 36), + ("table", 40), + ("alert", 45), + ("text_cta", 54), + ("video", 61), + ("transcription", 62), + ("badges_list", 67), + ("tags_list", 73), + ("buttons_list", 76), + ("accordions", 79), + ("callout", 82), + ("highlight", 85), + ("quote", 86), + ("link", 87), + ("tile", 101), + ("blog_recent_entries", 110), + ("events_recent_entries", 112), + ("stepper", 119), + ("markdown", 120), + ("iframe", 125), + ("html", 126), + ("anchor", 128), + ("separator", 131), + ("card", 145), + ("contact_card", 153), + ] + ], + {"label": "Column content"}, + ), + 155: ( + "wagtail.blocks.StructBlock", + [[("width", 146), ("content", 154)]], + {"group": "Page structure", "label": "Adjustable column"}, + ), + 156: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 35), + ("imageandtext", 36), + ("table", 40), + ("alert", 45), + ("text_cta", 54), + ("video", 61), + ("transcription", 62), + ("badges_list", 67), + ("tags_list", 73), + ("buttons_list", 76), + ("accordions", 79), + ("callout", 82), + ("highlight", 85), + ("quote", 86), + ("link", 87), + ("tile", 101), + ("blog_recent_entries", 110), + ("events_recent_entries", 112), + ("stepper", 119), + ("markdown", 120), + ("iframe", 125), + ("html", 126), + ("anchor", 128), + ("separator", 131), + ("card", 145), + ("column", 155), + ] + ], + {"label": "Columns"}, + ), + 157: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 21), + ("bg_color_class", 22), + ("title", 23), + ("heading_tag", 24), + ("top_margin", 25), + ("bottom_margin", 26), + ("vertical_align", 27), + ("columns", 156), + ] + ], + {"label": "Multi-colonnes"}, + ), + 158: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255}), + 159: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255}), + 160: ("wagtail.blocks.CharBlock", (), {"label": "Organization", "max_length": 255}), + 161: ( + "wagtail.blocks.StructBlock", + [[("name", 158), ("role", 159), ("organization", 160), ("contact_info", 151), ("image", 29)]], + {"label": "Contact card"}, + ), + }, + help_text="Text displayed at the end of every page in the category", + ), + ), + ] diff --git a/content_manager/migrations/0076_alter_catalogindexpage_body_alter_contentpage_body.py b/content_manager/migrations/0076_alter_catalogindexpage_body_alter_contentpage_body.py new file mode 100644 index 000000000..d75a582df --- /dev/null +++ b/content_manager/migrations/0076_alter_catalogindexpage_body_alter_contentpage_body.py @@ -0,0 +1,4127 @@ +# Generated by Django 6.0.3 on 2026-03-26 12:50 + +import content_manager.validators +import django.core.validators +import re +import wagtail.fields +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("content_manager", "0075_catalogindexpage_exclude_from_sitemap_and_more"), + ] + + operations = [ + migrations.AlterField( + model_name="catalogindexpage", + name="body", + field=wagtail.fields.StreamField( + [ + ("paragraph", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("link", 64), + ("accordions", 67), + ("callout", 71), + ("highlight", 74), + ("quote", 79), + ("stepper", 86), + ("card", 104), + ("tile", 115), + ("tabs", 156), + ("markdown", 157), + ("iframe", 158), + ("html", 159), + ("anchor", 160), + ("separator", 161), + ("multicolumns", 172), + ("item_grid", 176), + ("fullwidthbackground", 181), + ("fullwidthbackgroundwithsidemenu", 188), + ("subpageslist", 189), + ("blog_recent_entries", 190), + ("events_recent_entries", 191), + ("layout_richtext", 195), + ("image_text_grid_section", 206), + ("image_text_cta_section", 210), + ("cta_section", 213), + ("spotlight_section", 217), + ("accordion_section", 219), + ], + blank=True, + block_lookup={ + 0: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text"}), + 1: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": False}), + 2: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 3.", + "label": "Heading level", + "required": False, + }, + ), + 3: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image"}), + 4: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Alternative text (textual description of the image)", "required": False}, + ), + 5: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-content-media--sm", "Small"), + ("", "Medium"), + ("fr-content-media--lg", "Large"), + ], + "label": "Witdh", + "required": False, + }, + ), + 6: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-ratio-32x9", "32x9"), + ("fr-ratio-16x9", "16x9"), + ("fr-ratio-3x2", "3x2"), + ("fr-ratio-4x3", "4x3"), + ("fr-ratio-1x1", "1x1"), + ("fr-ratio-3x4", "3x4"), + ("fr-ratio-2x3", "2x3"), + ], + "label": "Image ratio", + "required": False, + }, + ), + 7: ("wagtail.blocks.CharBlock", (), {"label": "Caption", "required": False}), + 8: ("wagtail.blocks.URLBlock", (), {"label": "Link", "required": False}), + 9: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 2), + ("image", 3), + ("alt", 4), + ("width", 5), + ("image_ratio", 6), + ("caption", 7), + ("url", 8), + ] + ], + {"label": "Centered image"}, + ), + 10: ("wagtail.images.blocks.ImageBlock", [], {"label": "Image"}), + 11: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("left", "Left (displayed above text in mobile view)"), + ("left_below", "Left (displayed below text in mobile view)"), + ("right", "Right (displayed below text in mobile view)"), + ("right_above", "Right (displayed above text in mobile view)"), + ], + "label": "Image position", + }, + ), + 12: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("3", "3/12"), ("4", "4/12"), ("5", "5/12"), ("6", "6/12")], + "label": "Image width", + }, + ), + 13: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("page", "Page"), + ("external_url", "External URL"), + ("document", "Document"), + ("anchor", "Anchor link"), + ], + "help_text": "Select the type of link.", + "label": "Link type", + "required": False, + }, + ), + 14: ( + "wagtail.blocks.PageChooserBlock", + (), + { + "help_text": "Link to a page of this site. Use either this, the document, or the external URL parameter.", + "label": "Page", + "required": False, + }, + ), + 15: ( + "wagtail.documents.blocks.DocumentChooserBlock", + (), + { + "help_text": "Use either this, the external URL or the page parameter.", + "label": "Document", + "required": False, + }, + ), + 16: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Use either this, the document or the page parameter.", + "label": "External URL", + "required": False, + }, + ), + 17: ( + "wagtail.blocks.CharBlock", + (), + { + "default": "", + "help_text": "Link to an anchor block on the page. Allowed characters: A-Z, a-z, 0-9, - and _.", + "label": "Anchor ID", + "required": False, + "validators": [ + django.core.validators.RegexValidator( + re.compile("^[-a-zA-Z0-9_]+\\Z"), + "Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.", + "invalid", + ) + ], + }, + ), + 18: ( + "wagtail.blocks.CharBlock", + (), + { + "default": "", + "help_text": "Extra query parameters at the end of the link, e.g. filtering options.", + "label": "Extra query parameters", + "required": False, + "validators": [content_manager.validators.validate_query_string], + }, + ), + 19: ("wagtail.blocks.CharBlock", (), {"label": "Link label", "required": False}), + 20: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", "No icon"), + ("fr-icon-arrow-right-line fr-link--icon-right", "Icon on the right side"), + ("fr-icon-arrow-right-line fr-link--icon-left", "Icon on the left side"), + ], + "help_text": "Only used for internal links.", + "label": "Icon", + "required": False, + }, + ), + 21: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-link--sm", "Small"), ("", "Medium"), ("fr-link--lg", "Large")], + "label": "Size", + "required": False, + }, + ), + 22: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ("icon", 20), + ("size", 21), + ] + ], + { + "help_text": "The link is shown at the bottom of the text block, with an arrow", + "label": "Link", + "required": False, + }, + ), + 23: ( + "wagtail.blocks.StructBlock", + [[("image", 10), ("image_side", 11), ("image_ratio", 12), ("text", 0), ("link", 22)]], + {"label": "Image and text"}, + ), + 24: ("wagtail.blocks.CharBlock", (), {"label": "Row heading", "required": False}), + 25: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "text-left", + "text-center", + "text-right", + ], + "label": "Text", + "required": False, + }, + ), + 26: ("wagtail.images.blocks.ImageBlock", [], {"label": "Pictogram"}), + 27: ( + "wagtail.contrib.typed_table_block.blocks.TypedTableBlock", + [[("row_heading", 24), ("text", 25), ("pictogram", 26)]], + {"label": "Table"}, + ), + 28: ("wagtail.blocks.CharBlock", (), {"label": "Message title", "required": False}), + 29: ("wagtail.blocks.TextBlock", (), {"label": "Message text", "required": False}), + 30: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("error", "Error"), + ("success", "Success"), + ("info", "Information"), + ("warning", "Warning"), + ], + "label": "Message type", + }, + ), + 31: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 3.", + "label": "Heading level", + }, + ), + 32: ( + "wagtail.blocks.StructBlock", + [[("title", 28), ("description", 29), ("level", 30), ("heading_tag", 31)]], + {"label": "Alert message"}, + ), + 33: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text", "required": False}), + 34: ("wagtail.blocks.CharBlock", (), {"label": "Button label", "required": False}), + 35: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-btn", "Primary"), + ("fr-btn fr-btn--secondary", "Secundary"), + ("fr-btn fr-btn--tertiary", "Tertiary"), + ("fr-btn fr-btn--tertiary-no-outline", "Tertiary without border"), + ], + "label": "Button type", + "required": False, + }, + ), + 36: ( + "content_manager.blocks.buttons_links.IconPickerBlock", + (), + {"label": "Icon", "required": False}, + ), + 37: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")], + "label": "Icon side", + "required": False, + }, + ), + 38: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + {"label": "Button"}, + ), + 39: ( + "wagtail.blocks.StreamBlock", + [[("button", 38)]], + { + "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", + "label": "Buttons", + }, + ), + 40: ( + "wagtail.blocks.StreamBlock", + [[("buttons", 39)]], + {"label": "Call-to-action buttons", "max_num": 1, "required": False}, + ), + 41: ( + "wagtail.blocks.StructBlock", + [[("text", 33), ("cta_buttons", 40)]], + {"label": "Text and call to action"}, + ), + 42: ("wagtail.blocks.CharBlock", (), {"label": "Video title", "required": False}), + 43: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Use embed format, with a version that doesn't require a consent banner if available. (e.g. : https://www.youtube-nocookie.com/embed/gLzXOViPX-0) For Youtube, use Embed video and check Enable privacy-enhanced mode.", + "label": "Video URL", + }, + ), + 44: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-ratio-16x9", "16x9"), ("fr-ratio-4x3", "4x3"), ("fr-ratio-1x1", "1x1")], + "label": "Video ratio", + "required": False, + }, + ), + 45: ( + "wagtail.blocks.CharBlock", + (), + {"default": "Transcription", "label": "Title", "required": False}, + ), + 46: ("wagtail.blocks.RichTextBlock", (), {"label": "Transcription content", "required": False}), + 47: ( + "wagtail.blocks.StructBlock", + [[("title", 45), ("content", 46)]], + {"label": "Transcription", "required": False}, + ), + 48: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 42), + ("caption", 7), + ("url", 43), + ("width", 5), + ("video_ratio", 44), + ("transcription", 47), + ] + ], + {"label": "Video"}, + ), + 49: ("wagtail.blocks.StructBlock", [[("title", 45), ("content", 46)]], {"label": "Transcription"}), + 50: ("wagtail.blocks.CharBlock", (), {"label": "Badge label", "required": False}), + 51: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", [("new", "New"), ("grey", "Grey")]), + ( + "System colors", + [ + ("info", "Info"), + ("success", "Success"), + ("warning", "Warning"), + ("error", "Error"), + ], + ), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "label": "Badge color", + "required": False, + }, + ), + 52: ("wagtail.blocks.BooleanBlock", (), {"label": "Hide badge icon", "required": False}), + 53: ( + "wagtail.blocks.StructBlock", + [[("text", 50), ("color", 51), ("hide_icon", 52)]], + {"label": "Badge"}, + ), + 54: ("wagtail.blocks.StreamBlock", [[("badge", 53)]], {"label": "Badge list"}), + 55: ("wagtail.blocks.CharBlock", (), {"label": "Title"}), + 56: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tag", "required": False}), + 57: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + "help_text": "Only for clickable tags", + "label": "Tag color", + "required": False, + }, + ), + 58: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ] + ], + {"required": False}, + ), + 59: ( + "wagtail.blocks.StructBlock", + [[("label", 55), ("is_small", 56), ("color", 57), ("icon_class", 36), ("link", 58)]], + {"label": "Tag"}, + ), + 60: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {"label": "Tag list"}), + 61: ( + "wagtail.blocks.StreamBlock", + [[("button", 38)]], + { + "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", + "label": "Buttons", + }, + ), + 62: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", "Left"), + ("fr-btns-group--center", "Center"), + ("fr-btns-group--right", "Right"), + ( + "fr-btns-group--right fr-btns-group--inline-reverse", + "Right (reverse order on desktop)", + ), + ], + "label": "Position", + "required": False, + }, + ), + 63: ( + "wagtail.blocks.StructBlock", + [[("buttons", 61), ("position", 62)]], + {"label": "Button list"}, + ), + 64: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ("icon", 20), + ("size", 21), + ] + ], + {"label": "Single link"}, + ), + 65: ("wagtail.blocks.RichTextBlock", (), {"label": "Content"}), + 66: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("content", 65)]], + {"label": "Accordion", "max_num": 15, "min_num": 1}, + ), + 67: ( + "wagtail.blocks.StreamBlock", + [[("title", 55), ("accordion", 66)]], + {"group": "2. DSFR components", "label": "Accordions"}, + ), + 68: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "text-left", + "text-center", + "text-right", + ], + "label": "Content", + "required": False, + }, + ), + 69: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + {"label": "Button", "required": False}, + ), + 70: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + "label": "Color", + "required": False, + }, + ), + 71: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 31), + ("icon_class", 36), + ("text", 68), + ("button", 69), + ("color", 70), + ] + ], + {"group": "2. DSFR components", "label": "Callout"}, + ), + 72: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "text-left", + "text-center", + "text-right", + ], + "label": "Content", + }, + ), + 73: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-text--sm", "Small"), ("", "Medium"), ("fr-text--lg", "Large")], + "label": "Size", + "required": False, + }, + ), + 74: ( + "wagtail.blocks.StructBlock", + [[("text", 72), ("color", 70), ("size", 73)]], + {"group": "2. DSFR components", "label": "Highlight"}, + ), + 75: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image", "required": False}), + 76: ("wagtail.blocks.CharBlock", (), {"label": "Quote"}), + 77: ("wagtail.blocks.CharBlock", (), {"label": "Author name", "required": False}), + 78: ("wagtail.blocks.CharBlock", (), {"label": "Author title", "required": False}), + 79: ( + "wagtail.blocks.StructBlock", + [[("image", 75), ("quote", 76), ("author_name", 77), ("author_title", 78), ("color", 70)]], + {"group": "2. DSFR components", "label": "Quote"}, + ), + 80: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + }, + ), + 81: ( + "wagtail.blocks.IntegerBlock", + (), + {"label": "Number of steps", "max_value": 8, "min_value": 1}, + ), + 82: ("wagtail.blocks.IntegerBlock", (), {"label": "Current step", "max_value": 8, "min_value": 1}), + 83: ("wagtail.blocks.TextBlock", (), {"label": "Detail", "required": False}), + 84: ("wagtail.blocks.StructBlock", [[("title", 55), ("detail", 83)]], {"label": "Step"}), + 85: ("wagtail.blocks.StreamBlock", [[("step", 84)]], {"label": "Steps"}), + 86: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("heading_tag", 80), ("total", 81), ("current", 82), ("steps", 85)]], + {"group": "2. DSFR components", "label": "Stepper"}, + ), + 87: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-card--horizontal-tier", "1/3"), ("fr-card--horizontal-half", "50/50")], + "label": "Image ratio", + "required": False, + }, + ), + 88: ( + "wagtail.blocks.StreamBlock", + [[("badge", 53)]], + { + "help_text": "Only used if the card has an image.", + "label": "Image area badge", + "max_num": 1, + "required": False, + }, + ), + 89: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ] + ], + { + "collapsed": False, + "help_text": "Link for the whole card. If a call-to-action is present, the link will display on the title only.", + "label": "Link", + "required": False, + }, + ), + 90: ("wagtail.blocks.CharBlock", (), {"label": "Top detail: text", "required": False}), + 91: ( + "content_manager.blocks.buttons_links.IconPickerBlock", + (), + {"label": "Top detail: icon", "required": False}, + ), + 92: ("wagtail.blocks.StreamBlock", [[("badge", 53)]], {}), + 93: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {}), + 94: ( + "wagtail.blocks.StreamBlock", + [[("badges", 92), ("tags", 93)]], + {"label": "Top detail: badges or tags", "max_num": 1, "required": False}, + ), + 95: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Incompatible with the bottom call-to-action. If the card links to a downloadable document, the values are pre-filled.", + "label": "Bottom detail: text", + "required": False, + }, + ), + 96: ( + "content_manager.blocks.buttons_links.IconPickerBlock", + (), + {"label": "Bottom detail: icon", "required": False}, + ), + 97: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ] + ], + {"label": "Link"}, + ), + 98: ("wagtail.blocks.StreamBlock", [[("link", 97)]], {"label": "Links"}), + 99: ( + "wagtail.blocks.StreamBlock", + [[("links", 98), ("buttons", 39)]], + { + "help_text": "Incompatible with the bottom detail text. Allow you to add link or button.", + "label": "Bottom call-to-action: links or buttons", + "max_num": 1, + "required": False, + }, + ), + 100: ( + "wagtail.blocks.BooleanBlock", + (), + {"label": "Card with grey background", "required": False}, + ), + 101: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without background", "required": False}), + 102: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without border", "required": False}), + 103: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with a shadow", "required": False}), + 104: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 87), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 95), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {"group": "2. DSFR components", "label": "Horizontal card"}, + ), + 105: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": ["bold", "italic", "superscript", "subscript", "strikethrough"], + "label": "Content", + "required": False, + }, + ), + 106: ( + "wagtail.images.blocks.ImageChooserBlock", + (), + {"help_text": "Prefer SVG files.", "label": "Image", "required": False}, + ), + 107: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ] + ], + {"label": "Link", "required": False}, + ), + 108: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "If the tile links to a downloadable document, the values are pre-filled.", + "label": "Detail text", + "required": False, + }, + ), + 109: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tile", "required": False}), + 110: ( + "wagtail.blocks.BooleanBlock", + (), + {"label": "Tile with grey background", "required": False}, + ), + 111: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without background", "required": False}), + 112: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without border", "required": False}), + 113: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with a shadow", "required": False}), + 114: ("wagtail.blocks.BooleanBlock", (), {"label": "Horizontal tile", "required": False}), + 115: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 105), + ("image", 106), + ("link", 107), + ("top_detail_badges_tags", 94), + ("detail_text", 108), + ("is_small", 109), + ("grey_background", 110), + ("no_background", 111), + ("no_border", 112), + ("shadow", 113), + ("is_horizontal", 114), + ] + ], + {"group": "2. DSFR components", "label": "Tile"}, + ), + 116: ( + "wagtail.blocks.StreamBlock", + [[("title", 55), ("accordion", 66)]], + {"group": "DSFR components", "label": "Accordions"}, + ), + 117: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 31), + ("icon_class", 36), + ("text", 68), + ("button", 69), + ("color", 70), + ] + ], + {"group": "DSFR components", "label": "Callout"}, + ), + 118: ( + "wagtail.blocks.StructBlock", + [[("text", 72), ("color", 70), ("size", 73)]], + {"group": "DSFR components", "label": "Highlight"}, + ), + 119: ( + "wagtail.blocks.StructBlock", + [[("image", 75), ("quote", 76), ("author_name", 77), ("author_title", 78), ("color", 70)]], + {"group": "DSFR components", "label": "Quote"}, + ), + 120: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 105), + ("image", 106), + ("link", 107), + ("top_detail_badges_tags", 94), + ("detail_text", 108), + ("is_small", 109), + ("grey_background", 110), + ("no_background", 111), + ("no_border", 112), + ("shadow", 113), + ("is_horizontal", 114), + ] + ], + {"group": "DSFR components", "label": "Tile"}, + ), + 121: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + "required": False, + }, + ), + 122: ( + "wagtail.blocks.PageChooserBlock", + (), + {"label": "Blog", "page_type": ["blog.BlogIndexPage"]}, + ), + 123: ( + "wagtail.blocks.IntegerBlock", + (), + { + "default": 3, + "label": "Number of entries", + "max_value": 8, + "min_value": 1, + "required": False, + }, + ), + 124: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Category",), + {"label": "Filter by category", "required": False}, + ), + 125: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("content_manager.Tag",), + {"label": "Filter by tag", "required": False}, + ), + 126: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Person",), + {"label": "Filter by author", "required": False}, + ), + 127: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Organization",), + { + "help_text": "The source is the organization of the post author", + "label": "Filter by source", + "required": False, + }, + ), + 128: ( + "wagtail.blocks.BooleanBlock", + (), + {"default": False, "label": "Show filters", "required": False}, + ), + 129: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("blog", 122), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "Website structure", "label": "Blog recent entries"}, + ), + 130: ( + "wagtail.blocks.PageChooserBlock", + (), + {"label": "Event calendar", "page_type": ["events.EventsIndexPage"]}, + ), + 131: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("index_page", 130), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "Website structure", "label": "Event calendar recent entries"}, + ), + 132: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("heading_tag", 80), ("total", 81), ("current", 82), ("steps", 85)]], + {"group": "DSFR components", "label": "Stepper"}, + ), + 133: ("wagtailmarkdown.blocks.MarkdownBlock", (), {"group": "Expert syntax", "label": "Markdown"}), + 134: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Accessibility: The title should describe, in a clear and concise manner, the embedded content.", + "label": "Title", + }, + ), + 135: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Example for Tally: https://tally.so/embed/w2jMRa", + "label": "URL of the iframe", + }, + ), + 136: ("wagtail.blocks.IntegerBlock", (), {"label": "Height (in pixels)"}), + 137: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "For example: \"allow='geolocation'\".", + "label": "Parameters", + "required": False, + }, + ), + 138: ( + "wagtail.blocks.StructBlock", + [[("title", 134), ("url", 135), ("height", 136), ("parameters", 137)]], + {"group": "Expert syntax", "label": "Iframe"}, + ), + 139: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "group": "Expert syntax", + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "readonly": True, + }, + ), + 140: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Allows the creation of a link to this specific part of the page. Allowed characters: A-Z, a-z, 0-9, - and _.", + "label": "Anchor ID", + "validators": [ + django.core.validators.RegexValidator( + re.compile("^[-a-zA-Z0-9_]+\\Z"), + "Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.", + "invalid", + ) + ], + }, + ), + 141: ( + "wagtail.blocks.StructBlock", + [[("anchor_id", 140)]], + {"group": "Page structure", "label": "Anchor"}, + ), + 142: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 3, "label": "Top margin", "max_value": 15, "min_value": 0}, + ), + 143: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 3, "label": "Bottom margin", "max_value": 15, "min_value": 0}, + ), + 144: ( + "wagtail.blocks.StructBlock", + [[("top_margin", 142), ("bottom_margin", 143)]], + {"group": "Page structure", "label": "Separator"}, + ), + 145: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Incompatible with the bottom call-to-action.", + "label": "Bottom detail: text", + "required": False, + }, + ), + 146: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 6), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 145), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {"group": "DSFR components", "label": "Vertical card"}, + ), + 147: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Person",), + { + "help_text": "Optional, all values can be manually specified or overriden below", + "label": "Person", + "required": False, + }, + ), + 148: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255, "required": False}), + 149: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255, "required": False}), + 150: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Organization", "max_length": 255, "required": False}, + ), + 151: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Contact info", "max_length": 500, "required": False}, + ), + 152: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {"label": "Tags", "required": False}), + 153: ( + "wagtail.blocks.StructBlock", + [ + [ + ("contact", 147), + ("link", 107), + ("heading_tag", 2), + ("name", 148), + ("role", 149), + ("organization", 150), + ("contact_info", 151), + ("image", 75), + ("tags", 152), + ] + ], + {"group": "Extra components", "label": "Contact card"}, + ), + 154: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("contact_card", 153), + ] + ], + {"label": "Content"}, + ), + 155: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("content", 154)]], + {"label": "Tab", "max_num": 15, "min_num": 1}, + ), + 156: ( + "wagtail.blocks.StreamBlock", + [[("tabs", 155)]], + {"group": "2. DSFR components", "label": "Tabs"}, + ), + 157: ( + "wagtailmarkdown.blocks.MarkdownBlock", + (), + {"group": "5. Expert syntax", "label": "Markdown"}, + ), + 158: ( + "wagtail.blocks.StructBlock", + [[("title", 134), ("url", 135), ("height", 136), ("parameters", 137)]], + {"group": "5. Expert syntax", "label": "Iframe"}, + ), + 159: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "group": "5. Expert syntax", + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "readonly": True, + }, + ), + 160: ( + "wagtail.blocks.StructBlock", + [[("anchor_id", 140)]], + {"group": "3. Page structure", "label": "Anchor"}, + ), + 161: ( + "wagtail.blocks.StructBlock", + [[("top_margin", 142), ("bottom_margin", 143)]], + {"group": "3. Page structure", "label": "Separator"}, + ), + 162: ( + "wagtail.images.blocks.ImageChooserBlock", + (), + {"label": "Background image", "required": False}, + ), + 163: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("Primary colors", [("blue-france", "Blue France"), ("red-marianne", "Red Marianne")]), + ("Neutral colors", [("grey", "Grey")]), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "help_text": "Uses the French Design System colors", + "label": "Background color", + "required": False, + }, + ), + 164: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + "required": False, + }, + ), + 165: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 5, "label": "Top margin", "max_value": 15, "min_value": 0, "required": False}, + ), + 166: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 5, "label": "Bottom margin", "max_value": 15, "min_value": 0, "required": False}, + ), + 167: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("top", "Top"), ("middle", "Middle"), ("bottom", "Bottom")], + "label": "Vertical align", + "required": False, + }, + ), + 168: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("3", "3/12"), + ("4", "4/12"), + ("5", "5/12"), + ("6", "6/12"), + ("7", "7/12"), + ("8", "8/12"), + ("9", "9/12"), + ], + "help_text": "The total width of all columns should be 12.", + "label": "Column width", + "required": False, + }, + ), + 169: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("contact_card", 153), + ] + ], + {"label": "Column content"}, + ), + 170: ( + "wagtail.blocks.StructBlock", + [[("width", 168), ("content", 169)]], + {"group": "Page structure", "label": "Adjustable column"}, + ), + 171: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("column", 170), + ] + ], + {"label": "Columns"}, + ), + 172: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 162), + ("bg_color_class", 163), + ("title", 1), + ("heading_tag", 164), + ("top_margin", 165), + ("bottom_margin", 166), + ("vertical_align", 167), + ("columns", 171), + ] + ], + {"group": "3. Page structure", "label": "Multiple columns"}, + ), + 173: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("3", "3/12"), ("4", "4/12"), ("6", "6/12")], "label": "Column width"}, + ), + 174: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("center", "Center"), ("right", "Right")], + "label": "Horizontal align", + "required": False, + }, + ), + 175: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("contact_card", 153), + ] + ], + {"label": "Items"}, + ), + 176: ( + "wagtail.blocks.StructBlock", + [[("column_width", 173), ("horizontal_align", 174), ("vertical_align", 167), ("items", 175)]], + {"group": "3. Page structure", "label": "Item grid"}, + ), + 177: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 87), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 95), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {"group": "DSFR components", "label": "Horizontal card"}, + ), + 178: ( + "wagtail.blocks.StreamBlock", + [[("tabs", 155)]], + {"group": "DSFR components", "label": "Tabs"}, + ), + 179: ( + "wagtail.blocks.StructBlock", + [[("column_width", 173), ("horizontal_align", 174), ("vertical_align", 167), ("items", 175)]], + {"group": "Page structure", "label": "Item grid"}, + ), + 180: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("image_and_text", 23), + ("card", 177), + ("tabs", 178), + ("item_grid", 179), + ] + ], + {"label": "Content"}, + ), + 181: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 162), + ("bg_color_class", 163), + ("top_margin", 165), + ("bottom_margin", 166), + ("content", 180), + ] + ], + {"group": "3. Page structure", "label": "Full width background"}, + ), + 182: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("image_and_text", 23), + ("card", 177), + ("tabs", 178), + ("item_grid", 179), + ] + ], + {"label": "Main content"}, + ), + 183: ("wagtail.blocks.CharBlock", (), {"label": "Side menu title", "required": False}), + 184: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "label": "HTML", + }, + ), + 185: ("wagtail.blocks.PageChooserBlock", (), {"label": "Parent page"}), + 186: ("wagtail.blocks.StructBlock", [[("page", 185)]], {"label": "Page tree"}), + 187: ( + "wagtail.blocks.StreamBlock", + [[("html", 184), ("pagetree", 186)]], + {"label": "Side menu content"}, + ), + 188: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 162), + ("bg_color_class", 163), + ("top_margin", 165), + ("bottom_margin", 166), + ("main_content", 182), + ("sidemenu_title", 183), + ("sidemenu_content", 187), + ] + ], + {"group": "3. Page structure", "label": "Full width background with side menu"}, + ), + 189: ( + "wagtail.blocks.static_block.StaticBlock", + (), + { + "admin_text": "A simple, alphabetical list of the subpages of the current page.", + "group": "4. Website structure", + "label": "Subpages list", + "template": "content_manager/blocks/subpages_list.html", + }, + ), + 190: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("blog", 122), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "4. Website structure", "label": "Blog recent entries"}, + ), + 191: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("index_page", 130), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "4. Website structure", "label": "Event calendar recent entries"}, + ), + 192: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "

En savoir plus


Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "features": ["bold", "italic", "link", "document-link", "strikethrough", "h2", "h3", "h4"], + "label": "Rich text", + }, + ), + 193: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("6", "small"), ("8", "medium"), ("12", "large")], "label": "Block width"}, + ), + 194: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("", "Center"), ("right", "Right")], + "label": "Block alignment", + "required": False, + }, + ), + 195: ( + "wagtail.blocks.StructBlock", + [[("text", 192), ("width", 193), ("alignment", 194)]], + {"group": "1. Section templates to be adapted", "label": "Rich text with layout"}, + ), + 196: ( + "wagtail.blocks.CharBlock", + (), + {"default": "Titre de la section", "label": "Section title"}, + ), + 197: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("Primary colors", [("blue-france", "Blue France"), ("red-marianne", "Red Marianne")]), + ("Neutral colors", [("grey", "Grey")]), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "help_text": "Uses the French Design System colors.
If you want to design a classic website, choose the colour ‘white’ or ‘French blue’.", + "label": "Background color", + "required": False, + }, + ), + 198: ( + "wagtail.blocks.StructBlock", + [[("background_color", 197), ("top_margin", 165), ("bottom_margin", 166)]], + {"collapsed": True, "label": "Layout"}, + ), + 199: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("center", "Center"), ("right", "Right")], + "label": "Items alignement", + }, + ), + 200: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("6", "2"), ("4", "3"), ("3", "4")], "label": "Items per row"}, + ), + 201: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("80", "Small (80px)"), ("140", "Medium (140px)"), ("200", "Large (200px)")], + "help_text": "Images are always displayed in a square (1:1) ratio. Three sizes are available: if the original image is smaller than the selected size, it will be displayed at its maximum available size.", + "label": "Image size of items", + }, + ), + 202: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": True}), + 203: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "Add a short description to help your visitors better understand what you offer.", + "features": ["bold", "italic", "link", "document-link"], + "label": "Text", + }, + ), + 204: ("wagtail.blocks.StructBlock", [[("image", 10), ("title", 202), ("text", 203)]], {}), + 205: ( + "content_manager.blocks.sections.ImageAndTextListBlock", + (204,), + {"collapsed": True, "label": "Items"}, + ), + 206: ( + "wagtail.blocks.StructBlock", + [ + [ + ("section_title", 196), + ("layout", 198), + ("items_alignement", 199), + ("items_per_row", 200), + ("images_size", 201), + ("items", 205), + ] + ], + {"group": "1. Section templates to be adapted", "label": "Items grid (image and text)"}, + ), + 207: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "

Titre de la section


Lorem ipsum dolor sit amet, consectetur adipiscing elit, ", + "features": ["bold", "italic", "link", "document-link", "strikethrough", "h2", "h3", "h4"], + "label": "Text block", + }, + ), + 208: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("right", "Right")], + "help_text": "This field allows you to define the placement of text relative to adjacent content.", + "label": "Text content position", + }, + ), + 209: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + { + "default": { + "button_type": "fr-btn fr-btn--secondary", + "external_url": "https://tube.numerique.gouv.fr/", + "icon_side": "--", + "link_type": "external_url", + "text": "Appel à l'action", + }, + "label": "Button", + }, + ), + 210: ( + "wagtail.blocks.StructBlock", + [[("text", 207), ("position", 208), ("button", 209), ("image", 10), ("layout", 198)]], + {"group": "1. Section templates to be adapted", "label": "Image, text and cta"}, + ), + 211: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididun", + "features": ["bold", "italic", "link", "document-link"], + "label": "Text", + }, + ), + 212: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + { + "default": { + "button_type": "fr-btn", + "external_url": "https://tube.numerique.gouv.fr/", + "icon_side": "--", + "link_type": "external_url", + "text": "Appel à l'action", + }, + "label": "Button", + }, + ), + 213: ( + "wagtail.blocks.StructBlock", + [[("section_title", 196), ("layout", 198), ("text", 211), ("button", 212)]], + {"group": "1. Section templates to be adapted", "label": "Text and button"}, + ), + 214: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ] + ], + { + "collapsed": True, + "help_text": "This link appears at the bottom left of the section if completed", + "label": "Section link", + "required": False, + }, + ), + 215: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 6), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 145), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {}, + ), + 216: ("wagtail.blocks.StreamBlock", [[("card", 215)]], {"label": "Items"}), + 217: ( + "wagtail.blocks.StructBlock", + [ + [ + ("section_title", 196), + ("layout", 198), + ("items_per_row", 200), + ("link", 214), + ("items", 216), + ] + ], + {"group": "1. Section templates to be adapted", "label": "In the spotlight"}, + ), + 218: ( + "wagtail.blocks.StreamBlock", + [[("title", 55), ("accordion", 66)]], + { + "default": [ + ("title", "Accordéon"), + ( + "accordion", + { + "content": "

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

", + "title": "Titre de l'accordéon 1", + }, + ), + ( + "accordion", + { + "content": "

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

", + "title": "Titre de l'accordéon 2", + }, + ), + ], + "label": "Accordion", + }, + ), + 219: ( + "wagtail.blocks.StructBlock", + [[("accordion", 218), ("layout", 198)]], + {"group": "1. Section templates to be adapted", "label": "Accordions with layout"}, + ), + }, + ), + ), + migrations.AlterField( + model_name="contentpage", + name="body", + field=wagtail.fields.StreamField( + [ + ("paragraph", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("link", 64), + ("accordions", 67), + ("callout", 71), + ("highlight", 74), + ("quote", 79), + ("stepper", 86), + ("card", 104), + ("tile", 115), + ("tabs", 156), + ("markdown", 157), + ("iframe", 158), + ("html", 159), + ("anchor", 160), + ("separator", 161), + ("multicolumns", 172), + ("item_grid", 176), + ("fullwidthbackground", 181), + ("fullwidthbackgroundwithsidemenu", 188), + ("subpageslist", 189), + ("blog_recent_entries", 190), + ("events_recent_entries", 191), + ("layout_richtext", 195), + ("image_text_grid_section", 206), + ("image_text_cta_section", 210), + ("cta_section", 213), + ("spotlight_section", 217), + ("accordion_section", 219), + ], + blank=True, + block_lookup={ + 0: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text"}), + 1: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": False}), + 2: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 3.", + "label": "Heading level", + "required": False, + }, + ), + 3: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image"}), + 4: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Alternative text (textual description of the image)", "required": False}, + ), + 5: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-content-media--sm", "Small"), + ("", "Medium"), + ("fr-content-media--lg", "Large"), + ], + "label": "Witdh", + "required": False, + }, + ), + 6: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-ratio-32x9", "32x9"), + ("fr-ratio-16x9", "16x9"), + ("fr-ratio-3x2", "3x2"), + ("fr-ratio-4x3", "4x3"), + ("fr-ratio-1x1", "1x1"), + ("fr-ratio-3x4", "3x4"), + ("fr-ratio-2x3", "2x3"), + ], + "label": "Image ratio", + "required": False, + }, + ), + 7: ("wagtail.blocks.CharBlock", (), {"label": "Caption", "required": False}), + 8: ("wagtail.blocks.URLBlock", (), {"label": "Link", "required": False}), + 9: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 2), + ("image", 3), + ("alt", 4), + ("width", 5), + ("image_ratio", 6), + ("caption", 7), + ("url", 8), + ] + ], + {"label": "Centered image"}, + ), + 10: ("wagtail.images.blocks.ImageBlock", [], {"label": "Image"}), + 11: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("left", "Left (displayed above text in mobile view)"), + ("left_below", "Left (displayed below text in mobile view)"), + ("right", "Right (displayed below text in mobile view)"), + ("right_above", "Right (displayed above text in mobile view)"), + ], + "label": "Image position", + }, + ), + 12: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("3", "3/12"), ("4", "4/12"), ("5", "5/12"), ("6", "6/12")], + "label": "Image width", + }, + ), + 13: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("page", "Page"), + ("external_url", "External URL"), + ("document", "Document"), + ("anchor", "Anchor link"), + ], + "help_text": "Select the type of link.", + "label": "Link type", + "required": False, + }, + ), + 14: ( + "wagtail.blocks.PageChooserBlock", + (), + { + "help_text": "Link to a page of this site. Use either this, the document, or the external URL parameter.", + "label": "Page", + "required": False, + }, + ), + 15: ( + "wagtail.documents.blocks.DocumentChooserBlock", + (), + { + "help_text": "Use either this, the external URL or the page parameter.", + "label": "Document", + "required": False, + }, + ), + 16: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Use either this, the document or the page parameter.", + "label": "External URL", + "required": False, + }, + ), + 17: ( + "wagtail.blocks.CharBlock", + (), + { + "default": "", + "help_text": "Link to an anchor block on the page. Allowed characters: A-Z, a-z, 0-9, - and _.", + "label": "Anchor ID", + "required": False, + "validators": [ + django.core.validators.RegexValidator( + re.compile("^[-a-zA-Z0-9_]+\\Z"), + "Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.", + "invalid", + ) + ], + }, + ), + 18: ( + "wagtail.blocks.CharBlock", + (), + { + "default": "", + "help_text": "Extra query parameters at the end of the link, e.g. filtering options.", + "label": "Extra query parameters", + "required": False, + "validators": [content_manager.validators.validate_query_string], + }, + ), + 19: ("wagtail.blocks.CharBlock", (), {"label": "Link label", "required": False}), + 20: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", "No icon"), + ("fr-icon-arrow-right-line fr-link--icon-right", "Icon on the right side"), + ("fr-icon-arrow-right-line fr-link--icon-left", "Icon on the left side"), + ], + "help_text": "Only used for internal links.", + "label": "Icon", + "required": False, + }, + ), + 21: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-link--sm", "Small"), ("", "Medium"), ("fr-link--lg", "Large")], + "label": "Size", + "required": False, + }, + ), + 22: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ("icon", 20), + ("size", 21), + ] + ], + { + "help_text": "The link is shown at the bottom of the text block, with an arrow", + "label": "Link", + "required": False, + }, + ), + 23: ( + "wagtail.blocks.StructBlock", + [[("image", 10), ("image_side", 11), ("image_ratio", 12), ("text", 0), ("link", 22)]], + {"label": "Image and text"}, + ), + 24: ("wagtail.blocks.CharBlock", (), {"label": "Row heading", "required": False}), + 25: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "text-left", + "text-center", + "text-right", + ], + "label": "Text", + "required": False, + }, + ), + 26: ("wagtail.images.blocks.ImageBlock", [], {"label": "Pictogram"}), + 27: ( + "wagtail.contrib.typed_table_block.blocks.TypedTableBlock", + [[("row_heading", 24), ("text", 25), ("pictogram", 26)]], + {"label": "Table"}, + ), + 28: ("wagtail.blocks.CharBlock", (), {"label": "Message title", "required": False}), + 29: ("wagtail.blocks.TextBlock", (), {"label": "Message text", "required": False}), + 30: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("error", "Error"), + ("success", "Success"), + ("info", "Information"), + ("warning", "Warning"), + ], + "label": "Message type", + }, + ), + 31: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 3.", + "label": "Heading level", + }, + ), + 32: ( + "wagtail.blocks.StructBlock", + [[("title", 28), ("description", 29), ("level", 30), ("heading_tag", 31)]], + {"label": "Alert message"}, + ), + 33: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text", "required": False}), + 34: ("wagtail.blocks.CharBlock", (), {"label": "Button label", "required": False}), + 35: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-btn", "Primary"), + ("fr-btn fr-btn--secondary", "Secundary"), + ("fr-btn fr-btn--tertiary", "Tertiary"), + ("fr-btn fr-btn--tertiary-no-outline", "Tertiary without border"), + ], + "label": "Button type", + "required": False, + }, + ), + 36: ( + "content_manager.blocks.buttons_links.IconPickerBlock", + (), + {"label": "Icon", "required": False}, + ), + 37: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")], + "label": "Icon side", + "required": False, + }, + ), + 38: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + {"label": "Button"}, + ), + 39: ( + "wagtail.blocks.StreamBlock", + [[("button", 38)]], + { + "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", + "label": "Buttons", + }, + ), + 40: ( + "wagtail.blocks.StreamBlock", + [[("buttons", 39)]], + {"label": "Call-to-action buttons", "max_num": 1, "required": False}, + ), + 41: ( + "wagtail.blocks.StructBlock", + [[("text", 33), ("cta_buttons", 40)]], + {"label": "Text and call to action"}, + ), + 42: ("wagtail.blocks.CharBlock", (), {"label": "Video title", "required": False}), + 43: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Use embed format, with a version that doesn't require a consent banner if available. (e.g. : https://www.youtube-nocookie.com/embed/gLzXOViPX-0) For Youtube, use Embed video and check Enable privacy-enhanced mode.", + "label": "Video URL", + }, + ), + 44: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-ratio-16x9", "16x9"), ("fr-ratio-4x3", "4x3"), ("fr-ratio-1x1", "1x1")], + "label": "Video ratio", + "required": False, + }, + ), + 45: ( + "wagtail.blocks.CharBlock", + (), + {"default": "Transcription", "label": "Title", "required": False}, + ), + 46: ("wagtail.blocks.RichTextBlock", (), {"label": "Transcription content", "required": False}), + 47: ( + "wagtail.blocks.StructBlock", + [[("title", 45), ("content", 46)]], + {"label": "Transcription", "required": False}, + ), + 48: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 42), + ("caption", 7), + ("url", 43), + ("width", 5), + ("video_ratio", 44), + ("transcription", 47), + ] + ], + {"label": "Video"}, + ), + 49: ("wagtail.blocks.StructBlock", [[("title", 45), ("content", 46)]], {"label": "Transcription"}), + 50: ("wagtail.blocks.CharBlock", (), {"label": "Badge label", "required": False}), + 51: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", [("new", "New"), ("grey", "Grey")]), + ( + "System colors", + [ + ("info", "Info"), + ("success", "Success"), + ("warning", "Warning"), + ("error", "Error"), + ], + ), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "label": "Badge color", + "required": False, + }, + ), + 52: ("wagtail.blocks.BooleanBlock", (), {"label": "Hide badge icon", "required": False}), + 53: ( + "wagtail.blocks.StructBlock", + [[("text", 50), ("color", 51), ("hide_icon", 52)]], + {"label": "Badge"}, + ), + 54: ("wagtail.blocks.StreamBlock", [[("badge", 53)]], {"label": "Badge list"}), + 55: ("wagtail.blocks.CharBlock", (), {"label": "Title"}), + 56: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tag", "required": False}), + 57: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + "help_text": "Only for clickable tags", + "label": "Tag color", + "required": False, + }, + ), + 58: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ] + ], + {"required": False}, + ), + 59: ( + "wagtail.blocks.StructBlock", + [[("label", 55), ("is_small", 56), ("color", 57), ("icon_class", 36), ("link", 58)]], + {"label": "Tag"}, + ), + 60: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {"label": "Tag list"}), + 61: ( + "wagtail.blocks.StreamBlock", + [[("button", 38)]], + { + "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", + "label": "Buttons", + }, + ), + 62: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", "Left"), + ("fr-btns-group--center", "Center"), + ("fr-btns-group--right", "Right"), + ( + "fr-btns-group--right fr-btns-group--inline-reverse", + "Right (reverse order on desktop)", + ), + ], + "label": "Position", + "required": False, + }, + ), + 63: ( + "wagtail.blocks.StructBlock", + [[("buttons", 61), ("position", 62)]], + {"label": "Button list"}, + ), + 64: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ("icon", 20), + ("size", 21), + ] + ], + {"label": "Single link"}, + ), + 65: ("wagtail.blocks.RichTextBlock", (), {"label": "Content"}), + 66: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("content", 65)]], + {"label": "Accordion", "max_num": 15, "min_num": 1}, + ), + 67: ( + "wagtail.blocks.StreamBlock", + [[("title", 55), ("accordion", 66)]], + {"group": "2. DSFR components", "label": "Accordions"}, + ), + 68: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "text-left", + "text-center", + "text-right", + ], + "label": "Content", + "required": False, + }, + ), + 69: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + {"label": "Button", "required": False}, + ), + 70: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + "label": "Color", + "required": False, + }, + ), + 71: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 31), + ("icon_class", 36), + ("text", 68), + ("button", 69), + ("color", 70), + ] + ], + {"group": "2. DSFR components", "label": "Callout"}, + ), + 72: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "text-left", + "text-center", + "text-right", + ], + "label": "Content", + }, + ), + 73: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-text--sm", "Small"), ("", "Medium"), ("fr-text--lg", "Large")], + "label": "Size", + "required": False, + }, + ), + 74: ( + "wagtail.blocks.StructBlock", + [[("text", 72), ("color", 70), ("size", 73)]], + {"group": "2. DSFR components", "label": "Highlight"}, + ), + 75: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image", "required": False}), + 76: ("wagtail.blocks.CharBlock", (), {"label": "Quote"}), + 77: ("wagtail.blocks.CharBlock", (), {"label": "Author name", "required": False}), + 78: ("wagtail.blocks.CharBlock", (), {"label": "Author title", "required": False}), + 79: ( + "wagtail.blocks.StructBlock", + [[("image", 75), ("quote", 76), ("author_name", 77), ("author_title", 78), ("color", 70)]], + {"group": "2. DSFR components", "label": "Quote"}, + ), + 80: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + }, + ), + 81: ( + "wagtail.blocks.IntegerBlock", + (), + {"label": "Number of steps", "max_value": 8, "min_value": 1}, + ), + 82: ("wagtail.blocks.IntegerBlock", (), {"label": "Current step", "max_value": 8, "min_value": 1}), + 83: ("wagtail.blocks.TextBlock", (), {"label": "Detail", "required": False}), + 84: ("wagtail.blocks.StructBlock", [[("title", 55), ("detail", 83)]], {"label": "Step"}), + 85: ("wagtail.blocks.StreamBlock", [[("step", 84)]], {"label": "Steps"}), + 86: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("heading_tag", 80), ("total", 81), ("current", 82), ("steps", 85)]], + {"group": "2. DSFR components", "label": "Stepper"}, + ), + 87: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-card--horizontal-tier", "1/3"), ("fr-card--horizontal-half", "50/50")], + "label": "Image ratio", + "required": False, + }, + ), + 88: ( + "wagtail.blocks.StreamBlock", + [[("badge", 53)]], + { + "help_text": "Only used if the card has an image.", + "label": "Image area badge", + "max_num": 1, + "required": False, + }, + ), + 89: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ] + ], + { + "collapsed": False, + "help_text": "Link for the whole card. If a call-to-action is present, the link will display on the title only.", + "label": "Link", + "required": False, + }, + ), + 90: ("wagtail.blocks.CharBlock", (), {"label": "Top detail: text", "required": False}), + 91: ( + "content_manager.blocks.buttons_links.IconPickerBlock", + (), + {"label": "Top detail: icon", "required": False}, + ), + 92: ("wagtail.blocks.StreamBlock", [[("badge", 53)]], {}), + 93: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {}), + 94: ( + "wagtail.blocks.StreamBlock", + [[("badges", 92), ("tags", 93)]], + {"label": "Top detail: badges or tags", "max_num": 1, "required": False}, + ), + 95: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Incompatible with the bottom call-to-action. If the card links to a downloadable document, the values are pre-filled.", + "label": "Bottom detail: text", + "required": False, + }, + ), + 96: ( + "content_manager.blocks.buttons_links.IconPickerBlock", + (), + {"label": "Bottom detail: icon", "required": False}, + ), + 97: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ] + ], + {"label": "Link"}, + ), + 98: ("wagtail.blocks.StreamBlock", [[("link", 97)]], {"label": "Links"}), + 99: ( + "wagtail.blocks.StreamBlock", + [[("links", 98), ("buttons", 39)]], + { + "help_text": "Incompatible with the bottom detail text. Allow you to add link or button.", + "label": "Bottom call-to-action: links or buttons", + "max_num": 1, + "required": False, + }, + ), + 100: ( + "wagtail.blocks.BooleanBlock", + (), + {"label": "Card with grey background", "required": False}, + ), + 101: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without background", "required": False}), + 102: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without border", "required": False}), + 103: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with a shadow", "required": False}), + 104: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 87), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 95), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {"group": "2. DSFR components", "label": "Horizontal card"}, + ), + 105: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": ["bold", "italic", "superscript", "subscript", "strikethrough"], + "label": "Content", + "required": False, + }, + ), + 106: ( + "wagtail.images.blocks.ImageChooserBlock", + (), + {"help_text": "Prefer SVG files.", "label": "Image", "required": False}, + ), + 107: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ] + ], + {"label": "Link", "required": False}, + ), + 108: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "If the tile links to a downloadable document, the values are pre-filled.", + "label": "Detail text", + "required": False, + }, + ), + 109: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tile", "required": False}), + 110: ( + "wagtail.blocks.BooleanBlock", + (), + {"label": "Tile with grey background", "required": False}, + ), + 111: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without background", "required": False}), + 112: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without border", "required": False}), + 113: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with a shadow", "required": False}), + 114: ("wagtail.blocks.BooleanBlock", (), {"label": "Horizontal tile", "required": False}), + 115: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 105), + ("image", 106), + ("link", 107), + ("top_detail_badges_tags", 94), + ("detail_text", 108), + ("is_small", 109), + ("grey_background", 110), + ("no_background", 111), + ("no_border", 112), + ("shadow", 113), + ("is_horizontal", 114), + ] + ], + {"group": "2. DSFR components", "label": "Tile"}, + ), + 116: ( + "wagtail.blocks.StreamBlock", + [[("title", 55), ("accordion", 66)]], + {"group": "DSFR components", "label": "Accordions"}, + ), + 117: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 31), + ("icon_class", 36), + ("text", 68), + ("button", 69), + ("color", 70), + ] + ], + {"group": "DSFR components", "label": "Callout"}, + ), + 118: ( + "wagtail.blocks.StructBlock", + [[("text", 72), ("color", 70), ("size", 73)]], + {"group": "DSFR components", "label": "Highlight"}, + ), + 119: ( + "wagtail.blocks.StructBlock", + [[("image", 75), ("quote", 76), ("author_name", 77), ("author_title", 78), ("color", 70)]], + {"group": "DSFR components", "label": "Quote"}, + ), + 120: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 105), + ("image", 106), + ("link", 107), + ("top_detail_badges_tags", 94), + ("detail_text", 108), + ("is_small", 109), + ("grey_background", 110), + ("no_background", 111), + ("no_border", 112), + ("shadow", 113), + ("is_horizontal", 114), + ] + ], + {"group": "DSFR components", "label": "Tile"}, + ), + 121: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + "required": False, + }, + ), + 122: ( + "wagtail.blocks.PageChooserBlock", + (), + {"label": "Blog", "page_type": ["blog.BlogIndexPage"]}, + ), + 123: ( + "wagtail.blocks.IntegerBlock", + (), + { + "default": 3, + "label": "Number of entries", + "max_value": 8, + "min_value": 1, + "required": False, + }, + ), + 124: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Category",), + {"label": "Filter by category", "required": False}, + ), + 125: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("content_manager.Tag",), + {"label": "Filter by tag", "required": False}, + ), + 126: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Person",), + {"label": "Filter by author", "required": False}, + ), + 127: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Organization",), + { + "help_text": "The source is the organization of the post author", + "label": "Filter by source", + "required": False, + }, + ), + 128: ( + "wagtail.blocks.BooleanBlock", + (), + {"default": False, "label": "Show filters", "required": False}, + ), + 129: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("blog", 122), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "Website structure", "label": "Blog recent entries"}, + ), + 130: ( + "wagtail.blocks.PageChooserBlock", + (), + {"label": "Event calendar", "page_type": ["events.EventsIndexPage"]}, + ), + 131: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("index_page", 130), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "Website structure", "label": "Event calendar recent entries"}, + ), + 132: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("heading_tag", 80), ("total", 81), ("current", 82), ("steps", 85)]], + {"group": "DSFR components", "label": "Stepper"}, + ), + 133: ("wagtailmarkdown.blocks.MarkdownBlock", (), {"group": "Expert syntax", "label": "Markdown"}), + 134: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Accessibility: The title should describe, in a clear and concise manner, the embedded content.", + "label": "Title", + }, + ), + 135: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Example for Tally: https://tally.so/embed/w2jMRa", + "label": "URL of the iframe", + }, + ), + 136: ("wagtail.blocks.IntegerBlock", (), {"label": "Height (in pixels)"}), + 137: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "For example: \"allow='geolocation'\".", + "label": "Parameters", + "required": False, + }, + ), + 138: ( + "wagtail.blocks.StructBlock", + [[("title", 134), ("url", 135), ("height", 136), ("parameters", 137)]], + {"group": "Expert syntax", "label": "Iframe"}, + ), + 139: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "group": "Expert syntax", + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "readonly": True, + }, + ), + 140: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Allows the creation of a link to this specific part of the page. Allowed characters: A-Z, a-z, 0-9, - and _.", + "label": "Anchor ID", + "validators": [ + django.core.validators.RegexValidator( + re.compile("^[-a-zA-Z0-9_]+\\Z"), + "Enter a valid “slug” consisting of letters, numbers, underscores or hyphens.", + "invalid", + ) + ], + }, + ), + 141: ( + "wagtail.blocks.StructBlock", + [[("anchor_id", 140)]], + {"group": "Page structure", "label": "Anchor"}, + ), + 142: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 3, "label": "Top margin", "max_value": 15, "min_value": 0}, + ), + 143: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 3, "label": "Bottom margin", "max_value": 15, "min_value": 0}, + ), + 144: ( + "wagtail.blocks.StructBlock", + [[("top_margin", 142), ("bottom_margin", 143)]], + {"group": "Page structure", "label": "Separator"}, + ), + 145: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Incompatible with the bottom call-to-action.", + "label": "Bottom detail: text", + "required": False, + }, + ), + 146: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 6), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 145), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {"group": "DSFR components", "label": "Vertical card"}, + ), + 147: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Person",), + { + "help_text": "Optional, all values can be manually specified or overriden below", + "label": "Person", + "required": False, + }, + ), + 148: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255, "required": False}), + 149: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255, "required": False}), + 150: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Organization", "max_length": 255, "required": False}, + ), + 151: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Contact info", "max_length": 500, "required": False}, + ), + 152: ("wagtail.blocks.StreamBlock", [[("tag", 59)]], {"label": "Tags", "required": False}), + 153: ( + "wagtail.blocks.StructBlock", + [ + [ + ("contact", 147), + ("link", 107), + ("heading_tag", 2), + ("name", 148), + ("role", 149), + ("organization", 150), + ("contact_info", 151), + ("image", 75), + ("tags", 152), + ] + ], + {"group": "Extra components", "label": "Contact card"}, + ), + 154: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("contact_card", 153), + ] + ], + {"label": "Content"}, + ), + 155: ( + "wagtail.blocks.StructBlock", + [[("title", 55), ("content", 154)]], + {"label": "Tab", "max_num": 15, "min_num": 1}, + ), + 156: ( + "wagtail.blocks.StreamBlock", + [[("tabs", 155)]], + {"group": "2. DSFR components", "label": "Tabs"}, + ), + 157: ( + "wagtailmarkdown.blocks.MarkdownBlock", + (), + {"group": "5. Expert syntax", "label": "Markdown"}, + ), + 158: ( + "wagtail.blocks.StructBlock", + [[("title", 134), ("url", 135), ("height", 136), ("parameters", 137)]], + {"group": "5. Expert syntax", "label": "Iframe"}, + ), + 159: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "group": "5. Expert syntax", + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "readonly": True, + }, + ), + 160: ( + "wagtail.blocks.StructBlock", + [[("anchor_id", 140)]], + {"group": "3. Page structure", "label": "Anchor"}, + ), + 161: ( + "wagtail.blocks.StructBlock", + [[("top_margin", 142), ("bottom_margin", 143)]], + {"group": "3. Page structure", "label": "Separator"}, + ), + 162: ( + "wagtail.images.blocks.ImageChooserBlock", + (), + {"label": "Background image", "required": False}, + ), + 163: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("Primary colors", [("blue-france", "Blue France"), ("red-marianne", "Red Marianne")]), + ("Neutral colors", [("grey", "Grey")]), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "help_text": "Uses the French Design System colors", + "label": "Background color", + "required": False, + }, + ), + 164: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + "required": False, + }, + ), + 165: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 5, "label": "Top margin", "max_value": 15, "min_value": 0, "required": False}, + ), + 166: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 5, "label": "Bottom margin", "max_value": 15, "min_value": 0, "required": False}, + ), + 167: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("top", "Top"), ("middle", "Middle"), ("bottom", "Bottom")], + "label": "Vertical align", + "required": False, + }, + ), + 168: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("3", "3/12"), + ("4", "4/12"), + ("5", "5/12"), + ("6", "6/12"), + ("7", "7/12"), + ("8", "8/12"), + ("9", "9/12"), + ], + "help_text": "The total width of all columns should be 12.", + "label": "Column width", + "required": False, + }, + ), + 169: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("contact_card", 153), + ] + ], + {"label": "Column content"}, + ), + 170: ( + "wagtail.blocks.StructBlock", + [[("width", 168), ("content", 169)]], + {"group": "Page structure", "label": "Adjustable column"}, + ), + 171: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("column", 170), + ] + ], + {"label": "Columns"}, + ), + 172: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 162), + ("bg_color_class", 163), + ("title", 1), + ("heading_tag", 164), + ("top_margin", 165), + ("bottom_margin", 166), + ("vertical_align", 167), + ("columns", 171), + ] + ], + {"group": "3. Page structure", "label": "Multiple columns"}, + ), + 173: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("3", "3/12"), ("4", "4/12"), ("6", "6/12")], "label": "Column width"}, + ), + 174: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("center", "Center"), ("right", "Right")], + "label": "Horizontal align", + "required": False, + }, + ), + 175: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("card", 146), + ("contact_card", 153), + ] + ], + {"label": "Items"}, + ), + 176: ( + "wagtail.blocks.StructBlock", + [[("column_width", 173), ("horizontal_align", 174), ("vertical_align", 167), ("items", 175)]], + {"group": "3. Page structure", "label": "Item grid"}, + ), + 177: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 87), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 95), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {"group": "DSFR components", "label": "Horizontal card"}, + ), + 178: ( + "wagtail.blocks.StreamBlock", + [[("tabs", 155)]], + {"group": "DSFR components", "label": "Tabs"}, + ), + 179: ( + "wagtail.blocks.StructBlock", + [[("column_width", 173), ("horizontal_align", 174), ("vertical_align", 167), ("items", 175)]], + {"group": "Page structure", "label": "Item grid"}, + ), + 180: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("image_and_text", 23), + ("card", 177), + ("tabs", 178), + ("item_grid", 179), + ] + ], + {"label": "Content"}, + ), + 181: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 162), + ("bg_color_class", 163), + ("top_margin", 165), + ("bottom_margin", 166), + ("content", 180), + ] + ], + {"group": "3. Page structure", "label": "Full width background"}, + ), + 182: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 9), + ("imageandtext", 23), + ("table", 27), + ("alert", 32), + ("text_cta", 41), + ("video", 48), + ("transcription", 49), + ("badges_list", 54), + ("tags_list", 60), + ("buttons_list", 63), + ("accordions", 116), + ("callout", 117), + ("highlight", 118), + ("quote", 119), + ("link", 64), + ("tile", 120), + ("blog_recent_entries", 129), + ("events_recent_entries", 131), + ("stepper", 132), + ("markdown", 133), + ("iframe", 138), + ("html", 139), + ("anchor", 141), + ("separator", 144), + ("image_and_text", 23), + ("card", 177), + ("tabs", 178), + ("item_grid", 179), + ] + ], + {"label": "Main content"}, + ), + 183: ("wagtail.blocks.CharBlock", (), {"label": "Side menu title", "required": False}), + 184: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "label": "HTML", + }, + ), + 185: ("wagtail.blocks.PageChooserBlock", (), {"label": "Parent page"}), + 186: ("wagtail.blocks.StructBlock", [[("page", 185)]], {"label": "Page tree"}), + 187: ( + "wagtail.blocks.StreamBlock", + [[("html", 184), ("pagetree", 186)]], + {"label": "Side menu content"}, + ), + 188: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 162), + ("bg_color_class", 163), + ("top_margin", 165), + ("bottom_margin", 166), + ("main_content", 182), + ("sidemenu_title", 183), + ("sidemenu_content", 187), + ] + ], + {"group": "3. Page structure", "label": "Full width background with side menu"}, + ), + 189: ( + "wagtail.blocks.static_block.StaticBlock", + (), + { + "admin_text": "A simple, alphabetical list of the subpages of the current page.", + "group": "4. Website structure", + "label": "Subpages list", + "template": "content_manager/blocks/subpages_list.html", + }, + ), + 190: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("blog", 122), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "4. Website structure", "label": "Blog recent entries"}, + ), + 191: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 121), + ("index_page", 130), + ("entries_count", 123), + ("category_filter", 124), + ("tag_filter", 125), + ("author_filter", 126), + ("source_filter", 127), + ("show_filters", 128), + ] + ], + {"group": "4. Website structure", "label": "Event calendar recent entries"}, + ), + 192: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "

En savoir plus


Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", + "features": ["bold", "italic", "link", "document-link", "strikethrough", "h2", "h3", "h4"], + "label": "Rich text", + }, + ), + 193: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("6", "small"), ("8", "medium"), ("12", "large")], "label": "Block width"}, + ), + 194: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("", "Center"), ("right", "Right")], + "label": "Block alignment", + "required": False, + }, + ), + 195: ( + "wagtail.blocks.StructBlock", + [[("text", 192), ("width", 193), ("alignment", 194)]], + {"group": "1. Section templates to be adapted", "label": "Rich text with layout"}, + ), + 196: ( + "wagtail.blocks.CharBlock", + (), + {"default": "Titre de la section", "label": "Section title"}, + ), + 197: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("Primary colors", [("blue-france", "Blue France"), ("red-marianne", "Red Marianne")]), + ("Neutral colors", [("grey", "Grey")]), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "help_text": "Uses the French Design System colors.
If you want to design a classic website, choose the colour ‘white’ or ‘French blue’.", + "label": "Background color", + "required": False, + }, + ), + 198: ( + "wagtail.blocks.StructBlock", + [[("background_color", 197), ("top_margin", 165), ("bottom_margin", 166)]], + {"collapsed": True, "label": "Layout"}, + ), + 199: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("center", "Center"), ("right", "Right")], + "label": "Items alignement", + }, + ), + 200: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("6", "2"), ("4", "3"), ("3", "4")], "label": "Items per row"}, + ), + 201: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("80", "Small (80px)"), ("140", "Medium (140px)"), ("200", "Large (200px)")], + "help_text": "Images are always displayed in a square (1:1) ratio. Three sizes are available: if the original image is smaller than the selected size, it will be displayed at its maximum available size.", + "label": "Image size of items", + }, + ), + 202: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": True}), + 203: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "Add a short description to help your visitors better understand what you offer.", + "features": ["bold", "italic", "link", "document-link"], + "label": "Text", + }, + ), + 204: ("wagtail.blocks.StructBlock", [[("image", 10), ("title", 202), ("text", 203)]], {}), + 205: ( + "content_manager.blocks.sections.ImageAndTextListBlock", + (204,), + {"collapsed": True, "label": "Items"}, + ), + 206: ( + "wagtail.blocks.StructBlock", + [ + [ + ("section_title", 196), + ("layout", 198), + ("items_alignement", 199), + ("items_per_row", 200), + ("images_size", 201), + ("items", 205), + ] + ], + {"group": "1. Section templates to be adapted", "label": "Items grid (image and text)"}, + ), + 207: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "

Titre de la section


Lorem ipsum dolor sit amet, consectetur adipiscing elit, ", + "features": ["bold", "italic", "link", "document-link", "strikethrough", "h2", "h3", "h4"], + "label": "Text block", + }, + ), + 208: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("right", "Right")], + "help_text": "This field allows you to define the placement of text relative to adjacent content.", + "label": "Text content position", + }, + ), + 209: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + { + "default": { + "button_type": "fr-btn fr-btn--secondary", + "external_url": "https://tube.numerique.gouv.fr/", + "icon_side": "--", + "link_type": "external_url", + "text": "Appel à l'action", + }, + "label": "Button", + }, + ), + 210: ( + "wagtail.blocks.StructBlock", + [[("text", 207), ("position", 208), ("button", 209), ("image", 10), ("layout", 198)]], + {"group": "1. Section templates to be adapted", "label": "Image, text and cta"}, + ), + 211: ( + "wagtail.blocks.RichTextBlock", + (), + { + "default": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididun", + "features": ["bold", "italic", "link", "document-link"], + "label": "Text", + }, + ), + 212: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 34), + ("button_type", 35), + ("icon_class", 36), + ("icon_side", 37), + ] + ], + { + "default": { + "button_type": "fr-btn", + "external_url": "https://tube.numerique.gouv.fr/", + "icon_side": "--", + "link_type": "external_url", + "text": "Appel à l'action", + }, + "label": "Button", + }, + ), + 213: ( + "wagtail.blocks.StructBlock", + [[("section_title", 196), ("layout", 198), ("text", 211), ("button", 212)]], + {"group": "1. Section templates to be adapted", "label": "Text and button"}, + ), + 214: ( + "wagtail.blocks.StructBlock", + [ + [ + ("link_type", 13), + ("page", 14), + ("document", 15), + ("external_url", 16), + ("anchor", 17), + ("query_string", 18), + ("text", 19), + ] + ], + { + "collapsed": True, + "help_text": "This link appears at the bottom left of the section if completed", + "label": "Section link", + "required": False, + }, + ), + 215: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 55), + ("heading_tag", 31), + ("description", 68), + ("image", 10), + ("image_ratio", 6), + ("image_badge", 88), + ("link", 89), + ("top_detail_text", 90), + ("top_detail_icon", 91), + ("top_detail_badges_tags", 94), + ("bottom_detail_text", 145), + ("bottom_detail_icon", 96), + ("call_to_action", 99), + ("grey_background", 100), + ("no_background", 101), + ("no_border", 102), + ("shadow", 103), + ] + ], + {}, + ), + 216: ("wagtail.blocks.StreamBlock", [[("card", 215)]], {"label": "Items"}), + 217: ( + "wagtail.blocks.StructBlock", + [ + [ + ("section_title", 196), + ("layout", 198), + ("items_per_row", 200), + ("link", 214), + ("items", 216), + ] + ], + {"group": "1. Section templates to be adapted", "label": "In the spotlight"}, + ), + 218: ( + "wagtail.blocks.StreamBlock", + [[("title", 55), ("accordion", 66)]], + { + "default": [ + ("title", "Accordéon"), + ( + "accordion", + { + "content": "

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

", + "title": "Titre de l'accordéon 1", + }, + ), + ( + "accordion", + { + "content": "

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

", + "title": "Titre de l'accordéon 2", + }, + ), + ], + "label": "Accordion", + }, + ), + 219: ( + "wagtail.blocks.StructBlock", + [[("accordion", 218), ("layout", 198)]], + {"group": "1. Section templates to be adapted", "label": "Accordions with layout"}, + ), + }, + ), + ), + ] From 3c61fd448bfb08b77ae85072c20e962ac99062a1 Mon Sep 17 00:00:00 2001 From: Lucie Laporte Date: Thu, 26 Mar 2026 13:59:50 +0100 Subject: [PATCH 12/13] i18n --- .../locale/fr/LC_MESSAGES/django.mo | Bin 35874 -> 35982 bytes .../locale/fr/LC_MESSAGES/django.po | 16 +++++++++++----- events/locale/fr/LC_MESSAGES/django.mo | Bin 3377 -> 3377 bytes events/locale/fr/LC_MESSAGES/django.po | 13 +++++++++---- 4 files changed, 20 insertions(+), 9 deletions(-) diff --git a/content_manager/locale/fr/LC_MESSAGES/django.mo b/content_manager/locale/fr/LC_MESSAGES/django.mo index 3dff6bf19cb16b57a5630da432030c908fd630e3..f0aeedd426c17aa752d16851900698417b4f0f72 100644 GIT binary patch delta 7242 zcmZA433Sd^8prV)5s^eh>>(i$RFZ~}grJC8Vi!wjP(%`hNRY)+=Cw=HB2$b89dtOB zs->Z(Q)<*wt*O#EmTJ|grKL2dt9DMc^Zn)CIcLuF^z?I|`~Sc9KKHrzzHj>K%hgtw zSMz*cxB7a+KZm@G3B{v<#tf`x%($lNHKwGcF)i?Utc!aw7>{Fpyoh!1E+*q69FIw@ zjPb(_=#Sg5A?`(9F(;96J?1MK{A&VQ8xx7`F%Hw5D=>=q2xj0-R06%8u%;n7n<+RP zi!cSxVlLKc!&tZw_!PCWTQ2?qwdcR0Rvr{%Oe2g!4bT(yJPrME zD%QjT^uqR*cop>$|ZqEH!kMy)g%1MnHwpXK7|*opo*&i&3W zu@C*t+ZvOI+0ISai})gjV}o|a=z?|h&`@T>QKcV?sz5H*#@QH#i&3{?3+mckz(Bl% zTEO?H&+8>^X)yN1HmLr5)K)EW@mkd9J=yq1wWxm?cIS@V-RZPOHeD?iaJzB zoF|;;oR^$8P%FEKb@35uV*hxXXb=VwH^Hj=A6?ZjCIRd4pu2lvsB;2pfPBvZ_yGIi_yoJ+omh`}A8L!=MIC%|mWC$2g1zx8)I_n2rZbR)l***6 zJ?K-gqgaj_VN^%!6x15$qGl+;B0P)(Fov_Maf-1%E^%(aLgKwh*-S)| z-OQ2Bc}Z-T*7|2Uw1!=%iT9z-^Kn%1KXuRVxwsOw>yJ^jtlrs}X!LU?piavK)blB* zFZ*0nDbC{<{G>A%HkC#~7hCk@s6^Ia16+^I@ilCM=THgVMV+!AoL*h+=WCub-cEt20ntC=#+~;Mh$QSHNjm}r7BU0nWxwWXo^~K z3VP!p)QVHFA&$kSI2+rbXEhC-h9jtwy^qT9BI<+xLM8S!>b>7kdtIlSO*9l0N1>i4 zqRvVRHp0;uhWV(AzX~FsFfT?ec&`Ip)07vc+)+9 zgxc%J&M3Y}!->;S6)Z+=$#WQnE1f$~l|G3|+o!A)TdfU(SM~yogl~4vo;AB(+C8z|}_on`lH2y+|PUU;3mES@gq90L* z$fu8;I1Dv$6zU7>Dbz%%sDa0z_I3(Zl^ClN&qp8hpx#@K`rJ!>sJ}k2nGQ|76E(qG zsQ!PT2D*Z2cmp+HVqbfGx}ctCq7P0-t!$R-_qcc^degri^_=r* zfjT_LP%oZAeej&?zlf^LHTV2GRK*^-e%};3ZgbR%qfuMf2?yX{+=ZT(X(ZF=*^euR zOHg}x2y^g5d=fkL=TB11!m0Q(j=&5?<7dDe#v%9sm2lUAwvx%HYdHdy@C>Z_tw9## zG37Lr;TBwsdr zobH^68h;Ab#C+#m^eD5%G&Jx^ROT;XZ!crEVhiFsY_uk*InwT7GgN6iVqF}F{ct>v z#hqA{XqsJVZPXW06O6?qOvK4)?7teD>EM^te2jc;o4`@lL8wFZ0v6#l493*aHi1c~ z1m+;SVM?9XP+!5(&u}$y2Wou3bX&RJs6##=o%+|Ikx7RJE<_!U73hZ>-HY2%-(bg3 z*X#zWQkAF*K1Pk>J;t7a`l$CJu@=Uo-cLp)Jj6ZE@X*k8nS~)(j2f^Eb?X0w+JcR! zjE`YMyo?R-A?h%BQ+Mro5Nd*ksDz?Whq4Rm4D`oP9EQ!%lSf0Dt-|`a33W&gxcDv9 z-knD!@BlS|&p2yiR01)mJ@14X?`c#*si*`-yZ*^ImADW&GahrD##3~(=IHAKnWzD# zp)#I}TJa*(#2Ziv?m<m;*a)wnK39p_f=8&W^c`>GVAOaK=*|2liG~J#3iaYp zY>Mfql@*}|T#PE|^VkzNVrTr!*>D2oB~HZ@Jx4wN0+TUxqWxR&S!_kT8f$uJ9HODa zcMMg5kDQmWIq`Lj$H%A@w$HFD>5ob<9hGo4>iJ@vh~=n-{TsF7z)3c4iHbX+M=uPa zp%rGJ4q*=J)GoysEW>Gd6vOZd?o@m1gWB6USaoZ#HStE&=TD$2b{=)eZ=kmBHtH-r z%%uKGphlJ*AOx2a$6_c}pjLJPb+{flA33XK+x|djW30M%sD$EC6Q-c%Nkxs9iF(hI zP5rg(1k-ExG98tEdv+N0qSJWP58uumf>hq(~+M)9@75z$R1Np+g_y zBvj?Pd)$M;ID(EW)HVDoDxnXZw@@qi1+@jWrrP(SQHk`xPjD2rz_=W{@)4*?jKhvN z6JNxgI0`)pY^)B^3#bV;pa$H7%kTvD!oJh(VJyW+Jx3*Y9{uq)D)CB;!0Nen3tOXB z+zWM0`(rH}ja0^CvS=jGF&z_eD{8>YSRHR7$(p;U!<0IM9}djGk$4tsVOXA>C>q0w z#-b9OhPo|9sMEX# zmEbPtTNp(A0qP7~Lsj4=YMe@p(f$98Mh}dhX}|NQp)YYBYAcFSD_Mnc_$KNb^Gnq8 zmb2`DT~S*y0E2KM>iJC6ZCdI2w__dRL+H_qr)j7pmr!Tm9%_$&b%xKje*^YLU7uN~ z!@3Gp`kSb&`UZ6dzDFfev%r3?8FnBZh~4lHs55f3fcoojeC|4Kqe@?+(EgzigUyN4 zQ6-;;0k{k`aT(UbS5ON%h}yyvsP{fVUDwOl1;0Vvj;JC#?w}&-pF~G49c8$~*|FFT z^d9Q)T)-w+>H7WW*stVz*p~hj)WpT8(t1#5q6{11Zqyk#feCmP6Y;TLY)vD6t{q?u z1`}tZCN6TW!@9&3s1=__3L7cWFjSc)OI4ON-9QSY6>ad-hWUhG1fcmg)m z{hvrf*KH1Jg&r5LLv6)o)Cc#u{=?2=sKigBCcKKe*SAm$`3|*m^9OraYoQVfK_wiC zKFn{r(9r2kMwKuXHDHeGFLeFOke_n%3ciECV|RRqL5AXEY=VOqu?;wt|8&B8xE3Q8 z^Zx*N7{_DS5*Dig7SK?M-bR(W@lsofW*9~sk4kJ9YQ@t~?=3{_=~Cokm~tF|b(Yy% zF&3*6m!j_b8q^jYM2&ZD8TD7mZ_}ZY{en%=ce#Br61|DLp|+x@>mPwy=?oW_U@ziV zu`k}mwqES@3jXhjcpOK44~CZ5ioA#XYkn`GWSeM|Ja4a6%Tl`)Nf=9iKh)kAqwe)W zR0UQ$x1kb0goXGn>b*`c*hKoF5?_P*!rF#9Yx_{QvUH#@U1JIfU06lTxJnAy%0%*e>iHAQ&^?#bF`hmY`&kL}PgynTF^#H5P9 z4S%}x_>;Q}b7mD~7ZzrR7o6O!A#(Eb@=or~HZyZG@?x`!Vl`enGc&s|r_lV*+j;qU bvH$mp;{2k5@RNHAvkSs=GIQSD+Qs|_oWh$d delta 7123 zcmX}w30PNE8prXAfC{L9vdAVV2`(UuAcB?(D6Ubc7>cDlZ@%sQtVED6HdXyr~qQ)jp<0t zP97HESj@v6I1_K+Se)3+aeCuEY>8LUhxa?zX!tSkv(<~YwV@w?tuPAp!mb#G8K{gO zv`$5D`ce|nXf}1+-&>X(Vu=J`tg3}Fbyw!A3NY_+rNy8^gAR8=cc_L-oxD2 z3zc~`>ctPB?k`3qFwKrvS{I@cszbeJExKBhZT3PFDzl@ue-^dopP@3pj-lw&(@fAA zbv+$@aVWON(ddK4sDMhb9adNu;#B%8ds6@VXk24}%z|PtJ1=M`sCs6-3H105d(K&{;|)UkXYv+)Pi zL}@9eLV2jQpM;uc2I_n-M$PxKy}lc@$q%CDeG3D1{{Kcp8GMW?_1E|)UPomk2hU%m>OI0yr<6Y7Q}>j2aQ`KSrT zpfa6=Ds>I&`FhlvKaF$nJsgVnrJ0PEV+Z=HQA@lP+x4fhgN9yw0CVv;>P2mtO?#jt z24Xy_LYb(E2Csk7yMy~Ct$B=ShCY3ad8iZ~LUy)OhBdemhoc{RS2Go25Kgr|hSl`z zk@7emea&K~S&LAq{vMS=U0)VZFJ8@n_VX50@tf=oCv5)|YSlkS)$$_tz;CTVnP#^P zKwZy6ee6e~O7R+w$Jg-z49YTrlw@&$70GM{g0TjpaV3W1E>u9rP`m7`^-EMH*HB-E zpHV-59{tQY>x2q8AGHRBsQXJ$6`PIiahXd)6K_JjXq)ZtMNM!B^@3xlN}a-RynsFN zzo?Ak*$JMQfXX--L$Du4U;%c+S*Xph33a~Qoir3-BkIAwq9S`2b>kPPwZ4H0^p5TO z+-t4}qxMQXhGGUrVLs~MSD@xwhl6k%YM#qT;I8u{4F&Ksszj~$qU*sxjKg%)W-3N4 z%^K8_?ZGhIkNhRzoU-0T1rj{K%$JBtECZEDHY&0Eo3Fck(`cyFGnxlDe5i;QV0T=N z3g{q4<7e0d@8BOWexT#b$JbCx)txl;f>hL!=AuenfC_XxcE&~M?b6snLl3-+s=xu% zW<0DL@EmHbKezhuA&sG*j#~RdRAv(}3a49ZQKfzf6-WbW{!?HUW2-C9%>#J6~HokeT@bb z*?QFGc^-A+cGQEr?06%pGH=-Hr%@FIRrEjM5}?#2WR9Y#=?i)DBoN8=!7<7dFxi1*`rsDL9zm`cW=j%9CDz@t#VHYM0x z2~>bCE&->Wh9+z`(j2S7sM1xUzI4^7FW(yL3+PL~5mov(QJeK7>eG4w_53Z=8vlX{ zz;Bf4N28WJ1=D!HlS_l&5oaELgnO|8>qxH-GxN=_*b(HCa|LTLonI22mL_bACovAs zqcXjVKIr|R+06dd2yDf8JWka4Pofcst1tz(*#3v8Out4=cn!PZe^41m6`1kf*phyx zbs*{mdDt5BQO`ew3iM&j_26G`(CxxNBMYku&!X1sDyoz%#+Xut;!yfMZ~|7L0y~9% z_)pY_=Q1Xu*I4tXOscgE`GIu)gnXTyPplmaslPVSxI*&>#&!&(A34qh&uu@N_+~n#-E}p@)ateTd06qvMyTlV2s2l?1WjUz=|*kr=#}7Lfdz1X=v@9MFnsW z^@0zr7f}KHgj#dYVl!boR6voa0AlTUDwfe7h}ttdu|M8K-JirSj{@q01nfGwG?ej3 z)QhK~BAkn=fQx!yBZlHjs7#wsB|eH;%QLqBIcmP|Q6=_z*v#7+bzcNVU|00h`5#0> z6OKZabSw_SQq061)~|3F{m4n?zYvt7uD^x@@f%FW?vu@bkru8zhV2HQ_b~oRDy}9O_+|_ zwE5`vq)|*`2G(H|{)j0UIL)kW4mKYfjAOhMHNh%W#hyj&@?EHm8&G@cbyR?-QO{q( zTKokg(S3yaE3?gyn9X(2der)X^%LtwY(93V3Gbp_*rCL{C=xYa66(GYsLUsz_R=)e zQp~fiETR5dljrTgHdKlKf-30;sAF>pQ}I`%I8I`z`TJlk>iNsqyy?)JzSne9IbYOx z7>>qd)O^cO0X^f|#vW9u-a#$FdDM-!Q4{!;vA);^yWkyE=F#P*65X&5{r*^wRal5x zR~_GRsQIU%=9`Pl&|O6%herF~nZIreF;+LAB77Eou>loO6L!Xbpw{pvDr5hd=9mVf z_C_qKGRc^R8JLbUQS)s@FW&F$ra`dIUesoatYCv-B96fg*ap8vz34W^;2rFSQM1gK zZV0M!C8)iz6t&iyupRD1RqP<%gNHFw=l?PdMH(~P+!&9Fun+3E3_|VZ38(<8t+nV+ z|7q0o+p#U~#&+0*J@F(Cz}x7FeJahS%)$_z|7;q{qzIGo3DhTZA8M^`peAfJ$1F(* z`qNK9UGI-tiqUqw5(DTjw*7UeioA&01N%`+d>mah{!JqR10FTU=U&uqEkc!kH?mgF z8>l^S2(>rPqMo~osTf+tFC7j??U6dvlD%U44XDze#zg$7iuy;>=vr+`J{bMzKY)61 zF?PUmRK|-?Yq$z^-_xk$x)rnV4bf6>febAn;8hl zCVSyy>`nh)*b6&6W**2!m39PbPZVP))}Z#lDon!-n2skf4)3A@k9*u~$|Tf#2f4N} z8QU|UzA}CawF$Q)zdKGND!_nwX3cwAv#mwgk?WP%6<6SL+=JR%8S~BalTnphfC|W6 zP9ufJS`5M?sEN*@cJB>L!pH??d?bd@FF|Fx5H(>V2IE`y`We&`UPUGL6Y6yME;QpE zk&3xaR~p(R3HCxN`p_R>`@>K#EW|LZKviZr>b|G27&oJq;1^Wj&LZ<%0=A-?gGz9O z?N7!)o&Pc#dT_qIu*A9o75O^U3%8+;;T}{bZ=*7Q50&Y8R6v(d0bfTY*7Eme^R_`% zHWD>oy2jTBhxxnwUOVOV-o|(FK75kM^6>\n" "Language-Team: \n" "Language: fr\n" @@ -281,6 +281,9 @@ msgstr "Détail" msgid "Step" msgstr "Étape" +msgid "Adapt to the page layout. Defaults to heading 2." +msgstr "À adapter à la structure de la page. Par défaut en-tête 2." + msgid "Number of steps" msgstr "Nombre d’étapes" @@ -785,9 +788,6 @@ msgstr "Colonne ajustable" msgid "Background image" msgstr "Image de fond" -msgid "Adapt to the page layout. Defaults to heading 2." -msgstr "À adapter à la structure de la page. Par défaut en-tête 2." - msgid "Columns" msgstr "Colonnes" @@ -1414,6 +1414,12 @@ msgstr "Source :" msgid "Filters" msgstr "Filtres" +msgid "selected" +msgstr "étiquette sélectionnée" + +msgid "unselected" +msgstr "étiquette non-sélectionnée" + msgid "Pages" msgstr "Pages" diff --git a/events/locale/fr/LC_MESSAGES/django.mo b/events/locale/fr/LC_MESSAGES/django.mo index 45cb586d06ca95a4ed9887456bdfa320ff9dc42c..3c4c2845df8fca4804e875bb80c2cde6d1a8fd53 100644 GIT binary patch delta 20 bcmdlewNYxrD|U7>1w&&iQ_IaC*&SE`ONa)M delta 20 bcmdlewNYxrD|U8c1w%6{W24O<*&SE`OGgHX diff --git a/events/locale/fr/LC_MESSAGES/django.po b/events/locale/fr/LC_MESSAGES/django.po index d60be4dc6..9e1f3c929 100644 --- a/events/locale/fr/LC_MESSAGES/django.po +++ b/events/locale/fr/LC_MESSAGES/django.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-03-24 09:46+0100\n" -"PO-Revision-Date: 2025-10-28 13:47+0100\n" +"POT-Creation-Date: 2026-03-26 13:53+0100\n" +"PO-Revision-Date: 2026-03-26 13:59+0100\n" "Last-Translator: \n" "Language-Team: \n" "Language: fr\n" @@ -41,8 +41,7 @@ msgid "Filter by source" msgstr "Filtrer par source" msgid "The source is the organization of the event author" -msgstr "" -"La source est l’organisation à laquelle appartient l’auteur de l’événement" +msgstr "La source est l’organisation à laquelle appartient l’auteur de l’événement" msgid "Show filters" msgstr "Afficher les filtres" @@ -161,6 +160,12 @@ msgstr "Date de fin :" msgid "Filter by date" msgstr "Filtrer par date" +msgid "selected" +msgstr "étiquette sélectionnée" + +msgid "unselected" +msgstr "étiquette non-sélectionnée" + msgid "Export" msgstr "Export" From 471f754e0a95fc86d4a9593da3abf95e4e5b136c Mon Sep 17 00:00:00 2001 From: Lucie Laporte Date: Thu, 16 Apr 2026 15:21:31 +0200 Subject: [PATCH 13/13] fix tag --- blog/templates/blog/blog_entry_page.html | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/blog/templates/blog/blog_entry_page.html b/blog/templates/blog/blog_entry_page.html index 495090cdb..c2593653f 100644 --- a/blog/templates/blog/blog_entry_page.html +++ b/blog/templates/blog/blog_entry_page.html @@ -88,11 +88,13 @@

{% translate "Posted by:" %}

{% endwith %}
-
    +