diff --git a/.github/workflows/cd.yml b/.github/workflows/cd-docker.yml
similarity index 100%
rename from .github/workflows/cd.yml
rename to .github/workflows/cd-docker.yml
diff --git a/.github/workflows/ci-check-migrations.yml b/.github/workflows/ci-check-migrations.yml
new file mode 100644
index 00000000..f9fe9a8e
--- /dev/null
+++ b/.github/workflows/ci-check-migrations.yml
@@ -0,0 +1,47 @@
+name: 🔮 CI - Migrations Check
+
+on:
+ pull_request:
+ types:
+ - opened
+ - synchronize
+ - reopened
+ - ready_for_review
+
+jobs:
+ build:
+ if: github.event.pull_request.draft == false
+ runs-on: ubuntu-latest
+ env:
+ DJANGO_SETTINGS_MODULE: config.settings_test
+ PYTHONPATH: .
+ strategy:
+ matrix:
+ python-version: ["3.12"]
+ services:
+ postgres:
+ image: postgres:14-alpine
+ env:
+ POSTGRES_USER: dju
+ POSTGRES_PASSWORD: djpwd
+ POSTGRES_DB: djdb
+ ports:
+ - 5432:5432
+ steps:
+ - uses: actions/checkout@v3
+ - name: 🐍 Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v4
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: 🌍 Install dependencies
+ run: |
+ python -m pip install --upgrade pip
+ pip install poetry
+ pip install ruff
+ poetry install --no-root
+ - name: 📄 Copy empty .env.test to .env
+ run: |
+ cp .env.test .env
+ - name: 🚧 Check pending migrations
+ run: |
+ poetry run django-admin makemigrations --check --dry-run --noinput
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci-main.yml
similarity index 84%
rename from .github/workflows/ci.yml
rename to .github/workflows/ci-main.yml
index 82f0a092..dd1f1261 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci-main.yml
@@ -1,4 +1,4 @@
-name: 🔮 CI
+name: 🔮 CI - Main checks
on: [push]
@@ -10,7 +10,7 @@ jobs:
PYTHONPATH: .
strategy:
matrix:
- python-version: ["3.10", "3.11", "3.12"]
+ python-version: ["3.10", "3.11", "3.12", "3.13"]
services:
postgres:
image: postgres:14-alpine
@@ -38,9 +38,6 @@ jobs:
- name: ✨ Black & ruff
run: |
make quality
- - name: 🚧 Check pending migrations # continue-on-error: true
- run: |
- poetry run django-admin makemigrations --check --dry-run --noinput
- name: 🤹 Run the unit tests
run: |
make test-unit
diff --git a/blog/migrations/0040_alter_blogentrypage_body_alter_blogindexpage_body_and_more.py b/blog/migrations/0040_alter_blogentrypage_body_alter_blogindexpage_body_and_more.py
new file mode 100644
index 00000000..073d08a9
--- /dev/null
+++ b/blog/migrations/0040_alter_blogentrypage_body_alter_blogindexpage_body_and_more.py
@@ -0,0 +1,3922 @@
+# Generated by Django 5.1.4 on 2024-12-12 14:05
+
+import wagtail.fields
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ("blog", "0039_alter_blogentrypage_body_alter_blogindexpage_body_and_more"),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name="blogentrypage",
+ name="body",
+ field=wagtail.fields.StreamField(
+ [
+ ("paragraph", 0),
+ ("image", 9),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("badges_list", 50),
+ ("tags_list", 56),
+ ("link", 57),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("stepper", 78),
+ ("card", 98),
+ ("tile", 108),
+ ("tabs", 137),
+ ("markdown", 138),
+ ("iframe", 139),
+ ("separator", 142),
+ ("multicolumns", 151),
+ ("item_grid", 154),
+ ("fullwidthbackground", 156),
+ ("fullwidthbackgroundwithsidemenu", 163),
+ ("subpageslist", 164),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("html", 165),
+ ],
+ 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),
+ ]
+ ],
+ {},
+ ),
+ 10: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("left", "Left"), ("right", "Right")],
+ "label": "Side where the image is displayed",
+ },
+ ),
+ 11: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {"choices": [("3", "3/12"), ("5", "5/12"), ("6", "6/12")], "label": "Image width"},
+ ),
+ 12: (
+ "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,
+ },
+ ),
+ 13: (
+ "wagtail.documents.blocks.DocumentChooserBlock",
+ (),
+ {
+ "help_text": "Use either this, the external URL or the page parameter.",
+ "label": "Document",
+ "required": False,
+ },
+ ),
+ 14: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "help_text": "Use either this, the document or the page parameter.",
+ "label": "External URL",
+ "required": False,
+ },
+ ),
+ 15: ("wagtail.blocks.CharBlock", (), {"label": "Link label", "required": False}),
+ 16: (
+ "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,
+ },
+ ),
+ 17: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-link--sm", "Small"), ("", "Medium"), ("fr-link--lg", "Large")],
+ "label": "Size",
+ "required": False,
+ },
+ ),
+ 18: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 12),
+ ("document", 13),
+ ("external_url", 14),
+ ("text", 15),
+ ("icon", 16),
+ ("size", 17),
+ ]
+ ],
+ {
+ "help_text": "The link is shown at the bottom of the text block, with an arrow",
+ "label": "Link",
+ "required": False,
+ },
+ ),
+ 19: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link label (obsolete)",
+ "required": False,
+ },
+ ),
+ 20: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Internal link (obsolete)",
+ "required": False,
+ },
+ ),
+ 21: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link URL (obsolete)",
+ "required": False,
+ },
+ ),
+ 22: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("image", 3),
+ ("image_side", 10),
+ ("image_ratio", 11),
+ ("text", 0),
+ ("link", 18),
+ ("link_label", 19),
+ ("page", 20),
+ ("link_url", 21),
+ ]
+ ],
+ {"label": "Image and text"},
+ ),
+ 23: ("wagtail.blocks.CharBlock", (), {"label": "Message title", "required": False}),
+ 24: ("wagtail.blocks.TextBlock", (), {"label": "Message text", "required": False}),
+ 25: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [
+ ("error", "Error"),
+ ("success", "Success"),
+ ("info", "Information"),
+ ("warning", "Warning"),
+ ],
+ "label": "Message type",
+ },
+ ),
+ 26: (
+ "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",
+ },
+ ),
+ 27: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 23), ("description", 24), ("level", 25), ("heading_tag", 26)]],
+ {"label": "Alert message"},
+ ),
+ 28: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text", "required": False}),
+ 29: (
+ "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,
+ },
+ ),
+ 30: ("content_manager.blocks.IconPickerBlock", (), {"label": "Icon", "required": False}),
+ 31: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")],
+ "label": "Icon side",
+ "required": False,
+ },
+ ),
+ 32: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 12),
+ ("document", 13),
+ ("external_url", 14),
+ ("text", 15),
+ ("button_type", 29),
+ ("icon_class", 30),
+ ("icon_side", 31),
+ ]
+ ],
+ {"label": "Button"},
+ ),
+ 33: (
+ "wagtail.blocks.StreamBlock",
+ [[("button", 32)]],
+ {
+ "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",
+ },
+ ),
+ 34: (
+ "wagtail.blocks.StreamBlock",
+ [[("buttons", 33)]],
+ {"label": "Call-to-action buttons", "max_num": 1, "required": False},
+ ),
+ 35: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.",
+ "label": "Call to action label (obsolete)",
+ "required": False,
+ },
+ ),
+ 36: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.",
+ "label": "Link (obsolete)",
+ "required": False,
+ },
+ ),
+ 37: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 28), ("cta_buttons", 34), ("cta_label", 35), ("cta_url", 36)]],
+ {"label": "Text and call to action"},
+ ),
+ 38: ("wagtail.blocks.CharBlock", (), {"label": "Video title", "required": False}),
+ 39: (
+ "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",
+ },
+ ),
+ 40: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-ratio-16x9", "16x9"), ("fr-ratio-4x3", "4x3"), ("fr-ratio-1x1", "1x1")],
+ "label": "Video ratio",
+ "required": False,
+ },
+ ),
+ 41: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"default": "Transcription", "label": "Title", "required": False},
+ ),
+ 42: ("wagtail.blocks.RichTextBlock", (), {"label": "Transcription content", "required": False}),
+ 43: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 41), ("content", 42)]],
+ {"label": "Transcription", "required": False},
+ ),
+ 44: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 38),
+ ("caption", 7),
+ ("url", 39),
+ ("width", 5),
+ ("video_ratio", 40),
+ ("transcription", 43),
+ ]
+ ],
+ {"label": "Video"},
+ ),
+ 45: ("wagtail.blocks.StructBlock", [[("title", 41), ("content", 42)]], {"label": "Transcription"}),
+ 46: ("wagtail.blocks.CharBlock", (), {"label": "Badge label", "required": False}),
+ 47: (
+ "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,
+ },
+ ),
+ 48: ("wagtail.blocks.BooleanBlock", (), {"label": "Hide badge icon", "required": False}),
+ 49: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 46), ("color", 47), ("hide_icon", 48)]],
+ {"label": "Badge"},
+ ),
+ 50: ("wagtail.blocks.StreamBlock", [[("badge", 49)]], {"label": "Badge list"}),
+ 51: ("wagtail.blocks.CharBlock", (), {"label": "Title"}),
+ 52: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tag", "required": False}),
+ 53: (
+ "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,
+ },
+ ),
+ 54: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 12), ("document", 13), ("external_url", 14)]],
+ {"required": False},
+ ),
+ 55: (
+ "wagtail.blocks.StructBlock",
+ [[("label", 51), ("is_small", 52), ("color", 53), ("icon_class", 30), ("link", 54)]],
+ {"label": "Tag"},
+ ),
+ 56: ("wagtail.blocks.StreamBlock", [[("tag", 55)]], {"label": "Tag list"}),
+ 57: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 12),
+ ("document", 13),
+ ("external_url", 14),
+ ("text", 15),
+ ("icon", 16),
+ ("size", 17),
+ ]
+ ],
+ {"label": "Single link"},
+ ),
+ 58: ("wagtail.blocks.RichTextBlock", (), {"label": "Content"}),
+ 59: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 51), ("content", 58)]],
+ {"label": "Accordion", "max_num": 15, "min_num": 1},
+ ),
+ 60: (
+ "wagtail.blocks.StreamBlock",
+ [[("title", 51), ("accordion", 59)]],
+ {"group": "DSFR components", "label": "Accordions"},
+ ),
+ 61: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": [
+ "bold",
+ "italic",
+ "link",
+ "document-link",
+ "superscript",
+ "subscript",
+ "strikethrough",
+ ],
+ "label": "Content",
+ "required": False,
+ },
+ ),
+ 62: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 12),
+ ("document", 13),
+ ("external_url", 14),
+ ("text", 15),
+ ("button_type", 29),
+ ("icon_class", 30),
+ ("icon_side", 31),
+ ]
+ ],
+ {"label": "Button", "required": False},
+ ),
+ 63: (
+ "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,
+ },
+ ),
+ 64: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 26),
+ ("icon_class", 30),
+ ("text", 61),
+ ("button", 62),
+ ("color", 63),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Callout"},
+ ),
+ 65: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": [
+ "bold",
+ "italic",
+ "link",
+ "document-link",
+ "superscript",
+ "subscript",
+ "strikethrough",
+ ],
+ "label": "Content",
+ },
+ ),
+ 66: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-text--sm", "Small"), ("", "Medium"), ("fr-text--lg", "Large")],
+ "label": "Size",
+ "required": False,
+ },
+ ),
+ 67: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 65), ("color", 63), ("size", 66)]],
+ {"group": "DSFR components", "label": "Highlight"},
+ ),
+ 68: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image", "required": False}),
+ 69: ("wagtail.blocks.CharBlock", (), {"label": "Quote"}),
+ 70: ("wagtail.blocks.CharBlock", (), {"label": "Author name", "required": False}),
+ 71: ("wagtail.blocks.CharBlock", (), {"label": "Author title", "required": False}),
+ 72: (
+ "wagtail.blocks.StructBlock",
+ [[("image", 68), ("quote", 69), ("author_name", 70), ("author_title", 71), ("color", 63)]],
+ {"group": "DSFR components", "label": "Quote"},
+ ),
+ 73: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {"label": "Number of steps", "max_value": 8, "min_value": 1},
+ ),
+ 74: ("wagtail.blocks.IntegerBlock", (), {"label": "Current step", "max_value": 8, "min_value": 1}),
+ 75: ("wagtail.blocks.TextBlock", (), {"label": "Detail", "required": False}),
+ 76: ("wagtail.blocks.StructBlock", [[("title", 51), ("detail", 75)]], {"label": "Step"}),
+ 77: ("wagtail.blocks.StreamBlock", [[("step", 76)]], {"label": "Steps"}),
+ 78: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 51), ("total", 73), ("current", 74), ("steps", 77)]],
+ {"group": "DSFR components", "label": "Stepper"},
+ ),
+ 79: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-card--horizontal-tier", "1/3"), ("fr-card--horizontal-half", "50/50")],
+ "label": "Image ratio",
+ "required": False,
+ },
+ ),
+ 80: (
+ "wagtail.blocks.StreamBlock",
+ [[("badge", 49)]],
+ {
+ "help_text": "Only used if the card has an image.",
+ "label": "Image area badge",
+ "max_num": 1,
+ "required": False,
+ },
+ ),
+ 81: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 12), ("document", 13), ("external_url", 14)]],
+ {"label": "Link", "required": False},
+ ),
+ 82: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "group": "target",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link (obsolete)",
+ "required": False,
+ },
+ ),
+ 83: (
+ "wagtail.documents.blocks.DocumentChooserBlock",
+ (),
+ {
+ "group": "target",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "or Document (obsolete)",
+ "required": False,
+ },
+ ),
+ 84: ("wagtail.blocks.CharBlock", (), {"label": "Top detail: text", "required": False}),
+ 85: (
+ "content_manager.blocks.IconPickerBlock",
+ (),
+ {"label": "Top detail: icon", "required": False},
+ ),
+ 86: ("wagtail.blocks.StreamBlock", [[("badge", 49)]], {}),
+ 87: ("wagtail.blocks.StreamBlock", [[("tag", 55)]], {}),
+ 88: (
+ "wagtail.blocks.StreamBlock",
+ [[("badges", 86), ("tags", 87)]],
+ {"label": "Top detail: badges or tags", "max_num": 1, "required": False},
+ ),
+ 89: (
+ "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,
+ },
+ ),
+ 90: (
+ "content_manager.blocks.IconPickerBlock",
+ (),
+ {"label": "Bottom detail: icon", "required": False},
+ ),
+ 91: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 12), ("document", 13), ("external_url", 14), ("text", 15)]],
+ {"label": "Link"},
+ ),
+ 92: ("wagtail.blocks.StreamBlock", [[("link", 91)]], {}),
+ 93: (
+ "wagtail.blocks.StreamBlock",
+ [[("links", 92), ("buttons", 33)]],
+ {
+ "help_text": "Incompatible with the bottom detail text.",
+ "label": "Bottom call-to-action: links or buttons",
+ "max_num": 1,
+ "required": False,
+ },
+ ),
+ 94: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with grey background", "required": False}),
+ 95: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without background", "required": False}),
+ 96: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without border", "required": False}),
+ 97: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with a shadow", "required": False}),
+ 98: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 51),
+ ("heading_tag", 26),
+ ("description", 61),
+ ("image", 68),
+ ("image_ratio", 79),
+ ("image_badge", 80),
+ ("link", 81),
+ ("url", 82),
+ ("document", 83),
+ ("top_detail_text", 84),
+ ("top_detail_icon", 85),
+ ("top_detail_badges_tags", 88),
+ ("bottom_detail_text", 89),
+ ("bottom_detail_icon", 90),
+ ("call_to_action", 93),
+ ("grey_background", 94),
+ ("no_background", 95),
+ ("no_border", 96),
+ ("shadow", 97),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Horizontal card"},
+ ),
+ 99: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": ["bold", "italic", "superscript", "subscript", "strikethrough"],
+ "label": "Content",
+ "required": False,
+ },
+ ),
+ 100: (
+ "wagtail.images.blocks.ImageChooserBlock",
+ (),
+ {"help_text": "Prefer SVG files.", "label": "Image", "required": False},
+ ),
+ 101: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "If the tile links to a downloadable document, the values are pre-filled.",
+ "label": "Detail text",
+ "required": False,
+ },
+ ),
+ 102: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tile", "required": False}),
+ 103: (
+ "wagtail.blocks.BooleanBlock",
+ (),
+ {"label": "Tile with grey background", "required": False},
+ ),
+ 104: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without background", "required": False}),
+ 105: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without border", "required": False}),
+ 106: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with a shadow", "required": False}),
+ 107: ("wagtail.blocks.BooleanBlock", (), {"label": "Horizontal tile", "required": False}),
+ 108: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 51),
+ ("heading_tag", 26),
+ ("description", 99),
+ ("image", 100),
+ ("link", 81),
+ ("top_detail_badges_tags", 88),
+ ("detail_text", 101),
+ ("is_small", 102),
+ ("grey_background", 103),
+ ("no_background", 104),
+ ("no_border", 105),
+ ("shadow", 106),
+ ("is_horizontal", 107),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Tile"},
+ ),
+ 109: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 2),
+ ("image", 3),
+ ("alt", 4),
+ ("width", 5),
+ ("image_ratio", 6),
+ ("caption", 7),
+ ("url", 8),
+ ]
+ ],
+ {"label": "Image"},
+ ),
+ 110: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "Accessibility: The title should describe, in a clear and concise manner, the embedded content.",
+ "label": "Title",
+ },
+ ),
+ 111: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "help_text": "Example for Tally: https://tally.so/embed/w2jMRa",
+ "label": "URL of the iframe",
+ },
+ ),
+ 112: ("wagtail.blocks.IntegerBlock", (), {"label": "Height (in pixels)"}),
+ 113: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "For example: \"allow='geolocation'\".",
+ "label": "Parameters",
+ "required": False,
+ },
+ ),
+ 114: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 110), ("url", 111), ("height", 112), ("parameters", 113)]],
+ {"group": "DSFR components", "label": "Iframe"},
+ ),
+ 115: (
+ "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,
+ },
+ ),
+ 116: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {"label": "Blog", "page_type": ["blog.BlogIndexPage"]},
+ ),
+ 117: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {
+ "default": 3,
+ "label": "Number of entries",
+ "max_value": 8,
+ "min_value": 1,
+ "required": False,
+ },
+ ),
+ 118: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Category",),
+ {"label": "Filter by category", "required": False},
+ ),
+ 119: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("content_manager.Tag",),
+ {"label": "Filter by tag", "required": False},
+ ),
+ 120: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Person",),
+ {"label": "Filter by author", "required": False},
+ ),
+ 121: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Organization",),
+ {
+ "help_text": "The source is the organization of the post author",
+ "label": "Filter by source",
+ "required": False,
+ },
+ ),
+ 122: (
+ "wagtail.blocks.BooleanBlock",
+ (),
+ {"default": False, "label": "Show filters", "required": False},
+ ),
+ 123: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 115),
+ ("blog", 116),
+ ("entries_count", 117),
+ ("category_filter", 118),
+ ("tag_filter", 119),
+ ("author_filter", 120),
+ ("source_filter", 121),
+ ("show_filters", 122),
+ ]
+ ],
+ {"group": "Website structure", "label": "Blog recent entries"},
+ ),
+ 124: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {"label": "Event calendar", "page_type": ["events.EventsIndexPage"]},
+ ),
+ 125: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 115),
+ ("index_page", 124),
+ ("entries_count", 117),
+ ("category_filter", 118),
+ ("tag_filter", 119),
+ ("author_filter", 120),
+ ("source_filter", 121),
+ ("show_filters", 122),
+ ]
+ ],
+ {"group": "Website structure", "label": "Event calendar recent entries"},
+ ),
+ 126: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "Incompatible with the bottom call-to-action.",
+ "label": "Bottom detail: text",
+ "required": False,
+ },
+ ),
+ 127: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 51),
+ ("heading_tag", 26),
+ ("description", 61),
+ ("image", 68),
+ ("image_ratio", 6),
+ ("image_badge", 80),
+ ("link", 81),
+ ("url", 82),
+ ("document", 83),
+ ("top_detail_text", 84),
+ ("top_detail_icon", 85),
+ ("top_detail_badges_tags", 88),
+ ("bottom_detail_text", 126),
+ ("bottom_detail_icon", 90),
+ ("call_to_action", 93),
+ ("grey_background", 94),
+ ("no_background", 95),
+ ("no_border", 96),
+ ("shadow", 97),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Vertical card"},
+ ),
+ 128: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Person",),
+ {
+ "help_text": "Optional, all values can be manually specified or overriden below",
+ "label": "Person",
+ "required": False,
+ },
+ ),
+ 129: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255, "required": False}),
+ 130: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255, "required": False}),
+ 131: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"label": "Organization", "max_length": 255, "required": False},
+ ),
+ 132: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"label": "Contact info", "max_length": 500, "required": False},
+ ),
+ 133: ("wagtail.blocks.StreamBlock", [[("tag", 55)]], {"label": "Tags", "required": False}),
+ 134: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("contact", 128),
+ ("link", 81),
+ ("heading_tag", 2),
+ ("name", 129),
+ ("role", 130),
+ ("organization", 131),
+ ("contact_info", 132),
+ ("image", 68),
+ ("tags", 133),
+ ]
+ ],
+ {"group": "Extra components", "label": "Contact card"},
+ ),
+ 135: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 109),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("link", 57),
+ ("iframe", 114),
+ ("tile", 108),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("stepper", 78),
+ ("card", 127),
+ ("contact_card", 134),
+ ]
+ ],
+ {"label": "Content"},
+ ),
+ 136: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 51), ("content", 135)]],
+ {"label": "Tab", "max_num": 15, "min_num": 1},
+ ),
+ 137: (
+ "wagtail.blocks.StreamBlock",
+ [[("tabs", 136)]],
+ {"group": "DSFR components", "label": "Tabs"},
+ ),
+ 138: ("wagtailmarkdown.blocks.MarkdownBlock", (), {"group": "Expert syntax", "label": "Markdown"}),
+ 139: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 110), ("url", 111), ("height", 112), ("parameters", 113)]],
+ {"group": "Expert syntax", "label": "Iframe"},
+ ),
+ 140: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {"default": 3, "label": "Top margin", "max_value": 15, "min_value": 0},
+ ),
+ 141: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {"default": 3, "label": "Bottom margin", "max_value": 15, "min_value": 0},
+ ),
+ 142: (
+ "wagtail.blocks.StructBlock",
+ [[("top_margin", 140), ("bottom_margin", 141)]],
+ {"group": "Page structure", "label": "Separator"},
+ ),
+ 143: (
+ "wagtail.images.blocks.ImageChooserBlock",
+ (),
+ {"label": "Background image", "required": False},
+ ),
+ 144: (
+ "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,
+ },
+ ),
+ 145: (
+ "wagtail.blocks.RegexBlock",
+ (),
+ {
+ "error_messages": {"invalid": "Incorrect color format, must be #fff or #f5f5f5"},
+ "help_text": "This field is obsolete and will be removed in the near future. Replace it with the background color.",
+ "label": "Background color, hexadecimal format (obsolete)",
+ "regex": "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
+ "required": False,
+ },
+ ),
+ 146: (
+ "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,
+ },
+ ),
+ 147: (
+ "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,
+ },
+ ),
+ 148: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 109),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("link", 57),
+ ("iframe", 114),
+ ("tile", 108),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("stepper", 78),
+ ("card", 127),
+ ("contact_card", 134),
+ ]
+ ],
+ {"label": "Column content"},
+ ),
+ 149: (
+ "wagtail.blocks.StructBlock",
+ [[("width", 147), ("content", 148)]],
+ {"group": "Page structure", "label": "Adjustable column"},
+ ),
+ 150: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 109),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("link", 57),
+ ("iframe", 114),
+ ("tile", 108),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("stepper", 78),
+ ("card", 127),
+ ("column", 149),
+ ]
+ ],
+ {"label": "Columns"},
+ ),
+ 151: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("bg_image", 143),
+ ("bg_color_class", 144),
+ ("bg_color", 145),
+ ("title", 1),
+ ("heading_tag", 146),
+ ("columns", 150),
+ ]
+ ],
+ {"group": "Page structure", "label": "Multiple columns"},
+ ),
+ 152: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {"choices": [("3", "3/12"), ("4", "4/12"), ("6", "6/12")], "label": "Column width"},
+ ),
+ 153: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 109),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("link", 57),
+ ("iframe", 114),
+ ("tile", 108),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("stepper", 78),
+ ("card", 127),
+ ("contact_card", 134),
+ ]
+ ],
+ {"label": "Items"},
+ ),
+ 154: (
+ "wagtail.blocks.StructBlock",
+ [[("column_width", 152), ("items", 153)]],
+ {"group": "Page structure", "label": "Item grid"},
+ ),
+ 155: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 109),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("link", 57),
+ ("iframe", 114),
+ ("tile", 108),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("stepper", 78),
+ ("image_and_text", 22),
+ ("card", 98),
+ ("tabs", 137),
+ ("item_grid", 154),
+ ]
+ ],
+ {"label": "Content"},
+ ),
+ 156: (
+ "wagtail.blocks.StructBlock",
+ [[("bg_image", 143), ("bg_color_class", 144), ("content", 155)]],
+ {"group": "Page structure", "label": "Full width background"},
+ ),
+ 157: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 109),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("link", 57),
+ ("iframe", 114),
+ ("tile", 108),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("stepper", 78),
+ ("image_and_text", 22),
+ ("card", 98),
+ ("tabs", 137),
+ ("item_grid", 154),
+ ]
+ ],
+ {"label": "Main content"},
+ ),
+ 158: ("wagtail.blocks.CharBlock", (), {"label": "Side menu title", "required": False}),
+ 159: (
+ "wagtail.blocks.RawHTMLBlock",
+ (),
+ {
+ "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.",
+ "label": "HTML",
+ },
+ ),
+ 160: ("wagtail.blocks.PageChooserBlock", (), {"label": "Parent page"}),
+ 161: ("wagtail.blocks.StructBlock", [[("page", 160)]], {"label": "Page tree"}),
+ 162: (
+ "wagtail.blocks.StreamBlock",
+ [[("html", 159), ("pagetree", 161)]],
+ {"label": "Side menu content"},
+ ),
+ 163: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("bg_image", 143),
+ ("bg_color_class", 144),
+ ("main_content", 157),
+ ("sidemenu_title", 158),
+ ("sidemenu_content", 162),
+ ]
+ ],
+ {"group": "Page structure", "label": "Full width background with side menu"},
+ ),
+ 164: (
+ "wagtail.blocks.static_block.StaticBlock",
+ (),
+ {
+ "admin_text": "A simple, alphabetical list of the subpages of the current page.",
+ "group": "Website structure",
+ "label": "Subpages list",
+ "template": "content_manager/blocks/subpages_list.html",
+ },
+ ),
+ 165: (
+ "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,
+ },
+ ),
+ },
+ ),
+ ),
+ migrations.AlterField(
+ model_name="blogindexpage",
+ name="body",
+ field=wagtail.fields.StreamField(
+ [
+ ("paragraph", 0),
+ ("image", 9),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("badges_list", 50),
+ ("tags_list", 56),
+ ("link", 57),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("stepper", 78),
+ ("card", 98),
+ ("tile", 108),
+ ("tabs", 137),
+ ("markdown", 138),
+ ("iframe", 139),
+ ("separator", 142),
+ ("multicolumns", 151),
+ ("item_grid", 154),
+ ("fullwidthbackground", 156),
+ ("fullwidthbackgroundwithsidemenu", 163),
+ ("subpageslist", 164),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("html", 165),
+ ],
+ 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),
+ ]
+ ],
+ {},
+ ),
+ 10: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("left", "Left"), ("right", "Right")],
+ "label": "Side where the image is displayed",
+ },
+ ),
+ 11: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {"choices": [("3", "3/12"), ("5", "5/12"), ("6", "6/12")], "label": "Image width"},
+ ),
+ 12: (
+ "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,
+ },
+ ),
+ 13: (
+ "wagtail.documents.blocks.DocumentChooserBlock",
+ (),
+ {
+ "help_text": "Use either this, the external URL or the page parameter.",
+ "label": "Document",
+ "required": False,
+ },
+ ),
+ 14: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "help_text": "Use either this, the document or the page parameter.",
+ "label": "External URL",
+ "required": False,
+ },
+ ),
+ 15: ("wagtail.blocks.CharBlock", (), {"label": "Link label", "required": False}),
+ 16: (
+ "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,
+ },
+ ),
+ 17: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-link--sm", "Small"), ("", "Medium"), ("fr-link--lg", "Large")],
+ "label": "Size",
+ "required": False,
+ },
+ ),
+ 18: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 12),
+ ("document", 13),
+ ("external_url", 14),
+ ("text", 15),
+ ("icon", 16),
+ ("size", 17),
+ ]
+ ],
+ {
+ "help_text": "The link is shown at the bottom of the text block, with an arrow",
+ "label": "Link",
+ "required": False,
+ },
+ ),
+ 19: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link label (obsolete)",
+ "required": False,
+ },
+ ),
+ 20: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Internal link (obsolete)",
+ "required": False,
+ },
+ ),
+ 21: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link URL (obsolete)",
+ "required": False,
+ },
+ ),
+ 22: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("image", 3),
+ ("image_side", 10),
+ ("image_ratio", 11),
+ ("text", 0),
+ ("link", 18),
+ ("link_label", 19),
+ ("page", 20),
+ ("link_url", 21),
+ ]
+ ],
+ {"label": "Image and text"},
+ ),
+ 23: ("wagtail.blocks.CharBlock", (), {"label": "Message title", "required": False}),
+ 24: ("wagtail.blocks.TextBlock", (), {"label": "Message text", "required": False}),
+ 25: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [
+ ("error", "Error"),
+ ("success", "Success"),
+ ("info", "Information"),
+ ("warning", "Warning"),
+ ],
+ "label": "Message type",
+ },
+ ),
+ 26: (
+ "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",
+ },
+ ),
+ 27: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 23), ("description", 24), ("level", 25), ("heading_tag", 26)]],
+ {"label": "Alert message"},
+ ),
+ 28: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text", "required": False}),
+ 29: (
+ "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,
+ },
+ ),
+ 30: ("content_manager.blocks.IconPickerBlock", (), {"label": "Icon", "required": False}),
+ 31: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")],
+ "label": "Icon side",
+ "required": False,
+ },
+ ),
+ 32: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 12),
+ ("document", 13),
+ ("external_url", 14),
+ ("text", 15),
+ ("button_type", 29),
+ ("icon_class", 30),
+ ("icon_side", 31),
+ ]
+ ],
+ {"label": "Button"},
+ ),
+ 33: (
+ "wagtail.blocks.StreamBlock",
+ [[("button", 32)]],
+ {
+ "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",
+ },
+ ),
+ 34: (
+ "wagtail.blocks.StreamBlock",
+ [[("buttons", 33)]],
+ {"label": "Call-to-action buttons", "max_num": 1, "required": False},
+ ),
+ 35: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.",
+ "label": "Call to action label (obsolete)",
+ "required": False,
+ },
+ ),
+ 36: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.",
+ "label": "Link (obsolete)",
+ "required": False,
+ },
+ ),
+ 37: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 28), ("cta_buttons", 34), ("cta_label", 35), ("cta_url", 36)]],
+ {"label": "Text and call to action"},
+ ),
+ 38: ("wagtail.blocks.CharBlock", (), {"label": "Video title", "required": False}),
+ 39: (
+ "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",
+ },
+ ),
+ 40: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-ratio-16x9", "16x9"), ("fr-ratio-4x3", "4x3"), ("fr-ratio-1x1", "1x1")],
+ "label": "Video ratio",
+ "required": False,
+ },
+ ),
+ 41: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"default": "Transcription", "label": "Title", "required": False},
+ ),
+ 42: ("wagtail.blocks.RichTextBlock", (), {"label": "Transcription content", "required": False}),
+ 43: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 41), ("content", 42)]],
+ {"label": "Transcription", "required": False},
+ ),
+ 44: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 38),
+ ("caption", 7),
+ ("url", 39),
+ ("width", 5),
+ ("video_ratio", 40),
+ ("transcription", 43),
+ ]
+ ],
+ {"label": "Video"},
+ ),
+ 45: ("wagtail.blocks.StructBlock", [[("title", 41), ("content", 42)]], {"label": "Transcription"}),
+ 46: ("wagtail.blocks.CharBlock", (), {"label": "Badge label", "required": False}),
+ 47: (
+ "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,
+ },
+ ),
+ 48: ("wagtail.blocks.BooleanBlock", (), {"label": "Hide badge icon", "required": False}),
+ 49: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 46), ("color", 47), ("hide_icon", 48)]],
+ {"label": "Badge"},
+ ),
+ 50: ("wagtail.blocks.StreamBlock", [[("badge", 49)]], {"label": "Badge list"}),
+ 51: ("wagtail.blocks.CharBlock", (), {"label": "Title"}),
+ 52: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tag", "required": False}),
+ 53: (
+ "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,
+ },
+ ),
+ 54: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 12), ("document", 13), ("external_url", 14)]],
+ {"required": False},
+ ),
+ 55: (
+ "wagtail.blocks.StructBlock",
+ [[("label", 51), ("is_small", 52), ("color", 53), ("icon_class", 30), ("link", 54)]],
+ {"label": "Tag"},
+ ),
+ 56: ("wagtail.blocks.StreamBlock", [[("tag", 55)]], {"label": "Tag list"}),
+ 57: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 12),
+ ("document", 13),
+ ("external_url", 14),
+ ("text", 15),
+ ("icon", 16),
+ ("size", 17),
+ ]
+ ],
+ {"label": "Single link"},
+ ),
+ 58: ("wagtail.blocks.RichTextBlock", (), {"label": "Content"}),
+ 59: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 51), ("content", 58)]],
+ {"label": "Accordion", "max_num": 15, "min_num": 1},
+ ),
+ 60: (
+ "wagtail.blocks.StreamBlock",
+ [[("title", 51), ("accordion", 59)]],
+ {"group": "DSFR components", "label": "Accordions"},
+ ),
+ 61: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": [
+ "bold",
+ "italic",
+ "link",
+ "document-link",
+ "superscript",
+ "subscript",
+ "strikethrough",
+ ],
+ "label": "Content",
+ "required": False,
+ },
+ ),
+ 62: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 12),
+ ("document", 13),
+ ("external_url", 14),
+ ("text", 15),
+ ("button_type", 29),
+ ("icon_class", 30),
+ ("icon_side", 31),
+ ]
+ ],
+ {"label": "Button", "required": False},
+ ),
+ 63: (
+ "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,
+ },
+ ),
+ 64: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 26),
+ ("icon_class", 30),
+ ("text", 61),
+ ("button", 62),
+ ("color", 63),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Callout"},
+ ),
+ 65: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": [
+ "bold",
+ "italic",
+ "link",
+ "document-link",
+ "superscript",
+ "subscript",
+ "strikethrough",
+ ],
+ "label": "Content",
+ },
+ ),
+ 66: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-text--sm", "Small"), ("", "Medium"), ("fr-text--lg", "Large")],
+ "label": "Size",
+ "required": False,
+ },
+ ),
+ 67: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 65), ("color", 63), ("size", 66)]],
+ {"group": "DSFR components", "label": "Highlight"},
+ ),
+ 68: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image", "required": False}),
+ 69: ("wagtail.blocks.CharBlock", (), {"label": "Quote"}),
+ 70: ("wagtail.blocks.CharBlock", (), {"label": "Author name", "required": False}),
+ 71: ("wagtail.blocks.CharBlock", (), {"label": "Author title", "required": False}),
+ 72: (
+ "wagtail.blocks.StructBlock",
+ [[("image", 68), ("quote", 69), ("author_name", 70), ("author_title", 71), ("color", 63)]],
+ {"group": "DSFR components", "label": "Quote"},
+ ),
+ 73: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {"label": "Number of steps", "max_value": 8, "min_value": 1},
+ ),
+ 74: ("wagtail.blocks.IntegerBlock", (), {"label": "Current step", "max_value": 8, "min_value": 1}),
+ 75: ("wagtail.blocks.TextBlock", (), {"label": "Detail", "required": False}),
+ 76: ("wagtail.blocks.StructBlock", [[("title", 51), ("detail", 75)]], {"label": "Step"}),
+ 77: ("wagtail.blocks.StreamBlock", [[("step", 76)]], {"label": "Steps"}),
+ 78: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 51), ("total", 73), ("current", 74), ("steps", 77)]],
+ {"group": "DSFR components", "label": "Stepper"},
+ ),
+ 79: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-card--horizontal-tier", "1/3"), ("fr-card--horizontal-half", "50/50")],
+ "label": "Image ratio",
+ "required": False,
+ },
+ ),
+ 80: (
+ "wagtail.blocks.StreamBlock",
+ [[("badge", 49)]],
+ {
+ "help_text": "Only used if the card has an image.",
+ "label": "Image area badge",
+ "max_num": 1,
+ "required": False,
+ },
+ ),
+ 81: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 12), ("document", 13), ("external_url", 14)]],
+ {"label": "Link", "required": False},
+ ),
+ 82: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "group": "target",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link (obsolete)",
+ "required": False,
+ },
+ ),
+ 83: (
+ "wagtail.documents.blocks.DocumentChooserBlock",
+ (),
+ {
+ "group": "target",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "or Document (obsolete)",
+ "required": False,
+ },
+ ),
+ 84: ("wagtail.blocks.CharBlock", (), {"label": "Top detail: text", "required": False}),
+ 85: (
+ "content_manager.blocks.IconPickerBlock",
+ (),
+ {"label": "Top detail: icon", "required": False},
+ ),
+ 86: ("wagtail.blocks.StreamBlock", [[("badge", 49)]], {}),
+ 87: ("wagtail.blocks.StreamBlock", [[("tag", 55)]], {}),
+ 88: (
+ "wagtail.blocks.StreamBlock",
+ [[("badges", 86), ("tags", 87)]],
+ {"label": "Top detail: badges or tags", "max_num": 1, "required": False},
+ ),
+ 89: (
+ "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,
+ },
+ ),
+ 90: (
+ "content_manager.blocks.IconPickerBlock",
+ (),
+ {"label": "Bottom detail: icon", "required": False},
+ ),
+ 91: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 12), ("document", 13), ("external_url", 14), ("text", 15)]],
+ {"label": "Link"},
+ ),
+ 92: ("wagtail.blocks.StreamBlock", [[("link", 91)]], {}),
+ 93: (
+ "wagtail.blocks.StreamBlock",
+ [[("links", 92), ("buttons", 33)]],
+ {
+ "help_text": "Incompatible with the bottom detail text.",
+ "label": "Bottom call-to-action: links or buttons",
+ "max_num": 1,
+ "required": False,
+ },
+ ),
+ 94: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with grey background", "required": False}),
+ 95: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without background", "required": False}),
+ 96: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without border", "required": False}),
+ 97: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with a shadow", "required": False}),
+ 98: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 51),
+ ("heading_tag", 26),
+ ("description", 61),
+ ("image", 68),
+ ("image_ratio", 79),
+ ("image_badge", 80),
+ ("link", 81),
+ ("url", 82),
+ ("document", 83),
+ ("top_detail_text", 84),
+ ("top_detail_icon", 85),
+ ("top_detail_badges_tags", 88),
+ ("bottom_detail_text", 89),
+ ("bottom_detail_icon", 90),
+ ("call_to_action", 93),
+ ("grey_background", 94),
+ ("no_background", 95),
+ ("no_border", 96),
+ ("shadow", 97),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Horizontal card"},
+ ),
+ 99: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": ["bold", "italic", "superscript", "subscript", "strikethrough"],
+ "label": "Content",
+ "required": False,
+ },
+ ),
+ 100: (
+ "wagtail.images.blocks.ImageChooserBlock",
+ (),
+ {"help_text": "Prefer SVG files.", "label": "Image", "required": False},
+ ),
+ 101: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "If the tile links to a downloadable document, the values are pre-filled.",
+ "label": "Detail text",
+ "required": False,
+ },
+ ),
+ 102: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tile", "required": False}),
+ 103: (
+ "wagtail.blocks.BooleanBlock",
+ (),
+ {"label": "Tile with grey background", "required": False},
+ ),
+ 104: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without background", "required": False}),
+ 105: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without border", "required": False}),
+ 106: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with a shadow", "required": False}),
+ 107: ("wagtail.blocks.BooleanBlock", (), {"label": "Horizontal tile", "required": False}),
+ 108: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 51),
+ ("heading_tag", 26),
+ ("description", 99),
+ ("image", 100),
+ ("link", 81),
+ ("top_detail_badges_tags", 88),
+ ("detail_text", 101),
+ ("is_small", 102),
+ ("grey_background", 103),
+ ("no_background", 104),
+ ("no_border", 105),
+ ("shadow", 106),
+ ("is_horizontal", 107),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Tile"},
+ ),
+ 109: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 2),
+ ("image", 3),
+ ("alt", 4),
+ ("width", 5),
+ ("image_ratio", 6),
+ ("caption", 7),
+ ("url", 8),
+ ]
+ ],
+ {"label": "Image"},
+ ),
+ 110: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "Accessibility: The title should describe, in a clear and concise manner, the embedded content.",
+ "label": "Title",
+ },
+ ),
+ 111: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "help_text": "Example for Tally: https://tally.so/embed/w2jMRa",
+ "label": "URL of the iframe",
+ },
+ ),
+ 112: ("wagtail.blocks.IntegerBlock", (), {"label": "Height (in pixels)"}),
+ 113: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "For example: \"allow='geolocation'\".",
+ "label": "Parameters",
+ "required": False,
+ },
+ ),
+ 114: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 110), ("url", 111), ("height", 112), ("parameters", 113)]],
+ {"group": "DSFR components", "label": "Iframe"},
+ ),
+ 115: (
+ "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,
+ },
+ ),
+ 116: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {"label": "Blog", "page_type": ["blog.BlogIndexPage"]},
+ ),
+ 117: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {
+ "default": 3,
+ "label": "Number of entries",
+ "max_value": 8,
+ "min_value": 1,
+ "required": False,
+ },
+ ),
+ 118: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Category",),
+ {"label": "Filter by category", "required": False},
+ ),
+ 119: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("content_manager.Tag",),
+ {"label": "Filter by tag", "required": False},
+ ),
+ 120: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Person",),
+ {"label": "Filter by author", "required": False},
+ ),
+ 121: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Organization",),
+ {
+ "help_text": "The source is the organization of the post author",
+ "label": "Filter by source",
+ "required": False,
+ },
+ ),
+ 122: (
+ "wagtail.blocks.BooleanBlock",
+ (),
+ {"default": False, "label": "Show filters", "required": False},
+ ),
+ 123: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 115),
+ ("blog", 116),
+ ("entries_count", 117),
+ ("category_filter", 118),
+ ("tag_filter", 119),
+ ("author_filter", 120),
+ ("source_filter", 121),
+ ("show_filters", 122),
+ ]
+ ],
+ {"group": "Website structure", "label": "Blog recent entries"},
+ ),
+ 124: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {"label": "Event calendar", "page_type": ["events.EventsIndexPage"]},
+ ),
+ 125: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 115),
+ ("index_page", 124),
+ ("entries_count", 117),
+ ("category_filter", 118),
+ ("tag_filter", 119),
+ ("author_filter", 120),
+ ("source_filter", 121),
+ ("show_filters", 122),
+ ]
+ ],
+ {"group": "Website structure", "label": "Event calendar recent entries"},
+ ),
+ 126: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "Incompatible with the bottom call-to-action.",
+ "label": "Bottom detail: text",
+ "required": False,
+ },
+ ),
+ 127: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 51),
+ ("heading_tag", 26),
+ ("description", 61),
+ ("image", 68),
+ ("image_ratio", 6),
+ ("image_badge", 80),
+ ("link", 81),
+ ("url", 82),
+ ("document", 83),
+ ("top_detail_text", 84),
+ ("top_detail_icon", 85),
+ ("top_detail_badges_tags", 88),
+ ("bottom_detail_text", 126),
+ ("bottom_detail_icon", 90),
+ ("call_to_action", 93),
+ ("grey_background", 94),
+ ("no_background", 95),
+ ("no_border", 96),
+ ("shadow", 97),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Vertical card"},
+ ),
+ 128: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Person",),
+ {
+ "help_text": "Optional, all values can be manually specified or overriden below",
+ "label": "Person",
+ "required": False,
+ },
+ ),
+ 129: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255, "required": False}),
+ 130: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255, "required": False}),
+ 131: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"label": "Organization", "max_length": 255, "required": False},
+ ),
+ 132: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"label": "Contact info", "max_length": 500, "required": False},
+ ),
+ 133: ("wagtail.blocks.StreamBlock", [[("tag", 55)]], {"label": "Tags", "required": False}),
+ 134: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("contact", 128),
+ ("link", 81),
+ ("heading_tag", 2),
+ ("name", 129),
+ ("role", 130),
+ ("organization", 131),
+ ("contact_info", 132),
+ ("image", 68),
+ ("tags", 133),
+ ]
+ ],
+ {"group": "Extra components", "label": "Contact card"},
+ ),
+ 135: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 109),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("link", 57),
+ ("iframe", 114),
+ ("tile", 108),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("stepper", 78),
+ ("card", 127),
+ ("contact_card", 134),
+ ]
+ ],
+ {"label": "Content"},
+ ),
+ 136: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 51), ("content", 135)]],
+ {"label": "Tab", "max_num": 15, "min_num": 1},
+ ),
+ 137: (
+ "wagtail.blocks.StreamBlock",
+ [[("tabs", 136)]],
+ {"group": "DSFR components", "label": "Tabs"},
+ ),
+ 138: ("wagtailmarkdown.blocks.MarkdownBlock", (), {"group": "Expert syntax", "label": "Markdown"}),
+ 139: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 110), ("url", 111), ("height", 112), ("parameters", 113)]],
+ {"group": "Expert syntax", "label": "Iframe"},
+ ),
+ 140: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {"default": 3, "label": "Top margin", "max_value": 15, "min_value": 0},
+ ),
+ 141: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {"default": 3, "label": "Bottom margin", "max_value": 15, "min_value": 0},
+ ),
+ 142: (
+ "wagtail.blocks.StructBlock",
+ [[("top_margin", 140), ("bottom_margin", 141)]],
+ {"group": "Page structure", "label": "Separator"},
+ ),
+ 143: (
+ "wagtail.images.blocks.ImageChooserBlock",
+ (),
+ {"label": "Background image", "required": False},
+ ),
+ 144: (
+ "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,
+ },
+ ),
+ 145: (
+ "wagtail.blocks.RegexBlock",
+ (),
+ {
+ "error_messages": {"invalid": "Incorrect color format, must be #fff or #f5f5f5"},
+ "help_text": "This field is obsolete and will be removed in the near future. Replace it with the background color.",
+ "label": "Background color, hexadecimal format (obsolete)",
+ "regex": "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
+ "required": False,
+ },
+ ),
+ 146: (
+ "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,
+ },
+ ),
+ 147: (
+ "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,
+ },
+ ),
+ 148: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 109),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("link", 57),
+ ("iframe", 114),
+ ("tile", 108),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("stepper", 78),
+ ("card", 127),
+ ("contact_card", 134),
+ ]
+ ],
+ {"label": "Column content"},
+ ),
+ 149: (
+ "wagtail.blocks.StructBlock",
+ [[("width", 147), ("content", 148)]],
+ {"group": "Page structure", "label": "Adjustable column"},
+ ),
+ 150: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 109),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("link", 57),
+ ("iframe", 114),
+ ("tile", 108),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("stepper", 78),
+ ("card", 127),
+ ("column", 149),
+ ]
+ ],
+ {"label": "Columns"},
+ ),
+ 151: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("bg_image", 143),
+ ("bg_color_class", 144),
+ ("bg_color", 145),
+ ("title", 1),
+ ("heading_tag", 146),
+ ("columns", 150),
+ ]
+ ],
+ {"group": "Page structure", "label": "Multiple columns"},
+ ),
+ 152: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {"choices": [("3", "3/12"), ("4", "4/12"), ("6", "6/12")], "label": "Column width"},
+ ),
+ 153: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 109),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("link", 57),
+ ("iframe", 114),
+ ("tile", 108),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("stepper", 78),
+ ("card", 127),
+ ("contact_card", 134),
+ ]
+ ],
+ {"label": "Items"},
+ ),
+ 154: (
+ "wagtail.blocks.StructBlock",
+ [[("column_width", 152), ("items", 153)]],
+ {"group": "Page structure", "label": "Item grid"},
+ ),
+ 155: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 109),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("link", 57),
+ ("iframe", 114),
+ ("tile", 108),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("stepper", 78),
+ ("image_and_text", 22),
+ ("card", 98),
+ ("tabs", 137),
+ ("item_grid", 154),
+ ]
+ ],
+ {"label": "Content"},
+ ),
+ 156: (
+ "wagtail.blocks.StructBlock",
+ [[("bg_image", 143), ("bg_color_class", 144), ("content", 155)]],
+ {"group": "Page structure", "label": "Full width background"},
+ ),
+ 157: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 109),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("link", 57),
+ ("iframe", 114),
+ ("tile", 108),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("stepper", 78),
+ ("image_and_text", 22),
+ ("card", 98),
+ ("tabs", 137),
+ ("item_grid", 154),
+ ]
+ ],
+ {"label": "Main content"},
+ ),
+ 158: ("wagtail.blocks.CharBlock", (), {"label": "Side menu title", "required": False}),
+ 159: (
+ "wagtail.blocks.RawHTMLBlock",
+ (),
+ {
+ "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.",
+ "label": "HTML",
+ },
+ ),
+ 160: ("wagtail.blocks.PageChooserBlock", (), {"label": "Parent page"}),
+ 161: ("wagtail.blocks.StructBlock", [[("page", 160)]], {"label": "Page tree"}),
+ 162: (
+ "wagtail.blocks.StreamBlock",
+ [[("html", 159), ("pagetree", 161)]],
+ {"label": "Side menu content"},
+ ),
+ 163: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("bg_image", 143),
+ ("bg_color_class", 144),
+ ("main_content", 157),
+ ("sidemenu_title", 158),
+ ("sidemenu_content", 162),
+ ]
+ ],
+ {"group": "Page structure", "label": "Full width background with side menu"},
+ ),
+ 164: (
+ "wagtail.blocks.static_block.StaticBlock",
+ (),
+ {
+ "admin_text": "A simple, alphabetical list of the subpages of the current page.",
+ "group": "Website structure",
+ "label": "Subpages list",
+ "template": "content_manager/blocks/subpages_list.html",
+ },
+ ),
+ 165: (
+ "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,
+ },
+ ),
+ },
+ ),
+ ),
+ migrations.AlterField(
+ model_name="category",
+ name="colophon",
+ field=wagtail.fields.StreamField(
+ [("paragraph", 0), ("imageandtext", 14), ("quote", 20), ("multicolumns", 139), ("contact_card", 143)],
+ blank=True,
+ block_lookup={
+ 0: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text"}),
+ 1: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image"}),
+ 2: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("left", "Left"), ("right", "Right")],
+ "label": "Side where the image is displayed",
+ },
+ ),
+ 3: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {"choices": [("3", "3/12"), ("5", "5/12"), ("6", "6/12")], "label": "Image width"},
+ ),
+ 4: (
+ "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,
+ },
+ ),
+ 5: (
+ "wagtail.documents.blocks.DocumentChooserBlock",
+ (),
+ {
+ "help_text": "Use either this, the external URL or the page parameter.",
+ "label": "Document",
+ "required": False,
+ },
+ ),
+ 6: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "help_text": "Use either this, the document or the page parameter.",
+ "label": "External URL",
+ "required": False,
+ },
+ ),
+ 7: ("wagtail.blocks.CharBlock", (), {"label": "Link label", "required": False}),
+ 8: (
+ "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,
+ },
+ ),
+ 9: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-link--sm", "Small"), ("", "Medium"), ("fr-link--lg", "Large")],
+ "label": "Size",
+ "required": False,
+ },
+ ),
+ 10: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 4), ("document", 5), ("external_url", 6), ("text", 7), ("icon", 8), ("size", 9)]],
+ {
+ "help_text": "The link is shown at the bottom of the text block, with an arrow",
+ "label": "Link",
+ "required": False,
+ },
+ ),
+ 11: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link label (obsolete)",
+ "required": False,
+ },
+ ),
+ 12: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Internal link (obsolete)",
+ "required": False,
+ },
+ ),
+ 13: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link URL (obsolete)",
+ "required": False,
+ },
+ ),
+ 14: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("image", 1),
+ ("image_side", 2),
+ ("image_ratio", 3),
+ ("text", 0),
+ ("link", 10),
+ ("link_label", 11),
+ ("page", 12),
+ ("link_url", 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.RegexBlock",
+ (),
+ {
+ "error_messages": {"invalid": "Incorrect color format, must be #fff or #f5f5f5"},
+ "help_text": "This field is obsolete and will be removed in the near future. Replace it with the background color.",
+ "label": "Background color, hexadecimal format (obsolete)",
+ "regex": "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
+ "required": False,
+ },
+ ),
+ 24: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": False}),
+ 25: (
+ "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,
+ },
+ ),
+ 26: (
+ "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,
+ },
+ ),
+ 27: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"label": "Alternative text (textual description of the image)", "required": False},
+ ),
+ 28: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [
+ ("fr-content-media--sm", "Small"),
+ ("", "Medium"),
+ ("fr-content-media--lg", "Large"),
+ ],
+ "label": "Witdh",
+ "required": False,
+ },
+ ),
+ 29: (
+ "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,
+ },
+ ),
+ 30: ("wagtail.blocks.CharBlock", (), {"label": "Caption", "required": False}),
+ 31: ("wagtail.blocks.URLBlock", (), {"label": "Link", "required": False}),
+ 32: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 24),
+ ("heading_tag", 26),
+ ("image", 1),
+ ("alt", 27),
+ ("width", 28),
+ ("image_ratio", 29),
+ ("caption", 30),
+ ("url", 31),
+ ]
+ ],
+ {"label": "Image"},
+ ),
+ 33: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("image", 1),
+ ("image_side", 2),
+ ("image_ratio", 3),
+ ("text", 0),
+ ("link", 10),
+ ("link_label", 11),
+ ("page", 12),
+ ("link_url", 13),
+ ]
+ ],
+ {"label": "Image and text"},
+ ),
+ 34: ("wagtail.blocks.CharBlock", (), {"label": "Message title", "required": False}),
+ 35: ("wagtail.blocks.TextBlock", (), {"label": "Message text", "required": False}),
+ 36: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [
+ ("error", "Error"),
+ ("success", "Success"),
+ ("info", "Information"),
+ ("warning", "Warning"),
+ ],
+ "label": "Message type",
+ },
+ ),
+ 37: (
+ "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",
+ },
+ ),
+ 38: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 34), ("description", 35), ("level", 36), ("heading_tag", 37)]],
+ {"label": "Alert message"},
+ ),
+ 39: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text", "required": False}),
+ 40: (
+ "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,
+ },
+ ),
+ 41: ("content_manager.blocks.IconPickerBlock", (), {"label": "Icon", "required": False}),
+ 42: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")],
+ "label": "Icon side",
+ "required": False,
+ },
+ ),
+ 43: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 4),
+ ("document", 5),
+ ("external_url", 6),
+ ("text", 7),
+ ("button_type", 40),
+ ("icon_class", 41),
+ ("icon_side", 42),
+ ]
+ ],
+ {"label": "Button"},
+ ),
+ 44: (
+ "wagtail.blocks.StreamBlock",
+ [[("button", 43)]],
+ {
+ "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",
+ },
+ ),
+ 45: (
+ "wagtail.blocks.StreamBlock",
+ [[("buttons", 44)]],
+ {"label": "Call-to-action buttons", "max_num": 1, "required": False},
+ ),
+ 46: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.",
+ "label": "Call to action label (obsolete)",
+ "required": False,
+ },
+ ),
+ 47: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.",
+ "label": "Link (obsolete)",
+ "required": False,
+ },
+ ),
+ 48: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 39), ("cta_buttons", 45), ("cta_label", 46), ("cta_url", 47)]],
+ {"label": "Text and call to action"},
+ ),
+ 49: ("wagtail.blocks.CharBlock", (), {"label": "Video title", "required": False}),
+ 50: (
+ "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",
+ },
+ ),
+ 51: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-ratio-16x9", "16x9"), ("fr-ratio-4x3", "4x3"), ("fr-ratio-1x1", "1x1")],
+ "label": "Video ratio",
+ "required": False,
+ },
+ ),
+ 52: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"default": "Transcription", "label": "Title", "required": False},
+ ),
+ 53: ("wagtail.blocks.RichTextBlock", (), {"label": "Transcription content", "required": False}),
+ 54: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 52), ("content", 53)]],
+ {"label": "Transcription", "required": False},
+ ),
+ 55: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 49),
+ ("caption", 30),
+ ("url", 50),
+ ("width", 28),
+ ("video_ratio", 51),
+ ("transcription", 54),
+ ]
+ ],
+ {"label": "Video"},
+ ),
+ 56: ("wagtail.blocks.StructBlock", [[("title", 52), ("content", 53)]], {"label": "Transcription"}),
+ 57: ("wagtail.blocks.CharBlock", (), {"label": "Title"}),
+ 58: ("wagtail.blocks.RichTextBlock", (), {"label": "Content"}),
+ 59: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 57), ("content", 58)]],
+ {"label": "Accordion", "max_num": 15, "min_num": 1},
+ ),
+ 60: (
+ "wagtail.blocks.StreamBlock",
+ [[("title", 57), ("accordion", 59)]],
+ {"group": "DSFR components", "label": "Accordions"},
+ ),
+ 61: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": [
+ "bold",
+ "italic",
+ "link",
+ "document-link",
+ "superscript",
+ "subscript",
+ "strikethrough",
+ ],
+ "label": "Content",
+ "required": False,
+ },
+ ),
+ 62: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 4),
+ ("document", 5),
+ ("external_url", 6),
+ ("text", 7),
+ ("button_type", 40),
+ ("icon_class", 41),
+ ("icon_side", 42),
+ ]
+ ],
+ {"label": "Button", "required": False},
+ ),
+ 63: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 24),
+ ("heading_tag", 37),
+ ("icon_class", 41),
+ ("text", 61),
+ ("button", 62),
+ ("color", 19),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Callout"},
+ ),
+ 64: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": [
+ "bold",
+ "italic",
+ "link",
+ "document-link",
+ "superscript",
+ "subscript",
+ "strikethrough",
+ ],
+ "label": "Content",
+ },
+ ),
+ 65: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-text--sm", "Small"), ("", "Medium"), ("fr-text--lg", "Large")],
+ "label": "Size",
+ "required": False,
+ },
+ ),
+ 66: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 64), ("color", 19), ("size", 65)]],
+ {"group": "DSFR components", "label": "Highlight"},
+ ),
+ 67: (
+ "wagtail.blocks.StructBlock",
+ [[("image", 15), ("quote", 16), ("author_name", 17), ("author_title", 18), ("color", 19)]],
+ {"group": "DSFR components", "label": "Quote"},
+ ),
+ 68: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 4), ("document", 5), ("external_url", 6), ("text", 7), ("icon", 8), ("size", 9)]],
+ {"label": "Single link"},
+ ),
+ 69: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "Accessibility: The title should describe, in a clear and concise manner, the embedded content.",
+ "label": "Title",
+ },
+ ),
+ 70: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "help_text": "Example for Tally: https://tally.so/embed/w2jMRa",
+ "label": "URL of the iframe",
+ },
+ ),
+ 71: ("wagtail.blocks.IntegerBlock", (), {"label": "Height (in pixels)"}),
+ 72: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "For example: \"allow='geolocation'\".",
+ "label": "Parameters",
+ "required": False,
+ },
+ ),
+ 73: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 69), ("url", 70), ("height", 71), ("parameters", 72)]],
+ {"group": "DSFR components", "label": "Iframe"},
+ ),
+ 74: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": ["bold", "italic", "superscript", "subscript", "strikethrough"],
+ "label": "Content",
+ "required": False,
+ },
+ ),
+ 75: (
+ "wagtail.images.blocks.ImageChooserBlock",
+ (),
+ {"help_text": "Prefer SVG files.", "label": "Image", "required": False},
+ ),
+ 76: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 4), ("document", 5), ("external_url", 6)]],
+ {"label": "Link", "required": False},
+ ),
+ 77: ("wagtail.blocks.CharBlock", (), {"label": "Badge label", "required": False}),
+ 78: (
+ "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,
+ },
+ ),
+ 79: ("wagtail.blocks.BooleanBlock", (), {"label": "Hide badge icon", "required": False}),
+ 80: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 77), ("color", 78), ("hide_icon", 79)]],
+ {"label": "Badge"},
+ ),
+ 81: ("wagtail.blocks.StreamBlock", [[("badge", 80)]], {}),
+ 82: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tag", "required": False}),
+ 83: (
+ "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,
+ },
+ ),
+ 84: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 4), ("document", 5), ("external_url", 6)]],
+ {"required": False},
+ ),
+ 85: (
+ "wagtail.blocks.StructBlock",
+ [[("label", 57), ("is_small", 82), ("color", 83), ("icon_class", 41), ("link", 84)]],
+ {"label": "Tag"},
+ ),
+ 86: ("wagtail.blocks.StreamBlock", [[("tag", 85)]], {}),
+ 87: (
+ "wagtail.blocks.StreamBlock",
+ [[("badges", 81), ("tags", 86)]],
+ {"label": "Top detail: badges or tags", "max_num": 1, "required": False},
+ ),
+ 88: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "If the tile links to a downloadable document, the values are pre-filled.",
+ "label": "Detail text",
+ "required": False,
+ },
+ ),
+ 89: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tile", "required": False}),
+ 90: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with grey background", "required": False}),
+ 91: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without background", "required": False}),
+ 92: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without border", "required": False}),
+ 93: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with a shadow", "required": False}),
+ 94: ("wagtail.blocks.BooleanBlock", (), {"label": "Horizontal tile", "required": False}),
+ 95: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 57),
+ ("heading_tag", 37),
+ ("description", 74),
+ ("image", 75),
+ ("link", 76),
+ ("top_detail_badges_tags", 87),
+ ("detail_text", 88),
+ ("is_small", 89),
+ ("grey_background", 90),
+ ("no_background", 91),
+ ("no_border", 92),
+ ("shadow", 93),
+ ("is_horizontal", 94),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Tile"},
+ ),
+ 96: (
+ "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,
+ },
+ ),
+ 97: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {"label": "Blog", "page_type": ["blog.BlogIndexPage"]},
+ ),
+ 98: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {
+ "default": 3,
+ "label": "Number of entries",
+ "max_value": 8,
+ "min_value": 1,
+ "required": False,
+ },
+ ),
+ 99: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Category",),
+ {"label": "Filter by category", "required": False},
+ ),
+ 100: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("content_manager.Tag",),
+ {"label": "Filter by tag", "required": False},
+ ),
+ 101: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Person",),
+ {"label": "Filter by author", "required": False},
+ ),
+ 102: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Organization",),
+ {
+ "help_text": "The source is the organization of the post author",
+ "label": "Filter by source",
+ "required": False,
+ },
+ ),
+ 103: (
+ "wagtail.blocks.BooleanBlock",
+ (),
+ {"default": False, "label": "Show filters", "required": False},
+ ),
+ 104: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 24),
+ ("heading_tag", 96),
+ ("blog", 97),
+ ("entries_count", 98),
+ ("category_filter", 99),
+ ("tag_filter", 100),
+ ("author_filter", 101),
+ ("source_filter", 102),
+ ("show_filters", 103),
+ ]
+ ],
+ {"group": "Website structure", "label": "Blog recent entries"},
+ ),
+ 105: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {"label": "Event calendar", "page_type": ["events.EventsIndexPage"]},
+ ),
+ 106: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 24),
+ ("heading_tag", 96),
+ ("index_page", 105),
+ ("entries_count", 98),
+ ("category_filter", 99),
+ ("tag_filter", 100),
+ ("author_filter", 101),
+ ("source_filter", 102),
+ ("show_filters", 103),
+ ]
+ ],
+ {"group": "Website structure", "label": "Event calendar recent entries"},
+ ),
+ 107: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {"label": "Number of steps", "max_value": 8, "min_value": 1},
+ ),
+ 108: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {"label": "Current step", "max_value": 8, "min_value": 1},
+ ),
+ 109: ("wagtail.blocks.TextBlock", (), {"label": "Detail", "required": False}),
+ 110: ("wagtail.blocks.StructBlock", [[("title", 57), ("detail", 109)]], {"label": "Step"}),
+ 111: ("wagtail.blocks.StreamBlock", [[("step", 110)]], {"label": "Steps"}),
+ 112: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 57), ("total", 107), ("current", 108), ("steps", 111)]],
+ {"group": "DSFR components", "label": "Stepper"},
+ ),
+ 113: (
+ "wagtail.blocks.StreamBlock",
+ [[("badge", 80)]],
+ {
+ "help_text": "Only used if the card has an image.",
+ "label": "Image area badge",
+ "max_num": 1,
+ "required": False,
+ },
+ ),
+ 114: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "group": "target",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link (obsolete)",
+ "required": False,
+ },
+ ),
+ 115: (
+ "wagtail.documents.blocks.DocumentChooserBlock",
+ (),
+ {
+ "group": "target",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "or Document (obsolete)",
+ "required": False,
+ },
+ ),
+ 116: ("wagtail.blocks.CharBlock", (), {"label": "Top detail: text", "required": False}),
+ 117: (
+ "content_manager.blocks.IconPickerBlock",
+ (),
+ {"label": "Top detail: icon", "required": False},
+ ),
+ 118: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "Incompatible with the bottom call-to-action.",
+ "label": "Bottom detail: text",
+ "required": False,
+ },
+ ),
+ 119: (
+ "content_manager.blocks.IconPickerBlock",
+ (),
+ {"label": "Bottom detail: icon", "required": False},
+ ),
+ 120: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 4), ("document", 5), ("external_url", 6), ("text", 7)]],
+ {"label": "Link"},
+ ),
+ 121: ("wagtail.blocks.StreamBlock", [[("link", 120)]], {}),
+ 122: (
+ "wagtail.blocks.StreamBlock",
+ [[("links", 121), ("buttons", 44)]],
+ {
+ "help_text": "Incompatible with the bottom detail text.",
+ "label": "Bottom call-to-action: links or buttons",
+ "max_num": 1,
+ "required": False,
+ },
+ ),
+ 123: (
+ "wagtail.blocks.BooleanBlock",
+ (),
+ {"label": "Card with grey background", "required": False},
+ ),
+ 124: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without background", "required": False}),
+ 125: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without border", "required": False}),
+ 126: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with a shadow", "required": False}),
+ 127: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 57),
+ ("heading_tag", 37),
+ ("description", 61),
+ ("image", 15),
+ ("image_ratio", 29),
+ ("image_badge", 113),
+ ("link", 76),
+ ("url", 114),
+ ("document", 115),
+ ("top_detail_text", 116),
+ ("top_detail_icon", 117),
+ ("top_detail_badges_tags", 87),
+ ("bottom_detail_text", 118),
+ ("bottom_detail_icon", 119),
+ ("call_to_action", 122),
+ ("grey_background", 123),
+ ("no_background", 124),
+ ("no_border", 125),
+ ("shadow", 126),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Vertical card"},
+ ),
+ 128: (
+ "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,
+ },
+ ),
+ 129: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Person",),
+ {
+ "help_text": "Optional, all values can be manually specified or overriden below",
+ "label": "Person",
+ "required": False,
+ },
+ ),
+ 130: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255, "required": False}),
+ 131: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255, "required": False}),
+ 132: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"label": "Organization", "max_length": 255, "required": False},
+ ),
+ 133: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"label": "Contact info", "max_length": 500, "required": False},
+ ),
+ 134: ("wagtail.blocks.StreamBlock", [[("tag", 85)]], {"label": "Tags", "required": False}),
+ 135: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("contact", 129),
+ ("link", 76),
+ ("heading_tag", 26),
+ ("name", 130),
+ ("role", 131),
+ ("organization", 132),
+ ("contact_info", 133),
+ ("image", 15),
+ ("tags", 134),
+ ]
+ ],
+ {"group": "Extra components", "label": "Contact card"},
+ ),
+ 136: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 32),
+ ("imageandtext", 33),
+ ("alert", 38),
+ ("text_cta", 48),
+ ("video", 55),
+ ("transcription", 56),
+ ("accordions", 60),
+ ("callout", 63),
+ ("highlight", 66),
+ ("quote", 67),
+ ("link", 68),
+ ("iframe", 73),
+ ("tile", 95),
+ ("blog_recent_entries", 104),
+ ("events_recent_entries", 106),
+ ("stepper", 112),
+ ("card", 127),
+ ("contact_card", 135),
+ ]
+ ],
+ {"label": "Column content"},
+ ),
+ 137: (
+ "wagtail.blocks.StructBlock",
+ [[("width", 128), ("content", 136)]],
+ {"group": "Page structure", "label": "Adjustable column"},
+ ),
+ 138: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 32),
+ ("imageandtext", 33),
+ ("alert", 38),
+ ("text_cta", 48),
+ ("video", 55),
+ ("transcription", 56),
+ ("accordions", 60),
+ ("callout", 63),
+ ("highlight", 66),
+ ("quote", 67),
+ ("link", 68),
+ ("iframe", 73),
+ ("tile", 95),
+ ("blog_recent_entries", 104),
+ ("events_recent_entries", 106),
+ ("stepper", 112),
+ ("card", 127),
+ ("column", 137),
+ ]
+ ],
+ {"label": "Columns"},
+ ),
+ 139: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("bg_image", 21),
+ ("bg_color_class", 22),
+ ("bg_color", 23),
+ ("title", 24),
+ ("heading_tag", 25),
+ ("columns", 138),
+ ]
+ ],
+ {"label": "Multi-colonnes"},
+ ),
+ 140: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255}),
+ 141: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255}),
+ 142: ("wagtail.blocks.CharBlock", (), {"label": "Organization", "max_length": 255}),
+ 143: (
+ "wagtail.blocks.StructBlock",
+ [[("name", 140), ("role", 141), ("organization", 142), ("contact_info", 133), ("image", 1)]],
+ {"label": "Contact card"},
+ ),
+ },
+ help_text="Text displayed at the end of every page in the category",
+ ),
+ ),
+ ]
diff --git a/blog/migrations/0041_alter_blogentrypage_body_alter_blogindexpage_body_and_more.py b/blog/migrations/0041_alter_blogentrypage_body_alter_blogindexpage_body_and_more.py
new file mode 100644
index 00000000..97f31287
--- /dev/null
+++ b/blog/migrations/0041_alter_blogentrypage_body_alter_blogindexpage_body_and_more.py
@@ -0,0 +1,4012 @@
+# Generated by Django 5.1.4 on 2024-12-12 17:08
+
+import wagtail.fields
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ("blog", "0040_alter_blogentrypage_body_alter_blogindexpage_body_and_more"),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name="blogentrypage",
+ name="body",
+ field=wagtail.fields.StreamField(
+ [
+ ("paragraph", 0),
+ ("image", 9),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("link", 58),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("stepper", 79),
+ ("card", 99),
+ ("tile", 109),
+ ("tabs", 143),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("multicolumns", 152),
+ ("item_grid", 155),
+ ("fullwidthbackground", 157),
+ ("fullwidthbackgroundwithsidemenu", 164),
+ ("subpageslist", 165),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ],
+ 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),
+ ]
+ ],
+ {},
+ ),
+ 10: ("wagtail.images.blocks.ImageBlock", [], {"label": "Image"}),
+ 11: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("left", "Left"), ("right", "Right")],
+ "label": "Side where the image is displayed",
+ },
+ ),
+ 12: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {"choices": [("3", "3/12"), ("5", "5/12"), ("6", "6/12")], "label": "Image width"},
+ ),
+ 13: (
+ "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,
+ },
+ ),
+ 14: (
+ "wagtail.documents.blocks.DocumentChooserBlock",
+ (),
+ {
+ "help_text": "Use either this, the external URL or the page parameter.",
+ "label": "Document",
+ "required": False,
+ },
+ ),
+ 15: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "help_text": "Use either this, the document or the page parameter.",
+ "label": "External URL",
+ "required": False,
+ },
+ ),
+ 16: ("wagtail.blocks.CharBlock", (), {"label": "Link label", "required": False}),
+ 17: (
+ "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,
+ },
+ ),
+ 18: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-link--sm", "Small"), ("", "Medium"), ("fr-link--lg", "Large")],
+ "label": "Size",
+ "required": False,
+ },
+ ),
+ 19: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 13),
+ ("document", 14),
+ ("external_url", 15),
+ ("text", 16),
+ ("icon", 17),
+ ("size", 18),
+ ]
+ ],
+ {
+ "help_text": "The link is shown at the bottom of the text block, with an arrow",
+ "label": "Link",
+ "required": False,
+ },
+ ),
+ 20: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link label (obsolete)",
+ "required": False,
+ },
+ ),
+ 21: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Internal link (obsolete)",
+ "required": False,
+ },
+ ),
+ 22: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link URL (obsolete)",
+ "required": False,
+ },
+ ),
+ 23: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("image", 10),
+ ("image_side", 11),
+ ("image_ratio", 12),
+ ("text", 0),
+ ("link", 19),
+ ("link_label", 20),
+ ("page", 21),
+ ("link_url", 22),
+ ]
+ ],
+ {"label": "Image and text"},
+ ),
+ 24: ("wagtail.blocks.CharBlock", (), {"label": "Message title", "required": False}),
+ 25: ("wagtail.blocks.TextBlock", (), {"label": "Message text", "required": False}),
+ 26: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [
+ ("error", "Error"),
+ ("success", "Success"),
+ ("info", "Information"),
+ ("warning", "Warning"),
+ ],
+ "label": "Message type",
+ },
+ ),
+ 27: (
+ "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",
+ },
+ ),
+ 28: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 24), ("description", 25), ("level", 26), ("heading_tag", 27)]],
+ {"label": "Alert message"},
+ ),
+ 29: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text", "required": False}),
+ 30: (
+ "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,
+ },
+ ),
+ 31: ("content_manager.blocks.IconPickerBlock", (), {"label": "Icon", "required": False}),
+ 32: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")],
+ "label": "Icon side",
+ "required": False,
+ },
+ ),
+ 33: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 13),
+ ("document", 14),
+ ("external_url", 15),
+ ("text", 16),
+ ("button_type", 30),
+ ("icon_class", 31),
+ ("icon_side", 32),
+ ]
+ ],
+ {"label": "Button"},
+ ),
+ 34: (
+ "wagtail.blocks.StreamBlock",
+ [[("button", 33)]],
+ {
+ "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",
+ },
+ ),
+ 35: (
+ "wagtail.blocks.StreamBlock",
+ [[("buttons", 34)]],
+ {"label": "Call-to-action buttons", "max_num": 1, "required": False},
+ ),
+ 36: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.",
+ "label": "Call to action label (obsolete)",
+ "required": False,
+ },
+ ),
+ 37: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.",
+ "label": "Link (obsolete)",
+ "required": False,
+ },
+ ),
+ 38: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 29), ("cta_buttons", 35), ("cta_label", 36), ("cta_url", 37)]],
+ {"label": "Text and call to action"},
+ ),
+ 39: ("wagtail.blocks.CharBlock", (), {"label": "Video title", "required": False}),
+ 40: (
+ "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",
+ },
+ ),
+ 41: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-ratio-16x9", "16x9"), ("fr-ratio-4x3", "4x3"), ("fr-ratio-1x1", "1x1")],
+ "label": "Video ratio",
+ "required": False,
+ },
+ ),
+ 42: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"default": "Transcription", "label": "Title", "required": False},
+ ),
+ 43: ("wagtail.blocks.RichTextBlock", (), {"label": "Transcription content", "required": False}),
+ 44: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 42), ("content", 43)]],
+ {"label": "Transcription", "required": False},
+ ),
+ 45: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 39),
+ ("caption", 7),
+ ("url", 40),
+ ("width", 5),
+ ("video_ratio", 41),
+ ("transcription", 44),
+ ]
+ ],
+ {"label": "Video"},
+ ),
+ 46: ("wagtail.blocks.StructBlock", [[("title", 42), ("content", 43)]], {"label": "Transcription"}),
+ 47: ("wagtail.blocks.CharBlock", (), {"label": "Badge label", "required": False}),
+ 48: (
+ "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,
+ },
+ ),
+ 49: ("wagtail.blocks.BooleanBlock", (), {"label": "Hide badge icon", "required": False}),
+ 50: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 47), ("color", 48), ("hide_icon", 49)]],
+ {"label": "Badge"},
+ ),
+ 51: ("wagtail.blocks.StreamBlock", [[("badge", 50)]], {"label": "Badge list"}),
+ 52: ("wagtail.blocks.CharBlock", (), {"label": "Title"}),
+ 53: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tag", "required": False}),
+ 54: (
+ "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,
+ },
+ ),
+ 55: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 13), ("document", 14), ("external_url", 15)]],
+ {"required": False},
+ ),
+ 56: (
+ "wagtail.blocks.StructBlock",
+ [[("label", 52), ("is_small", 53), ("color", 54), ("icon_class", 31), ("link", 55)]],
+ {"label": "Tag"},
+ ),
+ 57: ("wagtail.blocks.StreamBlock", [[("tag", 56)]], {"label": "Tag list"}),
+ 58: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 13),
+ ("document", 14),
+ ("external_url", 15),
+ ("text", 16),
+ ("icon", 17),
+ ("size", 18),
+ ]
+ ],
+ {"label": "Single link"},
+ ),
+ 59: ("wagtail.blocks.RichTextBlock", (), {"label": "Content"}),
+ 60: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 52), ("content", 59)]],
+ {"label": "Accordion", "max_num": 15, "min_num": 1},
+ ),
+ 61: (
+ "wagtail.blocks.StreamBlock",
+ [[("title", 52), ("accordion", 60)]],
+ {"group": "DSFR components", "label": "Accordions"},
+ ),
+ 62: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": [
+ "bold",
+ "italic",
+ "link",
+ "document-link",
+ "superscript",
+ "subscript",
+ "strikethrough",
+ ],
+ "label": "Content",
+ "required": False,
+ },
+ ),
+ 63: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 13),
+ ("document", 14),
+ ("external_url", 15),
+ ("text", 16),
+ ("button_type", 30),
+ ("icon_class", 31),
+ ("icon_side", 32),
+ ]
+ ],
+ {"label": "Button", "required": False},
+ ),
+ 64: (
+ "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,
+ },
+ ),
+ 65: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 27),
+ ("icon_class", 31),
+ ("text", 62),
+ ("button", 63),
+ ("color", 64),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Callout"},
+ ),
+ 66: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": [
+ "bold",
+ "italic",
+ "link",
+ "document-link",
+ "superscript",
+ "subscript",
+ "strikethrough",
+ ],
+ "label": "Content",
+ },
+ ),
+ 67: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-text--sm", "Small"), ("", "Medium"), ("fr-text--lg", "Large")],
+ "label": "Size",
+ "required": False,
+ },
+ ),
+ 68: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 66), ("color", 64), ("size", 67)]],
+ {"group": "DSFR components", "label": "Highlight"},
+ ),
+ 69: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image", "required": False}),
+ 70: ("wagtail.blocks.CharBlock", (), {"label": "Quote"}),
+ 71: ("wagtail.blocks.CharBlock", (), {"label": "Author name", "required": False}),
+ 72: ("wagtail.blocks.CharBlock", (), {"label": "Author title", "required": False}),
+ 73: (
+ "wagtail.blocks.StructBlock",
+ [[("image", 69), ("quote", 70), ("author_name", 71), ("author_title", 72), ("color", 64)]],
+ {"group": "DSFR components", "label": "Quote"},
+ ),
+ 74: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {"label": "Number of steps", "max_value": 8, "min_value": 1},
+ ),
+ 75: ("wagtail.blocks.IntegerBlock", (), {"label": "Current step", "max_value": 8, "min_value": 1}),
+ 76: ("wagtail.blocks.TextBlock", (), {"label": "Detail", "required": False}),
+ 77: ("wagtail.blocks.StructBlock", [[("title", 52), ("detail", 76)]], {"label": "Step"}),
+ 78: ("wagtail.blocks.StreamBlock", [[("step", 77)]], {"label": "Steps"}),
+ 79: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 52), ("total", 74), ("current", 75), ("steps", 78)]],
+ {"group": "DSFR components", "label": "Stepper"},
+ ),
+ 80: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-card--horizontal-tier", "1/3"), ("fr-card--horizontal-half", "50/50")],
+ "label": "Image ratio",
+ "required": False,
+ },
+ ),
+ 81: (
+ "wagtail.blocks.StreamBlock",
+ [[("badge", 50)]],
+ {
+ "help_text": "Only used if the card has an image.",
+ "label": "Image area badge",
+ "max_num": 1,
+ "required": False,
+ },
+ ),
+ 82: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 13), ("document", 14), ("external_url", 15)]],
+ {"label": "Link", "required": False},
+ ),
+ 83: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "group": "target",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link (obsolete)",
+ "required": False,
+ },
+ ),
+ 84: (
+ "wagtail.documents.blocks.DocumentChooserBlock",
+ (),
+ {
+ "group": "target",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "or Document (obsolete)",
+ "required": False,
+ },
+ ),
+ 85: ("wagtail.blocks.CharBlock", (), {"label": "Top detail: text", "required": False}),
+ 86: (
+ "content_manager.blocks.IconPickerBlock",
+ (),
+ {"label": "Top detail: icon", "required": False},
+ ),
+ 87: ("wagtail.blocks.StreamBlock", [[("badge", 50)]], {}),
+ 88: ("wagtail.blocks.StreamBlock", [[("tag", 56)]], {}),
+ 89: (
+ "wagtail.blocks.StreamBlock",
+ [[("badges", 87), ("tags", 88)]],
+ {"label": "Top detail: badges or tags", "max_num": 1, "required": False},
+ ),
+ 90: (
+ "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,
+ },
+ ),
+ 91: (
+ "content_manager.blocks.IconPickerBlock",
+ (),
+ {"label": "Bottom detail: icon", "required": False},
+ ),
+ 92: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 13), ("document", 14), ("external_url", 15), ("text", 16)]],
+ {"label": "Link"},
+ ),
+ 93: ("wagtail.blocks.StreamBlock", [[("link", 92)]], {}),
+ 94: (
+ "wagtail.blocks.StreamBlock",
+ [[("links", 93), ("buttons", 34)]],
+ {
+ "help_text": "Incompatible with the bottom detail text.",
+ "label": "Bottom call-to-action: links or buttons",
+ "max_num": 1,
+ "required": False,
+ },
+ ),
+ 95: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with grey background", "required": False}),
+ 96: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without background", "required": False}),
+ 97: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without border", "required": False}),
+ 98: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with a shadow", "required": False}),
+ 99: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 52),
+ ("heading_tag", 27),
+ ("description", 62),
+ ("image", 69),
+ ("image_ratio", 80),
+ ("image_badge", 81),
+ ("link", 82),
+ ("url", 83),
+ ("document", 84),
+ ("top_detail_text", 85),
+ ("top_detail_icon", 86),
+ ("top_detail_badges_tags", 89),
+ ("bottom_detail_text", 90),
+ ("bottom_detail_icon", 91),
+ ("call_to_action", 94),
+ ("grey_background", 95),
+ ("no_background", 96),
+ ("no_border", 97),
+ ("shadow", 98),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Horizontal card"},
+ ),
+ 100: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": ["bold", "italic", "superscript", "subscript", "strikethrough"],
+ "label": "Content",
+ "required": False,
+ },
+ ),
+ 101: (
+ "wagtail.images.blocks.ImageChooserBlock",
+ (),
+ {"help_text": "Prefer SVG files.", "label": "Image", "required": False},
+ ),
+ 102: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "If the tile links to a downloadable document, the values are pre-filled.",
+ "label": "Detail text",
+ "required": False,
+ },
+ ),
+ 103: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tile", "required": False}),
+ 104: (
+ "wagtail.blocks.BooleanBlock",
+ (),
+ {"label": "Tile with grey background", "required": False},
+ ),
+ 105: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without background", "required": False}),
+ 106: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without border", "required": False}),
+ 107: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with a shadow", "required": False}),
+ 108: ("wagtail.blocks.BooleanBlock", (), {"label": "Horizontal tile", "required": False}),
+ 109: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 52),
+ ("heading_tag", 27),
+ ("description", 100),
+ ("image", 101),
+ ("link", 82),
+ ("top_detail_badges_tags", 89),
+ ("detail_text", 102),
+ ("is_small", 103),
+ ("grey_background", 104),
+ ("no_background", 105),
+ ("no_border", 106),
+ ("shadow", 107),
+ ("is_horizontal", 108),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Tile"},
+ ),
+ 110: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 2),
+ ("image", 3),
+ ("alt", 4),
+ ("width", 5),
+ ("image_ratio", 6),
+ ("caption", 7),
+ ("url", 8),
+ ]
+ ],
+ {"label": "Image"},
+ ),
+ 111: (
+ "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,
+ },
+ ),
+ 112: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {"label": "Blog", "page_type": ["blog.BlogIndexPage"]},
+ ),
+ 113: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {
+ "default": 3,
+ "label": "Number of entries",
+ "max_value": 8,
+ "min_value": 1,
+ "required": False,
+ },
+ ),
+ 114: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Category",),
+ {"label": "Filter by category", "required": False},
+ ),
+ 115: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("content_manager.Tag",),
+ {"label": "Filter by tag", "required": False},
+ ),
+ 116: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Person",),
+ {"label": "Filter by author", "required": False},
+ ),
+ 117: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Organization",),
+ {
+ "help_text": "The source is the organization of the post author",
+ "label": "Filter by source",
+ "required": False,
+ },
+ ),
+ 118: (
+ "wagtail.blocks.BooleanBlock",
+ (),
+ {"default": False, "label": "Show filters", "required": False},
+ ),
+ 119: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 111),
+ ("blog", 112),
+ ("entries_count", 113),
+ ("category_filter", 114),
+ ("tag_filter", 115),
+ ("author_filter", 116),
+ ("source_filter", 117),
+ ("show_filters", 118),
+ ]
+ ],
+ {"group": "Website structure", "label": "Blog recent entries"},
+ ),
+ 120: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {"label": "Event calendar", "page_type": ["events.EventsIndexPage"]},
+ ),
+ 121: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 111),
+ ("index_page", 120),
+ ("entries_count", 113),
+ ("category_filter", 114),
+ ("tag_filter", 115),
+ ("author_filter", 116),
+ ("source_filter", 117),
+ ("show_filters", 118),
+ ]
+ ],
+ {"group": "Website structure", "label": "Event calendar recent entries"},
+ ),
+ 122: ("wagtailmarkdown.blocks.MarkdownBlock", (), {"group": "Expert syntax", "label": "Markdown"}),
+ 123: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "Accessibility: The title should describe, in a clear and concise manner, the embedded content.",
+ "label": "Title",
+ },
+ ),
+ 124: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "help_text": "Example for Tally: https://tally.so/embed/w2jMRa",
+ "label": "URL of the iframe",
+ },
+ ),
+ 125: ("wagtail.blocks.IntegerBlock", (), {"label": "Height (in pixels)"}),
+ 126: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "For example: \"allow='geolocation'\".",
+ "label": "Parameters",
+ "required": False,
+ },
+ ),
+ 127: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 123), ("url", 124), ("height", 125), ("parameters", 126)]],
+ {"group": "Expert syntax", "label": "Iframe"},
+ ),
+ 128: (
+ "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,
+ },
+ ),
+ 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.CharBlock",
+ (),
+ {
+ "help_text": "Incompatible with the bottom call-to-action.",
+ "label": "Bottom detail: text",
+ "required": False,
+ },
+ ),
+ 133: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 52),
+ ("heading_tag", 27),
+ ("description", 62),
+ ("image", 69),
+ ("image_ratio", 6),
+ ("image_badge", 81),
+ ("link", 82),
+ ("url", 83),
+ ("document", 84),
+ ("top_detail_text", 85),
+ ("top_detail_icon", 86),
+ ("top_detail_badges_tags", 89),
+ ("bottom_detail_text", 132),
+ ("bottom_detail_icon", 91),
+ ("call_to_action", 94),
+ ("grey_background", 95),
+ ("no_background", 96),
+ ("no_border", 97),
+ ("shadow", 98),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Vertical card"},
+ ),
+ 134: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Person",),
+ {
+ "help_text": "Optional, all values can be manually specified or overriden below",
+ "label": "Person",
+ "required": False,
+ },
+ ),
+ 135: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255, "required": False}),
+ 136: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255, "required": False}),
+ 137: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"label": "Organization", "max_length": 255, "required": False},
+ ),
+ 138: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"label": "Contact info", "max_length": 500, "required": False},
+ ),
+ 139: ("wagtail.blocks.StreamBlock", [[("tag", 56)]], {"label": "Tags", "required": False}),
+ 140: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("contact", 134),
+ ("link", 82),
+ ("heading_tag", 2),
+ ("name", 135),
+ ("role", 136),
+ ("organization", 137),
+ ("contact_info", 138),
+ ("image", 69),
+ ("tags", 139),
+ ]
+ ],
+ {"group": "Extra components", "label": "Contact card"},
+ ),
+ 141: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 110),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("link", 58),
+ ("tile", 109),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ("stepper", 79),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("card", 133),
+ ("contact_card", 140),
+ ]
+ ],
+ {"label": "Content"},
+ ),
+ 142: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 52), ("content", 141)]],
+ {"label": "Tab", "max_num": 15, "min_num": 1},
+ ),
+ 143: (
+ "wagtail.blocks.StreamBlock",
+ [[("tabs", 142)]],
+ {"group": "DSFR components", "label": "Tabs"},
+ ),
+ 144: (
+ "wagtail.images.blocks.ImageChooserBlock",
+ (),
+ {"label": "Background image", "required": False},
+ ),
+ 145: (
+ "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,
+ },
+ ),
+ 146: (
+ "wagtail.blocks.RegexBlock",
+ (),
+ {
+ "error_messages": {"invalid": "Incorrect color format, must be #fff or #f5f5f5"},
+ "help_text": "This field is obsolete and will be removed in the near future. Replace it with the background color.",
+ "label": "Background color, hexadecimal format (obsolete)",
+ "regex": "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
+ "required": False,
+ },
+ ),
+ 147: (
+ "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,
+ },
+ ),
+ 148: (
+ "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,
+ },
+ ),
+ 149: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 110),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("link", 58),
+ ("tile", 109),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ("stepper", 79),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("card", 133),
+ ("contact_card", 140),
+ ]
+ ],
+ {"label": "Column content"},
+ ),
+ 150: (
+ "wagtail.blocks.StructBlock",
+ [[("width", 148), ("content", 149)]],
+ {"group": "Page structure", "label": "Adjustable column"},
+ ),
+ 151: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 110),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("link", 58),
+ ("tile", 109),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ("stepper", 79),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("card", 133),
+ ("column", 150),
+ ]
+ ],
+ {"label": "Columns"},
+ ),
+ 152: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("bg_image", 144),
+ ("bg_color_class", 145),
+ ("bg_color", 146),
+ ("title", 1),
+ ("heading_tag", 147),
+ ("columns", 151),
+ ]
+ ],
+ {"group": "Page structure", "label": "Multiple columns"},
+ ),
+ 153: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {"choices": [("3", "3/12"), ("4", "4/12"), ("6", "6/12")], "label": "Column width"},
+ ),
+ 154: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 110),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("link", 58),
+ ("tile", 109),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ("stepper", 79),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("card", 133),
+ ("contact_card", 140),
+ ]
+ ],
+ {"label": "Items"},
+ ),
+ 155: (
+ "wagtail.blocks.StructBlock",
+ [[("column_width", 153), ("items", 154)]],
+ {"group": "Page structure", "label": "Item grid"},
+ ),
+ 156: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 110),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("link", 58),
+ ("tile", 109),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ("stepper", 79),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("image_and_text", 23),
+ ("card", 99),
+ ("tabs", 143),
+ ("item_grid", 155),
+ ]
+ ],
+ {"label": "Content"},
+ ),
+ 157: (
+ "wagtail.blocks.StructBlock",
+ [[("bg_image", 144), ("bg_color_class", 145), ("content", 156)]],
+ {"group": "Page structure", "label": "Full width background"},
+ ),
+ 158: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 110),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("link", 58),
+ ("tile", 109),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ("stepper", 79),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("image_and_text", 23),
+ ("card", 99),
+ ("tabs", 143),
+ ("item_grid", 155),
+ ]
+ ],
+ {"label": "Main content"},
+ ),
+ 159: ("wagtail.blocks.CharBlock", (), {"label": "Side menu title", "required": False}),
+ 160: (
+ "wagtail.blocks.RawHTMLBlock",
+ (),
+ {
+ "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.",
+ "label": "HTML",
+ },
+ ),
+ 161: ("wagtail.blocks.PageChooserBlock", (), {"label": "Parent page"}),
+ 162: ("wagtail.blocks.StructBlock", [[("page", 161)]], {"label": "Page tree"}),
+ 163: (
+ "wagtail.blocks.StreamBlock",
+ [[("html", 160), ("pagetree", 162)]],
+ {"label": "Side menu content"},
+ ),
+ 164: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("bg_image", 144),
+ ("bg_color_class", 145),
+ ("main_content", 158),
+ ("sidemenu_title", 159),
+ ("sidemenu_content", 163),
+ ]
+ ],
+ {"group": "Page structure", "label": "Full width background with side menu"},
+ ),
+ 165: (
+ "wagtail.blocks.static_block.StaticBlock",
+ (),
+ {
+ "admin_text": "A simple, alphabetical list of the subpages of the current page.",
+ "group": "Website structure",
+ "label": "Subpages list",
+ "template": "content_manager/blocks/subpages_list.html",
+ },
+ ),
+ },
+ ),
+ ),
+ migrations.AlterField(
+ model_name="blogindexpage",
+ name="body",
+ field=wagtail.fields.StreamField(
+ [
+ ("paragraph", 0),
+ ("image", 9),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("link", 58),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("stepper", 79),
+ ("card", 99),
+ ("tile", 109),
+ ("tabs", 143),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("multicolumns", 152),
+ ("item_grid", 155),
+ ("fullwidthbackground", 157),
+ ("fullwidthbackgroundwithsidemenu", 164),
+ ("subpageslist", 165),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ],
+ 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),
+ ]
+ ],
+ {},
+ ),
+ 10: ("wagtail.images.blocks.ImageBlock", [], {"label": "Image"}),
+ 11: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("left", "Left"), ("right", "Right")],
+ "label": "Side where the image is displayed",
+ },
+ ),
+ 12: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {"choices": [("3", "3/12"), ("5", "5/12"), ("6", "6/12")], "label": "Image width"},
+ ),
+ 13: (
+ "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,
+ },
+ ),
+ 14: (
+ "wagtail.documents.blocks.DocumentChooserBlock",
+ (),
+ {
+ "help_text": "Use either this, the external URL or the page parameter.",
+ "label": "Document",
+ "required": False,
+ },
+ ),
+ 15: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "help_text": "Use either this, the document or the page parameter.",
+ "label": "External URL",
+ "required": False,
+ },
+ ),
+ 16: ("wagtail.blocks.CharBlock", (), {"label": "Link label", "required": False}),
+ 17: (
+ "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,
+ },
+ ),
+ 18: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-link--sm", "Small"), ("", "Medium"), ("fr-link--lg", "Large")],
+ "label": "Size",
+ "required": False,
+ },
+ ),
+ 19: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 13),
+ ("document", 14),
+ ("external_url", 15),
+ ("text", 16),
+ ("icon", 17),
+ ("size", 18),
+ ]
+ ],
+ {
+ "help_text": "The link is shown at the bottom of the text block, with an arrow",
+ "label": "Link",
+ "required": False,
+ },
+ ),
+ 20: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link label (obsolete)",
+ "required": False,
+ },
+ ),
+ 21: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Internal link (obsolete)",
+ "required": False,
+ },
+ ),
+ 22: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link URL (obsolete)",
+ "required": False,
+ },
+ ),
+ 23: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("image", 10),
+ ("image_side", 11),
+ ("image_ratio", 12),
+ ("text", 0),
+ ("link", 19),
+ ("link_label", 20),
+ ("page", 21),
+ ("link_url", 22),
+ ]
+ ],
+ {"label": "Image and text"},
+ ),
+ 24: ("wagtail.blocks.CharBlock", (), {"label": "Message title", "required": False}),
+ 25: ("wagtail.blocks.TextBlock", (), {"label": "Message text", "required": False}),
+ 26: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [
+ ("error", "Error"),
+ ("success", "Success"),
+ ("info", "Information"),
+ ("warning", "Warning"),
+ ],
+ "label": "Message type",
+ },
+ ),
+ 27: (
+ "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",
+ },
+ ),
+ 28: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 24), ("description", 25), ("level", 26), ("heading_tag", 27)]],
+ {"label": "Alert message"},
+ ),
+ 29: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text", "required": False}),
+ 30: (
+ "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,
+ },
+ ),
+ 31: ("content_manager.blocks.IconPickerBlock", (), {"label": "Icon", "required": False}),
+ 32: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")],
+ "label": "Icon side",
+ "required": False,
+ },
+ ),
+ 33: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 13),
+ ("document", 14),
+ ("external_url", 15),
+ ("text", 16),
+ ("button_type", 30),
+ ("icon_class", 31),
+ ("icon_side", 32),
+ ]
+ ],
+ {"label": "Button"},
+ ),
+ 34: (
+ "wagtail.blocks.StreamBlock",
+ [[("button", 33)]],
+ {
+ "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",
+ },
+ ),
+ 35: (
+ "wagtail.blocks.StreamBlock",
+ [[("buttons", 34)]],
+ {"label": "Call-to-action buttons", "max_num": 1, "required": False},
+ ),
+ 36: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.",
+ "label": "Call to action label (obsolete)",
+ "required": False,
+ },
+ ),
+ 37: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.",
+ "label": "Link (obsolete)",
+ "required": False,
+ },
+ ),
+ 38: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 29), ("cta_buttons", 35), ("cta_label", 36), ("cta_url", 37)]],
+ {"label": "Text and call to action"},
+ ),
+ 39: ("wagtail.blocks.CharBlock", (), {"label": "Video title", "required": False}),
+ 40: (
+ "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",
+ },
+ ),
+ 41: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-ratio-16x9", "16x9"), ("fr-ratio-4x3", "4x3"), ("fr-ratio-1x1", "1x1")],
+ "label": "Video ratio",
+ "required": False,
+ },
+ ),
+ 42: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"default": "Transcription", "label": "Title", "required": False},
+ ),
+ 43: ("wagtail.blocks.RichTextBlock", (), {"label": "Transcription content", "required": False}),
+ 44: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 42), ("content", 43)]],
+ {"label": "Transcription", "required": False},
+ ),
+ 45: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 39),
+ ("caption", 7),
+ ("url", 40),
+ ("width", 5),
+ ("video_ratio", 41),
+ ("transcription", 44),
+ ]
+ ],
+ {"label": "Video"},
+ ),
+ 46: ("wagtail.blocks.StructBlock", [[("title", 42), ("content", 43)]], {"label": "Transcription"}),
+ 47: ("wagtail.blocks.CharBlock", (), {"label": "Badge label", "required": False}),
+ 48: (
+ "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,
+ },
+ ),
+ 49: ("wagtail.blocks.BooleanBlock", (), {"label": "Hide badge icon", "required": False}),
+ 50: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 47), ("color", 48), ("hide_icon", 49)]],
+ {"label": "Badge"},
+ ),
+ 51: ("wagtail.blocks.StreamBlock", [[("badge", 50)]], {"label": "Badge list"}),
+ 52: ("wagtail.blocks.CharBlock", (), {"label": "Title"}),
+ 53: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tag", "required": False}),
+ 54: (
+ "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,
+ },
+ ),
+ 55: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 13), ("document", 14), ("external_url", 15)]],
+ {"required": False},
+ ),
+ 56: (
+ "wagtail.blocks.StructBlock",
+ [[("label", 52), ("is_small", 53), ("color", 54), ("icon_class", 31), ("link", 55)]],
+ {"label": "Tag"},
+ ),
+ 57: ("wagtail.blocks.StreamBlock", [[("tag", 56)]], {"label": "Tag list"}),
+ 58: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 13),
+ ("document", 14),
+ ("external_url", 15),
+ ("text", 16),
+ ("icon", 17),
+ ("size", 18),
+ ]
+ ],
+ {"label": "Single link"},
+ ),
+ 59: ("wagtail.blocks.RichTextBlock", (), {"label": "Content"}),
+ 60: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 52), ("content", 59)]],
+ {"label": "Accordion", "max_num": 15, "min_num": 1},
+ ),
+ 61: (
+ "wagtail.blocks.StreamBlock",
+ [[("title", 52), ("accordion", 60)]],
+ {"group": "DSFR components", "label": "Accordions"},
+ ),
+ 62: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": [
+ "bold",
+ "italic",
+ "link",
+ "document-link",
+ "superscript",
+ "subscript",
+ "strikethrough",
+ ],
+ "label": "Content",
+ "required": False,
+ },
+ ),
+ 63: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 13),
+ ("document", 14),
+ ("external_url", 15),
+ ("text", 16),
+ ("button_type", 30),
+ ("icon_class", 31),
+ ("icon_side", 32),
+ ]
+ ],
+ {"label": "Button", "required": False},
+ ),
+ 64: (
+ "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,
+ },
+ ),
+ 65: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 27),
+ ("icon_class", 31),
+ ("text", 62),
+ ("button", 63),
+ ("color", 64),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Callout"},
+ ),
+ 66: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": [
+ "bold",
+ "italic",
+ "link",
+ "document-link",
+ "superscript",
+ "subscript",
+ "strikethrough",
+ ],
+ "label": "Content",
+ },
+ ),
+ 67: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-text--sm", "Small"), ("", "Medium"), ("fr-text--lg", "Large")],
+ "label": "Size",
+ "required": False,
+ },
+ ),
+ 68: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 66), ("color", 64), ("size", 67)]],
+ {"group": "DSFR components", "label": "Highlight"},
+ ),
+ 69: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image", "required": False}),
+ 70: ("wagtail.blocks.CharBlock", (), {"label": "Quote"}),
+ 71: ("wagtail.blocks.CharBlock", (), {"label": "Author name", "required": False}),
+ 72: ("wagtail.blocks.CharBlock", (), {"label": "Author title", "required": False}),
+ 73: (
+ "wagtail.blocks.StructBlock",
+ [[("image", 69), ("quote", 70), ("author_name", 71), ("author_title", 72), ("color", 64)]],
+ {"group": "DSFR components", "label": "Quote"},
+ ),
+ 74: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {"label": "Number of steps", "max_value": 8, "min_value": 1},
+ ),
+ 75: ("wagtail.blocks.IntegerBlock", (), {"label": "Current step", "max_value": 8, "min_value": 1}),
+ 76: ("wagtail.blocks.TextBlock", (), {"label": "Detail", "required": False}),
+ 77: ("wagtail.blocks.StructBlock", [[("title", 52), ("detail", 76)]], {"label": "Step"}),
+ 78: ("wagtail.blocks.StreamBlock", [[("step", 77)]], {"label": "Steps"}),
+ 79: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 52), ("total", 74), ("current", 75), ("steps", 78)]],
+ {"group": "DSFR components", "label": "Stepper"},
+ ),
+ 80: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-card--horizontal-tier", "1/3"), ("fr-card--horizontal-half", "50/50")],
+ "label": "Image ratio",
+ "required": False,
+ },
+ ),
+ 81: (
+ "wagtail.blocks.StreamBlock",
+ [[("badge", 50)]],
+ {
+ "help_text": "Only used if the card has an image.",
+ "label": "Image area badge",
+ "max_num": 1,
+ "required": False,
+ },
+ ),
+ 82: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 13), ("document", 14), ("external_url", 15)]],
+ {"label": "Link", "required": False},
+ ),
+ 83: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "group": "target",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link (obsolete)",
+ "required": False,
+ },
+ ),
+ 84: (
+ "wagtail.documents.blocks.DocumentChooserBlock",
+ (),
+ {
+ "group": "target",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "or Document (obsolete)",
+ "required": False,
+ },
+ ),
+ 85: ("wagtail.blocks.CharBlock", (), {"label": "Top detail: text", "required": False}),
+ 86: (
+ "content_manager.blocks.IconPickerBlock",
+ (),
+ {"label": "Top detail: icon", "required": False},
+ ),
+ 87: ("wagtail.blocks.StreamBlock", [[("badge", 50)]], {}),
+ 88: ("wagtail.blocks.StreamBlock", [[("tag", 56)]], {}),
+ 89: (
+ "wagtail.blocks.StreamBlock",
+ [[("badges", 87), ("tags", 88)]],
+ {"label": "Top detail: badges or tags", "max_num": 1, "required": False},
+ ),
+ 90: (
+ "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,
+ },
+ ),
+ 91: (
+ "content_manager.blocks.IconPickerBlock",
+ (),
+ {"label": "Bottom detail: icon", "required": False},
+ ),
+ 92: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 13), ("document", 14), ("external_url", 15), ("text", 16)]],
+ {"label": "Link"},
+ ),
+ 93: ("wagtail.blocks.StreamBlock", [[("link", 92)]], {}),
+ 94: (
+ "wagtail.blocks.StreamBlock",
+ [[("links", 93), ("buttons", 34)]],
+ {
+ "help_text": "Incompatible with the bottom detail text.",
+ "label": "Bottom call-to-action: links or buttons",
+ "max_num": 1,
+ "required": False,
+ },
+ ),
+ 95: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with grey background", "required": False}),
+ 96: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without background", "required": False}),
+ 97: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without border", "required": False}),
+ 98: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with a shadow", "required": False}),
+ 99: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 52),
+ ("heading_tag", 27),
+ ("description", 62),
+ ("image", 69),
+ ("image_ratio", 80),
+ ("image_badge", 81),
+ ("link", 82),
+ ("url", 83),
+ ("document", 84),
+ ("top_detail_text", 85),
+ ("top_detail_icon", 86),
+ ("top_detail_badges_tags", 89),
+ ("bottom_detail_text", 90),
+ ("bottom_detail_icon", 91),
+ ("call_to_action", 94),
+ ("grey_background", 95),
+ ("no_background", 96),
+ ("no_border", 97),
+ ("shadow", 98),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Horizontal card"},
+ ),
+ 100: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": ["bold", "italic", "superscript", "subscript", "strikethrough"],
+ "label": "Content",
+ "required": False,
+ },
+ ),
+ 101: (
+ "wagtail.images.blocks.ImageChooserBlock",
+ (),
+ {"help_text": "Prefer SVG files.", "label": "Image", "required": False},
+ ),
+ 102: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "If the tile links to a downloadable document, the values are pre-filled.",
+ "label": "Detail text",
+ "required": False,
+ },
+ ),
+ 103: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tile", "required": False}),
+ 104: (
+ "wagtail.blocks.BooleanBlock",
+ (),
+ {"label": "Tile with grey background", "required": False},
+ ),
+ 105: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without background", "required": False}),
+ 106: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without border", "required": False}),
+ 107: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with a shadow", "required": False}),
+ 108: ("wagtail.blocks.BooleanBlock", (), {"label": "Horizontal tile", "required": False}),
+ 109: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 52),
+ ("heading_tag", 27),
+ ("description", 100),
+ ("image", 101),
+ ("link", 82),
+ ("top_detail_badges_tags", 89),
+ ("detail_text", 102),
+ ("is_small", 103),
+ ("grey_background", 104),
+ ("no_background", 105),
+ ("no_border", 106),
+ ("shadow", 107),
+ ("is_horizontal", 108),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Tile"},
+ ),
+ 110: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 2),
+ ("image", 3),
+ ("alt", 4),
+ ("width", 5),
+ ("image_ratio", 6),
+ ("caption", 7),
+ ("url", 8),
+ ]
+ ],
+ {"label": "Image"},
+ ),
+ 111: (
+ "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,
+ },
+ ),
+ 112: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {"label": "Blog", "page_type": ["blog.BlogIndexPage"]},
+ ),
+ 113: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {
+ "default": 3,
+ "label": "Number of entries",
+ "max_value": 8,
+ "min_value": 1,
+ "required": False,
+ },
+ ),
+ 114: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Category",),
+ {"label": "Filter by category", "required": False},
+ ),
+ 115: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("content_manager.Tag",),
+ {"label": "Filter by tag", "required": False},
+ ),
+ 116: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Person",),
+ {"label": "Filter by author", "required": False},
+ ),
+ 117: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Organization",),
+ {
+ "help_text": "The source is the organization of the post author",
+ "label": "Filter by source",
+ "required": False,
+ },
+ ),
+ 118: (
+ "wagtail.blocks.BooleanBlock",
+ (),
+ {"default": False, "label": "Show filters", "required": False},
+ ),
+ 119: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 111),
+ ("blog", 112),
+ ("entries_count", 113),
+ ("category_filter", 114),
+ ("tag_filter", 115),
+ ("author_filter", 116),
+ ("source_filter", 117),
+ ("show_filters", 118),
+ ]
+ ],
+ {"group": "Website structure", "label": "Blog recent entries"},
+ ),
+ 120: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {"label": "Event calendar", "page_type": ["events.EventsIndexPage"]},
+ ),
+ 121: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 111),
+ ("index_page", 120),
+ ("entries_count", 113),
+ ("category_filter", 114),
+ ("tag_filter", 115),
+ ("author_filter", 116),
+ ("source_filter", 117),
+ ("show_filters", 118),
+ ]
+ ],
+ {"group": "Website structure", "label": "Event calendar recent entries"},
+ ),
+ 122: ("wagtailmarkdown.blocks.MarkdownBlock", (), {"group": "Expert syntax", "label": "Markdown"}),
+ 123: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "Accessibility: The title should describe, in a clear and concise manner, the embedded content.",
+ "label": "Title",
+ },
+ ),
+ 124: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "help_text": "Example for Tally: https://tally.so/embed/w2jMRa",
+ "label": "URL of the iframe",
+ },
+ ),
+ 125: ("wagtail.blocks.IntegerBlock", (), {"label": "Height (in pixels)"}),
+ 126: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "For example: \"allow='geolocation'\".",
+ "label": "Parameters",
+ "required": False,
+ },
+ ),
+ 127: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 123), ("url", 124), ("height", 125), ("parameters", 126)]],
+ {"group": "Expert syntax", "label": "Iframe"},
+ ),
+ 128: (
+ "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,
+ },
+ ),
+ 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.CharBlock",
+ (),
+ {
+ "help_text": "Incompatible with the bottom call-to-action.",
+ "label": "Bottom detail: text",
+ "required": False,
+ },
+ ),
+ 133: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 52),
+ ("heading_tag", 27),
+ ("description", 62),
+ ("image", 69),
+ ("image_ratio", 6),
+ ("image_badge", 81),
+ ("link", 82),
+ ("url", 83),
+ ("document", 84),
+ ("top_detail_text", 85),
+ ("top_detail_icon", 86),
+ ("top_detail_badges_tags", 89),
+ ("bottom_detail_text", 132),
+ ("bottom_detail_icon", 91),
+ ("call_to_action", 94),
+ ("grey_background", 95),
+ ("no_background", 96),
+ ("no_border", 97),
+ ("shadow", 98),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Vertical card"},
+ ),
+ 134: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Person",),
+ {
+ "help_text": "Optional, all values can be manually specified or overriden below",
+ "label": "Person",
+ "required": False,
+ },
+ ),
+ 135: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255, "required": False}),
+ 136: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255, "required": False}),
+ 137: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"label": "Organization", "max_length": 255, "required": False},
+ ),
+ 138: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"label": "Contact info", "max_length": 500, "required": False},
+ ),
+ 139: ("wagtail.blocks.StreamBlock", [[("tag", 56)]], {"label": "Tags", "required": False}),
+ 140: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("contact", 134),
+ ("link", 82),
+ ("heading_tag", 2),
+ ("name", 135),
+ ("role", 136),
+ ("organization", 137),
+ ("contact_info", 138),
+ ("image", 69),
+ ("tags", 139),
+ ]
+ ],
+ {"group": "Extra components", "label": "Contact card"},
+ ),
+ 141: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 110),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("link", 58),
+ ("tile", 109),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ("stepper", 79),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("card", 133),
+ ("contact_card", 140),
+ ]
+ ],
+ {"label": "Content"},
+ ),
+ 142: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 52), ("content", 141)]],
+ {"label": "Tab", "max_num": 15, "min_num": 1},
+ ),
+ 143: (
+ "wagtail.blocks.StreamBlock",
+ [[("tabs", 142)]],
+ {"group": "DSFR components", "label": "Tabs"},
+ ),
+ 144: (
+ "wagtail.images.blocks.ImageChooserBlock",
+ (),
+ {"label": "Background image", "required": False},
+ ),
+ 145: (
+ "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,
+ },
+ ),
+ 146: (
+ "wagtail.blocks.RegexBlock",
+ (),
+ {
+ "error_messages": {"invalid": "Incorrect color format, must be #fff or #f5f5f5"},
+ "help_text": "This field is obsolete and will be removed in the near future. Replace it with the background color.",
+ "label": "Background color, hexadecimal format (obsolete)",
+ "regex": "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
+ "required": False,
+ },
+ ),
+ 147: (
+ "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,
+ },
+ ),
+ 148: (
+ "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,
+ },
+ ),
+ 149: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 110),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("link", 58),
+ ("tile", 109),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ("stepper", 79),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("card", 133),
+ ("contact_card", 140),
+ ]
+ ],
+ {"label": "Column content"},
+ ),
+ 150: (
+ "wagtail.blocks.StructBlock",
+ [[("width", 148), ("content", 149)]],
+ {"group": "Page structure", "label": "Adjustable column"},
+ ),
+ 151: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 110),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("link", 58),
+ ("tile", 109),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ("stepper", 79),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("card", 133),
+ ("column", 150),
+ ]
+ ],
+ {"label": "Columns"},
+ ),
+ 152: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("bg_image", 144),
+ ("bg_color_class", 145),
+ ("bg_color", 146),
+ ("title", 1),
+ ("heading_tag", 147),
+ ("columns", 151),
+ ]
+ ],
+ {"group": "Page structure", "label": "Multiple columns"},
+ ),
+ 153: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {"choices": [("3", "3/12"), ("4", "4/12"), ("6", "6/12")], "label": "Column width"},
+ ),
+ 154: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 110),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("link", 58),
+ ("tile", 109),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ("stepper", 79),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("card", 133),
+ ("contact_card", 140),
+ ]
+ ],
+ {"label": "Items"},
+ ),
+ 155: (
+ "wagtail.blocks.StructBlock",
+ [[("column_width", 153), ("items", 154)]],
+ {"group": "Page structure", "label": "Item grid"},
+ ),
+ 156: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 110),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("link", 58),
+ ("tile", 109),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ("stepper", 79),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("image_and_text", 23),
+ ("card", 99),
+ ("tabs", 143),
+ ("item_grid", 155),
+ ]
+ ],
+ {"label": "Content"},
+ ),
+ 157: (
+ "wagtail.blocks.StructBlock",
+ [[("bg_image", 144), ("bg_color_class", 145), ("content", 156)]],
+ {"group": "Page structure", "label": "Full width background"},
+ ),
+ 158: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 110),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("link", 58),
+ ("tile", 109),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ("stepper", 79),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("image_and_text", 23),
+ ("card", 99),
+ ("tabs", 143),
+ ("item_grid", 155),
+ ]
+ ],
+ {"label": "Main content"},
+ ),
+ 159: ("wagtail.blocks.CharBlock", (), {"label": "Side menu title", "required": False}),
+ 160: (
+ "wagtail.blocks.RawHTMLBlock",
+ (),
+ {
+ "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.",
+ "label": "HTML",
+ },
+ ),
+ 161: ("wagtail.blocks.PageChooserBlock", (), {"label": "Parent page"}),
+ 162: ("wagtail.blocks.StructBlock", [[("page", 161)]], {"label": "Page tree"}),
+ 163: (
+ "wagtail.blocks.StreamBlock",
+ [[("html", 160), ("pagetree", 162)]],
+ {"label": "Side menu content"},
+ ),
+ 164: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("bg_image", 144),
+ ("bg_color_class", 145),
+ ("main_content", 158),
+ ("sidemenu_title", 159),
+ ("sidemenu_content", 163),
+ ]
+ ],
+ {"group": "Page structure", "label": "Full width background with side menu"},
+ ),
+ 165: (
+ "wagtail.blocks.static_block.StaticBlock",
+ (),
+ {
+ "admin_text": "A simple, alphabetical list of the subpages of the current page.",
+ "group": "Website structure",
+ "label": "Subpages list",
+ "template": "content_manager/blocks/subpages_list.html",
+ },
+ ),
+ },
+ ),
+ ),
+ migrations.AlterField(
+ model_name="category",
+ name="colophon",
+ field=wagtail.fields.StreamField(
+ [("paragraph", 0), ("imageandtext", 14), ("quote", 20), ("multicolumns", 147), ("contact_card", 151)],
+ 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"), ("right", "Right")],
+ "label": "Side where the image is displayed",
+ },
+ ),
+ 3: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {"choices": [("3", "3/12"), ("5", "5/12"), ("6", "6/12")], "label": "Image width"},
+ ),
+ 4: (
+ "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,
+ },
+ ),
+ 5: (
+ "wagtail.documents.blocks.DocumentChooserBlock",
+ (),
+ {
+ "help_text": "Use either this, the external URL or the page parameter.",
+ "label": "Document",
+ "required": False,
+ },
+ ),
+ 6: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "help_text": "Use either this, the document or the page parameter.",
+ "label": "External URL",
+ "required": False,
+ },
+ ),
+ 7: ("wagtail.blocks.CharBlock", (), {"label": "Link label", "required": False}),
+ 8: (
+ "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,
+ },
+ ),
+ 9: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-link--sm", "Small"), ("", "Medium"), ("fr-link--lg", "Large")],
+ "label": "Size",
+ "required": False,
+ },
+ ),
+ 10: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 4), ("document", 5), ("external_url", 6), ("text", 7), ("icon", 8), ("size", 9)]],
+ {
+ "help_text": "The link is shown at the bottom of the text block, with an arrow",
+ "label": "Link",
+ "required": False,
+ },
+ ),
+ 11: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link label (obsolete)",
+ "required": False,
+ },
+ ),
+ 12: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Internal link (obsolete)",
+ "required": False,
+ },
+ ),
+ 13: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link URL (obsolete)",
+ "required": False,
+ },
+ ),
+ 14: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("image", 1),
+ ("image_side", 2),
+ ("image_ratio", 3),
+ ("text", 0),
+ ("link", 10),
+ ("link_label", 11),
+ ("page", 12),
+ ("link_url", 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.RegexBlock",
+ (),
+ {
+ "error_messages": {"invalid": "Incorrect color format, must be #fff or #f5f5f5"},
+ "help_text": "This field is obsolete and will be removed in the near future. Replace it with the background color.",
+ "label": "Background color, hexadecimal format (obsolete)",
+ "regex": "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
+ "required": False,
+ },
+ ),
+ 24: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": False}),
+ 25: (
+ "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,
+ },
+ ),
+ 26: (
+ "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,
+ },
+ ),
+ 27: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image"}),
+ 28: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"label": "Alternative text (textual description of the image)", "required": False},
+ ),
+ 29: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [
+ ("fr-content-media--sm", "Small"),
+ ("", "Medium"),
+ ("fr-content-media--lg", "Large"),
+ ],
+ "label": "Witdh",
+ "required": False,
+ },
+ ),
+ 30: (
+ "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,
+ },
+ ),
+ 31: ("wagtail.blocks.CharBlock", (), {"label": "Caption", "required": False}),
+ 32: ("wagtail.blocks.URLBlock", (), {"label": "Link", "required": False}),
+ 33: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 24),
+ ("heading_tag", 26),
+ ("image", 27),
+ ("alt", 28),
+ ("width", 29),
+ ("image_ratio", 30),
+ ("caption", 31),
+ ("url", 32),
+ ]
+ ],
+ {"label": "Image"},
+ ),
+ 34: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("image", 1),
+ ("image_side", 2),
+ ("image_ratio", 3),
+ ("text", 0),
+ ("link", 10),
+ ("link_label", 11),
+ ("page", 12),
+ ("link_url", 13),
+ ]
+ ],
+ {"label": "Image and text"},
+ ),
+ 35: ("wagtail.blocks.CharBlock", (), {"label": "Message title", "required": False}),
+ 36: ("wagtail.blocks.TextBlock", (), {"label": "Message text", "required": False}),
+ 37: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [
+ ("error", "Error"),
+ ("success", "Success"),
+ ("info", "Information"),
+ ("warning", "Warning"),
+ ],
+ "label": "Message type",
+ },
+ ),
+ 38: (
+ "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",
+ },
+ ),
+ 39: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 35), ("description", 36), ("level", 37), ("heading_tag", 38)]],
+ {"label": "Alert message"},
+ ),
+ 40: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text", "required": False}),
+ 41: (
+ "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,
+ },
+ ),
+ 42: ("content_manager.blocks.IconPickerBlock", (), {"label": "Icon", "required": False}),
+ 43: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")],
+ "label": "Icon side",
+ "required": False,
+ },
+ ),
+ 44: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 4),
+ ("document", 5),
+ ("external_url", 6),
+ ("text", 7),
+ ("button_type", 41),
+ ("icon_class", 42),
+ ("icon_side", 43),
+ ]
+ ],
+ {"label": "Button"},
+ ),
+ 45: (
+ "wagtail.blocks.StreamBlock",
+ [[("button", 44)]],
+ {
+ "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",
+ },
+ ),
+ 46: (
+ "wagtail.blocks.StreamBlock",
+ [[("buttons", 45)]],
+ {"label": "Call-to-action buttons", "max_num": 1, "required": False},
+ ),
+ 47: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.",
+ "label": "Call to action label (obsolete)",
+ "required": False,
+ },
+ ),
+ 48: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.",
+ "label": "Link (obsolete)",
+ "required": False,
+ },
+ ),
+ 49: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 40), ("cta_buttons", 46), ("cta_label", 47), ("cta_url", 48)]],
+ {"label": "Text and call to action"},
+ ),
+ 50: ("wagtail.blocks.CharBlock", (), {"label": "Video title", "required": False}),
+ 51: (
+ "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",
+ },
+ ),
+ 52: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-ratio-16x9", "16x9"), ("fr-ratio-4x3", "4x3"), ("fr-ratio-1x1", "1x1")],
+ "label": "Video ratio",
+ "required": False,
+ },
+ ),
+ 53: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"default": "Transcription", "label": "Title", "required": False},
+ ),
+ 54: ("wagtail.blocks.RichTextBlock", (), {"label": "Transcription content", "required": False}),
+ 55: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 53), ("content", 54)]],
+ {"label": "Transcription", "required": False},
+ ),
+ 56: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 50),
+ ("caption", 31),
+ ("url", 51),
+ ("width", 29),
+ ("video_ratio", 52),
+ ("transcription", 55),
+ ]
+ ],
+ {"label": "Video"},
+ ),
+ 57: ("wagtail.blocks.StructBlock", [[("title", 53), ("content", 54)]], {"label": "Transcription"}),
+ 58: ("wagtail.blocks.CharBlock", (), {"label": "Badge label", "required": False}),
+ 59: (
+ "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,
+ },
+ ),
+ 60: ("wagtail.blocks.BooleanBlock", (), {"label": "Hide badge icon", "required": False}),
+ 61: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 58), ("color", 59), ("hide_icon", 60)]],
+ {"label": "Badge"},
+ ),
+ 62: ("wagtail.blocks.StreamBlock", [[("badge", 61)]], {"label": "Badge list"}),
+ 63: ("wagtail.blocks.CharBlock", (), {"label": "Title"}),
+ 64: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tag", "required": False}),
+ 65: (
+ "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,
+ },
+ ),
+ 66: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 4), ("document", 5), ("external_url", 6)]],
+ {"required": False},
+ ),
+ 67: (
+ "wagtail.blocks.StructBlock",
+ [[("label", 63), ("is_small", 64), ("color", 65), ("icon_class", 42), ("link", 66)]],
+ {"label": "Tag"},
+ ),
+ 68: ("wagtail.blocks.StreamBlock", [[("tag", 67)]], {"label": "Tag list"}),
+ 69: ("wagtail.blocks.RichTextBlock", (), {"label": "Content"}),
+ 70: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 63), ("content", 69)]],
+ {"label": "Accordion", "max_num": 15, "min_num": 1},
+ ),
+ 71: (
+ "wagtail.blocks.StreamBlock",
+ [[("title", 63), ("accordion", 70)]],
+ {"group": "DSFR components", "label": "Accordions"},
+ ),
+ 72: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": [
+ "bold",
+ "italic",
+ "link",
+ "document-link",
+ "superscript",
+ "subscript",
+ "strikethrough",
+ ],
+ "label": "Content",
+ "required": False,
+ },
+ ),
+ 73: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 4),
+ ("document", 5),
+ ("external_url", 6),
+ ("text", 7),
+ ("button_type", 41),
+ ("icon_class", 42),
+ ("icon_side", 43),
+ ]
+ ],
+ {"label": "Button", "required": False},
+ ),
+ 74: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 24),
+ ("heading_tag", 38),
+ ("icon_class", 42),
+ ("text", 72),
+ ("button", 73),
+ ("color", 19),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Callout"},
+ ),
+ 75: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": [
+ "bold",
+ "italic",
+ "link",
+ "document-link",
+ "superscript",
+ "subscript",
+ "strikethrough",
+ ],
+ "label": "Content",
+ },
+ ),
+ 76: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-text--sm", "Small"), ("", "Medium"), ("fr-text--lg", "Large")],
+ "label": "Size",
+ "required": False,
+ },
+ ),
+ 77: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 75), ("color", 19), ("size", 76)]],
+ {"group": "DSFR components", "label": "Highlight"},
+ ),
+ 78: (
+ "wagtail.blocks.StructBlock",
+ [[("image", 15), ("quote", 16), ("author_name", 17), ("author_title", 18), ("color", 19)]],
+ {"group": "DSFR components", "label": "Quote"},
+ ),
+ 79: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 4), ("document", 5), ("external_url", 6), ("text", 7), ("icon", 8), ("size", 9)]],
+ {"label": "Single link"},
+ ),
+ 80: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": ["bold", "italic", "superscript", "subscript", "strikethrough"],
+ "label": "Content",
+ "required": False,
+ },
+ ),
+ 81: (
+ "wagtail.images.blocks.ImageChooserBlock",
+ (),
+ {"help_text": "Prefer SVG files.", "label": "Image", "required": False},
+ ),
+ 82: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 4), ("document", 5), ("external_url", 6)]],
+ {"label": "Link", "required": False},
+ ),
+ 83: ("wagtail.blocks.StreamBlock", [[("badge", 61)]], {}),
+ 84: ("wagtail.blocks.StreamBlock", [[("tag", 67)]], {}),
+ 85: (
+ "wagtail.blocks.StreamBlock",
+ [[("badges", 83), ("tags", 84)]],
+ {"label": "Top detail: badges or tags", "max_num": 1, "required": False},
+ ),
+ 86: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "If the tile links to a downloadable document, the values are pre-filled.",
+ "label": "Detail text",
+ "required": False,
+ },
+ ),
+ 87: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tile", "required": False}),
+ 88: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with grey background", "required": False}),
+ 89: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without background", "required": False}),
+ 90: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without border", "required": False}),
+ 91: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with a shadow", "required": False}),
+ 92: ("wagtail.blocks.BooleanBlock", (), {"label": "Horizontal tile", "required": False}),
+ 93: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 63),
+ ("heading_tag", 38),
+ ("description", 80),
+ ("image", 81),
+ ("link", 82),
+ ("top_detail_badges_tags", 85),
+ ("detail_text", 86),
+ ("is_small", 87),
+ ("grey_background", 88),
+ ("no_background", 89),
+ ("no_border", 90),
+ ("shadow", 91),
+ ("is_horizontal", 92),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Tile"},
+ ),
+ 94: (
+ "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,
+ },
+ ),
+ 95: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {"label": "Blog", "page_type": ["blog.BlogIndexPage"]},
+ ),
+ 96: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {
+ "default": 3,
+ "label": "Number of entries",
+ "max_value": 8,
+ "min_value": 1,
+ "required": False,
+ },
+ ),
+ 97: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Category",),
+ {"label": "Filter by category", "required": False},
+ ),
+ 98: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("content_manager.Tag",),
+ {"label": "Filter by tag", "required": False},
+ ),
+ 99: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Person",),
+ {"label": "Filter by author", "required": False},
+ ),
+ 100: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Organization",),
+ {
+ "help_text": "The source is the organization of the post author",
+ "label": "Filter by source",
+ "required": False,
+ },
+ ),
+ 101: (
+ "wagtail.blocks.BooleanBlock",
+ (),
+ {"default": False, "label": "Show filters", "required": False},
+ ),
+ 102: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 24),
+ ("heading_tag", 94),
+ ("blog", 95),
+ ("entries_count", 96),
+ ("category_filter", 97),
+ ("tag_filter", 98),
+ ("author_filter", 99),
+ ("source_filter", 100),
+ ("show_filters", 101),
+ ]
+ ],
+ {"group": "Website structure", "label": "Blog recent entries"},
+ ),
+ 103: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {"label": "Event calendar", "page_type": ["events.EventsIndexPage"]},
+ ),
+ 104: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 24),
+ ("heading_tag", 94),
+ ("index_page", 103),
+ ("entries_count", 96),
+ ("category_filter", 97),
+ ("tag_filter", 98),
+ ("author_filter", 99),
+ ("source_filter", 100),
+ ("show_filters", 101),
+ ]
+ ],
+ {"group": "Website structure", "label": "Event calendar recent entries"},
+ ),
+ 105: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {"label": "Number of steps", "max_value": 8, "min_value": 1},
+ ),
+ 106: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {"label": "Current step", "max_value": 8, "min_value": 1},
+ ),
+ 107: ("wagtail.blocks.TextBlock", (), {"label": "Detail", "required": False}),
+ 108: ("wagtail.blocks.StructBlock", [[("title", 63), ("detail", 107)]], {"label": "Step"}),
+ 109: ("wagtail.blocks.StreamBlock", [[("step", 108)]], {"label": "Steps"}),
+ 110: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 63), ("total", 105), ("current", 106), ("steps", 109)]],
+ {"group": "DSFR components", "label": "Stepper"},
+ ),
+ 111: ("wagtailmarkdown.blocks.MarkdownBlock", (), {"group": "Expert syntax", "label": "Markdown"}),
+ 112: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "Accessibility: The title should describe, in a clear and concise manner, the embedded content.",
+ "label": "Title",
+ },
+ ),
+ 113: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "help_text": "Example for Tally: https://tally.so/embed/w2jMRa",
+ "label": "URL of the iframe",
+ },
+ ),
+ 114: ("wagtail.blocks.IntegerBlock", (), {"label": "Height (in pixels)"}),
+ 115: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "For example: \"allow='geolocation'\".",
+ "label": "Parameters",
+ "required": False,
+ },
+ ),
+ 116: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 112), ("url", 113), ("height", 114), ("parameters", 115)]],
+ {"group": "Expert syntax", "label": "Iframe"},
+ ),
+ 117: (
+ "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,
+ },
+ ),
+ 118: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {"default": 3, "label": "Top margin", "max_value": 15, "min_value": 0},
+ ),
+ 119: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {"default": 3, "label": "Bottom margin", "max_value": 15, "min_value": 0},
+ ),
+ 120: (
+ "wagtail.blocks.StructBlock",
+ [[("top_margin", 118), ("bottom_margin", 119)]],
+ {"group": "Page structure", "label": "Separator"},
+ ),
+ 121: (
+ "wagtail.blocks.StreamBlock",
+ [[("badge", 61)]],
+ {
+ "help_text": "Only used if the card has an image.",
+ "label": "Image area badge",
+ "max_num": 1,
+ "required": False,
+ },
+ ),
+ 122: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "group": "target",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link (obsolete)",
+ "required": False,
+ },
+ ),
+ 123: (
+ "wagtail.documents.blocks.DocumentChooserBlock",
+ (),
+ {
+ "group": "target",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "or Document (obsolete)",
+ "required": False,
+ },
+ ),
+ 124: ("wagtail.blocks.CharBlock", (), {"label": "Top detail: text", "required": False}),
+ 125: (
+ "content_manager.blocks.IconPickerBlock",
+ (),
+ {"label": "Top detail: icon", "required": False},
+ ),
+ 126: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "Incompatible with the bottom call-to-action.",
+ "label": "Bottom detail: text",
+ "required": False,
+ },
+ ),
+ 127: (
+ "content_manager.blocks.IconPickerBlock",
+ (),
+ {"label": "Bottom detail: icon", "required": False},
+ ),
+ 128: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 4), ("document", 5), ("external_url", 6), ("text", 7)]],
+ {"label": "Link"},
+ ),
+ 129: ("wagtail.blocks.StreamBlock", [[("link", 128)]], {}),
+ 130: (
+ "wagtail.blocks.StreamBlock",
+ [[("links", 129), ("buttons", 45)]],
+ {
+ "help_text": "Incompatible with the bottom detail text.",
+ "label": "Bottom call-to-action: links or buttons",
+ "max_num": 1,
+ "required": False,
+ },
+ ),
+ 131: (
+ "wagtail.blocks.BooleanBlock",
+ (),
+ {"label": "Card with grey background", "required": False},
+ ),
+ 132: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without background", "required": False}),
+ 133: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without border", "required": False}),
+ 134: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with a shadow", "required": False}),
+ 135: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 63),
+ ("heading_tag", 38),
+ ("description", 72),
+ ("image", 15),
+ ("image_ratio", 30),
+ ("image_badge", 121),
+ ("link", 82),
+ ("url", 122),
+ ("document", 123),
+ ("top_detail_text", 124),
+ ("top_detail_icon", 125),
+ ("top_detail_badges_tags", 85),
+ ("bottom_detail_text", 126),
+ ("bottom_detail_icon", 127),
+ ("call_to_action", 130),
+ ("grey_background", 131),
+ ("no_background", 132),
+ ("no_border", 133),
+ ("shadow", 134),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Vertical card"},
+ ),
+ 136: (
+ "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,
+ },
+ ),
+ 137: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Person",),
+ {
+ "help_text": "Optional, all values can be manually specified or overriden below",
+ "label": "Person",
+ "required": False,
+ },
+ ),
+ 138: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255, "required": False}),
+ 139: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255, "required": False}),
+ 140: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"label": "Organization", "max_length": 255, "required": False},
+ ),
+ 141: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"label": "Contact info", "max_length": 500, "required": False},
+ ),
+ 142: ("wagtail.blocks.StreamBlock", [[("tag", 67)]], {"label": "Tags", "required": False}),
+ 143: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("contact", 137),
+ ("link", 82),
+ ("heading_tag", 26),
+ ("name", 138),
+ ("role", 139),
+ ("organization", 140),
+ ("contact_info", 141),
+ ("image", 15),
+ ("tags", 142),
+ ]
+ ],
+ {"group": "Extra components", "label": "Contact card"},
+ ),
+ 144: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 33),
+ ("imageandtext", 34),
+ ("alert", 39),
+ ("text_cta", 49),
+ ("video", 56),
+ ("transcription", 57),
+ ("badges_list", 62),
+ ("tags_list", 68),
+ ("accordions", 71),
+ ("callout", 74),
+ ("highlight", 77),
+ ("quote", 78),
+ ("link", 79),
+ ("tile", 93),
+ ("blog_recent_entries", 102),
+ ("events_recent_entries", 104),
+ ("stepper", 110),
+ ("markdown", 111),
+ ("iframe", 116),
+ ("html", 117),
+ ("separator", 120),
+ ("card", 135),
+ ("contact_card", 143),
+ ]
+ ],
+ {"label": "Column content"},
+ ),
+ 145: (
+ "wagtail.blocks.StructBlock",
+ [[("width", 136), ("content", 144)]],
+ {"group": "Page structure", "label": "Adjustable column"},
+ ),
+ 146: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 33),
+ ("imageandtext", 34),
+ ("alert", 39),
+ ("text_cta", 49),
+ ("video", 56),
+ ("transcription", 57),
+ ("badges_list", 62),
+ ("tags_list", 68),
+ ("accordions", 71),
+ ("callout", 74),
+ ("highlight", 77),
+ ("quote", 78),
+ ("link", 79),
+ ("tile", 93),
+ ("blog_recent_entries", 102),
+ ("events_recent_entries", 104),
+ ("stepper", 110),
+ ("markdown", 111),
+ ("iframe", 116),
+ ("html", 117),
+ ("separator", 120),
+ ("card", 135),
+ ("column", 145),
+ ]
+ ],
+ {"label": "Columns"},
+ ),
+ 147: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("bg_image", 21),
+ ("bg_color_class", 22),
+ ("bg_color", 23),
+ ("title", 24),
+ ("heading_tag", 25),
+ ("columns", 146),
+ ]
+ ],
+ {"label": "Multi-colonnes"},
+ ),
+ 148: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255}),
+ 149: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255}),
+ 150: ("wagtail.blocks.CharBlock", (), {"label": "Organization", "max_length": 255}),
+ 151: (
+ "wagtail.blocks.StructBlock",
+ [[("name", 148), ("role", 149), ("organization", 150), ("contact_info", 141), ("image", 27)]],
+ {"label": "Contact card"},
+ ),
+ },
+ help_text="Text displayed at the end of every page in the category",
+ ),
+ ),
+ ]
diff --git a/content_manager/blocks.py b/content_manager/blocks.py
index b37a94e3..9c5f7159 100644
--- a/content_manager/blocks.py
+++ b/content_manager/blocks.py
@@ -5,7 +5,7 @@
from wagtail import blocks
from wagtail.blocks import BooleanBlock, StructValue
from wagtail.documents.blocks import DocumentChooserBlock
-from wagtail.images.blocks import ImageChooserBlock
+from wagtail.images.blocks import ImageBlock, ImageChooserBlock
from wagtail.snippets.blocks import SnippetChooserBlock
from wagtailmarkdown.blocks import MarkdownBlock
@@ -510,7 +510,7 @@ class Meta:
class ImageAndTextBlock(blocks.StructBlock):
- image = ImageChooserBlock(label=_("Image"))
+ image = ImageBlock(label=_("Image"))
image_side = blocks.ChoiceBlock(
label=_("Side where the image is displayed"),
choices=[
@@ -564,7 +564,7 @@ class Meta:
template = "content_manager/blocks/image_and_text.html"
-class ImageBlock(blocks.StructBlock):
+class CenteredImageBlock(blocks.StructBlock):
title = blocks.CharBlock(label=_("Title"), required=False)
heading_tag = blocks.ChoiceBlock(
label=_("Heading level"),
@@ -621,7 +621,7 @@ class SeparatorBlock(blocks.StructBlock):
class StepBlock(blocks.StructBlock):
title = blocks.CharBlock(label=_("Title"))
- detail = blocks.TextBlock(label=_("Detail"))
+ detail = blocks.TextBlock(label=_("Detail"), required=False)
class StepsListBlock(blocks.StreamBlock):
@@ -939,15 +939,19 @@ class Meta:
## Page structure blocks
class CommonStreamBlock(blocks.StreamBlock):
text = blocks.RichTextBlock(label=_("Rich text"))
- image = ImageBlock(label=_("Image"))
+ image = CenteredImageBlock(label=_("Image"))
+ imageandtext = ImageAndTextBlock(label=_("Image and text"))
+ alert = AlertBlock(label=_("Alert message"))
+ text_cta = TextAndCTA(label=_("Text and call to action"))
video = VideoBlock(label=_("Video"))
transcription = TranscriptionBlock(label=_("Transcription"))
+ badges_list = BadgesListBlock(label=_("Badge list"))
+ tags_list = TagListBlock(label=_("Tag list"))
accordions = AccordionsBlock(label=_("Accordions"), group=_("DSFR components"))
callout = CalloutBlock(label=_("Callout"), group=_("DSFR components"))
highlight = HighlightBlock(label=_("Highlight"), group=_("DSFR components"))
quote = QuoteBlock(label=_("Quote"), group=_("DSFR components"))
stepper = StepperBlock(label=_("Stepper"), group=_("DSFR components"))
- text_cta = TextAndCTA(label=_("Text and call to action"))
link = SingleLinkBlock(label=_("Single link"))
iframe = IframeBlock(label=_("Iframe"), group=_("DSFR components"))
tile = TileBlock(label=_("Tile"), group=_("DSFR components"))
@@ -955,6 +959,15 @@ class CommonStreamBlock(blocks.StreamBlock):
events_recent_entries = EventsRecentEntriesBlock(
label=_("Event calendar recent entries"), group=_("Website structure")
)
+ stepper = StepperBlock(label=_("Stepper"), group=_("DSFR components"))
+ markdown = MarkdownBlock(label=_("Markdown"), group=_("Expert syntax"))
+ iframe = IframeBlock(label=_("Iframe"), group=_("Expert syntax"))
+ html = blocks.RawHTMLBlock(
+ readonly=True,
+ help_text=_("Warning: Use HTML block with caution. Malicious code can compromise the security of the site."),
+ group=_("Expert syntax"),
+ )
+ separator = SeparatorBlock(label=_("Separator"), group=_("Page structure"))
class Meta:
icon = "dots-horizontal"
@@ -1111,24 +1124,35 @@ class Meta:
STREAMFIELD_COMMON_BLOCKS = [
("paragraph", blocks.RichTextBlock(label=_("Rich text"))),
- ("image", ImageBlock()),
+ ("image", CenteredImageBlock()),
("imageandtext", ImageAndTextBlock(label=_("Image and text"))),
("alert", AlertBlock(label=_("Alert message"))),
- ("accordions", AccordionsBlock(label=_("Accordions"), group=_("DSFR components"))),
- ("callout", CalloutBlock(label=_("Callout"), group=_("DSFR components"))),
- ("highlight", HighlightBlock(label=_("Highlight"), group=_("DSFR components"))),
- ("quote", QuoteBlock(label=_("Quote"), group=_("DSFR components"))),
+ ("text_cta", TextAndCTA(label=_("Text and call to action"))),
("video", VideoBlock(label=_("Video"))),
("transcription", TranscriptionBlock(label=_("Transcription"))),
("badges_list", BadgesListBlock(label=_("Badge list"))),
("tags_list", TagListBlock(label=_("Tag list"))),
("link", SingleLinkBlock(label=_("Single link"))),
+ ("accordions", AccordionsBlock(label=_("Accordions"), group=_("DSFR components"))),
+ ("callout", CalloutBlock(label=_("Callout"), group=_("DSFR components"))),
+ ("highlight", HighlightBlock(label=_("Highlight"), group=_("DSFR components"))),
+ ("quote", QuoteBlock(label=_("Quote"), group=_("DSFR components"))),
("stepper", StepperBlock(label=_("Stepper"), group=_("DSFR components"))),
("card", HorizontalCardBlock(label=_("Horizontal card"), group=_("DSFR components"))),
("tile", TileBlock(label=_("Tile"), group=_("DSFR components"))),
("tabs", TabsBlock(label=_("Tabs"), group=_("DSFR components"))),
("markdown", MarkdownBlock(label=_("Markdown"), group=_("Expert syntax"))),
("iframe", IframeBlock(label=_("Iframe"), group=_("Expert syntax"))),
+ (
+ "html",
+ blocks.RawHTMLBlock(
+ readonly=True,
+ help_text=_(
+ "Warning: Use HTML block with caution. Malicious code can compromise the security of the site."
+ ),
+ group=_("Expert syntax"),
+ ),
+ ),
("separator", SeparatorBlock(label=_("Separator"), group=_("Page structure"))),
("multicolumns", MultiColumnsWithTitleBlock(label=_("Multiple columns"), group=_("Page structure"))),
("item_grid", ItemGridBlock(label=_("Item grid"), group=_("Page structure"))),
@@ -1157,19 +1181,3 @@ class Meta:
EventsRecentEntriesBlock(label=_("Event calendar recent entries"), group=_("Website structure")),
),
]
-
-# See warning on https://docs.wagtail.org/en/latest/reference/streamfield/blocks.html#wagtail.blocks.RawHTMLBlock
-# There is currently no way to restrict a type of block depending on user permissions,
-# pending issue https://github.com/wagtail/wagtail/issues/6323
-STREAMFIELD_COMMON_BLOCKS += [
- (
- "html",
- blocks.RawHTMLBlock(
- readonly=True,
- help_text=_(
- "Warning: Use HTML block with caution. Malicious code can compromise the security of the site."
- ),
- group=_("Expert syntax"),
- ),
- )
-]
diff --git a/content_manager/locale/fr/LC_MESSAGES/django.mo b/content_manager/locale/fr/LC_MESSAGES/django.mo
index 9b4d133e..2ec859b6 100644
Binary files a/content_manager/locale/fr/LC_MESSAGES/django.mo and b/content_manager/locale/fr/LC_MESSAGES/django.mo differ
diff --git a/content_manager/locale/fr/LC_MESSAGES/django.po b/content_manager/locale/fr/LC_MESSAGES/django.po
index 35d6ed8d..109a2a12 100644
--- a/content_manager/locale/fr/LC_MESSAGES/django.po
+++ b/content_manager/locale/fr/LC_MESSAGES/django.po
@@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2024-12-10 14:35+0100\n"
-"PO-Revision-Date: 2024-12-10 14:35+0100\n"
+"POT-Creation-Date: 2024-12-12 12:25+0100\n"
+"PO-Revision-Date: 2024-12-12 17:54+0100\n"
"Last-Translator: \n"
"Language-Team: \n"
"Language: fr\n"
@@ -26,13 +26,13 @@ msgstr "Afficher le titre sur l’image d’en-tête ?"
msgid "Header image"
msgstr "Image d’en-tête"
-#: content_manager/abstract.py:39 content_manager/blocks.py:1025
-#: content_manager/blocks.py:1066 content_manager/blocks.py:1099
+#: content_manager/abstract.py:39 content_manager/blocks.py:1026
+#: content_manager/blocks.py:1067 content_manager/blocks.py:1100
msgid "Background color"
msgstr "Couleur de fond"
-#: content_manager/abstract.py:43 content_manager/blocks.py:1027
-#: content_manager/blocks.py:1068 content_manager/blocks.py:1101
+#: content_manager/abstract.py:43 content_manager/blocks.py:1028
+#: content_manager/blocks.py:1069 content_manager/blocks.py:1102
msgid "Uses the French Design System colors"
msgstr "Utilise les couleurs du système de design de l'État"
@@ -215,8 +215,8 @@ msgstr "Badge"
#: content_manager/blocks.py:493 content_manager/blocks.py:568
#: content_manager/blocks.py:623 content_manager/blocks.py:632
#: content_manager/blocks.py:681 content_manager/blocks.py:880
-#: content_manager/blocks.py:910 content_manager/blocks.py:982
-#: content_manager/blocks.py:1038 content_manager/models.py:518
+#: content_manager/blocks.py:910 content_manager/blocks.py:983
+#: content_manager/blocks.py:1039 content_manager/models.py:517
msgid "Title"
msgstr "Titre"
@@ -241,7 +241,7 @@ msgstr "Tag"
#: content_manager/blocks.py:439 content_manager/blocks.py:453
#: content_manager/blocks.py:570 content_manager/blocks.py:786
#: content_manager/blocks.py:882 content_manager/blocks.py:912
-#: content_manager/blocks.py:1040
+#: content_manager/blocks.py:1041
msgid "Heading level"
msgstr "Niveau de titre"
@@ -253,8 +253,8 @@ msgstr "À adapter à la structure de la page. Par défaut en-tête 3."
#: content_manager/blocks.py:270 content_manager/blocks.py:386
#: content_manager/blocks.py:423 content_manager/blocks.py:460
-#: content_manager/blocks.py:474 content_manager/blocks.py:983
-#: content_manager/blocks.py:1070
+#: content_manager/blocks.py:474 content_manager/blocks.py:984
+#: content_manager/blocks.py:1071
msgid "Content"
msgstr "Contenu"
@@ -456,7 +456,7 @@ msgid "Image width"
msgstr "Largeur de l’image"
#: content_manager/blocks.py:531 content_manager/blocks.py:642
-#: content_manager/blocks.py:941 content_manager/blocks.py:1113
+#: content_manager/blocks.py:941 content_manager/blocks.py:1114
msgid "Rich text"
msgstr "Texte avec mise en forme"
@@ -489,7 +489,7 @@ msgid "Caption"
msgstr "Légende"
#: content_manager/blocks.py:603 content_manager/blocks.py:948
-#: content_manager/blocks.py:1120
+#: content_manager/blocks.py:1122
msgid "Quote"
msgstr "Citation"
@@ -561,7 +561,7 @@ msgid "Video ratio"
msgstr "Ratio de la vidéo"
#: content_manager/blocks.py:713 content_manager/blocks.py:944
-#: content_manager/blocks.py:1122
+#: content_manager/blocks.py:1124
msgid "Transcription"
msgstr "Transcription"
@@ -575,7 +575,7 @@ msgstr ""
"Optionnel, toutes les valeurs peuvent être spécifiées ou surchargées ci-"
"dessous"
-#: content_manager/blocks.py:792 content_manager/models.py:550
+#: content_manager/blocks.py:792 content_manager/models.py:549
msgid "Name"
msgstr "Nom"
@@ -591,16 +591,16 @@ msgstr "Organisation"
msgid "Contact info"
msgstr "Informations de contact"
-#: content_manager/blocks.py:797 content_manager/models.py:95
-#: content_manager/models.py:137 content_manager/models.py:151
-#: content_manager/models.py:157
+#: content_manager/blocks.py:797 content_manager/models.py:94
+#: content_manager/models.py:136 content_manager/models.py:150
+#: content_manager/models.py:156
#: content_manager/templates/content_manager/tags_list_page.html:49
#: content_manager/views.py:46 content_manager/views.py:77
msgid "Tags"
msgstr "Étiquettes"
#: content_manager/blocks.py:886 content_manager/blocks.py:916
-#: content_manager/blocks.py:1044
+#: content_manager/blocks.py:1045
msgid "Adapt to the page layout. Defaults to heading 2."
msgstr "À adapter à la structure de la page. Par défaut en-tête 2."
@@ -620,7 +620,7 @@ msgid "Filter by category"
msgstr "Filtrer par catégorie"
#: content_manager/blocks.py:893 content_manager/blocks.py:923
-#: content_manager/models.py:57
+#: content_manager/models.py:56
#: content_manager/templates/content_manager/blocks/blog_recent_entries.html:28
#: content_manager/templates/content_manager/blocks/events_recent_entries.html:28
#: content_manager/templates/content_manager/catalog_index_page.html:94
@@ -647,7 +647,7 @@ msgstr ""
"La source est l’organisation à laquelle appartient l’auteur de l’article"
#: content_manager/blocks.py:901 content_manager/blocks.py:931
-#: content_manager/models.py:65
+#: content_manager/models.py:64
msgid "Show filters"
msgstr "Afficher les filtres"
@@ -655,122 +655,123 @@ msgstr "Afficher les filtres"
msgid "Event calendar"
msgstr "Agenda"
-#: content_manager/blocks.py:943 content_manager/blocks.py:1121
+#: content_manager/blocks.py:943 content_manager/blocks.py:1123
msgid "Video"
msgstr "Vidéo"
-#: content_manager/blocks.py:945 content_manager/blocks.py:1117
+#: content_manager/blocks.py:945 content_manager/blocks.py:1118
msgid "Accordions"
msgstr "Accordéons"
#: content_manager/blocks.py:945 content_manager/blocks.py:946
#: content_manager/blocks.py:947 content_manager/blocks.py:948
#: content_manager/blocks.py:949 content_manager/blocks.py:952
-#: content_manager/blocks.py:953 content_manager/blocks.py:964
-#: content_manager/blocks.py:1015 content_manager/blocks.py:1055
-#: content_manager/blocks.py:1056 content_manager/blocks.py:1117
+#: content_manager/blocks.py:953 content_manager/blocks.py:958
+#: content_manager/blocks.py:965 content_manager/blocks.py:1016
+#: content_manager/blocks.py:1056 content_manager/blocks.py:1057
#: content_manager/blocks.py:1118 content_manager/blocks.py:1119
-#: content_manager/blocks.py:1120 content_manager/blocks.py:1126
-#: content_manager/blocks.py:1127 content_manager/blocks.py:1128
-#: content_manager/blocks.py:1129
+#: content_manager/blocks.py:1121 content_manager/blocks.py:1122
+#: content_manager/blocks.py:1128 content_manager/blocks.py:1129
+#: content_manager/blocks.py:1130 content_manager/blocks.py:1131
msgid "DSFR components"
msgstr "Composants du DSFR"
-#: content_manager/blocks.py:946 content_manager/blocks.py:1118
+#: content_manager/blocks.py:946 content_manager/blocks.py:1119
msgid "Callout"
msgstr "Mise en avant"
-#: content_manager/blocks.py:947 content_manager/blocks.py:1119
+#: content_manager/blocks.py:947 content_manager/blocks.py:1121
msgid "Highlight"
msgstr "Mise en exergue"
-#: content_manager/blocks.py:949 content_manager/blocks.py:1126
+#: content_manager/blocks.py:949 content_manager/blocks.py:958
+#: content_manager/blocks.py:1128
msgid "Stepper"
-msgstr "Étapier"
+msgstr "Indicateur d’étapes"
-#: content_manager/blocks.py:950
+#: content_manager/blocks.py:950 content_manager/blocks.py:1120
msgid "Text and call to action"
msgstr "Texte et appel à action"
-#: content_manager/blocks.py:951 content_manager/blocks.py:1125
+#: content_manager/blocks.py:951 content_manager/blocks.py:1127
msgid "Single link"
msgstr "Lien isolé"
-#: content_manager/blocks.py:952 content_manager/blocks.py:1131
+#: content_manager/blocks.py:952 content_manager/blocks.py:1133
msgid "Iframe"
msgstr "Iframe"
-#: content_manager/blocks.py:953 content_manager/blocks.py:1128
+#: content_manager/blocks.py:953 content_manager/blocks.py:1130
msgid "Tile"
msgstr "Tuile"
-#: content_manager/blocks.py:954 content_manager/blocks.py:1153
+#: content_manager/blocks.py:954 content_manager/blocks.py:1155
msgid "Blog recent entries"
msgstr "Articles récents du blog"
#: content_manager/blocks.py:954 content_manager/blocks.py:956
-#: content_manager/blocks.py:1148 content_manager/blocks.py:1153
-#: content_manager/blocks.py:1157
+#: content_manager/blocks.py:1150 content_manager/blocks.py:1155
+#: content_manager/blocks.py:1159
msgid "Website structure"
msgstr "Structure du site"
-#: content_manager/blocks.py:956 content_manager/blocks.py:1157
+#: content_manager/blocks.py:956 content_manager/blocks.py:1159
msgid "Event calendar recent entries"
msgstr "Articles récents de l’agenda"
-#: content_manager/blocks.py:964 content_manager/blocks.py:1015
+#: content_manager/blocks.py:965 content_manager/blocks.py:1016
msgid "Vertical card"
msgstr "Carte verticale"
-#: content_manager/blocks.py:965
+#: content_manager/blocks.py:966
msgid "Contact card"
msgstr "Carte contact"
-#: content_manager/blocks.py:965
+#: content_manager/blocks.py:966
msgid "Extra components"
msgstr "Composants supplémentaires"
-#: content_manager/blocks.py:970 content_manager/blocks.py:995
+#: content_manager/blocks.py:971 content_manager/blocks.py:996
msgid "Column width"
msgstr "Largeur de colonne"
-#: content_manager/blocks.py:974
+#: content_manager/blocks.py:975
msgid "Items"
msgstr "Éléments"
-#: content_manager/blocks.py:987
+#: content_manager/blocks.py:988
msgid "Tab"
msgstr "Onglet"
-#: content_manager/blocks.py:1005
+#: content_manager/blocks.py:1006
msgid "The total width of all columns should be 12."
msgstr "La largeur totale de toutes les colonnes doit être 12."
-#: content_manager/blocks.py:1008
+#: content_manager/blocks.py:1009
msgid "Column content"
msgstr "Contenu de la colonnne"
-#: content_manager/blocks.py:1016
+#: content_manager/blocks.py:1017
msgid "Adjustable column"
msgstr "Colonne ajustable"
-#: content_manager/blocks.py:1016 content_manager/blocks.py:1057
-#: content_manager/blocks.py:1132 content_manager/blocks.py:1133
+#: content_manager/blocks.py:1017 content_manager/blocks.py:1058
#: content_manager/blocks.py:1134 content_manager/blocks.py:1135
-#: content_manager/blocks.py:1139
+#: content_manager/blocks.py:1136 content_manager/blocks.py:1137
+#: content_manager/blocks.py:1141
msgid "Page structure"
msgstr "Structure de la page"
-#: content_manager/blocks.py:1023 content_manager/blocks.py:1064
-#: content_manager/blocks.py:1097
+#: content_manager/blocks.py:1024 content_manager/blocks.py:1065
+#: content_manager/blocks.py:1098
msgid "Background image"
msgstr "Image de fond"
-#: content_manager/blocks.py:1030
+#: content_manager/blocks.py:1031
msgid "Background color, hexadecimal format (obsolete)"
msgstr "Couleur de fond, format hexadécimal (obsolète)"
-#: content_manager/blocks.py:1033
+#: content_manager/blocks.py:1034
msgid ""
"This field is obsolete and will be removed in the near future. Replace it "
"with the background color."
@@ -778,35 +779,35 @@ msgstr ""
"Ce champ est obsolète et sera prochainement supprimé. Merci de le remplacer "
"avec la couleur de fond."
-#: content_manager/blocks.py:1035
+#: content_manager/blocks.py:1036
msgid "Incorrect color format, must be #fff or #f5f5f5"
msgstr "Format de couleur incorrect, doit être #fff ou #f5f5f5"
-#: content_manager/blocks.py:1046
+#: content_manager/blocks.py:1047
msgid "Columns"
msgstr "Colonnes"
-#: content_manager/blocks.py:1054 content_manager/blocks.py:1115
+#: content_manager/blocks.py:1055 content_manager/blocks.py:1116
msgid "Image and text"
msgstr "Image et texte"
-#: content_manager/blocks.py:1055 content_manager/blocks.py:1127
+#: content_manager/blocks.py:1056 content_manager/blocks.py:1129
msgid "Horizontal card"
msgstr "Carte horizontale"
-#: content_manager/blocks.py:1056 content_manager/blocks.py:1129
+#: content_manager/blocks.py:1057 content_manager/blocks.py:1131
msgid "Tabs"
msgstr "Onglets"
-#: content_manager/blocks.py:1057 content_manager/blocks.py:1134
+#: content_manager/blocks.py:1058 content_manager/blocks.py:1136
msgid "Item grid"
msgstr "Grille d’éléments"
-#: content_manager/blocks.py:1078
+#: content_manager/blocks.py:1079
msgid "Parent page"
msgstr "Page parente"
-#: content_manager/blocks.py:1088 content_manager/blocks.py:1170
+#: content_manager/blocks.py:1089 content_manager/blocks.py:1172
msgid ""
"Warning: Use HTML block with caution. Malicious code can compromise the "
"security of the site."
@@ -814,64 +815,64 @@ msgstr ""
"Avertissement : Utilisez le bloc HTML avec précaution. Un code malveillant "
"peut compromettre la sécurité du site."
-#: content_manager/blocks.py:1090
+#: content_manager/blocks.py:1091
msgid "Page tree"
msgstr "Arborescence de pages"
-#: content_manager/blocks.py:1103
+#: content_manager/blocks.py:1104
msgid "Main content"
msgstr "Contenu principal"
-#: content_manager/blocks.py:1104
+#: content_manager/blocks.py:1105
msgid "Side menu title"
msgstr "Titre du menu latéral"
-#: content_manager/blocks.py:1105
+#: content_manager/blocks.py:1106
msgid "Side menu content"
msgstr "Contenu du menu latéral"
-#: content_manager/blocks.py:1116
+#: content_manager/blocks.py:1117
msgid "Alert message"
msgstr "Message d’alerte"
-#: content_manager/blocks.py:1123
+#: content_manager/blocks.py:1125
msgid "Badge list"
msgstr "Liste de badges"
-#: content_manager/blocks.py:1124
+#: content_manager/blocks.py:1126
msgid "Tag list"
msgstr "Liste de tags"
-#: content_manager/blocks.py:1130
+#: content_manager/blocks.py:1132
msgid "Markdown"
msgstr "Markdown"
-#: content_manager/blocks.py:1130 content_manager/blocks.py:1131
-#: content_manager/blocks.py:1172
+#: content_manager/blocks.py:1132 content_manager/blocks.py:1133
+#: content_manager/blocks.py:1174
msgid "Expert syntax"
msgstr "Syntaxe experte"
-#: content_manager/blocks.py:1132
+#: content_manager/blocks.py:1134
msgid "Separator"
msgstr "Séparateur"
-#: content_manager/blocks.py:1133
+#: content_manager/blocks.py:1135
msgid "Multiple columns"
msgstr "Multi-colonnes"
-#: content_manager/blocks.py:1135
+#: content_manager/blocks.py:1137
msgid "Full width background"
msgstr "Fond pleine largeur"
-#: content_manager/blocks.py:1139
+#: content_manager/blocks.py:1141
msgid "Full width background with side menu"
msgstr "Fond pleine largeur avec menu latéral"
-#: content_manager/blocks.py:1145
+#: content_manager/blocks.py:1147
msgid "Subpages list"
msgstr "Liste des sous-pages"
-#: content_manager/blocks.py:1146
+#: content_manager/blocks.py:1148
msgid "A simple, alphabetical list of the subpages of the current page."
msgstr ""
"Une liste alphabétique toute simple des sous-pages de la page actuelle."
@@ -959,56 +960,56 @@ msgstr "Icône du côté droit"
msgid "Icon on the left side"
msgstr "Icône du côté gauche"
-#: content_manager/models.py:34
+#: content_manager/models.py:33
msgid "Content page"
msgstr "Page de contenu"
-#: content_manager/models.py:53
+#: content_manager/models.py:52
msgid "Entries per page"
msgstr "Entrées par page"
-#: content_manager/models.py:72
+#: content_manager/models.py:71
msgid "Catalog index page"
msgstr "Index de catalogue"
-#: content_manager/models.py:100
+#: content_manager/models.py:99
#, python-format
msgid "Pages tagged with %(tag)s"
msgstr "Pages avec l’étiquette %(tag)s"
-#: content_manager/models.py:173
+#: content_manager/models.py:172
msgid "Tag"
msgstr "Étiquette"
-#: content_manager/models.py:195 content_manager/models.py:230
+#: content_manager/models.py:194 content_manager/models.py:229
msgid "Custom scripts"
msgstr "Scripts personnalisés"
-#: content_manager/models.py:200
+#: content_manager/models.py:199
msgid "Scripts in the
section"
msgstr "Scripts dans la section "
-#: content_manager/models.py:201
+#: content_manager/models.py:200
msgid "Allows for scripts to be placed in the tag of the website pages."
msgstr ""
"Permet de placer des scripts à l’intérieur du tag des pages du site."
-#: content_manager/models.py:207
+#: content_manager/models.py:206
msgid "Scripts in the section"
msgstr "Scripts dans la section "
-#: content_manager/models.py:208
+#: content_manager/models.py:207
msgid ""
"Allows for scripts to be placed at the end of the tag of the website "
"pages."
msgstr ""
"Permet de placer des scripts à l’intérieur du tag des pages du site."
-#: content_manager/models.py:212
+#: content_manager/models.py:211
msgid "Use Tarteaucitron?"
msgstr "Utiliser Tarteaucitron ?"
-#: content_manager/models.py:216
+#: content_manager/models.py:215
msgid ""
"See Documentation"
@@ -1016,7 +1017,7 @@ msgstr ""
"Voir Documentation"
-#: content_manager/models.py:231
+#: content_manager/models.py:230
msgid ""
"Allows to add custom CSS and JS to the site, for example for Matomo, "
"Tarteaucitron…"
@@ -1024,19 +1025,19 @@ msgstr ""
"Permet d’ajouter du CSS et du JS personnalisé au site, par exemple pour "
"Matomo, Tarteaucitron…"
-#: content_manager/models.py:239
+#: content_manager/models.py:238
msgid "Site configuration"
msgstr "Configuration du site"
-#: content_manager/models.py:240
+#: content_manager/models.py:239
msgid "Site configurations"
msgstr "Configurations du site"
-#: content_manager/models.py:243
+#: content_manager/models.py:242
msgid "Institution (header)"
msgstr "Institution (en-tête)"
-#: content_manager/models.py:248
+#: content_manager/models.py:247
msgid ""
"Institution brand as defined on official page."
@@ -1044,47 +1045,47 @@ msgstr ""
"Nom de l’institution tel que défini sur la page officielle."
-#: content_manager/models.py:254
+#: content_manager/models.py:253
msgid "Institution with line break (header)"
msgstr "Institution avec césure (en-tête)"
-#: content_manager/models.py:258
+#: content_manager/models.py:257
msgid "Institution brand with
tags for line breaks"
msgstr "Nom de l’institution avec des
pour les retours à la ligne"
-#: content_manager/models.py:261
+#: content_manager/models.py:260
msgid "Institution (footer)"
msgstr "Institution (pied)"
-#: content_manager/models.py:268
+#: content_manager/models.py:267
msgid "Institution with line break (footer)"
msgstr "Institution avec césure (pied)"
-#: content_manager/models.py:275 content_manager/models.py:277
+#: content_manager/models.py:274 content_manager/models.py:276
msgid "Site title"
msgstr "Titre du site"
-#: content_manager/models.py:281 content_manager/models.py:283
+#: content_manager/models.py:280 content_manager/models.py:282
msgid "Site tagline"
msgstr "Sous-titre du site"
-#: content_manager/models.py:288
+#: content_manager/models.py:287
msgid "Notice title"
msgstr "Titre du bandeau"
-#: content_manager/models.py:292 content_manager/models.py:299
+#: content_manager/models.py:291 content_manager/models.py:298
msgid "Can include HTML"
msgstr "Peut inclure du HTML"
-#: content_manager/models.py:296
+#: content_manager/models.py:295
msgid "Notice description"
msgstr "Description du bandeau"
-#: content_manager/models.py:302
+#: content_manager/models.py:301
msgid "Notice type"
msgstr "Type de bandeau"
-#: content_manager/models.py:309
+#: content_manager/models.py:308
msgid ""
"Use is strictly regulated, see documentation."
-#: content_manager/models.py:316
+#: content_manager/models.py:315
msgid "Notice link"
msgstr "Lien du bandeau"
-#: content_manager/models.py:319
+#: content_manager/models.py:318
msgid "Standardized consultation link at the end of the notice."
msgstr "Lien de consultation standardisé à la fin du bandeau."
-#: content_manager/models.py:323
+#: content_manager/models.py:322
msgid "Notice icon class"
msgstr "Classe d’icône du bandeau"
-#: content_manager/models.py:327
+#: content_manager/models.py:326
msgid "For weather alerts only"
msgstr "Pour les bandeaux de vigilance météo uniquement"
-#: content_manager/models.py:330
+#: content_manager/models.py:329
msgid "Collapsible?"
msgstr "Refermable ?"
-#: content_manager/models.py:332
+#: content_manager/models.py:331
msgid "Show the BETA tag next to the title"
msgstr "Afficher la mention BETA à côté du titre"
-#: content_manager/models.py:335 content_manager/models.py:554
+#: content_manager/models.py:334 content_manager/models.py:553
msgid "Description"
msgstr "Description"
-#: content_manager/models.py:348 content_manager/models.py:424
+#: content_manager/models.py:347 content_manager/models.py:423
msgid "Operator logo"
msgstr "Logo opérateur"
-#: content_manager/models.py:352
+#: content_manager/models.py:351
msgid "Logo alt text"
msgstr "Alternative textuelle du logo"
-#: content_manager/models.py:355
+#: content_manager/models.py:354
msgid "Must contain the text present in the image."
msgstr "Doit impérativement contenir le texte présent dans l’image."
-#: content_manager/models.py:358
+#: content_manager/models.py:357
msgid "Width (em)"
msgstr "Largeur (em)"
-#: content_manager/models.py:364
+#: content_manager/models.py:363
msgid ""
"To be adjusted according to the width of the logo. Example for a "
"vertical logo: 3.5, Example for a horizontal logo: 8."
@@ -1146,64 +1147,64 @@ msgstr ""
"À ajuster en fonction de la largeur du logo. Exemple pour un logo vertical: "
"3.5, Exemple pour un logo horizontal: 8."
-#: content_manager/models.py:369
+#: content_manager/models.py:368
msgid "Display search bar in the header"
msgstr "Afficher la barre de recherche dans l’en-tête"
-#: content_manager/models.py:370
+#: content_manager/models.py:369
msgid "Display theme modale button"
msgstr "Afficher le bouton de choix du thème"
-#: content_manager/models.py:371
+#: content_manager/models.py:370
msgid "Mourning"
msgstr "Mise en berne"
-#: content_manager/models.py:373
+#: content_manager/models.py:372
msgid "Newsletter description"
msgstr "Description de la lettre d’information"
-#: content_manager/models.py:376
+#: content_manager/models.py:375
msgid "Newsletter registration URL"
msgstr "URL d‘inscription à la lettre d’information"
-#: content_manager/models.py:381
+#: content_manager/models.py:380
msgid "Activate share links on content_pages"
msgstr "Activer les liens de partage sur les pages de contenu"
-#: content_manager/models.py:382
+#: content_manager/models.py:381
msgid "Activate share links on blog posts"
msgstr "Activer les liens de partage sur les articles de blog"
-#: content_manager/models.py:383
+#: content_manager/models.py:382
msgid "Activate share links on event pages"
msgstr "Activer les liens de partage sur les pages d’événement"
-#: content_manager/models.py:386
+#: content_manager/models.py:385
msgid "Display a Share on Facebook link at the bottom of pages"
msgstr "Afficher un lien de partage sur Facebook en bas des pages"
-#: content_manager/models.py:389
+#: content_manager/models.py:388
msgid "Display a Share on X (previously Twitter) link at the bottom of pages"
msgstr ""
"Afficher un lien de partage sur X (anciennement Twitter) en bas des pages"
-#: content_manager/models.py:392
+#: content_manager/models.py:391
msgid "Display a Share on LinkedIn link at the bottom of pages"
msgstr "Afficher un lien de partage sur LinkedIn en bas des pages"
-#: content_manager/models.py:394
+#: content_manager/models.py:393
msgid "Display a Share via email link at the bottom of pages"
msgstr "Afficher un lien de partage par courrier électronique en bas des pages"
-#: content_manager/models.py:396
+#: content_manager/models.py:395
msgid "Display a Copy to clipboard link at the bottom of pages"
msgstr "Afficher un lien de copie dans le presse-papiers en bas des pages"
-#: content_manager/models.py:412
+#: content_manager/models.py:411
msgid "Important notice"
msgstr "Bandeau d’information importante"
-#: content_manager/models.py:414
+#: content_manager/models.py:413
msgid ""
"The important notice banner should only be used for essential and temporary "
"information. (Excessive or continuous use risks “drowning” "
@@ -1213,83 +1214,83 @@ msgstr ""
"information primordiale et temporaire. (Une utilisation excessive ou "
"continue risque de “noyer” le message)"
-#: content_manager/models.py:433
+#: content_manager/models.py:432
msgid "Advanced settings"
msgstr "Paramètres avancés"
-#: content_manager/models.py:443
+#: content_manager/models.py:442
msgid "Header"
msgstr "En-tête"
-#: content_manager/models.py:450
+#: content_manager/models.py:449
msgid "Footer"
msgstr "Pied de page"
-#: content_manager/models.py:460
+#: content_manager/models.py:459
msgid "Newsletter"
msgstr "Lettre d’information"
-#: content_manager/models.py:462 content_manager/models.py:535
+#: content_manager/models.py:461 content_manager/models.py:534
msgid "Social media items"
msgstr "Liens de réseaux sociaux"
-#: content_manager/models.py:469
+#: content_manager/models.py:468
msgid "Activate share links by type of page"
msgstr "Activer les liens de partage par type de page"
-#: content_manager/models.py:479
+#: content_manager/models.py:478
msgid "Types of share links"
msgstr "Types de liens de partage"
-#: content_manager/models.py:484
+#: content_manager/models.py:483
msgid "Generic"
msgstr "Génériques"
-#: content_manager/models.py:485
+#: content_manager/models.py:484
msgid "Brand block"
msgstr "Bloc-marque"
-#: content_manager/models.py:486
+#: content_manager/models.py:485
msgid "Newsletter, social media and share links"
msgstr "Lettre d’information, réseaux sociaux et liens de partage"
-#: content_manager/models.py:521
+#: content_manager/models.py:520
msgid "URL"
msgstr "URL"
-#: content_manager/models.py:525
+#: content_manager/models.py:524
msgid "Icon class"
msgstr "Classe d’icône"
-#: content_manager/models.py:534
+#: content_manager/models.py:533
msgid "Social media item"
msgstr "Lien de réseau social"
-#: content_manager/models.py:541
+#: content_manager/models.py:540
msgid "Category"
msgstr "Catégorie"
-#: content_manager/models.py:544
+#: content_manager/models.py:543
msgid "Mega menu category"
msgstr "Catégorie de méga menu"
-#: content_manager/models.py:545
+#: content_manager/models.py:544
msgid "Mega menu categories"
msgstr "Catégories de méga menu"
-#: content_manager/models.py:555
+#: content_manager/models.py:554
msgid "Main link"
msgstr "Lien principal"
-#: content_manager/models.py:565
+#: content_manager/models.py:564
msgid "Categories"
msgstr "Catégories"
-#: content_manager/models.py:566
+#: content_manager/models.py:565
msgid "Maximum 4 categories, each with maximum 8 links."
msgstr "Maximum 4 catégories, chacune contenant maximum 8 liens."
-#: content_manager/models.py:577
+#: content_manager/models.py:576
msgid "Mega menu"
msgstr "Méga menu"
@@ -1350,6 +1351,11 @@ msgstr "Visibilité de la page restreinte par mot de passe"
msgid "Page with restricted visibility"
msgstr "Visibilité de la page restreinte"
+#: content_manager/templates/content_manager/blocks/stepper.html:8
+#, python-format
+msgid "Step %(current_step)s of %(total_steps)s"
+msgstr "Étape %(current_step)s suréta %(total_steps)s"
+
#: content_manager/templates/content_manager/blocks/tabs.html:3
msgid "Tabs group"
msgstr "Groupe d’onglets"
diff --git a/content_manager/migrations/0051_alter_catalogindexpage_body_alter_contentpage_body.py b/content_manager/migrations/0051_alter_catalogindexpage_body_alter_contentpage_body.py
new file mode 100644
index 00000000..97ecafd3
--- /dev/null
+++ b/content_manager/migrations/0051_alter_catalogindexpage_body_alter_contentpage_body.py
@@ -0,0 +1,2808 @@
+# Generated by Django 5.1.4 on 2024-12-12 14:05
+
+import wagtail.fields
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ("content_manager", "0050_catalogindexpage"),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name="catalogindexpage",
+ name="body",
+ field=wagtail.fields.StreamField(
+ [
+ ("paragraph", 0),
+ ("image", 9),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("badges_list", 50),
+ ("tags_list", 56),
+ ("link", 57),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("stepper", 78),
+ ("card", 98),
+ ("tile", 108),
+ ("tabs", 137),
+ ("markdown", 138),
+ ("iframe", 139),
+ ("separator", 142),
+ ("multicolumns", 151),
+ ("item_grid", 154),
+ ("fullwidthbackground", 156),
+ ("fullwidthbackgroundwithsidemenu", 163),
+ ("subpageslist", 164),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("html", 165),
+ ],
+ 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),
+ ]
+ ],
+ {},
+ ),
+ 10: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("left", "Left"), ("right", "Right")],
+ "label": "Side where the image is displayed",
+ },
+ ),
+ 11: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {"choices": [("3", "3/12"), ("5", "5/12"), ("6", "6/12")], "label": "Image width"},
+ ),
+ 12: (
+ "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,
+ },
+ ),
+ 13: (
+ "wagtail.documents.blocks.DocumentChooserBlock",
+ (),
+ {
+ "help_text": "Use either this, the external URL or the page parameter.",
+ "label": "Document",
+ "required": False,
+ },
+ ),
+ 14: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "help_text": "Use either this, the document or the page parameter.",
+ "label": "External URL",
+ "required": False,
+ },
+ ),
+ 15: ("wagtail.blocks.CharBlock", (), {"label": "Link label", "required": False}),
+ 16: (
+ "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,
+ },
+ ),
+ 17: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-link--sm", "Small"), ("", "Medium"), ("fr-link--lg", "Large")],
+ "label": "Size",
+ "required": False,
+ },
+ ),
+ 18: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 12),
+ ("document", 13),
+ ("external_url", 14),
+ ("text", 15),
+ ("icon", 16),
+ ("size", 17),
+ ]
+ ],
+ {
+ "help_text": "The link is shown at the bottom of the text block, with an arrow",
+ "label": "Link",
+ "required": False,
+ },
+ ),
+ 19: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link label (obsolete)",
+ "required": False,
+ },
+ ),
+ 20: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Internal link (obsolete)",
+ "required": False,
+ },
+ ),
+ 21: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link URL (obsolete)",
+ "required": False,
+ },
+ ),
+ 22: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("image", 3),
+ ("image_side", 10),
+ ("image_ratio", 11),
+ ("text", 0),
+ ("link", 18),
+ ("link_label", 19),
+ ("page", 20),
+ ("link_url", 21),
+ ]
+ ],
+ {"label": "Image and text"},
+ ),
+ 23: ("wagtail.blocks.CharBlock", (), {"label": "Message title", "required": False}),
+ 24: ("wagtail.blocks.TextBlock", (), {"label": "Message text", "required": False}),
+ 25: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [
+ ("error", "Error"),
+ ("success", "Success"),
+ ("info", "Information"),
+ ("warning", "Warning"),
+ ],
+ "label": "Message type",
+ },
+ ),
+ 26: (
+ "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",
+ },
+ ),
+ 27: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 23), ("description", 24), ("level", 25), ("heading_tag", 26)]],
+ {"label": "Alert message"},
+ ),
+ 28: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text", "required": False}),
+ 29: (
+ "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,
+ },
+ ),
+ 30: ("content_manager.blocks.IconPickerBlock", (), {"label": "Icon", "required": False}),
+ 31: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")],
+ "label": "Icon side",
+ "required": False,
+ },
+ ),
+ 32: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 12),
+ ("document", 13),
+ ("external_url", 14),
+ ("text", 15),
+ ("button_type", 29),
+ ("icon_class", 30),
+ ("icon_side", 31),
+ ]
+ ],
+ {"label": "Button"},
+ ),
+ 33: (
+ "wagtail.blocks.StreamBlock",
+ [[("button", 32)]],
+ {
+ "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",
+ },
+ ),
+ 34: (
+ "wagtail.blocks.StreamBlock",
+ [[("buttons", 33)]],
+ {"label": "Call-to-action buttons", "max_num": 1, "required": False},
+ ),
+ 35: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.",
+ "label": "Call to action label (obsolete)",
+ "required": False,
+ },
+ ),
+ 36: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.",
+ "label": "Link (obsolete)",
+ "required": False,
+ },
+ ),
+ 37: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 28), ("cta_buttons", 34), ("cta_label", 35), ("cta_url", 36)]],
+ {"label": "Text and call to action"},
+ ),
+ 38: ("wagtail.blocks.CharBlock", (), {"label": "Video title", "required": False}),
+ 39: (
+ "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",
+ },
+ ),
+ 40: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-ratio-16x9", "16x9"), ("fr-ratio-4x3", "4x3"), ("fr-ratio-1x1", "1x1")],
+ "label": "Video ratio",
+ "required": False,
+ },
+ ),
+ 41: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"default": "Transcription", "label": "Title", "required": False},
+ ),
+ 42: ("wagtail.blocks.RichTextBlock", (), {"label": "Transcription content", "required": False}),
+ 43: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 41), ("content", 42)]],
+ {"label": "Transcription", "required": False},
+ ),
+ 44: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 38),
+ ("caption", 7),
+ ("url", 39),
+ ("width", 5),
+ ("video_ratio", 40),
+ ("transcription", 43),
+ ]
+ ],
+ {"label": "Video"},
+ ),
+ 45: ("wagtail.blocks.StructBlock", [[("title", 41), ("content", 42)]], {"label": "Transcription"}),
+ 46: ("wagtail.blocks.CharBlock", (), {"label": "Badge label", "required": False}),
+ 47: (
+ "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,
+ },
+ ),
+ 48: ("wagtail.blocks.BooleanBlock", (), {"label": "Hide badge icon", "required": False}),
+ 49: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 46), ("color", 47), ("hide_icon", 48)]],
+ {"label": "Badge"},
+ ),
+ 50: ("wagtail.blocks.StreamBlock", [[("badge", 49)]], {"label": "Badge list"}),
+ 51: ("wagtail.blocks.CharBlock", (), {"label": "Title"}),
+ 52: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tag", "required": False}),
+ 53: (
+ "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,
+ },
+ ),
+ 54: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 12), ("document", 13), ("external_url", 14)]],
+ {"required": False},
+ ),
+ 55: (
+ "wagtail.blocks.StructBlock",
+ [[("label", 51), ("is_small", 52), ("color", 53), ("icon_class", 30), ("link", 54)]],
+ {"label": "Tag"},
+ ),
+ 56: ("wagtail.blocks.StreamBlock", [[("tag", 55)]], {"label": "Tag list"}),
+ 57: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 12),
+ ("document", 13),
+ ("external_url", 14),
+ ("text", 15),
+ ("icon", 16),
+ ("size", 17),
+ ]
+ ],
+ {"label": "Single link"},
+ ),
+ 58: ("wagtail.blocks.RichTextBlock", (), {"label": "Content"}),
+ 59: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 51), ("content", 58)]],
+ {"label": "Accordion", "max_num": 15, "min_num": 1},
+ ),
+ 60: (
+ "wagtail.blocks.StreamBlock",
+ [[("title", 51), ("accordion", 59)]],
+ {"group": "DSFR components", "label": "Accordions"},
+ ),
+ 61: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": [
+ "bold",
+ "italic",
+ "link",
+ "document-link",
+ "superscript",
+ "subscript",
+ "strikethrough",
+ ],
+ "label": "Content",
+ "required": False,
+ },
+ ),
+ 62: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 12),
+ ("document", 13),
+ ("external_url", 14),
+ ("text", 15),
+ ("button_type", 29),
+ ("icon_class", 30),
+ ("icon_side", 31),
+ ]
+ ],
+ {"label": "Button", "required": False},
+ ),
+ 63: (
+ "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,
+ },
+ ),
+ 64: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 26),
+ ("icon_class", 30),
+ ("text", 61),
+ ("button", 62),
+ ("color", 63),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Callout"},
+ ),
+ 65: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": [
+ "bold",
+ "italic",
+ "link",
+ "document-link",
+ "superscript",
+ "subscript",
+ "strikethrough",
+ ],
+ "label": "Content",
+ },
+ ),
+ 66: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-text--sm", "Small"), ("", "Medium"), ("fr-text--lg", "Large")],
+ "label": "Size",
+ "required": False,
+ },
+ ),
+ 67: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 65), ("color", 63), ("size", 66)]],
+ {"group": "DSFR components", "label": "Highlight"},
+ ),
+ 68: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image", "required": False}),
+ 69: ("wagtail.blocks.CharBlock", (), {"label": "Quote"}),
+ 70: ("wagtail.blocks.CharBlock", (), {"label": "Author name", "required": False}),
+ 71: ("wagtail.blocks.CharBlock", (), {"label": "Author title", "required": False}),
+ 72: (
+ "wagtail.blocks.StructBlock",
+ [[("image", 68), ("quote", 69), ("author_name", 70), ("author_title", 71), ("color", 63)]],
+ {"group": "DSFR components", "label": "Quote"},
+ ),
+ 73: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {"label": "Number of steps", "max_value": 8, "min_value": 1},
+ ),
+ 74: ("wagtail.blocks.IntegerBlock", (), {"label": "Current step", "max_value": 8, "min_value": 1}),
+ 75: ("wagtail.blocks.TextBlock", (), {"label": "Detail", "required": False}),
+ 76: ("wagtail.blocks.StructBlock", [[("title", 51), ("detail", 75)]], {"label": "Step"}),
+ 77: ("wagtail.blocks.StreamBlock", [[("step", 76)]], {"label": "Steps"}),
+ 78: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 51), ("total", 73), ("current", 74), ("steps", 77)]],
+ {"group": "DSFR components", "label": "Stepper"},
+ ),
+ 79: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-card--horizontal-tier", "1/3"), ("fr-card--horizontal-half", "50/50")],
+ "label": "Image ratio",
+ "required": False,
+ },
+ ),
+ 80: (
+ "wagtail.blocks.StreamBlock",
+ [[("badge", 49)]],
+ {
+ "help_text": "Only used if the card has an image.",
+ "label": "Image area badge",
+ "max_num": 1,
+ "required": False,
+ },
+ ),
+ 81: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 12), ("document", 13), ("external_url", 14)]],
+ {"label": "Link", "required": False},
+ ),
+ 82: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "group": "target",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link (obsolete)",
+ "required": False,
+ },
+ ),
+ 83: (
+ "wagtail.documents.blocks.DocumentChooserBlock",
+ (),
+ {
+ "group": "target",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "or Document (obsolete)",
+ "required": False,
+ },
+ ),
+ 84: ("wagtail.blocks.CharBlock", (), {"label": "Top detail: text", "required": False}),
+ 85: (
+ "content_manager.blocks.IconPickerBlock",
+ (),
+ {"label": "Top detail: icon", "required": False},
+ ),
+ 86: ("wagtail.blocks.StreamBlock", [[("badge", 49)]], {}),
+ 87: ("wagtail.blocks.StreamBlock", [[("tag", 55)]], {}),
+ 88: (
+ "wagtail.blocks.StreamBlock",
+ [[("badges", 86), ("tags", 87)]],
+ {"label": "Top detail: badges or tags", "max_num": 1, "required": False},
+ ),
+ 89: (
+ "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,
+ },
+ ),
+ 90: (
+ "content_manager.blocks.IconPickerBlock",
+ (),
+ {"label": "Bottom detail: icon", "required": False},
+ ),
+ 91: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 12), ("document", 13), ("external_url", 14), ("text", 15)]],
+ {"label": "Link"},
+ ),
+ 92: ("wagtail.blocks.StreamBlock", [[("link", 91)]], {}),
+ 93: (
+ "wagtail.blocks.StreamBlock",
+ [[("links", 92), ("buttons", 33)]],
+ {
+ "help_text": "Incompatible with the bottom detail text.",
+ "label": "Bottom call-to-action: links or buttons",
+ "max_num": 1,
+ "required": False,
+ },
+ ),
+ 94: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with grey background", "required": False}),
+ 95: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without background", "required": False}),
+ 96: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without border", "required": False}),
+ 97: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with a shadow", "required": False}),
+ 98: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 51),
+ ("heading_tag", 26),
+ ("description", 61),
+ ("image", 68),
+ ("image_ratio", 79),
+ ("image_badge", 80),
+ ("link", 81),
+ ("url", 82),
+ ("document", 83),
+ ("top_detail_text", 84),
+ ("top_detail_icon", 85),
+ ("top_detail_badges_tags", 88),
+ ("bottom_detail_text", 89),
+ ("bottom_detail_icon", 90),
+ ("call_to_action", 93),
+ ("grey_background", 94),
+ ("no_background", 95),
+ ("no_border", 96),
+ ("shadow", 97),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Horizontal card"},
+ ),
+ 99: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": ["bold", "italic", "superscript", "subscript", "strikethrough"],
+ "label": "Content",
+ "required": False,
+ },
+ ),
+ 100: (
+ "wagtail.images.blocks.ImageChooserBlock",
+ (),
+ {"help_text": "Prefer SVG files.", "label": "Image", "required": False},
+ ),
+ 101: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "If the tile links to a downloadable document, the values are pre-filled.",
+ "label": "Detail text",
+ "required": False,
+ },
+ ),
+ 102: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tile", "required": False}),
+ 103: (
+ "wagtail.blocks.BooleanBlock",
+ (),
+ {"label": "Tile with grey background", "required": False},
+ ),
+ 104: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without background", "required": False}),
+ 105: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without border", "required": False}),
+ 106: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with a shadow", "required": False}),
+ 107: ("wagtail.blocks.BooleanBlock", (), {"label": "Horizontal tile", "required": False}),
+ 108: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 51),
+ ("heading_tag", 26),
+ ("description", 99),
+ ("image", 100),
+ ("link", 81),
+ ("top_detail_badges_tags", 88),
+ ("detail_text", 101),
+ ("is_small", 102),
+ ("grey_background", 103),
+ ("no_background", 104),
+ ("no_border", 105),
+ ("shadow", 106),
+ ("is_horizontal", 107),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Tile"},
+ ),
+ 109: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 2),
+ ("image", 3),
+ ("alt", 4),
+ ("width", 5),
+ ("image_ratio", 6),
+ ("caption", 7),
+ ("url", 8),
+ ]
+ ],
+ {"label": "Image"},
+ ),
+ 110: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "Accessibility: The title should describe, in a clear and concise manner, the embedded content.",
+ "label": "Title",
+ },
+ ),
+ 111: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "help_text": "Example for Tally: https://tally.so/embed/w2jMRa",
+ "label": "URL of the iframe",
+ },
+ ),
+ 112: ("wagtail.blocks.IntegerBlock", (), {"label": "Height (in pixels)"}),
+ 113: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "For example: \"allow='geolocation'\".",
+ "label": "Parameters",
+ "required": False,
+ },
+ ),
+ 114: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 110), ("url", 111), ("height", 112), ("parameters", 113)]],
+ {"group": "DSFR components", "label": "Iframe"},
+ ),
+ 115: (
+ "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,
+ },
+ ),
+ 116: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {"label": "Blog", "page_type": ["blog.BlogIndexPage"]},
+ ),
+ 117: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {
+ "default": 3,
+ "label": "Number of entries",
+ "max_value": 8,
+ "min_value": 1,
+ "required": False,
+ },
+ ),
+ 118: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Category",),
+ {"label": "Filter by category", "required": False},
+ ),
+ 119: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("content_manager.Tag",),
+ {"label": "Filter by tag", "required": False},
+ ),
+ 120: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Person",),
+ {"label": "Filter by author", "required": False},
+ ),
+ 121: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Organization",),
+ {
+ "help_text": "The source is the organization of the post author",
+ "label": "Filter by source",
+ "required": False,
+ },
+ ),
+ 122: (
+ "wagtail.blocks.BooleanBlock",
+ (),
+ {"default": False, "label": "Show filters", "required": False},
+ ),
+ 123: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 115),
+ ("blog", 116),
+ ("entries_count", 117),
+ ("category_filter", 118),
+ ("tag_filter", 119),
+ ("author_filter", 120),
+ ("source_filter", 121),
+ ("show_filters", 122),
+ ]
+ ],
+ {"group": "Website structure", "label": "Blog recent entries"},
+ ),
+ 124: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {"label": "Event calendar", "page_type": ["events.EventsIndexPage"]},
+ ),
+ 125: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 115),
+ ("index_page", 124),
+ ("entries_count", 117),
+ ("category_filter", 118),
+ ("tag_filter", 119),
+ ("author_filter", 120),
+ ("source_filter", 121),
+ ("show_filters", 122),
+ ]
+ ],
+ {"group": "Website structure", "label": "Event calendar recent entries"},
+ ),
+ 126: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "Incompatible with the bottom call-to-action.",
+ "label": "Bottom detail: text",
+ "required": False,
+ },
+ ),
+ 127: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 51),
+ ("heading_tag", 26),
+ ("description", 61),
+ ("image", 68),
+ ("image_ratio", 6),
+ ("image_badge", 80),
+ ("link", 81),
+ ("url", 82),
+ ("document", 83),
+ ("top_detail_text", 84),
+ ("top_detail_icon", 85),
+ ("top_detail_badges_tags", 88),
+ ("bottom_detail_text", 126),
+ ("bottom_detail_icon", 90),
+ ("call_to_action", 93),
+ ("grey_background", 94),
+ ("no_background", 95),
+ ("no_border", 96),
+ ("shadow", 97),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Vertical card"},
+ ),
+ 128: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Person",),
+ {
+ "help_text": "Optional, all values can be manually specified or overriden below",
+ "label": "Person",
+ "required": False,
+ },
+ ),
+ 129: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255, "required": False}),
+ 130: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255, "required": False}),
+ 131: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"label": "Organization", "max_length": 255, "required": False},
+ ),
+ 132: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"label": "Contact info", "max_length": 500, "required": False},
+ ),
+ 133: ("wagtail.blocks.StreamBlock", [[("tag", 55)]], {"label": "Tags", "required": False}),
+ 134: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("contact", 128),
+ ("link", 81),
+ ("heading_tag", 2),
+ ("name", 129),
+ ("role", 130),
+ ("organization", 131),
+ ("contact_info", 132),
+ ("image", 68),
+ ("tags", 133),
+ ]
+ ],
+ {"group": "Extra components", "label": "Contact card"},
+ ),
+ 135: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 109),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("link", 57),
+ ("iframe", 114),
+ ("tile", 108),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("stepper", 78),
+ ("card", 127),
+ ("contact_card", 134),
+ ]
+ ],
+ {"label": "Content"},
+ ),
+ 136: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 51), ("content", 135)]],
+ {"label": "Tab", "max_num": 15, "min_num": 1},
+ ),
+ 137: (
+ "wagtail.blocks.StreamBlock",
+ [[("tabs", 136)]],
+ {"group": "DSFR components", "label": "Tabs"},
+ ),
+ 138: ("wagtailmarkdown.blocks.MarkdownBlock", (), {"group": "Expert syntax", "label": "Markdown"}),
+ 139: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 110), ("url", 111), ("height", 112), ("parameters", 113)]],
+ {"group": "Expert syntax", "label": "Iframe"},
+ ),
+ 140: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {"default": 3, "label": "Top margin", "max_value": 15, "min_value": 0},
+ ),
+ 141: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {"default": 3, "label": "Bottom margin", "max_value": 15, "min_value": 0},
+ ),
+ 142: (
+ "wagtail.blocks.StructBlock",
+ [[("top_margin", 140), ("bottom_margin", 141)]],
+ {"group": "Page structure", "label": "Separator"},
+ ),
+ 143: (
+ "wagtail.images.blocks.ImageChooserBlock",
+ (),
+ {"label": "Background image", "required": False},
+ ),
+ 144: (
+ "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,
+ },
+ ),
+ 145: (
+ "wagtail.blocks.RegexBlock",
+ (),
+ {
+ "error_messages": {"invalid": "Incorrect color format, must be #fff or #f5f5f5"},
+ "help_text": "This field is obsolete and will be removed in the near future. Replace it with the background color.",
+ "label": "Background color, hexadecimal format (obsolete)",
+ "regex": "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
+ "required": False,
+ },
+ ),
+ 146: (
+ "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,
+ },
+ ),
+ 147: (
+ "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,
+ },
+ ),
+ 148: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 109),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("link", 57),
+ ("iframe", 114),
+ ("tile", 108),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("stepper", 78),
+ ("card", 127),
+ ("contact_card", 134),
+ ]
+ ],
+ {"label": "Column content"},
+ ),
+ 149: (
+ "wagtail.blocks.StructBlock",
+ [[("width", 147), ("content", 148)]],
+ {"group": "Page structure", "label": "Adjustable column"},
+ ),
+ 150: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 109),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("link", 57),
+ ("iframe", 114),
+ ("tile", 108),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("stepper", 78),
+ ("card", 127),
+ ("column", 149),
+ ]
+ ],
+ {"label": "Columns"},
+ ),
+ 151: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("bg_image", 143),
+ ("bg_color_class", 144),
+ ("bg_color", 145),
+ ("title", 1),
+ ("heading_tag", 146),
+ ("columns", 150),
+ ]
+ ],
+ {"group": "Page structure", "label": "Multiple columns"},
+ ),
+ 152: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {"choices": [("3", "3/12"), ("4", "4/12"), ("6", "6/12")], "label": "Column width"},
+ ),
+ 153: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 109),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("link", 57),
+ ("iframe", 114),
+ ("tile", 108),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("stepper", 78),
+ ("card", 127),
+ ("contact_card", 134),
+ ]
+ ],
+ {"label": "Items"},
+ ),
+ 154: (
+ "wagtail.blocks.StructBlock",
+ [[("column_width", 152), ("items", 153)]],
+ {"group": "Page structure", "label": "Item grid"},
+ ),
+ 155: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 109),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("link", 57),
+ ("iframe", 114),
+ ("tile", 108),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("stepper", 78),
+ ("image_and_text", 22),
+ ("card", 98),
+ ("tabs", 137),
+ ("item_grid", 154),
+ ]
+ ],
+ {"label": "Content"},
+ ),
+ 156: (
+ "wagtail.blocks.StructBlock",
+ [[("bg_image", 143), ("bg_color_class", 144), ("content", 155)]],
+ {"group": "Page structure", "label": "Full width background"},
+ ),
+ 157: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 109),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("link", 57),
+ ("iframe", 114),
+ ("tile", 108),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("stepper", 78),
+ ("image_and_text", 22),
+ ("card", 98),
+ ("tabs", 137),
+ ("item_grid", 154),
+ ]
+ ],
+ {"label": "Main content"},
+ ),
+ 158: ("wagtail.blocks.CharBlock", (), {"label": "Side menu title", "required": False}),
+ 159: (
+ "wagtail.blocks.RawHTMLBlock",
+ (),
+ {
+ "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.",
+ "label": "HTML",
+ },
+ ),
+ 160: ("wagtail.blocks.PageChooserBlock", (), {"label": "Parent page"}),
+ 161: ("wagtail.blocks.StructBlock", [[("page", 160)]], {"label": "Page tree"}),
+ 162: (
+ "wagtail.blocks.StreamBlock",
+ [[("html", 159), ("pagetree", 161)]],
+ {"label": "Side menu content"},
+ ),
+ 163: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("bg_image", 143),
+ ("bg_color_class", 144),
+ ("main_content", 157),
+ ("sidemenu_title", 158),
+ ("sidemenu_content", 162),
+ ]
+ ],
+ {"group": "Page structure", "label": "Full width background with side menu"},
+ ),
+ 164: (
+ "wagtail.blocks.static_block.StaticBlock",
+ (),
+ {
+ "admin_text": "A simple, alphabetical list of the subpages of the current page.",
+ "group": "Website structure",
+ "label": "Subpages list",
+ "template": "content_manager/blocks/subpages_list.html",
+ },
+ ),
+ 165: (
+ "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,
+ },
+ ),
+ },
+ ),
+ ),
+ migrations.AlterField(
+ model_name="contentpage",
+ name="body",
+ field=wagtail.fields.StreamField(
+ [
+ ("paragraph", 0),
+ ("image", 9),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("badges_list", 50),
+ ("tags_list", 56),
+ ("link", 57),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("stepper", 78),
+ ("card", 98),
+ ("tile", 108),
+ ("tabs", 137),
+ ("markdown", 138),
+ ("iframe", 139),
+ ("separator", 142),
+ ("multicolumns", 151),
+ ("item_grid", 154),
+ ("fullwidthbackground", 156),
+ ("fullwidthbackgroundwithsidemenu", 163),
+ ("subpageslist", 164),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("html", 165),
+ ],
+ 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),
+ ]
+ ],
+ {},
+ ),
+ 10: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("left", "Left"), ("right", "Right")],
+ "label": "Side where the image is displayed",
+ },
+ ),
+ 11: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {"choices": [("3", "3/12"), ("5", "5/12"), ("6", "6/12")], "label": "Image width"},
+ ),
+ 12: (
+ "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,
+ },
+ ),
+ 13: (
+ "wagtail.documents.blocks.DocumentChooserBlock",
+ (),
+ {
+ "help_text": "Use either this, the external URL or the page parameter.",
+ "label": "Document",
+ "required": False,
+ },
+ ),
+ 14: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "help_text": "Use either this, the document or the page parameter.",
+ "label": "External URL",
+ "required": False,
+ },
+ ),
+ 15: ("wagtail.blocks.CharBlock", (), {"label": "Link label", "required": False}),
+ 16: (
+ "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,
+ },
+ ),
+ 17: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-link--sm", "Small"), ("", "Medium"), ("fr-link--lg", "Large")],
+ "label": "Size",
+ "required": False,
+ },
+ ),
+ 18: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 12),
+ ("document", 13),
+ ("external_url", 14),
+ ("text", 15),
+ ("icon", 16),
+ ("size", 17),
+ ]
+ ],
+ {
+ "help_text": "The link is shown at the bottom of the text block, with an arrow",
+ "label": "Link",
+ "required": False,
+ },
+ ),
+ 19: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link label (obsolete)",
+ "required": False,
+ },
+ ),
+ 20: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Internal link (obsolete)",
+ "required": False,
+ },
+ ),
+ 21: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link URL (obsolete)",
+ "required": False,
+ },
+ ),
+ 22: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("image", 3),
+ ("image_side", 10),
+ ("image_ratio", 11),
+ ("text", 0),
+ ("link", 18),
+ ("link_label", 19),
+ ("page", 20),
+ ("link_url", 21),
+ ]
+ ],
+ {"label": "Image and text"},
+ ),
+ 23: ("wagtail.blocks.CharBlock", (), {"label": "Message title", "required": False}),
+ 24: ("wagtail.blocks.TextBlock", (), {"label": "Message text", "required": False}),
+ 25: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [
+ ("error", "Error"),
+ ("success", "Success"),
+ ("info", "Information"),
+ ("warning", "Warning"),
+ ],
+ "label": "Message type",
+ },
+ ),
+ 26: (
+ "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",
+ },
+ ),
+ 27: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 23), ("description", 24), ("level", 25), ("heading_tag", 26)]],
+ {"label": "Alert message"},
+ ),
+ 28: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text", "required": False}),
+ 29: (
+ "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,
+ },
+ ),
+ 30: ("content_manager.blocks.IconPickerBlock", (), {"label": "Icon", "required": False}),
+ 31: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")],
+ "label": "Icon side",
+ "required": False,
+ },
+ ),
+ 32: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 12),
+ ("document", 13),
+ ("external_url", 14),
+ ("text", 15),
+ ("button_type", 29),
+ ("icon_class", 30),
+ ("icon_side", 31),
+ ]
+ ],
+ {"label": "Button"},
+ ),
+ 33: (
+ "wagtail.blocks.StreamBlock",
+ [[("button", 32)]],
+ {
+ "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",
+ },
+ ),
+ 34: (
+ "wagtail.blocks.StreamBlock",
+ [[("buttons", 33)]],
+ {"label": "Call-to-action buttons", "max_num": 1, "required": False},
+ ),
+ 35: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.",
+ "label": "Call to action label (obsolete)",
+ "required": False,
+ },
+ ),
+ 36: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.",
+ "label": "Link (obsolete)",
+ "required": False,
+ },
+ ),
+ 37: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 28), ("cta_buttons", 34), ("cta_label", 35), ("cta_url", 36)]],
+ {"label": "Text and call to action"},
+ ),
+ 38: ("wagtail.blocks.CharBlock", (), {"label": "Video title", "required": False}),
+ 39: (
+ "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",
+ },
+ ),
+ 40: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-ratio-16x9", "16x9"), ("fr-ratio-4x3", "4x3"), ("fr-ratio-1x1", "1x1")],
+ "label": "Video ratio",
+ "required": False,
+ },
+ ),
+ 41: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"default": "Transcription", "label": "Title", "required": False},
+ ),
+ 42: ("wagtail.blocks.RichTextBlock", (), {"label": "Transcription content", "required": False}),
+ 43: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 41), ("content", 42)]],
+ {"label": "Transcription", "required": False},
+ ),
+ 44: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 38),
+ ("caption", 7),
+ ("url", 39),
+ ("width", 5),
+ ("video_ratio", 40),
+ ("transcription", 43),
+ ]
+ ],
+ {"label": "Video"},
+ ),
+ 45: ("wagtail.blocks.StructBlock", [[("title", 41), ("content", 42)]], {"label": "Transcription"}),
+ 46: ("wagtail.blocks.CharBlock", (), {"label": "Badge label", "required": False}),
+ 47: (
+ "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,
+ },
+ ),
+ 48: ("wagtail.blocks.BooleanBlock", (), {"label": "Hide badge icon", "required": False}),
+ 49: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 46), ("color", 47), ("hide_icon", 48)]],
+ {"label": "Badge"},
+ ),
+ 50: ("wagtail.blocks.StreamBlock", [[("badge", 49)]], {"label": "Badge list"}),
+ 51: ("wagtail.blocks.CharBlock", (), {"label": "Title"}),
+ 52: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tag", "required": False}),
+ 53: (
+ "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,
+ },
+ ),
+ 54: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 12), ("document", 13), ("external_url", 14)]],
+ {"required": False},
+ ),
+ 55: (
+ "wagtail.blocks.StructBlock",
+ [[("label", 51), ("is_small", 52), ("color", 53), ("icon_class", 30), ("link", 54)]],
+ {"label": "Tag"},
+ ),
+ 56: ("wagtail.blocks.StreamBlock", [[("tag", 55)]], {"label": "Tag list"}),
+ 57: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 12),
+ ("document", 13),
+ ("external_url", 14),
+ ("text", 15),
+ ("icon", 16),
+ ("size", 17),
+ ]
+ ],
+ {"label": "Single link"},
+ ),
+ 58: ("wagtail.blocks.RichTextBlock", (), {"label": "Content"}),
+ 59: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 51), ("content", 58)]],
+ {"label": "Accordion", "max_num": 15, "min_num": 1},
+ ),
+ 60: (
+ "wagtail.blocks.StreamBlock",
+ [[("title", 51), ("accordion", 59)]],
+ {"group": "DSFR components", "label": "Accordions"},
+ ),
+ 61: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": [
+ "bold",
+ "italic",
+ "link",
+ "document-link",
+ "superscript",
+ "subscript",
+ "strikethrough",
+ ],
+ "label": "Content",
+ "required": False,
+ },
+ ),
+ 62: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 12),
+ ("document", 13),
+ ("external_url", 14),
+ ("text", 15),
+ ("button_type", 29),
+ ("icon_class", 30),
+ ("icon_side", 31),
+ ]
+ ],
+ {"label": "Button", "required": False},
+ ),
+ 63: (
+ "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,
+ },
+ ),
+ 64: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 26),
+ ("icon_class", 30),
+ ("text", 61),
+ ("button", 62),
+ ("color", 63),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Callout"},
+ ),
+ 65: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": [
+ "bold",
+ "italic",
+ "link",
+ "document-link",
+ "superscript",
+ "subscript",
+ "strikethrough",
+ ],
+ "label": "Content",
+ },
+ ),
+ 66: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-text--sm", "Small"), ("", "Medium"), ("fr-text--lg", "Large")],
+ "label": "Size",
+ "required": False,
+ },
+ ),
+ 67: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 65), ("color", 63), ("size", 66)]],
+ {"group": "DSFR components", "label": "Highlight"},
+ ),
+ 68: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image", "required": False}),
+ 69: ("wagtail.blocks.CharBlock", (), {"label": "Quote"}),
+ 70: ("wagtail.blocks.CharBlock", (), {"label": "Author name", "required": False}),
+ 71: ("wagtail.blocks.CharBlock", (), {"label": "Author title", "required": False}),
+ 72: (
+ "wagtail.blocks.StructBlock",
+ [[("image", 68), ("quote", 69), ("author_name", 70), ("author_title", 71), ("color", 63)]],
+ {"group": "DSFR components", "label": "Quote"},
+ ),
+ 73: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {"label": "Number of steps", "max_value": 8, "min_value": 1},
+ ),
+ 74: ("wagtail.blocks.IntegerBlock", (), {"label": "Current step", "max_value": 8, "min_value": 1}),
+ 75: ("wagtail.blocks.TextBlock", (), {"label": "Detail", "required": False}),
+ 76: ("wagtail.blocks.StructBlock", [[("title", 51), ("detail", 75)]], {"label": "Step"}),
+ 77: ("wagtail.blocks.StreamBlock", [[("step", 76)]], {"label": "Steps"}),
+ 78: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 51), ("total", 73), ("current", 74), ("steps", 77)]],
+ {"group": "DSFR components", "label": "Stepper"},
+ ),
+ 79: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-card--horizontal-tier", "1/3"), ("fr-card--horizontal-half", "50/50")],
+ "label": "Image ratio",
+ "required": False,
+ },
+ ),
+ 80: (
+ "wagtail.blocks.StreamBlock",
+ [[("badge", 49)]],
+ {
+ "help_text": "Only used if the card has an image.",
+ "label": "Image area badge",
+ "max_num": 1,
+ "required": False,
+ },
+ ),
+ 81: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 12), ("document", 13), ("external_url", 14)]],
+ {"label": "Link", "required": False},
+ ),
+ 82: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "group": "target",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link (obsolete)",
+ "required": False,
+ },
+ ),
+ 83: (
+ "wagtail.documents.blocks.DocumentChooserBlock",
+ (),
+ {
+ "group": "target",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "or Document (obsolete)",
+ "required": False,
+ },
+ ),
+ 84: ("wagtail.blocks.CharBlock", (), {"label": "Top detail: text", "required": False}),
+ 85: (
+ "content_manager.blocks.IconPickerBlock",
+ (),
+ {"label": "Top detail: icon", "required": False},
+ ),
+ 86: ("wagtail.blocks.StreamBlock", [[("badge", 49)]], {}),
+ 87: ("wagtail.blocks.StreamBlock", [[("tag", 55)]], {}),
+ 88: (
+ "wagtail.blocks.StreamBlock",
+ [[("badges", 86), ("tags", 87)]],
+ {"label": "Top detail: badges or tags", "max_num": 1, "required": False},
+ ),
+ 89: (
+ "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,
+ },
+ ),
+ 90: (
+ "content_manager.blocks.IconPickerBlock",
+ (),
+ {"label": "Bottom detail: icon", "required": False},
+ ),
+ 91: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 12), ("document", 13), ("external_url", 14), ("text", 15)]],
+ {"label": "Link"},
+ ),
+ 92: ("wagtail.blocks.StreamBlock", [[("link", 91)]], {}),
+ 93: (
+ "wagtail.blocks.StreamBlock",
+ [[("links", 92), ("buttons", 33)]],
+ {
+ "help_text": "Incompatible with the bottom detail text.",
+ "label": "Bottom call-to-action: links or buttons",
+ "max_num": 1,
+ "required": False,
+ },
+ ),
+ 94: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with grey background", "required": False}),
+ 95: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without background", "required": False}),
+ 96: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without border", "required": False}),
+ 97: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with a shadow", "required": False}),
+ 98: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 51),
+ ("heading_tag", 26),
+ ("description", 61),
+ ("image", 68),
+ ("image_ratio", 79),
+ ("image_badge", 80),
+ ("link", 81),
+ ("url", 82),
+ ("document", 83),
+ ("top_detail_text", 84),
+ ("top_detail_icon", 85),
+ ("top_detail_badges_tags", 88),
+ ("bottom_detail_text", 89),
+ ("bottom_detail_icon", 90),
+ ("call_to_action", 93),
+ ("grey_background", 94),
+ ("no_background", 95),
+ ("no_border", 96),
+ ("shadow", 97),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Horizontal card"},
+ ),
+ 99: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": ["bold", "italic", "superscript", "subscript", "strikethrough"],
+ "label": "Content",
+ "required": False,
+ },
+ ),
+ 100: (
+ "wagtail.images.blocks.ImageChooserBlock",
+ (),
+ {"help_text": "Prefer SVG files.", "label": "Image", "required": False},
+ ),
+ 101: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "If the tile links to a downloadable document, the values are pre-filled.",
+ "label": "Detail text",
+ "required": False,
+ },
+ ),
+ 102: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tile", "required": False}),
+ 103: (
+ "wagtail.blocks.BooleanBlock",
+ (),
+ {"label": "Tile with grey background", "required": False},
+ ),
+ 104: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without background", "required": False}),
+ 105: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without border", "required": False}),
+ 106: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with a shadow", "required": False}),
+ 107: ("wagtail.blocks.BooleanBlock", (), {"label": "Horizontal tile", "required": False}),
+ 108: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 51),
+ ("heading_tag", 26),
+ ("description", 99),
+ ("image", 100),
+ ("link", 81),
+ ("top_detail_badges_tags", 88),
+ ("detail_text", 101),
+ ("is_small", 102),
+ ("grey_background", 103),
+ ("no_background", 104),
+ ("no_border", 105),
+ ("shadow", 106),
+ ("is_horizontal", 107),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Tile"},
+ ),
+ 109: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 2),
+ ("image", 3),
+ ("alt", 4),
+ ("width", 5),
+ ("image_ratio", 6),
+ ("caption", 7),
+ ("url", 8),
+ ]
+ ],
+ {"label": "Image"},
+ ),
+ 110: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "Accessibility: The title should describe, in a clear and concise manner, the embedded content.",
+ "label": "Title",
+ },
+ ),
+ 111: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "help_text": "Example for Tally: https://tally.so/embed/w2jMRa",
+ "label": "URL of the iframe",
+ },
+ ),
+ 112: ("wagtail.blocks.IntegerBlock", (), {"label": "Height (in pixels)"}),
+ 113: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "For example: \"allow='geolocation'\".",
+ "label": "Parameters",
+ "required": False,
+ },
+ ),
+ 114: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 110), ("url", 111), ("height", 112), ("parameters", 113)]],
+ {"group": "DSFR components", "label": "Iframe"},
+ ),
+ 115: (
+ "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,
+ },
+ ),
+ 116: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {"label": "Blog", "page_type": ["blog.BlogIndexPage"]},
+ ),
+ 117: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {
+ "default": 3,
+ "label": "Number of entries",
+ "max_value": 8,
+ "min_value": 1,
+ "required": False,
+ },
+ ),
+ 118: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Category",),
+ {"label": "Filter by category", "required": False},
+ ),
+ 119: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("content_manager.Tag",),
+ {"label": "Filter by tag", "required": False},
+ ),
+ 120: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Person",),
+ {"label": "Filter by author", "required": False},
+ ),
+ 121: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Organization",),
+ {
+ "help_text": "The source is the organization of the post author",
+ "label": "Filter by source",
+ "required": False,
+ },
+ ),
+ 122: (
+ "wagtail.blocks.BooleanBlock",
+ (),
+ {"default": False, "label": "Show filters", "required": False},
+ ),
+ 123: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 115),
+ ("blog", 116),
+ ("entries_count", 117),
+ ("category_filter", 118),
+ ("tag_filter", 119),
+ ("author_filter", 120),
+ ("source_filter", 121),
+ ("show_filters", 122),
+ ]
+ ],
+ {"group": "Website structure", "label": "Blog recent entries"},
+ ),
+ 124: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {"label": "Event calendar", "page_type": ["events.EventsIndexPage"]},
+ ),
+ 125: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 115),
+ ("index_page", 124),
+ ("entries_count", 117),
+ ("category_filter", 118),
+ ("tag_filter", 119),
+ ("author_filter", 120),
+ ("source_filter", 121),
+ ("show_filters", 122),
+ ]
+ ],
+ {"group": "Website structure", "label": "Event calendar recent entries"},
+ ),
+ 126: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "Incompatible with the bottom call-to-action.",
+ "label": "Bottom detail: text",
+ "required": False,
+ },
+ ),
+ 127: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 51),
+ ("heading_tag", 26),
+ ("description", 61),
+ ("image", 68),
+ ("image_ratio", 6),
+ ("image_badge", 80),
+ ("link", 81),
+ ("url", 82),
+ ("document", 83),
+ ("top_detail_text", 84),
+ ("top_detail_icon", 85),
+ ("top_detail_badges_tags", 88),
+ ("bottom_detail_text", 126),
+ ("bottom_detail_icon", 90),
+ ("call_to_action", 93),
+ ("grey_background", 94),
+ ("no_background", 95),
+ ("no_border", 96),
+ ("shadow", 97),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Vertical card"},
+ ),
+ 128: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Person",),
+ {
+ "help_text": "Optional, all values can be manually specified or overriden below",
+ "label": "Person",
+ "required": False,
+ },
+ ),
+ 129: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255, "required": False}),
+ 130: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255, "required": False}),
+ 131: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"label": "Organization", "max_length": 255, "required": False},
+ ),
+ 132: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"label": "Contact info", "max_length": 500, "required": False},
+ ),
+ 133: ("wagtail.blocks.StreamBlock", [[("tag", 55)]], {"label": "Tags", "required": False}),
+ 134: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("contact", 128),
+ ("link", 81),
+ ("heading_tag", 2),
+ ("name", 129),
+ ("role", 130),
+ ("organization", 131),
+ ("contact_info", 132),
+ ("image", 68),
+ ("tags", 133),
+ ]
+ ],
+ {"group": "Extra components", "label": "Contact card"},
+ ),
+ 135: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 109),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("link", 57),
+ ("iframe", 114),
+ ("tile", 108),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("stepper", 78),
+ ("card", 127),
+ ("contact_card", 134),
+ ]
+ ],
+ {"label": "Content"},
+ ),
+ 136: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 51), ("content", 135)]],
+ {"label": "Tab", "max_num": 15, "min_num": 1},
+ ),
+ 137: (
+ "wagtail.blocks.StreamBlock",
+ [[("tabs", 136)]],
+ {"group": "DSFR components", "label": "Tabs"},
+ ),
+ 138: ("wagtailmarkdown.blocks.MarkdownBlock", (), {"group": "Expert syntax", "label": "Markdown"}),
+ 139: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 110), ("url", 111), ("height", 112), ("parameters", 113)]],
+ {"group": "Expert syntax", "label": "Iframe"},
+ ),
+ 140: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {"default": 3, "label": "Top margin", "max_value": 15, "min_value": 0},
+ ),
+ 141: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {"default": 3, "label": "Bottom margin", "max_value": 15, "min_value": 0},
+ ),
+ 142: (
+ "wagtail.blocks.StructBlock",
+ [[("top_margin", 140), ("bottom_margin", 141)]],
+ {"group": "Page structure", "label": "Separator"},
+ ),
+ 143: (
+ "wagtail.images.blocks.ImageChooserBlock",
+ (),
+ {"label": "Background image", "required": False},
+ ),
+ 144: (
+ "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,
+ },
+ ),
+ 145: (
+ "wagtail.blocks.RegexBlock",
+ (),
+ {
+ "error_messages": {"invalid": "Incorrect color format, must be #fff or #f5f5f5"},
+ "help_text": "This field is obsolete and will be removed in the near future. Replace it with the background color.",
+ "label": "Background color, hexadecimal format (obsolete)",
+ "regex": "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
+ "required": False,
+ },
+ ),
+ 146: (
+ "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,
+ },
+ ),
+ 147: (
+ "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,
+ },
+ ),
+ 148: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 109),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("link", 57),
+ ("iframe", 114),
+ ("tile", 108),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("stepper", 78),
+ ("card", 127),
+ ("contact_card", 134),
+ ]
+ ],
+ {"label": "Column content"},
+ ),
+ 149: (
+ "wagtail.blocks.StructBlock",
+ [[("width", 147), ("content", 148)]],
+ {"group": "Page structure", "label": "Adjustable column"},
+ ),
+ 150: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 109),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("link", 57),
+ ("iframe", 114),
+ ("tile", 108),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("stepper", 78),
+ ("card", 127),
+ ("column", 149),
+ ]
+ ],
+ {"label": "Columns"},
+ ),
+ 151: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("bg_image", 143),
+ ("bg_color_class", 144),
+ ("bg_color", 145),
+ ("title", 1),
+ ("heading_tag", 146),
+ ("columns", 150),
+ ]
+ ],
+ {"group": "Page structure", "label": "Multiple columns"},
+ ),
+ 152: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {"choices": [("3", "3/12"), ("4", "4/12"), ("6", "6/12")], "label": "Column width"},
+ ),
+ 153: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 109),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("link", 57),
+ ("iframe", 114),
+ ("tile", 108),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("stepper", 78),
+ ("card", 127),
+ ("contact_card", 134),
+ ]
+ ],
+ {"label": "Items"},
+ ),
+ 154: (
+ "wagtail.blocks.StructBlock",
+ [[("column_width", 152), ("items", 153)]],
+ {"group": "Page structure", "label": "Item grid"},
+ ),
+ 155: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 109),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("link", 57),
+ ("iframe", 114),
+ ("tile", 108),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("stepper", 78),
+ ("image_and_text", 22),
+ ("card", 98),
+ ("tabs", 137),
+ ("item_grid", 154),
+ ]
+ ],
+ {"label": "Content"},
+ ),
+ 156: (
+ "wagtail.blocks.StructBlock",
+ [[("bg_image", 143), ("bg_color_class", 144), ("content", 155)]],
+ {"group": "Page structure", "label": "Full width background"},
+ ),
+ 157: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 109),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("link", 57),
+ ("iframe", 114),
+ ("tile", 108),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("stepper", 78),
+ ("image_and_text", 22),
+ ("card", 98),
+ ("tabs", 137),
+ ("item_grid", 154),
+ ]
+ ],
+ {"label": "Main content"},
+ ),
+ 158: ("wagtail.blocks.CharBlock", (), {"label": "Side menu title", "required": False}),
+ 159: (
+ "wagtail.blocks.RawHTMLBlock",
+ (),
+ {
+ "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.",
+ "label": "HTML",
+ },
+ ),
+ 160: ("wagtail.blocks.PageChooserBlock", (), {"label": "Parent page"}),
+ 161: ("wagtail.blocks.StructBlock", [[("page", 160)]], {"label": "Page tree"}),
+ 162: (
+ "wagtail.blocks.StreamBlock",
+ [[("html", 159), ("pagetree", 161)]],
+ {"label": "Side menu content"},
+ ),
+ 163: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("bg_image", 143),
+ ("bg_color_class", 144),
+ ("main_content", 157),
+ ("sidemenu_title", 158),
+ ("sidemenu_content", 162),
+ ]
+ ],
+ {"group": "Page structure", "label": "Full width background with side menu"},
+ ),
+ 164: (
+ "wagtail.blocks.static_block.StaticBlock",
+ (),
+ {
+ "admin_text": "A simple, alphabetical list of the subpages of the current page.",
+ "group": "Website structure",
+ "label": "Subpages list",
+ "template": "content_manager/blocks/subpages_list.html",
+ },
+ ),
+ 165: (
+ "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,
+ },
+ ),
+ },
+ ),
+ ),
+ ]
diff --git a/content_manager/migrations/0052_alter_catalogindexpage_body_alter_contentpage_body.py b/content_manager/migrations/0052_alter_catalogindexpage_body_alter_contentpage_body.py
new file mode 100644
index 00000000..d54f59e8
--- /dev/null
+++ b/content_manager/migrations/0052_alter_catalogindexpage_body_alter_contentpage_body.py
@@ -0,0 +1,2860 @@
+# Generated by Django 5.1.4 on 2024-12-12 17:08
+
+import wagtail.fields
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ("content_manager", "0051_alter_catalogindexpage_body_alter_contentpage_body"),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name="catalogindexpage",
+ name="body",
+ field=wagtail.fields.StreamField(
+ [
+ ("paragraph", 0),
+ ("image", 9),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("link", 58),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("stepper", 79),
+ ("card", 99),
+ ("tile", 109),
+ ("tabs", 143),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("multicolumns", 152),
+ ("item_grid", 155),
+ ("fullwidthbackground", 157),
+ ("fullwidthbackgroundwithsidemenu", 164),
+ ("subpageslist", 165),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ],
+ 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),
+ ]
+ ],
+ {},
+ ),
+ 10: ("wagtail.images.blocks.ImageBlock", [], {"label": "Image"}),
+ 11: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("left", "Left"), ("right", "Right")],
+ "label": "Side where the image is displayed",
+ },
+ ),
+ 12: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {"choices": [("3", "3/12"), ("5", "5/12"), ("6", "6/12")], "label": "Image width"},
+ ),
+ 13: (
+ "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,
+ },
+ ),
+ 14: (
+ "wagtail.documents.blocks.DocumentChooserBlock",
+ (),
+ {
+ "help_text": "Use either this, the external URL or the page parameter.",
+ "label": "Document",
+ "required": False,
+ },
+ ),
+ 15: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "help_text": "Use either this, the document or the page parameter.",
+ "label": "External URL",
+ "required": False,
+ },
+ ),
+ 16: ("wagtail.blocks.CharBlock", (), {"label": "Link label", "required": False}),
+ 17: (
+ "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,
+ },
+ ),
+ 18: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-link--sm", "Small"), ("", "Medium"), ("fr-link--lg", "Large")],
+ "label": "Size",
+ "required": False,
+ },
+ ),
+ 19: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 13),
+ ("document", 14),
+ ("external_url", 15),
+ ("text", 16),
+ ("icon", 17),
+ ("size", 18),
+ ]
+ ],
+ {
+ "help_text": "The link is shown at the bottom of the text block, with an arrow",
+ "label": "Link",
+ "required": False,
+ },
+ ),
+ 20: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link label (obsolete)",
+ "required": False,
+ },
+ ),
+ 21: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Internal link (obsolete)",
+ "required": False,
+ },
+ ),
+ 22: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link URL (obsolete)",
+ "required": False,
+ },
+ ),
+ 23: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("image", 10),
+ ("image_side", 11),
+ ("image_ratio", 12),
+ ("text", 0),
+ ("link", 19),
+ ("link_label", 20),
+ ("page", 21),
+ ("link_url", 22),
+ ]
+ ],
+ {"label": "Image and text"},
+ ),
+ 24: ("wagtail.blocks.CharBlock", (), {"label": "Message title", "required": False}),
+ 25: ("wagtail.blocks.TextBlock", (), {"label": "Message text", "required": False}),
+ 26: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [
+ ("error", "Error"),
+ ("success", "Success"),
+ ("info", "Information"),
+ ("warning", "Warning"),
+ ],
+ "label": "Message type",
+ },
+ ),
+ 27: (
+ "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",
+ },
+ ),
+ 28: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 24), ("description", 25), ("level", 26), ("heading_tag", 27)]],
+ {"label": "Alert message"},
+ ),
+ 29: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text", "required": False}),
+ 30: (
+ "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,
+ },
+ ),
+ 31: ("content_manager.blocks.IconPickerBlock", (), {"label": "Icon", "required": False}),
+ 32: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")],
+ "label": "Icon side",
+ "required": False,
+ },
+ ),
+ 33: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 13),
+ ("document", 14),
+ ("external_url", 15),
+ ("text", 16),
+ ("button_type", 30),
+ ("icon_class", 31),
+ ("icon_side", 32),
+ ]
+ ],
+ {"label": "Button"},
+ ),
+ 34: (
+ "wagtail.blocks.StreamBlock",
+ [[("button", 33)]],
+ {
+ "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",
+ },
+ ),
+ 35: (
+ "wagtail.blocks.StreamBlock",
+ [[("buttons", 34)]],
+ {"label": "Call-to-action buttons", "max_num": 1, "required": False},
+ ),
+ 36: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.",
+ "label": "Call to action label (obsolete)",
+ "required": False,
+ },
+ ),
+ 37: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.",
+ "label": "Link (obsolete)",
+ "required": False,
+ },
+ ),
+ 38: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 29), ("cta_buttons", 35), ("cta_label", 36), ("cta_url", 37)]],
+ {"label": "Text and call to action"},
+ ),
+ 39: ("wagtail.blocks.CharBlock", (), {"label": "Video title", "required": False}),
+ 40: (
+ "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",
+ },
+ ),
+ 41: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-ratio-16x9", "16x9"), ("fr-ratio-4x3", "4x3"), ("fr-ratio-1x1", "1x1")],
+ "label": "Video ratio",
+ "required": False,
+ },
+ ),
+ 42: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"default": "Transcription", "label": "Title", "required": False},
+ ),
+ 43: ("wagtail.blocks.RichTextBlock", (), {"label": "Transcription content", "required": False}),
+ 44: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 42), ("content", 43)]],
+ {"label": "Transcription", "required": False},
+ ),
+ 45: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 39),
+ ("caption", 7),
+ ("url", 40),
+ ("width", 5),
+ ("video_ratio", 41),
+ ("transcription", 44),
+ ]
+ ],
+ {"label": "Video"},
+ ),
+ 46: ("wagtail.blocks.StructBlock", [[("title", 42), ("content", 43)]], {"label": "Transcription"}),
+ 47: ("wagtail.blocks.CharBlock", (), {"label": "Badge label", "required": False}),
+ 48: (
+ "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,
+ },
+ ),
+ 49: ("wagtail.blocks.BooleanBlock", (), {"label": "Hide badge icon", "required": False}),
+ 50: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 47), ("color", 48), ("hide_icon", 49)]],
+ {"label": "Badge"},
+ ),
+ 51: ("wagtail.blocks.StreamBlock", [[("badge", 50)]], {"label": "Badge list"}),
+ 52: ("wagtail.blocks.CharBlock", (), {"label": "Title"}),
+ 53: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tag", "required": False}),
+ 54: (
+ "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,
+ },
+ ),
+ 55: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 13), ("document", 14), ("external_url", 15)]],
+ {"required": False},
+ ),
+ 56: (
+ "wagtail.blocks.StructBlock",
+ [[("label", 52), ("is_small", 53), ("color", 54), ("icon_class", 31), ("link", 55)]],
+ {"label": "Tag"},
+ ),
+ 57: ("wagtail.blocks.StreamBlock", [[("tag", 56)]], {"label": "Tag list"}),
+ 58: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 13),
+ ("document", 14),
+ ("external_url", 15),
+ ("text", 16),
+ ("icon", 17),
+ ("size", 18),
+ ]
+ ],
+ {"label": "Single link"},
+ ),
+ 59: ("wagtail.blocks.RichTextBlock", (), {"label": "Content"}),
+ 60: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 52), ("content", 59)]],
+ {"label": "Accordion", "max_num": 15, "min_num": 1},
+ ),
+ 61: (
+ "wagtail.blocks.StreamBlock",
+ [[("title", 52), ("accordion", 60)]],
+ {"group": "DSFR components", "label": "Accordions"},
+ ),
+ 62: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": [
+ "bold",
+ "italic",
+ "link",
+ "document-link",
+ "superscript",
+ "subscript",
+ "strikethrough",
+ ],
+ "label": "Content",
+ "required": False,
+ },
+ ),
+ 63: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 13),
+ ("document", 14),
+ ("external_url", 15),
+ ("text", 16),
+ ("button_type", 30),
+ ("icon_class", 31),
+ ("icon_side", 32),
+ ]
+ ],
+ {"label": "Button", "required": False},
+ ),
+ 64: (
+ "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,
+ },
+ ),
+ 65: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 27),
+ ("icon_class", 31),
+ ("text", 62),
+ ("button", 63),
+ ("color", 64),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Callout"},
+ ),
+ 66: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": [
+ "bold",
+ "italic",
+ "link",
+ "document-link",
+ "superscript",
+ "subscript",
+ "strikethrough",
+ ],
+ "label": "Content",
+ },
+ ),
+ 67: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-text--sm", "Small"), ("", "Medium"), ("fr-text--lg", "Large")],
+ "label": "Size",
+ "required": False,
+ },
+ ),
+ 68: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 66), ("color", 64), ("size", 67)]],
+ {"group": "DSFR components", "label": "Highlight"},
+ ),
+ 69: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image", "required": False}),
+ 70: ("wagtail.blocks.CharBlock", (), {"label": "Quote"}),
+ 71: ("wagtail.blocks.CharBlock", (), {"label": "Author name", "required": False}),
+ 72: ("wagtail.blocks.CharBlock", (), {"label": "Author title", "required": False}),
+ 73: (
+ "wagtail.blocks.StructBlock",
+ [[("image", 69), ("quote", 70), ("author_name", 71), ("author_title", 72), ("color", 64)]],
+ {"group": "DSFR components", "label": "Quote"},
+ ),
+ 74: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {"label": "Number of steps", "max_value": 8, "min_value": 1},
+ ),
+ 75: ("wagtail.blocks.IntegerBlock", (), {"label": "Current step", "max_value": 8, "min_value": 1}),
+ 76: ("wagtail.blocks.TextBlock", (), {"label": "Detail", "required": False}),
+ 77: ("wagtail.blocks.StructBlock", [[("title", 52), ("detail", 76)]], {"label": "Step"}),
+ 78: ("wagtail.blocks.StreamBlock", [[("step", 77)]], {"label": "Steps"}),
+ 79: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 52), ("total", 74), ("current", 75), ("steps", 78)]],
+ {"group": "DSFR components", "label": "Stepper"},
+ ),
+ 80: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-card--horizontal-tier", "1/3"), ("fr-card--horizontal-half", "50/50")],
+ "label": "Image ratio",
+ "required": False,
+ },
+ ),
+ 81: (
+ "wagtail.blocks.StreamBlock",
+ [[("badge", 50)]],
+ {
+ "help_text": "Only used if the card has an image.",
+ "label": "Image area badge",
+ "max_num": 1,
+ "required": False,
+ },
+ ),
+ 82: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 13), ("document", 14), ("external_url", 15)]],
+ {"label": "Link", "required": False},
+ ),
+ 83: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "group": "target",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link (obsolete)",
+ "required": False,
+ },
+ ),
+ 84: (
+ "wagtail.documents.blocks.DocumentChooserBlock",
+ (),
+ {
+ "group": "target",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "or Document (obsolete)",
+ "required": False,
+ },
+ ),
+ 85: ("wagtail.blocks.CharBlock", (), {"label": "Top detail: text", "required": False}),
+ 86: (
+ "content_manager.blocks.IconPickerBlock",
+ (),
+ {"label": "Top detail: icon", "required": False},
+ ),
+ 87: ("wagtail.blocks.StreamBlock", [[("badge", 50)]], {}),
+ 88: ("wagtail.blocks.StreamBlock", [[("tag", 56)]], {}),
+ 89: (
+ "wagtail.blocks.StreamBlock",
+ [[("badges", 87), ("tags", 88)]],
+ {"label": "Top detail: badges or tags", "max_num": 1, "required": False},
+ ),
+ 90: (
+ "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,
+ },
+ ),
+ 91: (
+ "content_manager.blocks.IconPickerBlock",
+ (),
+ {"label": "Bottom detail: icon", "required": False},
+ ),
+ 92: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 13), ("document", 14), ("external_url", 15), ("text", 16)]],
+ {"label": "Link"},
+ ),
+ 93: ("wagtail.blocks.StreamBlock", [[("link", 92)]], {}),
+ 94: (
+ "wagtail.blocks.StreamBlock",
+ [[("links", 93), ("buttons", 34)]],
+ {
+ "help_text": "Incompatible with the bottom detail text.",
+ "label": "Bottom call-to-action: links or buttons",
+ "max_num": 1,
+ "required": False,
+ },
+ ),
+ 95: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with grey background", "required": False}),
+ 96: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without background", "required": False}),
+ 97: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without border", "required": False}),
+ 98: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with a shadow", "required": False}),
+ 99: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 52),
+ ("heading_tag", 27),
+ ("description", 62),
+ ("image", 69),
+ ("image_ratio", 80),
+ ("image_badge", 81),
+ ("link", 82),
+ ("url", 83),
+ ("document", 84),
+ ("top_detail_text", 85),
+ ("top_detail_icon", 86),
+ ("top_detail_badges_tags", 89),
+ ("bottom_detail_text", 90),
+ ("bottom_detail_icon", 91),
+ ("call_to_action", 94),
+ ("grey_background", 95),
+ ("no_background", 96),
+ ("no_border", 97),
+ ("shadow", 98),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Horizontal card"},
+ ),
+ 100: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": ["bold", "italic", "superscript", "subscript", "strikethrough"],
+ "label": "Content",
+ "required": False,
+ },
+ ),
+ 101: (
+ "wagtail.images.blocks.ImageChooserBlock",
+ (),
+ {"help_text": "Prefer SVG files.", "label": "Image", "required": False},
+ ),
+ 102: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "If the tile links to a downloadable document, the values are pre-filled.",
+ "label": "Detail text",
+ "required": False,
+ },
+ ),
+ 103: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tile", "required": False}),
+ 104: (
+ "wagtail.blocks.BooleanBlock",
+ (),
+ {"label": "Tile with grey background", "required": False},
+ ),
+ 105: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without background", "required": False}),
+ 106: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without border", "required": False}),
+ 107: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with a shadow", "required": False}),
+ 108: ("wagtail.blocks.BooleanBlock", (), {"label": "Horizontal tile", "required": False}),
+ 109: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 52),
+ ("heading_tag", 27),
+ ("description", 100),
+ ("image", 101),
+ ("link", 82),
+ ("top_detail_badges_tags", 89),
+ ("detail_text", 102),
+ ("is_small", 103),
+ ("grey_background", 104),
+ ("no_background", 105),
+ ("no_border", 106),
+ ("shadow", 107),
+ ("is_horizontal", 108),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Tile"},
+ ),
+ 110: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 2),
+ ("image", 3),
+ ("alt", 4),
+ ("width", 5),
+ ("image_ratio", 6),
+ ("caption", 7),
+ ("url", 8),
+ ]
+ ],
+ {"label": "Image"},
+ ),
+ 111: (
+ "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,
+ },
+ ),
+ 112: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {"label": "Blog", "page_type": ["blog.BlogIndexPage"]},
+ ),
+ 113: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {
+ "default": 3,
+ "label": "Number of entries",
+ "max_value": 8,
+ "min_value": 1,
+ "required": False,
+ },
+ ),
+ 114: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Category",),
+ {"label": "Filter by category", "required": False},
+ ),
+ 115: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("content_manager.Tag",),
+ {"label": "Filter by tag", "required": False},
+ ),
+ 116: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Person",),
+ {"label": "Filter by author", "required": False},
+ ),
+ 117: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Organization",),
+ {
+ "help_text": "The source is the organization of the post author",
+ "label": "Filter by source",
+ "required": False,
+ },
+ ),
+ 118: (
+ "wagtail.blocks.BooleanBlock",
+ (),
+ {"default": False, "label": "Show filters", "required": False},
+ ),
+ 119: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 111),
+ ("blog", 112),
+ ("entries_count", 113),
+ ("category_filter", 114),
+ ("tag_filter", 115),
+ ("author_filter", 116),
+ ("source_filter", 117),
+ ("show_filters", 118),
+ ]
+ ],
+ {"group": "Website structure", "label": "Blog recent entries"},
+ ),
+ 120: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {"label": "Event calendar", "page_type": ["events.EventsIndexPage"]},
+ ),
+ 121: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 111),
+ ("index_page", 120),
+ ("entries_count", 113),
+ ("category_filter", 114),
+ ("tag_filter", 115),
+ ("author_filter", 116),
+ ("source_filter", 117),
+ ("show_filters", 118),
+ ]
+ ],
+ {"group": "Website structure", "label": "Event calendar recent entries"},
+ ),
+ 122: ("wagtailmarkdown.blocks.MarkdownBlock", (), {"group": "Expert syntax", "label": "Markdown"}),
+ 123: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "Accessibility: The title should describe, in a clear and concise manner, the embedded content.",
+ "label": "Title",
+ },
+ ),
+ 124: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "help_text": "Example for Tally: https://tally.so/embed/w2jMRa",
+ "label": "URL of the iframe",
+ },
+ ),
+ 125: ("wagtail.blocks.IntegerBlock", (), {"label": "Height (in pixels)"}),
+ 126: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "For example: \"allow='geolocation'\".",
+ "label": "Parameters",
+ "required": False,
+ },
+ ),
+ 127: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 123), ("url", 124), ("height", 125), ("parameters", 126)]],
+ {"group": "Expert syntax", "label": "Iframe"},
+ ),
+ 128: (
+ "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,
+ },
+ ),
+ 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.CharBlock",
+ (),
+ {
+ "help_text": "Incompatible with the bottom call-to-action.",
+ "label": "Bottom detail: text",
+ "required": False,
+ },
+ ),
+ 133: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 52),
+ ("heading_tag", 27),
+ ("description", 62),
+ ("image", 69),
+ ("image_ratio", 6),
+ ("image_badge", 81),
+ ("link", 82),
+ ("url", 83),
+ ("document", 84),
+ ("top_detail_text", 85),
+ ("top_detail_icon", 86),
+ ("top_detail_badges_tags", 89),
+ ("bottom_detail_text", 132),
+ ("bottom_detail_icon", 91),
+ ("call_to_action", 94),
+ ("grey_background", 95),
+ ("no_background", 96),
+ ("no_border", 97),
+ ("shadow", 98),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Vertical card"},
+ ),
+ 134: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Person",),
+ {
+ "help_text": "Optional, all values can be manually specified or overriden below",
+ "label": "Person",
+ "required": False,
+ },
+ ),
+ 135: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255, "required": False}),
+ 136: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255, "required": False}),
+ 137: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"label": "Organization", "max_length": 255, "required": False},
+ ),
+ 138: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"label": "Contact info", "max_length": 500, "required": False},
+ ),
+ 139: ("wagtail.blocks.StreamBlock", [[("tag", 56)]], {"label": "Tags", "required": False}),
+ 140: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("contact", 134),
+ ("link", 82),
+ ("heading_tag", 2),
+ ("name", 135),
+ ("role", 136),
+ ("organization", 137),
+ ("contact_info", 138),
+ ("image", 69),
+ ("tags", 139),
+ ]
+ ],
+ {"group": "Extra components", "label": "Contact card"},
+ ),
+ 141: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 110),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("link", 58),
+ ("tile", 109),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ("stepper", 79),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("card", 133),
+ ("contact_card", 140),
+ ]
+ ],
+ {"label": "Content"},
+ ),
+ 142: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 52), ("content", 141)]],
+ {"label": "Tab", "max_num": 15, "min_num": 1},
+ ),
+ 143: (
+ "wagtail.blocks.StreamBlock",
+ [[("tabs", 142)]],
+ {"group": "DSFR components", "label": "Tabs"},
+ ),
+ 144: (
+ "wagtail.images.blocks.ImageChooserBlock",
+ (),
+ {"label": "Background image", "required": False},
+ ),
+ 145: (
+ "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,
+ },
+ ),
+ 146: (
+ "wagtail.blocks.RegexBlock",
+ (),
+ {
+ "error_messages": {"invalid": "Incorrect color format, must be #fff or #f5f5f5"},
+ "help_text": "This field is obsolete and will be removed in the near future. Replace it with the background color.",
+ "label": "Background color, hexadecimal format (obsolete)",
+ "regex": "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
+ "required": False,
+ },
+ ),
+ 147: (
+ "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,
+ },
+ ),
+ 148: (
+ "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,
+ },
+ ),
+ 149: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 110),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("link", 58),
+ ("tile", 109),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ("stepper", 79),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("card", 133),
+ ("contact_card", 140),
+ ]
+ ],
+ {"label": "Column content"},
+ ),
+ 150: (
+ "wagtail.blocks.StructBlock",
+ [[("width", 148), ("content", 149)]],
+ {"group": "Page structure", "label": "Adjustable column"},
+ ),
+ 151: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 110),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("link", 58),
+ ("tile", 109),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ("stepper", 79),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("card", 133),
+ ("column", 150),
+ ]
+ ],
+ {"label": "Columns"},
+ ),
+ 152: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("bg_image", 144),
+ ("bg_color_class", 145),
+ ("bg_color", 146),
+ ("title", 1),
+ ("heading_tag", 147),
+ ("columns", 151),
+ ]
+ ],
+ {"group": "Page structure", "label": "Multiple columns"},
+ ),
+ 153: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {"choices": [("3", "3/12"), ("4", "4/12"), ("6", "6/12")], "label": "Column width"},
+ ),
+ 154: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 110),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("link", 58),
+ ("tile", 109),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ("stepper", 79),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("card", 133),
+ ("contact_card", 140),
+ ]
+ ],
+ {"label": "Items"},
+ ),
+ 155: (
+ "wagtail.blocks.StructBlock",
+ [[("column_width", 153), ("items", 154)]],
+ {"group": "Page structure", "label": "Item grid"},
+ ),
+ 156: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 110),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("link", 58),
+ ("tile", 109),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ("stepper", 79),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("image_and_text", 23),
+ ("card", 99),
+ ("tabs", 143),
+ ("item_grid", 155),
+ ]
+ ],
+ {"label": "Content"},
+ ),
+ 157: (
+ "wagtail.blocks.StructBlock",
+ [[("bg_image", 144), ("bg_color_class", 145), ("content", 156)]],
+ {"group": "Page structure", "label": "Full width background"},
+ ),
+ 158: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 110),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("link", 58),
+ ("tile", 109),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ("stepper", 79),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("image_and_text", 23),
+ ("card", 99),
+ ("tabs", 143),
+ ("item_grid", 155),
+ ]
+ ],
+ {"label": "Main content"},
+ ),
+ 159: ("wagtail.blocks.CharBlock", (), {"label": "Side menu title", "required": False}),
+ 160: (
+ "wagtail.blocks.RawHTMLBlock",
+ (),
+ {
+ "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.",
+ "label": "HTML",
+ },
+ ),
+ 161: ("wagtail.blocks.PageChooserBlock", (), {"label": "Parent page"}),
+ 162: ("wagtail.blocks.StructBlock", [[("page", 161)]], {"label": "Page tree"}),
+ 163: (
+ "wagtail.blocks.StreamBlock",
+ [[("html", 160), ("pagetree", 162)]],
+ {"label": "Side menu content"},
+ ),
+ 164: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("bg_image", 144),
+ ("bg_color_class", 145),
+ ("main_content", 158),
+ ("sidemenu_title", 159),
+ ("sidemenu_content", 163),
+ ]
+ ],
+ {"group": "Page structure", "label": "Full width background with side menu"},
+ ),
+ 165: (
+ "wagtail.blocks.static_block.StaticBlock",
+ (),
+ {
+ "admin_text": "A simple, alphabetical list of the subpages of the current page.",
+ "group": "Website structure",
+ "label": "Subpages list",
+ "template": "content_manager/blocks/subpages_list.html",
+ },
+ ),
+ },
+ ),
+ ),
+ migrations.AlterField(
+ model_name="contentpage",
+ name="body",
+ field=wagtail.fields.StreamField(
+ [
+ ("paragraph", 0),
+ ("image", 9),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("link", 58),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("stepper", 79),
+ ("card", 99),
+ ("tile", 109),
+ ("tabs", 143),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("multicolumns", 152),
+ ("item_grid", 155),
+ ("fullwidthbackground", 157),
+ ("fullwidthbackgroundwithsidemenu", 164),
+ ("subpageslist", 165),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ],
+ 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),
+ ]
+ ],
+ {},
+ ),
+ 10: ("wagtail.images.blocks.ImageBlock", [], {"label": "Image"}),
+ 11: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("left", "Left"), ("right", "Right")],
+ "label": "Side where the image is displayed",
+ },
+ ),
+ 12: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {"choices": [("3", "3/12"), ("5", "5/12"), ("6", "6/12")], "label": "Image width"},
+ ),
+ 13: (
+ "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,
+ },
+ ),
+ 14: (
+ "wagtail.documents.blocks.DocumentChooserBlock",
+ (),
+ {
+ "help_text": "Use either this, the external URL or the page parameter.",
+ "label": "Document",
+ "required": False,
+ },
+ ),
+ 15: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "help_text": "Use either this, the document or the page parameter.",
+ "label": "External URL",
+ "required": False,
+ },
+ ),
+ 16: ("wagtail.blocks.CharBlock", (), {"label": "Link label", "required": False}),
+ 17: (
+ "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,
+ },
+ ),
+ 18: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-link--sm", "Small"), ("", "Medium"), ("fr-link--lg", "Large")],
+ "label": "Size",
+ "required": False,
+ },
+ ),
+ 19: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 13),
+ ("document", 14),
+ ("external_url", 15),
+ ("text", 16),
+ ("icon", 17),
+ ("size", 18),
+ ]
+ ],
+ {
+ "help_text": "The link is shown at the bottom of the text block, with an arrow",
+ "label": "Link",
+ "required": False,
+ },
+ ),
+ 20: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link label (obsolete)",
+ "required": False,
+ },
+ ),
+ 21: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Internal link (obsolete)",
+ "required": False,
+ },
+ ),
+ 22: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link URL (obsolete)",
+ "required": False,
+ },
+ ),
+ 23: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("image", 10),
+ ("image_side", 11),
+ ("image_ratio", 12),
+ ("text", 0),
+ ("link", 19),
+ ("link_label", 20),
+ ("page", 21),
+ ("link_url", 22),
+ ]
+ ],
+ {"label": "Image and text"},
+ ),
+ 24: ("wagtail.blocks.CharBlock", (), {"label": "Message title", "required": False}),
+ 25: ("wagtail.blocks.TextBlock", (), {"label": "Message text", "required": False}),
+ 26: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [
+ ("error", "Error"),
+ ("success", "Success"),
+ ("info", "Information"),
+ ("warning", "Warning"),
+ ],
+ "label": "Message type",
+ },
+ ),
+ 27: (
+ "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",
+ },
+ ),
+ 28: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 24), ("description", 25), ("level", 26), ("heading_tag", 27)]],
+ {"label": "Alert message"},
+ ),
+ 29: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text", "required": False}),
+ 30: (
+ "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,
+ },
+ ),
+ 31: ("content_manager.blocks.IconPickerBlock", (), {"label": "Icon", "required": False}),
+ 32: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")],
+ "label": "Icon side",
+ "required": False,
+ },
+ ),
+ 33: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 13),
+ ("document", 14),
+ ("external_url", 15),
+ ("text", 16),
+ ("button_type", 30),
+ ("icon_class", 31),
+ ("icon_side", 32),
+ ]
+ ],
+ {"label": "Button"},
+ ),
+ 34: (
+ "wagtail.blocks.StreamBlock",
+ [[("button", 33)]],
+ {
+ "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",
+ },
+ ),
+ 35: (
+ "wagtail.blocks.StreamBlock",
+ [[("buttons", 34)]],
+ {"label": "Call-to-action buttons", "max_num": 1, "required": False},
+ ),
+ 36: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.",
+ "label": "Call to action label (obsolete)",
+ "required": False,
+ },
+ ),
+ 37: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.",
+ "label": "Link (obsolete)",
+ "required": False,
+ },
+ ),
+ 38: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 29), ("cta_buttons", 35), ("cta_label", 36), ("cta_url", 37)]],
+ {"label": "Text and call to action"},
+ ),
+ 39: ("wagtail.blocks.CharBlock", (), {"label": "Video title", "required": False}),
+ 40: (
+ "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",
+ },
+ ),
+ 41: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-ratio-16x9", "16x9"), ("fr-ratio-4x3", "4x3"), ("fr-ratio-1x1", "1x1")],
+ "label": "Video ratio",
+ "required": False,
+ },
+ ),
+ 42: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"default": "Transcription", "label": "Title", "required": False},
+ ),
+ 43: ("wagtail.blocks.RichTextBlock", (), {"label": "Transcription content", "required": False}),
+ 44: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 42), ("content", 43)]],
+ {"label": "Transcription", "required": False},
+ ),
+ 45: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 39),
+ ("caption", 7),
+ ("url", 40),
+ ("width", 5),
+ ("video_ratio", 41),
+ ("transcription", 44),
+ ]
+ ],
+ {"label": "Video"},
+ ),
+ 46: ("wagtail.blocks.StructBlock", [[("title", 42), ("content", 43)]], {"label": "Transcription"}),
+ 47: ("wagtail.blocks.CharBlock", (), {"label": "Badge label", "required": False}),
+ 48: (
+ "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,
+ },
+ ),
+ 49: ("wagtail.blocks.BooleanBlock", (), {"label": "Hide badge icon", "required": False}),
+ 50: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 47), ("color", 48), ("hide_icon", 49)]],
+ {"label": "Badge"},
+ ),
+ 51: ("wagtail.blocks.StreamBlock", [[("badge", 50)]], {"label": "Badge list"}),
+ 52: ("wagtail.blocks.CharBlock", (), {"label": "Title"}),
+ 53: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tag", "required": False}),
+ 54: (
+ "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,
+ },
+ ),
+ 55: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 13), ("document", 14), ("external_url", 15)]],
+ {"required": False},
+ ),
+ 56: (
+ "wagtail.blocks.StructBlock",
+ [[("label", 52), ("is_small", 53), ("color", 54), ("icon_class", 31), ("link", 55)]],
+ {"label": "Tag"},
+ ),
+ 57: ("wagtail.blocks.StreamBlock", [[("tag", 56)]], {"label": "Tag list"}),
+ 58: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 13),
+ ("document", 14),
+ ("external_url", 15),
+ ("text", 16),
+ ("icon", 17),
+ ("size", 18),
+ ]
+ ],
+ {"label": "Single link"},
+ ),
+ 59: ("wagtail.blocks.RichTextBlock", (), {"label": "Content"}),
+ 60: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 52), ("content", 59)]],
+ {"label": "Accordion", "max_num": 15, "min_num": 1},
+ ),
+ 61: (
+ "wagtail.blocks.StreamBlock",
+ [[("title", 52), ("accordion", 60)]],
+ {"group": "DSFR components", "label": "Accordions"},
+ ),
+ 62: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": [
+ "bold",
+ "italic",
+ "link",
+ "document-link",
+ "superscript",
+ "subscript",
+ "strikethrough",
+ ],
+ "label": "Content",
+ "required": False,
+ },
+ ),
+ 63: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 13),
+ ("document", 14),
+ ("external_url", 15),
+ ("text", 16),
+ ("button_type", 30),
+ ("icon_class", 31),
+ ("icon_side", 32),
+ ]
+ ],
+ {"label": "Button", "required": False},
+ ),
+ 64: (
+ "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,
+ },
+ ),
+ 65: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 27),
+ ("icon_class", 31),
+ ("text", 62),
+ ("button", 63),
+ ("color", 64),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Callout"},
+ ),
+ 66: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": [
+ "bold",
+ "italic",
+ "link",
+ "document-link",
+ "superscript",
+ "subscript",
+ "strikethrough",
+ ],
+ "label": "Content",
+ },
+ ),
+ 67: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-text--sm", "Small"), ("", "Medium"), ("fr-text--lg", "Large")],
+ "label": "Size",
+ "required": False,
+ },
+ ),
+ 68: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 66), ("color", 64), ("size", 67)]],
+ {"group": "DSFR components", "label": "Highlight"},
+ ),
+ 69: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image", "required": False}),
+ 70: ("wagtail.blocks.CharBlock", (), {"label": "Quote"}),
+ 71: ("wagtail.blocks.CharBlock", (), {"label": "Author name", "required": False}),
+ 72: ("wagtail.blocks.CharBlock", (), {"label": "Author title", "required": False}),
+ 73: (
+ "wagtail.blocks.StructBlock",
+ [[("image", 69), ("quote", 70), ("author_name", 71), ("author_title", 72), ("color", 64)]],
+ {"group": "DSFR components", "label": "Quote"},
+ ),
+ 74: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {"label": "Number of steps", "max_value": 8, "min_value": 1},
+ ),
+ 75: ("wagtail.blocks.IntegerBlock", (), {"label": "Current step", "max_value": 8, "min_value": 1}),
+ 76: ("wagtail.blocks.TextBlock", (), {"label": "Detail", "required": False}),
+ 77: ("wagtail.blocks.StructBlock", [[("title", 52), ("detail", 76)]], {"label": "Step"}),
+ 78: ("wagtail.blocks.StreamBlock", [[("step", 77)]], {"label": "Steps"}),
+ 79: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 52), ("total", 74), ("current", 75), ("steps", 78)]],
+ {"group": "DSFR components", "label": "Stepper"},
+ ),
+ 80: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-card--horizontal-tier", "1/3"), ("fr-card--horizontal-half", "50/50")],
+ "label": "Image ratio",
+ "required": False,
+ },
+ ),
+ 81: (
+ "wagtail.blocks.StreamBlock",
+ [[("badge", 50)]],
+ {
+ "help_text": "Only used if the card has an image.",
+ "label": "Image area badge",
+ "max_num": 1,
+ "required": False,
+ },
+ ),
+ 82: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 13), ("document", 14), ("external_url", 15)]],
+ {"label": "Link", "required": False},
+ ),
+ 83: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "group": "target",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link (obsolete)",
+ "required": False,
+ },
+ ),
+ 84: (
+ "wagtail.documents.blocks.DocumentChooserBlock",
+ (),
+ {
+ "group": "target",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "or Document (obsolete)",
+ "required": False,
+ },
+ ),
+ 85: ("wagtail.blocks.CharBlock", (), {"label": "Top detail: text", "required": False}),
+ 86: (
+ "content_manager.blocks.IconPickerBlock",
+ (),
+ {"label": "Top detail: icon", "required": False},
+ ),
+ 87: ("wagtail.blocks.StreamBlock", [[("badge", 50)]], {}),
+ 88: ("wagtail.blocks.StreamBlock", [[("tag", 56)]], {}),
+ 89: (
+ "wagtail.blocks.StreamBlock",
+ [[("badges", 87), ("tags", 88)]],
+ {"label": "Top detail: badges or tags", "max_num": 1, "required": False},
+ ),
+ 90: (
+ "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,
+ },
+ ),
+ 91: (
+ "content_manager.blocks.IconPickerBlock",
+ (),
+ {"label": "Bottom detail: icon", "required": False},
+ ),
+ 92: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 13), ("document", 14), ("external_url", 15), ("text", 16)]],
+ {"label": "Link"},
+ ),
+ 93: ("wagtail.blocks.StreamBlock", [[("link", 92)]], {}),
+ 94: (
+ "wagtail.blocks.StreamBlock",
+ [[("links", 93), ("buttons", 34)]],
+ {
+ "help_text": "Incompatible with the bottom detail text.",
+ "label": "Bottom call-to-action: links or buttons",
+ "max_num": 1,
+ "required": False,
+ },
+ ),
+ 95: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with grey background", "required": False}),
+ 96: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without background", "required": False}),
+ 97: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without border", "required": False}),
+ 98: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with a shadow", "required": False}),
+ 99: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 52),
+ ("heading_tag", 27),
+ ("description", 62),
+ ("image", 69),
+ ("image_ratio", 80),
+ ("image_badge", 81),
+ ("link", 82),
+ ("url", 83),
+ ("document", 84),
+ ("top_detail_text", 85),
+ ("top_detail_icon", 86),
+ ("top_detail_badges_tags", 89),
+ ("bottom_detail_text", 90),
+ ("bottom_detail_icon", 91),
+ ("call_to_action", 94),
+ ("grey_background", 95),
+ ("no_background", 96),
+ ("no_border", 97),
+ ("shadow", 98),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Horizontal card"},
+ ),
+ 100: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": ["bold", "italic", "superscript", "subscript", "strikethrough"],
+ "label": "Content",
+ "required": False,
+ },
+ ),
+ 101: (
+ "wagtail.images.blocks.ImageChooserBlock",
+ (),
+ {"help_text": "Prefer SVG files.", "label": "Image", "required": False},
+ ),
+ 102: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "If the tile links to a downloadable document, the values are pre-filled.",
+ "label": "Detail text",
+ "required": False,
+ },
+ ),
+ 103: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tile", "required": False}),
+ 104: (
+ "wagtail.blocks.BooleanBlock",
+ (),
+ {"label": "Tile with grey background", "required": False},
+ ),
+ 105: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without background", "required": False}),
+ 106: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without border", "required": False}),
+ 107: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with a shadow", "required": False}),
+ 108: ("wagtail.blocks.BooleanBlock", (), {"label": "Horizontal tile", "required": False}),
+ 109: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 52),
+ ("heading_tag", 27),
+ ("description", 100),
+ ("image", 101),
+ ("link", 82),
+ ("top_detail_badges_tags", 89),
+ ("detail_text", 102),
+ ("is_small", 103),
+ ("grey_background", 104),
+ ("no_background", 105),
+ ("no_border", 106),
+ ("shadow", 107),
+ ("is_horizontal", 108),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Tile"},
+ ),
+ 110: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 2),
+ ("image", 3),
+ ("alt", 4),
+ ("width", 5),
+ ("image_ratio", 6),
+ ("caption", 7),
+ ("url", 8),
+ ]
+ ],
+ {"label": "Image"},
+ ),
+ 111: (
+ "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,
+ },
+ ),
+ 112: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {"label": "Blog", "page_type": ["blog.BlogIndexPage"]},
+ ),
+ 113: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {
+ "default": 3,
+ "label": "Number of entries",
+ "max_value": 8,
+ "min_value": 1,
+ "required": False,
+ },
+ ),
+ 114: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Category",),
+ {"label": "Filter by category", "required": False},
+ ),
+ 115: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("content_manager.Tag",),
+ {"label": "Filter by tag", "required": False},
+ ),
+ 116: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Person",),
+ {"label": "Filter by author", "required": False},
+ ),
+ 117: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Organization",),
+ {
+ "help_text": "The source is the organization of the post author",
+ "label": "Filter by source",
+ "required": False,
+ },
+ ),
+ 118: (
+ "wagtail.blocks.BooleanBlock",
+ (),
+ {"default": False, "label": "Show filters", "required": False},
+ ),
+ 119: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 111),
+ ("blog", 112),
+ ("entries_count", 113),
+ ("category_filter", 114),
+ ("tag_filter", 115),
+ ("author_filter", 116),
+ ("source_filter", 117),
+ ("show_filters", 118),
+ ]
+ ],
+ {"group": "Website structure", "label": "Blog recent entries"},
+ ),
+ 120: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {"label": "Event calendar", "page_type": ["events.EventsIndexPage"]},
+ ),
+ 121: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 111),
+ ("index_page", 120),
+ ("entries_count", 113),
+ ("category_filter", 114),
+ ("tag_filter", 115),
+ ("author_filter", 116),
+ ("source_filter", 117),
+ ("show_filters", 118),
+ ]
+ ],
+ {"group": "Website structure", "label": "Event calendar recent entries"},
+ ),
+ 122: ("wagtailmarkdown.blocks.MarkdownBlock", (), {"group": "Expert syntax", "label": "Markdown"}),
+ 123: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "Accessibility: The title should describe, in a clear and concise manner, the embedded content.",
+ "label": "Title",
+ },
+ ),
+ 124: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "help_text": "Example for Tally: https://tally.so/embed/w2jMRa",
+ "label": "URL of the iframe",
+ },
+ ),
+ 125: ("wagtail.blocks.IntegerBlock", (), {"label": "Height (in pixels)"}),
+ 126: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "For example: \"allow='geolocation'\".",
+ "label": "Parameters",
+ "required": False,
+ },
+ ),
+ 127: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 123), ("url", 124), ("height", 125), ("parameters", 126)]],
+ {"group": "Expert syntax", "label": "Iframe"},
+ ),
+ 128: (
+ "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,
+ },
+ ),
+ 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.CharBlock",
+ (),
+ {
+ "help_text": "Incompatible with the bottom call-to-action.",
+ "label": "Bottom detail: text",
+ "required": False,
+ },
+ ),
+ 133: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 52),
+ ("heading_tag", 27),
+ ("description", 62),
+ ("image", 69),
+ ("image_ratio", 6),
+ ("image_badge", 81),
+ ("link", 82),
+ ("url", 83),
+ ("document", 84),
+ ("top_detail_text", 85),
+ ("top_detail_icon", 86),
+ ("top_detail_badges_tags", 89),
+ ("bottom_detail_text", 132),
+ ("bottom_detail_icon", 91),
+ ("call_to_action", 94),
+ ("grey_background", 95),
+ ("no_background", 96),
+ ("no_border", 97),
+ ("shadow", 98),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Vertical card"},
+ ),
+ 134: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Person",),
+ {
+ "help_text": "Optional, all values can be manually specified or overriden below",
+ "label": "Person",
+ "required": False,
+ },
+ ),
+ 135: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255, "required": False}),
+ 136: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255, "required": False}),
+ 137: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"label": "Organization", "max_length": 255, "required": False},
+ ),
+ 138: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"label": "Contact info", "max_length": 500, "required": False},
+ ),
+ 139: ("wagtail.blocks.StreamBlock", [[("tag", 56)]], {"label": "Tags", "required": False}),
+ 140: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("contact", 134),
+ ("link", 82),
+ ("heading_tag", 2),
+ ("name", 135),
+ ("role", 136),
+ ("organization", 137),
+ ("contact_info", 138),
+ ("image", 69),
+ ("tags", 139),
+ ]
+ ],
+ {"group": "Extra components", "label": "Contact card"},
+ ),
+ 141: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 110),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("link", 58),
+ ("tile", 109),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ("stepper", 79),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("card", 133),
+ ("contact_card", 140),
+ ]
+ ],
+ {"label": "Content"},
+ ),
+ 142: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 52), ("content", 141)]],
+ {"label": "Tab", "max_num": 15, "min_num": 1},
+ ),
+ 143: (
+ "wagtail.blocks.StreamBlock",
+ [[("tabs", 142)]],
+ {"group": "DSFR components", "label": "Tabs"},
+ ),
+ 144: (
+ "wagtail.images.blocks.ImageChooserBlock",
+ (),
+ {"label": "Background image", "required": False},
+ ),
+ 145: (
+ "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,
+ },
+ ),
+ 146: (
+ "wagtail.blocks.RegexBlock",
+ (),
+ {
+ "error_messages": {"invalid": "Incorrect color format, must be #fff or #f5f5f5"},
+ "help_text": "This field is obsolete and will be removed in the near future. Replace it with the background color.",
+ "label": "Background color, hexadecimal format (obsolete)",
+ "regex": "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
+ "required": False,
+ },
+ ),
+ 147: (
+ "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,
+ },
+ ),
+ 148: (
+ "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,
+ },
+ ),
+ 149: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 110),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("link", 58),
+ ("tile", 109),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ("stepper", 79),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("card", 133),
+ ("contact_card", 140),
+ ]
+ ],
+ {"label": "Column content"},
+ ),
+ 150: (
+ "wagtail.blocks.StructBlock",
+ [[("width", 148), ("content", 149)]],
+ {"group": "Page structure", "label": "Adjustable column"},
+ ),
+ 151: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 110),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("link", 58),
+ ("tile", 109),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ("stepper", 79),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("card", 133),
+ ("column", 150),
+ ]
+ ],
+ {"label": "Columns"},
+ ),
+ 152: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("bg_image", 144),
+ ("bg_color_class", 145),
+ ("bg_color", 146),
+ ("title", 1),
+ ("heading_tag", 147),
+ ("columns", 151),
+ ]
+ ],
+ {"group": "Page structure", "label": "Multiple columns"},
+ ),
+ 153: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {"choices": [("3", "3/12"), ("4", "4/12"), ("6", "6/12")], "label": "Column width"},
+ ),
+ 154: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 110),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("link", 58),
+ ("tile", 109),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ("stepper", 79),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("card", 133),
+ ("contact_card", 140),
+ ]
+ ],
+ {"label": "Items"},
+ ),
+ 155: (
+ "wagtail.blocks.StructBlock",
+ [[("column_width", 153), ("items", 154)]],
+ {"group": "Page structure", "label": "Item grid"},
+ ),
+ 156: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 110),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("link", 58),
+ ("tile", 109),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ("stepper", 79),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("image_and_text", 23),
+ ("card", 99),
+ ("tabs", 143),
+ ("item_grid", 155),
+ ]
+ ],
+ {"label": "Content"},
+ ),
+ 157: (
+ "wagtail.blocks.StructBlock",
+ [[("bg_image", 144), ("bg_color_class", 145), ("content", 156)]],
+ {"group": "Page structure", "label": "Full width background"},
+ ),
+ 158: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 110),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("link", 58),
+ ("tile", 109),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ("stepper", 79),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("image_and_text", 23),
+ ("card", 99),
+ ("tabs", 143),
+ ("item_grid", 155),
+ ]
+ ],
+ {"label": "Main content"},
+ ),
+ 159: ("wagtail.blocks.CharBlock", (), {"label": "Side menu title", "required": False}),
+ 160: (
+ "wagtail.blocks.RawHTMLBlock",
+ (),
+ {
+ "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.",
+ "label": "HTML",
+ },
+ ),
+ 161: ("wagtail.blocks.PageChooserBlock", (), {"label": "Parent page"}),
+ 162: ("wagtail.blocks.StructBlock", [[("page", 161)]], {"label": "Page tree"}),
+ 163: (
+ "wagtail.blocks.StreamBlock",
+ [[("html", 160), ("pagetree", 162)]],
+ {"label": "Side menu content"},
+ ),
+ 164: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("bg_image", 144),
+ ("bg_color_class", 145),
+ ("main_content", 158),
+ ("sidemenu_title", 159),
+ ("sidemenu_content", 163),
+ ]
+ ],
+ {"group": "Page structure", "label": "Full width background with side menu"},
+ ),
+ 165: (
+ "wagtail.blocks.static_block.StaticBlock",
+ (),
+ {
+ "admin_text": "A simple, alphabetical list of the subpages of the current page.",
+ "group": "Website structure",
+ "label": "Subpages list",
+ "template": "content_manager/blocks/subpages_list.html",
+ },
+ ),
+ },
+ ),
+ ),
+ ]
diff --git a/content_manager/templates/content_manager/blocks/image_and_text.html b/content_manager/templates/content_manager/blocks/image_and_text.html
index 3f30d065..859f5ae4 100644
--- a/content_manager/templates/content_manager/blocks/image_and_text.html
+++ b/content_manager/templates/content_manager/blocks/image_and_text.html
@@ -4,7 +4,7 @@
{% if value.image_side == "left" %}
- {% include "content_manager/blocks/image_svg_or_raster.html" with extra_classes="fr-responsive-img" alt="" %}
+ {% include "content_manager/blocks/image_svg_or_raster.html" with extra_classes="fr-responsive-img" %}
@@ -36,7 +36,7 @@
- {% include "content_manager/blocks/image_svg_or_raster.html" with extra_classes="fr-responsive-img" alt="" %}
+ {% include "content_manager/blocks/image_svg_or_raster.html" with extra_classes="fr-responsive-img" %}
{% endif %}
diff --git a/content_manager/templates/content_manager/blocks/image_svg_or_raster.html b/content_manager/templates/content_manager/blocks/image_svg_or_raster.html
index e5aef75f..a8d54d70 100644
--- a/content_manager/templates/content_manager/blocks/image_svg_or_raster.html
+++ b/content_manager/templates/content_manager/blocks/image_svg_or_raster.html
@@ -12,5 +12,9 @@
{% else %}
- {% image value.image original class=extra_classes alt=alt %}
+ {% if alt %}
+ {% image value.image original class=extra_classes alt=alt %}
+ {% else %}
+ {% image value.image original class=extra_classes %}
+ {% endif %}
{% endif %}
diff --git a/content_manager/templates/content_manager/blocks/stepper.html b/content_manager/templates/content_manager/blocks/stepper.html
index 421c2d52..17400883 100644
--- a/content_manager/templates/content_manager/blocks/stepper.html
+++ b/content_manager/templates/content_manager/blocks/stepper.html
@@ -1,6 +1,14 @@
+{% load i18n %}
-
{{ value.title }}
+
+ {{ value.title }}
+
+ {% with current_step=value.current total_steps=value.total %}
+ {% blocktranslate %}Step {{ current_step }} of {{ total_steps }}{% endblocktranslate %}
+ {% endwith %}
+
+
@@ -8,7 +16,7 @@
{{ value.title }}
{% for step in value.steps %}
- {{ step.value.title }}
+ {{ step.value.title }}
{{ step.value.detail|linebreaksbr }}
diff --git a/events/migrations/0012_alter_evententrypage_body_alter_eventsindexpage_body.py b/events/migrations/0012_alter_evententrypage_body_alter_eventsindexpage_body.py
new file mode 100644
index 00000000..c9571fa6
--- /dev/null
+++ b/events/migrations/0012_alter_evententrypage_body_alter_eventsindexpage_body.py
@@ -0,0 +1,2808 @@
+# Generated by Django 5.1.4 on 2024-12-12 14:05
+
+import wagtail.fields
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ("events", "0011_alter_evententrypage_body_alter_eventsindexpage_body"),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name="evententrypage",
+ name="body",
+ field=wagtail.fields.StreamField(
+ [
+ ("paragraph", 0),
+ ("image", 9),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("badges_list", 50),
+ ("tags_list", 56),
+ ("link", 57),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("stepper", 78),
+ ("card", 98),
+ ("tile", 108),
+ ("tabs", 137),
+ ("markdown", 138),
+ ("iframe", 139),
+ ("separator", 142),
+ ("multicolumns", 151),
+ ("item_grid", 154),
+ ("fullwidthbackground", 156),
+ ("fullwidthbackgroundwithsidemenu", 163),
+ ("subpageslist", 164),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("html", 165),
+ ],
+ 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),
+ ]
+ ],
+ {},
+ ),
+ 10: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("left", "Left"), ("right", "Right")],
+ "label": "Side where the image is displayed",
+ },
+ ),
+ 11: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {"choices": [("3", "3/12"), ("5", "5/12"), ("6", "6/12")], "label": "Image width"},
+ ),
+ 12: (
+ "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,
+ },
+ ),
+ 13: (
+ "wagtail.documents.blocks.DocumentChooserBlock",
+ (),
+ {
+ "help_text": "Use either this, the external URL or the page parameter.",
+ "label": "Document",
+ "required": False,
+ },
+ ),
+ 14: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "help_text": "Use either this, the document or the page parameter.",
+ "label": "External URL",
+ "required": False,
+ },
+ ),
+ 15: ("wagtail.blocks.CharBlock", (), {"label": "Link label", "required": False}),
+ 16: (
+ "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,
+ },
+ ),
+ 17: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-link--sm", "Small"), ("", "Medium"), ("fr-link--lg", "Large")],
+ "label": "Size",
+ "required": False,
+ },
+ ),
+ 18: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 12),
+ ("document", 13),
+ ("external_url", 14),
+ ("text", 15),
+ ("icon", 16),
+ ("size", 17),
+ ]
+ ],
+ {
+ "help_text": "The link is shown at the bottom of the text block, with an arrow",
+ "label": "Link",
+ "required": False,
+ },
+ ),
+ 19: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link label (obsolete)",
+ "required": False,
+ },
+ ),
+ 20: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Internal link (obsolete)",
+ "required": False,
+ },
+ ),
+ 21: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link URL (obsolete)",
+ "required": False,
+ },
+ ),
+ 22: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("image", 3),
+ ("image_side", 10),
+ ("image_ratio", 11),
+ ("text", 0),
+ ("link", 18),
+ ("link_label", 19),
+ ("page", 20),
+ ("link_url", 21),
+ ]
+ ],
+ {"label": "Image and text"},
+ ),
+ 23: ("wagtail.blocks.CharBlock", (), {"label": "Message title", "required": False}),
+ 24: ("wagtail.blocks.TextBlock", (), {"label": "Message text", "required": False}),
+ 25: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [
+ ("error", "Error"),
+ ("success", "Success"),
+ ("info", "Information"),
+ ("warning", "Warning"),
+ ],
+ "label": "Message type",
+ },
+ ),
+ 26: (
+ "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",
+ },
+ ),
+ 27: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 23), ("description", 24), ("level", 25), ("heading_tag", 26)]],
+ {"label": "Alert message"},
+ ),
+ 28: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text", "required": False}),
+ 29: (
+ "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,
+ },
+ ),
+ 30: ("content_manager.blocks.IconPickerBlock", (), {"label": "Icon", "required": False}),
+ 31: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")],
+ "label": "Icon side",
+ "required": False,
+ },
+ ),
+ 32: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 12),
+ ("document", 13),
+ ("external_url", 14),
+ ("text", 15),
+ ("button_type", 29),
+ ("icon_class", 30),
+ ("icon_side", 31),
+ ]
+ ],
+ {"label": "Button"},
+ ),
+ 33: (
+ "wagtail.blocks.StreamBlock",
+ [[("button", 32)]],
+ {
+ "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",
+ },
+ ),
+ 34: (
+ "wagtail.blocks.StreamBlock",
+ [[("buttons", 33)]],
+ {"label": "Call-to-action buttons", "max_num": 1, "required": False},
+ ),
+ 35: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.",
+ "label": "Call to action label (obsolete)",
+ "required": False,
+ },
+ ),
+ 36: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.",
+ "label": "Link (obsolete)",
+ "required": False,
+ },
+ ),
+ 37: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 28), ("cta_buttons", 34), ("cta_label", 35), ("cta_url", 36)]],
+ {"label": "Text and call to action"},
+ ),
+ 38: ("wagtail.blocks.CharBlock", (), {"label": "Video title", "required": False}),
+ 39: (
+ "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",
+ },
+ ),
+ 40: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-ratio-16x9", "16x9"), ("fr-ratio-4x3", "4x3"), ("fr-ratio-1x1", "1x1")],
+ "label": "Video ratio",
+ "required": False,
+ },
+ ),
+ 41: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"default": "Transcription", "label": "Title", "required": False},
+ ),
+ 42: ("wagtail.blocks.RichTextBlock", (), {"label": "Transcription content", "required": False}),
+ 43: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 41), ("content", 42)]],
+ {"label": "Transcription", "required": False},
+ ),
+ 44: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 38),
+ ("caption", 7),
+ ("url", 39),
+ ("width", 5),
+ ("video_ratio", 40),
+ ("transcription", 43),
+ ]
+ ],
+ {"label": "Video"},
+ ),
+ 45: ("wagtail.blocks.StructBlock", [[("title", 41), ("content", 42)]], {"label": "Transcription"}),
+ 46: ("wagtail.blocks.CharBlock", (), {"label": "Badge label", "required": False}),
+ 47: (
+ "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,
+ },
+ ),
+ 48: ("wagtail.blocks.BooleanBlock", (), {"label": "Hide badge icon", "required": False}),
+ 49: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 46), ("color", 47), ("hide_icon", 48)]],
+ {"label": "Badge"},
+ ),
+ 50: ("wagtail.blocks.StreamBlock", [[("badge", 49)]], {"label": "Badge list"}),
+ 51: ("wagtail.blocks.CharBlock", (), {"label": "Title"}),
+ 52: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tag", "required": False}),
+ 53: (
+ "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,
+ },
+ ),
+ 54: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 12), ("document", 13), ("external_url", 14)]],
+ {"required": False},
+ ),
+ 55: (
+ "wagtail.blocks.StructBlock",
+ [[("label", 51), ("is_small", 52), ("color", 53), ("icon_class", 30), ("link", 54)]],
+ {"label": "Tag"},
+ ),
+ 56: ("wagtail.blocks.StreamBlock", [[("tag", 55)]], {"label": "Tag list"}),
+ 57: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 12),
+ ("document", 13),
+ ("external_url", 14),
+ ("text", 15),
+ ("icon", 16),
+ ("size", 17),
+ ]
+ ],
+ {"label": "Single link"},
+ ),
+ 58: ("wagtail.blocks.RichTextBlock", (), {"label": "Content"}),
+ 59: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 51), ("content", 58)]],
+ {"label": "Accordion", "max_num": 15, "min_num": 1},
+ ),
+ 60: (
+ "wagtail.blocks.StreamBlock",
+ [[("title", 51), ("accordion", 59)]],
+ {"group": "DSFR components", "label": "Accordions"},
+ ),
+ 61: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": [
+ "bold",
+ "italic",
+ "link",
+ "document-link",
+ "superscript",
+ "subscript",
+ "strikethrough",
+ ],
+ "label": "Content",
+ "required": False,
+ },
+ ),
+ 62: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 12),
+ ("document", 13),
+ ("external_url", 14),
+ ("text", 15),
+ ("button_type", 29),
+ ("icon_class", 30),
+ ("icon_side", 31),
+ ]
+ ],
+ {"label": "Button", "required": False},
+ ),
+ 63: (
+ "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,
+ },
+ ),
+ 64: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 26),
+ ("icon_class", 30),
+ ("text", 61),
+ ("button", 62),
+ ("color", 63),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Callout"},
+ ),
+ 65: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": [
+ "bold",
+ "italic",
+ "link",
+ "document-link",
+ "superscript",
+ "subscript",
+ "strikethrough",
+ ],
+ "label": "Content",
+ },
+ ),
+ 66: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-text--sm", "Small"), ("", "Medium"), ("fr-text--lg", "Large")],
+ "label": "Size",
+ "required": False,
+ },
+ ),
+ 67: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 65), ("color", 63), ("size", 66)]],
+ {"group": "DSFR components", "label": "Highlight"},
+ ),
+ 68: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image", "required": False}),
+ 69: ("wagtail.blocks.CharBlock", (), {"label": "Quote"}),
+ 70: ("wagtail.blocks.CharBlock", (), {"label": "Author name", "required": False}),
+ 71: ("wagtail.blocks.CharBlock", (), {"label": "Author title", "required": False}),
+ 72: (
+ "wagtail.blocks.StructBlock",
+ [[("image", 68), ("quote", 69), ("author_name", 70), ("author_title", 71), ("color", 63)]],
+ {"group": "DSFR components", "label": "Quote"},
+ ),
+ 73: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {"label": "Number of steps", "max_value": 8, "min_value": 1},
+ ),
+ 74: ("wagtail.blocks.IntegerBlock", (), {"label": "Current step", "max_value": 8, "min_value": 1}),
+ 75: ("wagtail.blocks.TextBlock", (), {"label": "Detail", "required": False}),
+ 76: ("wagtail.blocks.StructBlock", [[("title", 51), ("detail", 75)]], {"label": "Step"}),
+ 77: ("wagtail.blocks.StreamBlock", [[("step", 76)]], {"label": "Steps"}),
+ 78: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 51), ("total", 73), ("current", 74), ("steps", 77)]],
+ {"group": "DSFR components", "label": "Stepper"},
+ ),
+ 79: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-card--horizontal-tier", "1/3"), ("fr-card--horizontal-half", "50/50")],
+ "label": "Image ratio",
+ "required": False,
+ },
+ ),
+ 80: (
+ "wagtail.blocks.StreamBlock",
+ [[("badge", 49)]],
+ {
+ "help_text": "Only used if the card has an image.",
+ "label": "Image area badge",
+ "max_num": 1,
+ "required": False,
+ },
+ ),
+ 81: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 12), ("document", 13), ("external_url", 14)]],
+ {"label": "Link", "required": False},
+ ),
+ 82: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "group": "target",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link (obsolete)",
+ "required": False,
+ },
+ ),
+ 83: (
+ "wagtail.documents.blocks.DocumentChooserBlock",
+ (),
+ {
+ "group": "target",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "or Document (obsolete)",
+ "required": False,
+ },
+ ),
+ 84: ("wagtail.blocks.CharBlock", (), {"label": "Top detail: text", "required": False}),
+ 85: (
+ "content_manager.blocks.IconPickerBlock",
+ (),
+ {"label": "Top detail: icon", "required": False},
+ ),
+ 86: ("wagtail.blocks.StreamBlock", [[("badge", 49)]], {}),
+ 87: ("wagtail.blocks.StreamBlock", [[("tag", 55)]], {}),
+ 88: (
+ "wagtail.blocks.StreamBlock",
+ [[("badges", 86), ("tags", 87)]],
+ {"label": "Top detail: badges or tags", "max_num": 1, "required": False},
+ ),
+ 89: (
+ "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,
+ },
+ ),
+ 90: (
+ "content_manager.blocks.IconPickerBlock",
+ (),
+ {"label": "Bottom detail: icon", "required": False},
+ ),
+ 91: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 12), ("document", 13), ("external_url", 14), ("text", 15)]],
+ {"label": "Link"},
+ ),
+ 92: ("wagtail.blocks.StreamBlock", [[("link", 91)]], {}),
+ 93: (
+ "wagtail.blocks.StreamBlock",
+ [[("links", 92), ("buttons", 33)]],
+ {
+ "help_text": "Incompatible with the bottom detail text.",
+ "label": "Bottom call-to-action: links or buttons",
+ "max_num": 1,
+ "required": False,
+ },
+ ),
+ 94: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with grey background", "required": False}),
+ 95: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without background", "required": False}),
+ 96: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without border", "required": False}),
+ 97: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with a shadow", "required": False}),
+ 98: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 51),
+ ("heading_tag", 26),
+ ("description", 61),
+ ("image", 68),
+ ("image_ratio", 79),
+ ("image_badge", 80),
+ ("link", 81),
+ ("url", 82),
+ ("document", 83),
+ ("top_detail_text", 84),
+ ("top_detail_icon", 85),
+ ("top_detail_badges_tags", 88),
+ ("bottom_detail_text", 89),
+ ("bottom_detail_icon", 90),
+ ("call_to_action", 93),
+ ("grey_background", 94),
+ ("no_background", 95),
+ ("no_border", 96),
+ ("shadow", 97),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Horizontal card"},
+ ),
+ 99: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": ["bold", "italic", "superscript", "subscript", "strikethrough"],
+ "label": "Content",
+ "required": False,
+ },
+ ),
+ 100: (
+ "wagtail.images.blocks.ImageChooserBlock",
+ (),
+ {"help_text": "Prefer SVG files.", "label": "Image", "required": False},
+ ),
+ 101: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "If the tile links to a downloadable document, the values are pre-filled.",
+ "label": "Detail text",
+ "required": False,
+ },
+ ),
+ 102: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tile", "required": False}),
+ 103: (
+ "wagtail.blocks.BooleanBlock",
+ (),
+ {"label": "Tile with grey background", "required": False},
+ ),
+ 104: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without background", "required": False}),
+ 105: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without border", "required": False}),
+ 106: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with a shadow", "required": False}),
+ 107: ("wagtail.blocks.BooleanBlock", (), {"label": "Horizontal tile", "required": False}),
+ 108: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 51),
+ ("heading_tag", 26),
+ ("description", 99),
+ ("image", 100),
+ ("link", 81),
+ ("top_detail_badges_tags", 88),
+ ("detail_text", 101),
+ ("is_small", 102),
+ ("grey_background", 103),
+ ("no_background", 104),
+ ("no_border", 105),
+ ("shadow", 106),
+ ("is_horizontal", 107),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Tile"},
+ ),
+ 109: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 2),
+ ("image", 3),
+ ("alt", 4),
+ ("width", 5),
+ ("image_ratio", 6),
+ ("caption", 7),
+ ("url", 8),
+ ]
+ ],
+ {"label": "Image"},
+ ),
+ 110: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "Accessibility: The title should describe, in a clear and concise manner, the embedded content.",
+ "label": "Title",
+ },
+ ),
+ 111: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "help_text": "Example for Tally: https://tally.so/embed/w2jMRa",
+ "label": "URL of the iframe",
+ },
+ ),
+ 112: ("wagtail.blocks.IntegerBlock", (), {"label": "Height (in pixels)"}),
+ 113: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "For example: \"allow='geolocation'\".",
+ "label": "Parameters",
+ "required": False,
+ },
+ ),
+ 114: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 110), ("url", 111), ("height", 112), ("parameters", 113)]],
+ {"group": "DSFR components", "label": "Iframe"},
+ ),
+ 115: (
+ "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,
+ },
+ ),
+ 116: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {"label": "Blog", "page_type": ["blog.BlogIndexPage"]},
+ ),
+ 117: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {
+ "default": 3,
+ "label": "Number of entries",
+ "max_value": 8,
+ "min_value": 1,
+ "required": False,
+ },
+ ),
+ 118: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Category",),
+ {"label": "Filter by category", "required": False},
+ ),
+ 119: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("content_manager.Tag",),
+ {"label": "Filter by tag", "required": False},
+ ),
+ 120: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Person",),
+ {"label": "Filter by author", "required": False},
+ ),
+ 121: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Organization",),
+ {
+ "help_text": "The source is the organization of the post author",
+ "label": "Filter by source",
+ "required": False,
+ },
+ ),
+ 122: (
+ "wagtail.blocks.BooleanBlock",
+ (),
+ {"default": False, "label": "Show filters", "required": False},
+ ),
+ 123: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 115),
+ ("blog", 116),
+ ("entries_count", 117),
+ ("category_filter", 118),
+ ("tag_filter", 119),
+ ("author_filter", 120),
+ ("source_filter", 121),
+ ("show_filters", 122),
+ ]
+ ],
+ {"group": "Website structure", "label": "Blog recent entries"},
+ ),
+ 124: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {"label": "Event calendar", "page_type": ["events.EventsIndexPage"]},
+ ),
+ 125: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 115),
+ ("index_page", 124),
+ ("entries_count", 117),
+ ("category_filter", 118),
+ ("tag_filter", 119),
+ ("author_filter", 120),
+ ("source_filter", 121),
+ ("show_filters", 122),
+ ]
+ ],
+ {"group": "Website structure", "label": "Event calendar recent entries"},
+ ),
+ 126: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "Incompatible with the bottom call-to-action.",
+ "label": "Bottom detail: text",
+ "required": False,
+ },
+ ),
+ 127: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 51),
+ ("heading_tag", 26),
+ ("description", 61),
+ ("image", 68),
+ ("image_ratio", 6),
+ ("image_badge", 80),
+ ("link", 81),
+ ("url", 82),
+ ("document", 83),
+ ("top_detail_text", 84),
+ ("top_detail_icon", 85),
+ ("top_detail_badges_tags", 88),
+ ("bottom_detail_text", 126),
+ ("bottom_detail_icon", 90),
+ ("call_to_action", 93),
+ ("grey_background", 94),
+ ("no_background", 95),
+ ("no_border", 96),
+ ("shadow", 97),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Vertical card"},
+ ),
+ 128: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Person",),
+ {
+ "help_text": "Optional, all values can be manually specified or overriden below",
+ "label": "Person",
+ "required": False,
+ },
+ ),
+ 129: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255, "required": False}),
+ 130: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255, "required": False}),
+ 131: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"label": "Organization", "max_length": 255, "required": False},
+ ),
+ 132: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"label": "Contact info", "max_length": 500, "required": False},
+ ),
+ 133: ("wagtail.blocks.StreamBlock", [[("tag", 55)]], {"label": "Tags", "required": False}),
+ 134: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("contact", 128),
+ ("link", 81),
+ ("heading_tag", 2),
+ ("name", 129),
+ ("role", 130),
+ ("organization", 131),
+ ("contact_info", 132),
+ ("image", 68),
+ ("tags", 133),
+ ]
+ ],
+ {"group": "Extra components", "label": "Contact card"},
+ ),
+ 135: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 109),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("link", 57),
+ ("iframe", 114),
+ ("tile", 108),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("stepper", 78),
+ ("card", 127),
+ ("contact_card", 134),
+ ]
+ ],
+ {"label": "Content"},
+ ),
+ 136: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 51), ("content", 135)]],
+ {"label": "Tab", "max_num": 15, "min_num": 1},
+ ),
+ 137: (
+ "wagtail.blocks.StreamBlock",
+ [[("tabs", 136)]],
+ {"group": "DSFR components", "label": "Tabs"},
+ ),
+ 138: ("wagtailmarkdown.blocks.MarkdownBlock", (), {"group": "Expert syntax", "label": "Markdown"}),
+ 139: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 110), ("url", 111), ("height", 112), ("parameters", 113)]],
+ {"group": "Expert syntax", "label": "Iframe"},
+ ),
+ 140: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {"default": 3, "label": "Top margin", "max_value": 15, "min_value": 0},
+ ),
+ 141: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {"default": 3, "label": "Bottom margin", "max_value": 15, "min_value": 0},
+ ),
+ 142: (
+ "wagtail.blocks.StructBlock",
+ [[("top_margin", 140), ("bottom_margin", 141)]],
+ {"group": "Page structure", "label": "Separator"},
+ ),
+ 143: (
+ "wagtail.images.blocks.ImageChooserBlock",
+ (),
+ {"label": "Background image", "required": False},
+ ),
+ 144: (
+ "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,
+ },
+ ),
+ 145: (
+ "wagtail.blocks.RegexBlock",
+ (),
+ {
+ "error_messages": {"invalid": "Incorrect color format, must be #fff or #f5f5f5"},
+ "help_text": "This field is obsolete and will be removed in the near future. Replace it with the background color.",
+ "label": "Background color, hexadecimal format (obsolete)",
+ "regex": "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
+ "required": False,
+ },
+ ),
+ 146: (
+ "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,
+ },
+ ),
+ 147: (
+ "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,
+ },
+ ),
+ 148: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 109),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("link", 57),
+ ("iframe", 114),
+ ("tile", 108),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("stepper", 78),
+ ("card", 127),
+ ("contact_card", 134),
+ ]
+ ],
+ {"label": "Column content"},
+ ),
+ 149: (
+ "wagtail.blocks.StructBlock",
+ [[("width", 147), ("content", 148)]],
+ {"group": "Page structure", "label": "Adjustable column"},
+ ),
+ 150: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 109),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("link", 57),
+ ("iframe", 114),
+ ("tile", 108),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("stepper", 78),
+ ("card", 127),
+ ("column", 149),
+ ]
+ ],
+ {"label": "Columns"},
+ ),
+ 151: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("bg_image", 143),
+ ("bg_color_class", 144),
+ ("bg_color", 145),
+ ("title", 1),
+ ("heading_tag", 146),
+ ("columns", 150),
+ ]
+ ],
+ {"group": "Page structure", "label": "Multiple columns"},
+ ),
+ 152: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {"choices": [("3", "3/12"), ("4", "4/12"), ("6", "6/12")], "label": "Column width"},
+ ),
+ 153: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 109),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("link", 57),
+ ("iframe", 114),
+ ("tile", 108),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("stepper", 78),
+ ("card", 127),
+ ("contact_card", 134),
+ ]
+ ],
+ {"label": "Items"},
+ ),
+ 154: (
+ "wagtail.blocks.StructBlock",
+ [[("column_width", 152), ("items", 153)]],
+ {"group": "Page structure", "label": "Item grid"},
+ ),
+ 155: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 109),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("link", 57),
+ ("iframe", 114),
+ ("tile", 108),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("stepper", 78),
+ ("image_and_text", 22),
+ ("card", 98),
+ ("tabs", 137),
+ ("item_grid", 154),
+ ]
+ ],
+ {"label": "Content"},
+ ),
+ 156: (
+ "wagtail.blocks.StructBlock",
+ [[("bg_image", 143), ("bg_color_class", 144), ("content", 155)]],
+ {"group": "Page structure", "label": "Full width background"},
+ ),
+ 157: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 109),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("link", 57),
+ ("iframe", 114),
+ ("tile", 108),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("stepper", 78),
+ ("image_and_text", 22),
+ ("card", 98),
+ ("tabs", 137),
+ ("item_grid", 154),
+ ]
+ ],
+ {"label": "Main content"},
+ ),
+ 158: ("wagtail.blocks.CharBlock", (), {"label": "Side menu title", "required": False}),
+ 159: (
+ "wagtail.blocks.RawHTMLBlock",
+ (),
+ {
+ "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.",
+ "label": "HTML",
+ },
+ ),
+ 160: ("wagtail.blocks.PageChooserBlock", (), {"label": "Parent page"}),
+ 161: ("wagtail.blocks.StructBlock", [[("page", 160)]], {"label": "Page tree"}),
+ 162: (
+ "wagtail.blocks.StreamBlock",
+ [[("html", 159), ("pagetree", 161)]],
+ {"label": "Side menu content"},
+ ),
+ 163: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("bg_image", 143),
+ ("bg_color_class", 144),
+ ("main_content", 157),
+ ("sidemenu_title", 158),
+ ("sidemenu_content", 162),
+ ]
+ ],
+ {"group": "Page structure", "label": "Full width background with side menu"},
+ ),
+ 164: (
+ "wagtail.blocks.static_block.StaticBlock",
+ (),
+ {
+ "admin_text": "A simple, alphabetical list of the subpages of the current page.",
+ "group": "Website structure",
+ "label": "Subpages list",
+ "template": "content_manager/blocks/subpages_list.html",
+ },
+ ),
+ 165: (
+ "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,
+ },
+ ),
+ },
+ ),
+ ),
+ migrations.AlterField(
+ model_name="eventsindexpage",
+ name="body",
+ field=wagtail.fields.StreamField(
+ [
+ ("paragraph", 0),
+ ("image", 9),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("badges_list", 50),
+ ("tags_list", 56),
+ ("link", 57),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("stepper", 78),
+ ("card", 98),
+ ("tile", 108),
+ ("tabs", 137),
+ ("markdown", 138),
+ ("iframe", 139),
+ ("separator", 142),
+ ("multicolumns", 151),
+ ("item_grid", 154),
+ ("fullwidthbackground", 156),
+ ("fullwidthbackgroundwithsidemenu", 163),
+ ("subpageslist", 164),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("html", 165),
+ ],
+ 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),
+ ]
+ ],
+ {},
+ ),
+ 10: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("left", "Left"), ("right", "Right")],
+ "label": "Side where the image is displayed",
+ },
+ ),
+ 11: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {"choices": [("3", "3/12"), ("5", "5/12"), ("6", "6/12")], "label": "Image width"},
+ ),
+ 12: (
+ "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,
+ },
+ ),
+ 13: (
+ "wagtail.documents.blocks.DocumentChooserBlock",
+ (),
+ {
+ "help_text": "Use either this, the external URL or the page parameter.",
+ "label": "Document",
+ "required": False,
+ },
+ ),
+ 14: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "help_text": "Use either this, the document or the page parameter.",
+ "label": "External URL",
+ "required": False,
+ },
+ ),
+ 15: ("wagtail.blocks.CharBlock", (), {"label": "Link label", "required": False}),
+ 16: (
+ "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,
+ },
+ ),
+ 17: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-link--sm", "Small"), ("", "Medium"), ("fr-link--lg", "Large")],
+ "label": "Size",
+ "required": False,
+ },
+ ),
+ 18: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 12),
+ ("document", 13),
+ ("external_url", 14),
+ ("text", 15),
+ ("icon", 16),
+ ("size", 17),
+ ]
+ ],
+ {
+ "help_text": "The link is shown at the bottom of the text block, with an arrow",
+ "label": "Link",
+ "required": False,
+ },
+ ),
+ 19: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link label (obsolete)",
+ "required": False,
+ },
+ ),
+ 20: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Internal link (obsolete)",
+ "required": False,
+ },
+ ),
+ 21: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link URL (obsolete)",
+ "required": False,
+ },
+ ),
+ 22: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("image", 3),
+ ("image_side", 10),
+ ("image_ratio", 11),
+ ("text", 0),
+ ("link", 18),
+ ("link_label", 19),
+ ("page", 20),
+ ("link_url", 21),
+ ]
+ ],
+ {"label": "Image and text"},
+ ),
+ 23: ("wagtail.blocks.CharBlock", (), {"label": "Message title", "required": False}),
+ 24: ("wagtail.blocks.TextBlock", (), {"label": "Message text", "required": False}),
+ 25: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [
+ ("error", "Error"),
+ ("success", "Success"),
+ ("info", "Information"),
+ ("warning", "Warning"),
+ ],
+ "label": "Message type",
+ },
+ ),
+ 26: (
+ "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",
+ },
+ ),
+ 27: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 23), ("description", 24), ("level", 25), ("heading_tag", 26)]],
+ {"label": "Alert message"},
+ ),
+ 28: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text", "required": False}),
+ 29: (
+ "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,
+ },
+ ),
+ 30: ("content_manager.blocks.IconPickerBlock", (), {"label": "Icon", "required": False}),
+ 31: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")],
+ "label": "Icon side",
+ "required": False,
+ },
+ ),
+ 32: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 12),
+ ("document", 13),
+ ("external_url", 14),
+ ("text", 15),
+ ("button_type", 29),
+ ("icon_class", 30),
+ ("icon_side", 31),
+ ]
+ ],
+ {"label": "Button"},
+ ),
+ 33: (
+ "wagtail.blocks.StreamBlock",
+ [[("button", 32)]],
+ {
+ "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",
+ },
+ ),
+ 34: (
+ "wagtail.blocks.StreamBlock",
+ [[("buttons", 33)]],
+ {"label": "Call-to-action buttons", "max_num": 1, "required": False},
+ ),
+ 35: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.",
+ "label": "Call to action label (obsolete)",
+ "required": False,
+ },
+ ),
+ 36: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.",
+ "label": "Link (obsolete)",
+ "required": False,
+ },
+ ),
+ 37: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 28), ("cta_buttons", 34), ("cta_label", 35), ("cta_url", 36)]],
+ {"label": "Text and call to action"},
+ ),
+ 38: ("wagtail.blocks.CharBlock", (), {"label": "Video title", "required": False}),
+ 39: (
+ "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",
+ },
+ ),
+ 40: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-ratio-16x9", "16x9"), ("fr-ratio-4x3", "4x3"), ("fr-ratio-1x1", "1x1")],
+ "label": "Video ratio",
+ "required": False,
+ },
+ ),
+ 41: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"default": "Transcription", "label": "Title", "required": False},
+ ),
+ 42: ("wagtail.blocks.RichTextBlock", (), {"label": "Transcription content", "required": False}),
+ 43: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 41), ("content", 42)]],
+ {"label": "Transcription", "required": False},
+ ),
+ 44: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 38),
+ ("caption", 7),
+ ("url", 39),
+ ("width", 5),
+ ("video_ratio", 40),
+ ("transcription", 43),
+ ]
+ ],
+ {"label": "Video"},
+ ),
+ 45: ("wagtail.blocks.StructBlock", [[("title", 41), ("content", 42)]], {"label": "Transcription"}),
+ 46: ("wagtail.blocks.CharBlock", (), {"label": "Badge label", "required": False}),
+ 47: (
+ "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,
+ },
+ ),
+ 48: ("wagtail.blocks.BooleanBlock", (), {"label": "Hide badge icon", "required": False}),
+ 49: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 46), ("color", 47), ("hide_icon", 48)]],
+ {"label": "Badge"},
+ ),
+ 50: ("wagtail.blocks.StreamBlock", [[("badge", 49)]], {"label": "Badge list"}),
+ 51: ("wagtail.blocks.CharBlock", (), {"label": "Title"}),
+ 52: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tag", "required": False}),
+ 53: (
+ "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,
+ },
+ ),
+ 54: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 12), ("document", 13), ("external_url", 14)]],
+ {"required": False},
+ ),
+ 55: (
+ "wagtail.blocks.StructBlock",
+ [[("label", 51), ("is_small", 52), ("color", 53), ("icon_class", 30), ("link", 54)]],
+ {"label": "Tag"},
+ ),
+ 56: ("wagtail.blocks.StreamBlock", [[("tag", 55)]], {"label": "Tag list"}),
+ 57: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 12),
+ ("document", 13),
+ ("external_url", 14),
+ ("text", 15),
+ ("icon", 16),
+ ("size", 17),
+ ]
+ ],
+ {"label": "Single link"},
+ ),
+ 58: ("wagtail.blocks.RichTextBlock", (), {"label": "Content"}),
+ 59: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 51), ("content", 58)]],
+ {"label": "Accordion", "max_num": 15, "min_num": 1},
+ ),
+ 60: (
+ "wagtail.blocks.StreamBlock",
+ [[("title", 51), ("accordion", 59)]],
+ {"group": "DSFR components", "label": "Accordions"},
+ ),
+ 61: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": [
+ "bold",
+ "italic",
+ "link",
+ "document-link",
+ "superscript",
+ "subscript",
+ "strikethrough",
+ ],
+ "label": "Content",
+ "required": False,
+ },
+ ),
+ 62: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 12),
+ ("document", 13),
+ ("external_url", 14),
+ ("text", 15),
+ ("button_type", 29),
+ ("icon_class", 30),
+ ("icon_side", 31),
+ ]
+ ],
+ {"label": "Button", "required": False},
+ ),
+ 63: (
+ "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,
+ },
+ ),
+ 64: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 26),
+ ("icon_class", 30),
+ ("text", 61),
+ ("button", 62),
+ ("color", 63),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Callout"},
+ ),
+ 65: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": [
+ "bold",
+ "italic",
+ "link",
+ "document-link",
+ "superscript",
+ "subscript",
+ "strikethrough",
+ ],
+ "label": "Content",
+ },
+ ),
+ 66: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-text--sm", "Small"), ("", "Medium"), ("fr-text--lg", "Large")],
+ "label": "Size",
+ "required": False,
+ },
+ ),
+ 67: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 65), ("color", 63), ("size", 66)]],
+ {"group": "DSFR components", "label": "Highlight"},
+ ),
+ 68: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image", "required": False}),
+ 69: ("wagtail.blocks.CharBlock", (), {"label": "Quote"}),
+ 70: ("wagtail.blocks.CharBlock", (), {"label": "Author name", "required": False}),
+ 71: ("wagtail.blocks.CharBlock", (), {"label": "Author title", "required": False}),
+ 72: (
+ "wagtail.blocks.StructBlock",
+ [[("image", 68), ("quote", 69), ("author_name", 70), ("author_title", 71), ("color", 63)]],
+ {"group": "DSFR components", "label": "Quote"},
+ ),
+ 73: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {"label": "Number of steps", "max_value": 8, "min_value": 1},
+ ),
+ 74: ("wagtail.blocks.IntegerBlock", (), {"label": "Current step", "max_value": 8, "min_value": 1}),
+ 75: ("wagtail.blocks.TextBlock", (), {"label": "Detail", "required": False}),
+ 76: ("wagtail.blocks.StructBlock", [[("title", 51), ("detail", 75)]], {"label": "Step"}),
+ 77: ("wagtail.blocks.StreamBlock", [[("step", 76)]], {"label": "Steps"}),
+ 78: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 51), ("total", 73), ("current", 74), ("steps", 77)]],
+ {"group": "DSFR components", "label": "Stepper"},
+ ),
+ 79: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-card--horizontal-tier", "1/3"), ("fr-card--horizontal-half", "50/50")],
+ "label": "Image ratio",
+ "required": False,
+ },
+ ),
+ 80: (
+ "wagtail.blocks.StreamBlock",
+ [[("badge", 49)]],
+ {
+ "help_text": "Only used if the card has an image.",
+ "label": "Image area badge",
+ "max_num": 1,
+ "required": False,
+ },
+ ),
+ 81: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 12), ("document", 13), ("external_url", 14)]],
+ {"label": "Link", "required": False},
+ ),
+ 82: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "group": "target",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link (obsolete)",
+ "required": False,
+ },
+ ),
+ 83: (
+ "wagtail.documents.blocks.DocumentChooserBlock",
+ (),
+ {
+ "group": "target",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "or Document (obsolete)",
+ "required": False,
+ },
+ ),
+ 84: ("wagtail.blocks.CharBlock", (), {"label": "Top detail: text", "required": False}),
+ 85: (
+ "content_manager.blocks.IconPickerBlock",
+ (),
+ {"label": "Top detail: icon", "required": False},
+ ),
+ 86: ("wagtail.blocks.StreamBlock", [[("badge", 49)]], {}),
+ 87: ("wagtail.blocks.StreamBlock", [[("tag", 55)]], {}),
+ 88: (
+ "wagtail.blocks.StreamBlock",
+ [[("badges", 86), ("tags", 87)]],
+ {"label": "Top detail: badges or tags", "max_num": 1, "required": False},
+ ),
+ 89: (
+ "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,
+ },
+ ),
+ 90: (
+ "content_manager.blocks.IconPickerBlock",
+ (),
+ {"label": "Bottom detail: icon", "required": False},
+ ),
+ 91: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 12), ("document", 13), ("external_url", 14), ("text", 15)]],
+ {"label": "Link"},
+ ),
+ 92: ("wagtail.blocks.StreamBlock", [[("link", 91)]], {}),
+ 93: (
+ "wagtail.blocks.StreamBlock",
+ [[("links", 92), ("buttons", 33)]],
+ {
+ "help_text": "Incompatible with the bottom detail text.",
+ "label": "Bottom call-to-action: links or buttons",
+ "max_num": 1,
+ "required": False,
+ },
+ ),
+ 94: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with grey background", "required": False}),
+ 95: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without background", "required": False}),
+ 96: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without border", "required": False}),
+ 97: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with a shadow", "required": False}),
+ 98: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 51),
+ ("heading_tag", 26),
+ ("description", 61),
+ ("image", 68),
+ ("image_ratio", 79),
+ ("image_badge", 80),
+ ("link", 81),
+ ("url", 82),
+ ("document", 83),
+ ("top_detail_text", 84),
+ ("top_detail_icon", 85),
+ ("top_detail_badges_tags", 88),
+ ("bottom_detail_text", 89),
+ ("bottom_detail_icon", 90),
+ ("call_to_action", 93),
+ ("grey_background", 94),
+ ("no_background", 95),
+ ("no_border", 96),
+ ("shadow", 97),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Horizontal card"},
+ ),
+ 99: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": ["bold", "italic", "superscript", "subscript", "strikethrough"],
+ "label": "Content",
+ "required": False,
+ },
+ ),
+ 100: (
+ "wagtail.images.blocks.ImageChooserBlock",
+ (),
+ {"help_text": "Prefer SVG files.", "label": "Image", "required": False},
+ ),
+ 101: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "If the tile links to a downloadable document, the values are pre-filled.",
+ "label": "Detail text",
+ "required": False,
+ },
+ ),
+ 102: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tile", "required": False}),
+ 103: (
+ "wagtail.blocks.BooleanBlock",
+ (),
+ {"label": "Tile with grey background", "required": False},
+ ),
+ 104: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without background", "required": False}),
+ 105: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without border", "required": False}),
+ 106: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with a shadow", "required": False}),
+ 107: ("wagtail.blocks.BooleanBlock", (), {"label": "Horizontal tile", "required": False}),
+ 108: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 51),
+ ("heading_tag", 26),
+ ("description", 99),
+ ("image", 100),
+ ("link", 81),
+ ("top_detail_badges_tags", 88),
+ ("detail_text", 101),
+ ("is_small", 102),
+ ("grey_background", 103),
+ ("no_background", 104),
+ ("no_border", 105),
+ ("shadow", 106),
+ ("is_horizontal", 107),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Tile"},
+ ),
+ 109: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 2),
+ ("image", 3),
+ ("alt", 4),
+ ("width", 5),
+ ("image_ratio", 6),
+ ("caption", 7),
+ ("url", 8),
+ ]
+ ],
+ {"label": "Image"},
+ ),
+ 110: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "Accessibility: The title should describe, in a clear and concise manner, the embedded content.",
+ "label": "Title",
+ },
+ ),
+ 111: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "help_text": "Example for Tally: https://tally.so/embed/w2jMRa",
+ "label": "URL of the iframe",
+ },
+ ),
+ 112: ("wagtail.blocks.IntegerBlock", (), {"label": "Height (in pixels)"}),
+ 113: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "For example: \"allow='geolocation'\".",
+ "label": "Parameters",
+ "required": False,
+ },
+ ),
+ 114: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 110), ("url", 111), ("height", 112), ("parameters", 113)]],
+ {"group": "DSFR components", "label": "Iframe"},
+ ),
+ 115: (
+ "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,
+ },
+ ),
+ 116: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {"label": "Blog", "page_type": ["blog.BlogIndexPage"]},
+ ),
+ 117: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {
+ "default": 3,
+ "label": "Number of entries",
+ "max_value": 8,
+ "min_value": 1,
+ "required": False,
+ },
+ ),
+ 118: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Category",),
+ {"label": "Filter by category", "required": False},
+ ),
+ 119: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("content_manager.Tag",),
+ {"label": "Filter by tag", "required": False},
+ ),
+ 120: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Person",),
+ {"label": "Filter by author", "required": False},
+ ),
+ 121: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Organization",),
+ {
+ "help_text": "The source is the organization of the post author",
+ "label": "Filter by source",
+ "required": False,
+ },
+ ),
+ 122: (
+ "wagtail.blocks.BooleanBlock",
+ (),
+ {"default": False, "label": "Show filters", "required": False},
+ ),
+ 123: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 115),
+ ("blog", 116),
+ ("entries_count", 117),
+ ("category_filter", 118),
+ ("tag_filter", 119),
+ ("author_filter", 120),
+ ("source_filter", 121),
+ ("show_filters", 122),
+ ]
+ ],
+ {"group": "Website structure", "label": "Blog recent entries"},
+ ),
+ 124: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {"label": "Event calendar", "page_type": ["events.EventsIndexPage"]},
+ ),
+ 125: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 115),
+ ("index_page", 124),
+ ("entries_count", 117),
+ ("category_filter", 118),
+ ("tag_filter", 119),
+ ("author_filter", 120),
+ ("source_filter", 121),
+ ("show_filters", 122),
+ ]
+ ],
+ {"group": "Website structure", "label": "Event calendar recent entries"},
+ ),
+ 126: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "Incompatible with the bottom call-to-action.",
+ "label": "Bottom detail: text",
+ "required": False,
+ },
+ ),
+ 127: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 51),
+ ("heading_tag", 26),
+ ("description", 61),
+ ("image", 68),
+ ("image_ratio", 6),
+ ("image_badge", 80),
+ ("link", 81),
+ ("url", 82),
+ ("document", 83),
+ ("top_detail_text", 84),
+ ("top_detail_icon", 85),
+ ("top_detail_badges_tags", 88),
+ ("bottom_detail_text", 126),
+ ("bottom_detail_icon", 90),
+ ("call_to_action", 93),
+ ("grey_background", 94),
+ ("no_background", 95),
+ ("no_border", 96),
+ ("shadow", 97),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Vertical card"},
+ ),
+ 128: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Person",),
+ {
+ "help_text": "Optional, all values can be manually specified or overriden below",
+ "label": "Person",
+ "required": False,
+ },
+ ),
+ 129: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255, "required": False}),
+ 130: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255, "required": False}),
+ 131: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"label": "Organization", "max_length": 255, "required": False},
+ ),
+ 132: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"label": "Contact info", "max_length": 500, "required": False},
+ ),
+ 133: ("wagtail.blocks.StreamBlock", [[("tag", 55)]], {"label": "Tags", "required": False}),
+ 134: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("contact", 128),
+ ("link", 81),
+ ("heading_tag", 2),
+ ("name", 129),
+ ("role", 130),
+ ("organization", 131),
+ ("contact_info", 132),
+ ("image", 68),
+ ("tags", 133),
+ ]
+ ],
+ {"group": "Extra components", "label": "Contact card"},
+ ),
+ 135: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 109),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("link", 57),
+ ("iframe", 114),
+ ("tile", 108),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("stepper", 78),
+ ("card", 127),
+ ("contact_card", 134),
+ ]
+ ],
+ {"label": "Content"},
+ ),
+ 136: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 51), ("content", 135)]],
+ {"label": "Tab", "max_num": 15, "min_num": 1},
+ ),
+ 137: (
+ "wagtail.blocks.StreamBlock",
+ [[("tabs", 136)]],
+ {"group": "DSFR components", "label": "Tabs"},
+ ),
+ 138: ("wagtailmarkdown.blocks.MarkdownBlock", (), {"group": "Expert syntax", "label": "Markdown"}),
+ 139: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 110), ("url", 111), ("height", 112), ("parameters", 113)]],
+ {"group": "Expert syntax", "label": "Iframe"},
+ ),
+ 140: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {"default": 3, "label": "Top margin", "max_value": 15, "min_value": 0},
+ ),
+ 141: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {"default": 3, "label": "Bottom margin", "max_value": 15, "min_value": 0},
+ ),
+ 142: (
+ "wagtail.blocks.StructBlock",
+ [[("top_margin", 140), ("bottom_margin", 141)]],
+ {"group": "Page structure", "label": "Separator"},
+ ),
+ 143: (
+ "wagtail.images.blocks.ImageChooserBlock",
+ (),
+ {"label": "Background image", "required": False},
+ ),
+ 144: (
+ "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,
+ },
+ ),
+ 145: (
+ "wagtail.blocks.RegexBlock",
+ (),
+ {
+ "error_messages": {"invalid": "Incorrect color format, must be #fff or #f5f5f5"},
+ "help_text": "This field is obsolete and will be removed in the near future. Replace it with the background color.",
+ "label": "Background color, hexadecimal format (obsolete)",
+ "regex": "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
+ "required": False,
+ },
+ ),
+ 146: (
+ "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,
+ },
+ ),
+ 147: (
+ "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,
+ },
+ ),
+ 148: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 109),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("link", 57),
+ ("iframe", 114),
+ ("tile", 108),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("stepper", 78),
+ ("card", 127),
+ ("contact_card", 134),
+ ]
+ ],
+ {"label": "Column content"},
+ ),
+ 149: (
+ "wagtail.blocks.StructBlock",
+ [[("width", 147), ("content", 148)]],
+ {"group": "Page structure", "label": "Adjustable column"},
+ ),
+ 150: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 109),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("link", 57),
+ ("iframe", 114),
+ ("tile", 108),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("stepper", 78),
+ ("card", 127),
+ ("column", 149),
+ ]
+ ],
+ {"label": "Columns"},
+ ),
+ 151: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("bg_image", 143),
+ ("bg_color_class", 144),
+ ("bg_color", 145),
+ ("title", 1),
+ ("heading_tag", 146),
+ ("columns", 150),
+ ]
+ ],
+ {"group": "Page structure", "label": "Multiple columns"},
+ ),
+ 152: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {"choices": [("3", "3/12"), ("4", "4/12"), ("6", "6/12")], "label": "Column width"},
+ ),
+ 153: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 109),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("link", 57),
+ ("iframe", 114),
+ ("tile", 108),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("stepper", 78),
+ ("card", 127),
+ ("contact_card", 134),
+ ]
+ ],
+ {"label": "Items"},
+ ),
+ 154: (
+ "wagtail.blocks.StructBlock",
+ [[("column_width", 152), ("items", 153)]],
+ {"group": "Page structure", "label": "Item grid"},
+ ),
+ 155: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 109),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("link", 57),
+ ("iframe", 114),
+ ("tile", 108),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("stepper", 78),
+ ("image_and_text", 22),
+ ("card", 98),
+ ("tabs", 137),
+ ("item_grid", 154),
+ ]
+ ],
+ {"label": "Content"},
+ ),
+ 156: (
+ "wagtail.blocks.StructBlock",
+ [[("bg_image", 143), ("bg_color_class", 144), ("content", 155)]],
+ {"group": "Page structure", "label": "Full width background"},
+ ),
+ 157: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 109),
+ ("imageandtext", 22),
+ ("alert", 27),
+ ("text_cta", 37),
+ ("video", 44),
+ ("transcription", 45),
+ ("accordions", 60),
+ ("callout", 64),
+ ("highlight", 67),
+ ("quote", 72),
+ ("link", 57),
+ ("iframe", 114),
+ ("tile", 108),
+ ("blog_recent_entries", 123),
+ ("events_recent_entries", 125),
+ ("stepper", 78),
+ ("image_and_text", 22),
+ ("card", 98),
+ ("tabs", 137),
+ ("item_grid", 154),
+ ]
+ ],
+ {"label": "Main content"},
+ ),
+ 158: ("wagtail.blocks.CharBlock", (), {"label": "Side menu title", "required": False}),
+ 159: (
+ "wagtail.blocks.RawHTMLBlock",
+ (),
+ {
+ "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.",
+ "label": "HTML",
+ },
+ ),
+ 160: ("wagtail.blocks.PageChooserBlock", (), {"label": "Parent page"}),
+ 161: ("wagtail.blocks.StructBlock", [[("page", 160)]], {"label": "Page tree"}),
+ 162: (
+ "wagtail.blocks.StreamBlock",
+ [[("html", 159), ("pagetree", 161)]],
+ {"label": "Side menu content"},
+ ),
+ 163: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("bg_image", 143),
+ ("bg_color_class", 144),
+ ("main_content", 157),
+ ("sidemenu_title", 158),
+ ("sidemenu_content", 162),
+ ]
+ ],
+ {"group": "Page structure", "label": "Full width background with side menu"},
+ ),
+ 164: (
+ "wagtail.blocks.static_block.StaticBlock",
+ (),
+ {
+ "admin_text": "A simple, alphabetical list of the subpages of the current page.",
+ "group": "Website structure",
+ "label": "Subpages list",
+ "template": "content_manager/blocks/subpages_list.html",
+ },
+ ),
+ 165: (
+ "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,
+ },
+ ),
+ },
+ ),
+ ),
+ ]
diff --git a/events/migrations/0013_alter_evententrypage_body_alter_eventsindexpage_body.py b/events/migrations/0013_alter_evententrypage_body_alter_eventsindexpage_body.py
new file mode 100644
index 00000000..433f7267
--- /dev/null
+++ b/events/migrations/0013_alter_evententrypage_body_alter_eventsindexpage_body.py
@@ -0,0 +1,2860 @@
+# Generated by Django 5.1.4 on 2024-12-12 17:08
+
+import wagtail.fields
+from django.db import migrations
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ("events", "0012_alter_evententrypage_body_alter_eventsindexpage_body"),
+ ]
+
+ operations = [
+ migrations.AlterField(
+ model_name="evententrypage",
+ name="body",
+ field=wagtail.fields.StreamField(
+ [
+ ("paragraph", 0),
+ ("image", 9),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("link", 58),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("stepper", 79),
+ ("card", 99),
+ ("tile", 109),
+ ("tabs", 143),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("multicolumns", 152),
+ ("item_grid", 155),
+ ("fullwidthbackground", 157),
+ ("fullwidthbackgroundwithsidemenu", 164),
+ ("subpageslist", 165),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ],
+ 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),
+ ]
+ ],
+ {},
+ ),
+ 10: ("wagtail.images.blocks.ImageBlock", [], {"label": "Image"}),
+ 11: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("left", "Left"), ("right", "Right")],
+ "label": "Side where the image is displayed",
+ },
+ ),
+ 12: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {"choices": [("3", "3/12"), ("5", "5/12"), ("6", "6/12")], "label": "Image width"},
+ ),
+ 13: (
+ "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,
+ },
+ ),
+ 14: (
+ "wagtail.documents.blocks.DocumentChooserBlock",
+ (),
+ {
+ "help_text": "Use either this, the external URL or the page parameter.",
+ "label": "Document",
+ "required": False,
+ },
+ ),
+ 15: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "help_text": "Use either this, the document or the page parameter.",
+ "label": "External URL",
+ "required": False,
+ },
+ ),
+ 16: ("wagtail.blocks.CharBlock", (), {"label": "Link label", "required": False}),
+ 17: (
+ "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,
+ },
+ ),
+ 18: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-link--sm", "Small"), ("", "Medium"), ("fr-link--lg", "Large")],
+ "label": "Size",
+ "required": False,
+ },
+ ),
+ 19: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 13),
+ ("document", 14),
+ ("external_url", 15),
+ ("text", 16),
+ ("icon", 17),
+ ("size", 18),
+ ]
+ ],
+ {
+ "help_text": "The link is shown at the bottom of the text block, with an arrow",
+ "label": "Link",
+ "required": False,
+ },
+ ),
+ 20: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link label (obsolete)",
+ "required": False,
+ },
+ ),
+ 21: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Internal link (obsolete)",
+ "required": False,
+ },
+ ),
+ 22: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link URL (obsolete)",
+ "required": False,
+ },
+ ),
+ 23: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("image", 10),
+ ("image_side", 11),
+ ("image_ratio", 12),
+ ("text", 0),
+ ("link", 19),
+ ("link_label", 20),
+ ("page", 21),
+ ("link_url", 22),
+ ]
+ ],
+ {"label": "Image and text"},
+ ),
+ 24: ("wagtail.blocks.CharBlock", (), {"label": "Message title", "required": False}),
+ 25: ("wagtail.blocks.TextBlock", (), {"label": "Message text", "required": False}),
+ 26: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [
+ ("error", "Error"),
+ ("success", "Success"),
+ ("info", "Information"),
+ ("warning", "Warning"),
+ ],
+ "label": "Message type",
+ },
+ ),
+ 27: (
+ "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",
+ },
+ ),
+ 28: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 24), ("description", 25), ("level", 26), ("heading_tag", 27)]],
+ {"label": "Alert message"},
+ ),
+ 29: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text", "required": False}),
+ 30: (
+ "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,
+ },
+ ),
+ 31: ("content_manager.blocks.IconPickerBlock", (), {"label": "Icon", "required": False}),
+ 32: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")],
+ "label": "Icon side",
+ "required": False,
+ },
+ ),
+ 33: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 13),
+ ("document", 14),
+ ("external_url", 15),
+ ("text", 16),
+ ("button_type", 30),
+ ("icon_class", 31),
+ ("icon_side", 32),
+ ]
+ ],
+ {"label": "Button"},
+ ),
+ 34: (
+ "wagtail.blocks.StreamBlock",
+ [[("button", 33)]],
+ {
+ "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",
+ },
+ ),
+ 35: (
+ "wagtail.blocks.StreamBlock",
+ [[("buttons", 34)]],
+ {"label": "Call-to-action buttons", "max_num": 1, "required": False},
+ ),
+ 36: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.",
+ "label": "Call to action label (obsolete)",
+ "required": False,
+ },
+ ),
+ 37: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.",
+ "label": "Link (obsolete)",
+ "required": False,
+ },
+ ),
+ 38: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 29), ("cta_buttons", 35), ("cta_label", 36), ("cta_url", 37)]],
+ {"label": "Text and call to action"},
+ ),
+ 39: ("wagtail.blocks.CharBlock", (), {"label": "Video title", "required": False}),
+ 40: (
+ "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",
+ },
+ ),
+ 41: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-ratio-16x9", "16x9"), ("fr-ratio-4x3", "4x3"), ("fr-ratio-1x1", "1x1")],
+ "label": "Video ratio",
+ "required": False,
+ },
+ ),
+ 42: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"default": "Transcription", "label": "Title", "required": False},
+ ),
+ 43: ("wagtail.blocks.RichTextBlock", (), {"label": "Transcription content", "required": False}),
+ 44: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 42), ("content", 43)]],
+ {"label": "Transcription", "required": False},
+ ),
+ 45: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 39),
+ ("caption", 7),
+ ("url", 40),
+ ("width", 5),
+ ("video_ratio", 41),
+ ("transcription", 44),
+ ]
+ ],
+ {"label": "Video"},
+ ),
+ 46: ("wagtail.blocks.StructBlock", [[("title", 42), ("content", 43)]], {"label": "Transcription"}),
+ 47: ("wagtail.blocks.CharBlock", (), {"label": "Badge label", "required": False}),
+ 48: (
+ "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,
+ },
+ ),
+ 49: ("wagtail.blocks.BooleanBlock", (), {"label": "Hide badge icon", "required": False}),
+ 50: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 47), ("color", 48), ("hide_icon", 49)]],
+ {"label": "Badge"},
+ ),
+ 51: ("wagtail.blocks.StreamBlock", [[("badge", 50)]], {"label": "Badge list"}),
+ 52: ("wagtail.blocks.CharBlock", (), {"label": "Title"}),
+ 53: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tag", "required": False}),
+ 54: (
+ "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,
+ },
+ ),
+ 55: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 13), ("document", 14), ("external_url", 15)]],
+ {"required": False},
+ ),
+ 56: (
+ "wagtail.blocks.StructBlock",
+ [[("label", 52), ("is_small", 53), ("color", 54), ("icon_class", 31), ("link", 55)]],
+ {"label": "Tag"},
+ ),
+ 57: ("wagtail.blocks.StreamBlock", [[("tag", 56)]], {"label": "Tag list"}),
+ 58: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 13),
+ ("document", 14),
+ ("external_url", 15),
+ ("text", 16),
+ ("icon", 17),
+ ("size", 18),
+ ]
+ ],
+ {"label": "Single link"},
+ ),
+ 59: ("wagtail.blocks.RichTextBlock", (), {"label": "Content"}),
+ 60: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 52), ("content", 59)]],
+ {"label": "Accordion", "max_num": 15, "min_num": 1},
+ ),
+ 61: (
+ "wagtail.blocks.StreamBlock",
+ [[("title", 52), ("accordion", 60)]],
+ {"group": "DSFR components", "label": "Accordions"},
+ ),
+ 62: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": [
+ "bold",
+ "italic",
+ "link",
+ "document-link",
+ "superscript",
+ "subscript",
+ "strikethrough",
+ ],
+ "label": "Content",
+ "required": False,
+ },
+ ),
+ 63: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 13),
+ ("document", 14),
+ ("external_url", 15),
+ ("text", 16),
+ ("button_type", 30),
+ ("icon_class", 31),
+ ("icon_side", 32),
+ ]
+ ],
+ {"label": "Button", "required": False},
+ ),
+ 64: (
+ "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,
+ },
+ ),
+ 65: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 27),
+ ("icon_class", 31),
+ ("text", 62),
+ ("button", 63),
+ ("color", 64),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Callout"},
+ ),
+ 66: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": [
+ "bold",
+ "italic",
+ "link",
+ "document-link",
+ "superscript",
+ "subscript",
+ "strikethrough",
+ ],
+ "label": "Content",
+ },
+ ),
+ 67: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-text--sm", "Small"), ("", "Medium"), ("fr-text--lg", "Large")],
+ "label": "Size",
+ "required": False,
+ },
+ ),
+ 68: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 66), ("color", 64), ("size", 67)]],
+ {"group": "DSFR components", "label": "Highlight"},
+ ),
+ 69: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image", "required": False}),
+ 70: ("wagtail.blocks.CharBlock", (), {"label": "Quote"}),
+ 71: ("wagtail.blocks.CharBlock", (), {"label": "Author name", "required": False}),
+ 72: ("wagtail.blocks.CharBlock", (), {"label": "Author title", "required": False}),
+ 73: (
+ "wagtail.blocks.StructBlock",
+ [[("image", 69), ("quote", 70), ("author_name", 71), ("author_title", 72), ("color", 64)]],
+ {"group": "DSFR components", "label": "Quote"},
+ ),
+ 74: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {"label": "Number of steps", "max_value": 8, "min_value": 1},
+ ),
+ 75: ("wagtail.blocks.IntegerBlock", (), {"label": "Current step", "max_value": 8, "min_value": 1}),
+ 76: ("wagtail.blocks.TextBlock", (), {"label": "Detail", "required": False}),
+ 77: ("wagtail.blocks.StructBlock", [[("title", 52), ("detail", 76)]], {"label": "Step"}),
+ 78: ("wagtail.blocks.StreamBlock", [[("step", 77)]], {"label": "Steps"}),
+ 79: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 52), ("total", 74), ("current", 75), ("steps", 78)]],
+ {"group": "DSFR components", "label": "Stepper"},
+ ),
+ 80: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-card--horizontal-tier", "1/3"), ("fr-card--horizontal-half", "50/50")],
+ "label": "Image ratio",
+ "required": False,
+ },
+ ),
+ 81: (
+ "wagtail.blocks.StreamBlock",
+ [[("badge", 50)]],
+ {
+ "help_text": "Only used if the card has an image.",
+ "label": "Image area badge",
+ "max_num": 1,
+ "required": False,
+ },
+ ),
+ 82: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 13), ("document", 14), ("external_url", 15)]],
+ {"label": "Link", "required": False},
+ ),
+ 83: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "group": "target",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link (obsolete)",
+ "required": False,
+ },
+ ),
+ 84: (
+ "wagtail.documents.blocks.DocumentChooserBlock",
+ (),
+ {
+ "group": "target",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "or Document (obsolete)",
+ "required": False,
+ },
+ ),
+ 85: ("wagtail.blocks.CharBlock", (), {"label": "Top detail: text", "required": False}),
+ 86: (
+ "content_manager.blocks.IconPickerBlock",
+ (),
+ {"label": "Top detail: icon", "required": False},
+ ),
+ 87: ("wagtail.blocks.StreamBlock", [[("badge", 50)]], {}),
+ 88: ("wagtail.blocks.StreamBlock", [[("tag", 56)]], {}),
+ 89: (
+ "wagtail.blocks.StreamBlock",
+ [[("badges", 87), ("tags", 88)]],
+ {"label": "Top detail: badges or tags", "max_num": 1, "required": False},
+ ),
+ 90: (
+ "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,
+ },
+ ),
+ 91: (
+ "content_manager.blocks.IconPickerBlock",
+ (),
+ {"label": "Bottom detail: icon", "required": False},
+ ),
+ 92: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 13), ("document", 14), ("external_url", 15), ("text", 16)]],
+ {"label": "Link"},
+ ),
+ 93: ("wagtail.blocks.StreamBlock", [[("link", 92)]], {}),
+ 94: (
+ "wagtail.blocks.StreamBlock",
+ [[("links", 93), ("buttons", 34)]],
+ {
+ "help_text": "Incompatible with the bottom detail text.",
+ "label": "Bottom call-to-action: links or buttons",
+ "max_num": 1,
+ "required": False,
+ },
+ ),
+ 95: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with grey background", "required": False}),
+ 96: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without background", "required": False}),
+ 97: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without border", "required": False}),
+ 98: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with a shadow", "required": False}),
+ 99: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 52),
+ ("heading_tag", 27),
+ ("description", 62),
+ ("image", 69),
+ ("image_ratio", 80),
+ ("image_badge", 81),
+ ("link", 82),
+ ("url", 83),
+ ("document", 84),
+ ("top_detail_text", 85),
+ ("top_detail_icon", 86),
+ ("top_detail_badges_tags", 89),
+ ("bottom_detail_text", 90),
+ ("bottom_detail_icon", 91),
+ ("call_to_action", 94),
+ ("grey_background", 95),
+ ("no_background", 96),
+ ("no_border", 97),
+ ("shadow", 98),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Horizontal card"},
+ ),
+ 100: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": ["bold", "italic", "superscript", "subscript", "strikethrough"],
+ "label": "Content",
+ "required": False,
+ },
+ ),
+ 101: (
+ "wagtail.images.blocks.ImageChooserBlock",
+ (),
+ {"help_text": "Prefer SVG files.", "label": "Image", "required": False},
+ ),
+ 102: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "If the tile links to a downloadable document, the values are pre-filled.",
+ "label": "Detail text",
+ "required": False,
+ },
+ ),
+ 103: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tile", "required": False}),
+ 104: (
+ "wagtail.blocks.BooleanBlock",
+ (),
+ {"label": "Tile with grey background", "required": False},
+ ),
+ 105: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without background", "required": False}),
+ 106: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without border", "required": False}),
+ 107: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with a shadow", "required": False}),
+ 108: ("wagtail.blocks.BooleanBlock", (), {"label": "Horizontal tile", "required": False}),
+ 109: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 52),
+ ("heading_tag", 27),
+ ("description", 100),
+ ("image", 101),
+ ("link", 82),
+ ("top_detail_badges_tags", 89),
+ ("detail_text", 102),
+ ("is_small", 103),
+ ("grey_background", 104),
+ ("no_background", 105),
+ ("no_border", 106),
+ ("shadow", 107),
+ ("is_horizontal", 108),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Tile"},
+ ),
+ 110: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 2),
+ ("image", 3),
+ ("alt", 4),
+ ("width", 5),
+ ("image_ratio", 6),
+ ("caption", 7),
+ ("url", 8),
+ ]
+ ],
+ {"label": "Image"},
+ ),
+ 111: (
+ "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,
+ },
+ ),
+ 112: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {"label": "Blog", "page_type": ["blog.BlogIndexPage"]},
+ ),
+ 113: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {
+ "default": 3,
+ "label": "Number of entries",
+ "max_value": 8,
+ "min_value": 1,
+ "required": False,
+ },
+ ),
+ 114: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Category",),
+ {"label": "Filter by category", "required": False},
+ ),
+ 115: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("content_manager.Tag",),
+ {"label": "Filter by tag", "required": False},
+ ),
+ 116: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Person",),
+ {"label": "Filter by author", "required": False},
+ ),
+ 117: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Organization",),
+ {
+ "help_text": "The source is the organization of the post author",
+ "label": "Filter by source",
+ "required": False,
+ },
+ ),
+ 118: (
+ "wagtail.blocks.BooleanBlock",
+ (),
+ {"default": False, "label": "Show filters", "required": False},
+ ),
+ 119: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 111),
+ ("blog", 112),
+ ("entries_count", 113),
+ ("category_filter", 114),
+ ("tag_filter", 115),
+ ("author_filter", 116),
+ ("source_filter", 117),
+ ("show_filters", 118),
+ ]
+ ],
+ {"group": "Website structure", "label": "Blog recent entries"},
+ ),
+ 120: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {"label": "Event calendar", "page_type": ["events.EventsIndexPage"]},
+ ),
+ 121: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 111),
+ ("index_page", 120),
+ ("entries_count", 113),
+ ("category_filter", 114),
+ ("tag_filter", 115),
+ ("author_filter", 116),
+ ("source_filter", 117),
+ ("show_filters", 118),
+ ]
+ ],
+ {"group": "Website structure", "label": "Event calendar recent entries"},
+ ),
+ 122: ("wagtailmarkdown.blocks.MarkdownBlock", (), {"group": "Expert syntax", "label": "Markdown"}),
+ 123: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "Accessibility: The title should describe, in a clear and concise manner, the embedded content.",
+ "label": "Title",
+ },
+ ),
+ 124: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "help_text": "Example for Tally: https://tally.so/embed/w2jMRa",
+ "label": "URL of the iframe",
+ },
+ ),
+ 125: ("wagtail.blocks.IntegerBlock", (), {"label": "Height (in pixels)"}),
+ 126: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "For example: \"allow='geolocation'\".",
+ "label": "Parameters",
+ "required": False,
+ },
+ ),
+ 127: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 123), ("url", 124), ("height", 125), ("parameters", 126)]],
+ {"group": "Expert syntax", "label": "Iframe"},
+ ),
+ 128: (
+ "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,
+ },
+ ),
+ 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.CharBlock",
+ (),
+ {
+ "help_text": "Incompatible with the bottom call-to-action.",
+ "label": "Bottom detail: text",
+ "required": False,
+ },
+ ),
+ 133: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 52),
+ ("heading_tag", 27),
+ ("description", 62),
+ ("image", 69),
+ ("image_ratio", 6),
+ ("image_badge", 81),
+ ("link", 82),
+ ("url", 83),
+ ("document", 84),
+ ("top_detail_text", 85),
+ ("top_detail_icon", 86),
+ ("top_detail_badges_tags", 89),
+ ("bottom_detail_text", 132),
+ ("bottom_detail_icon", 91),
+ ("call_to_action", 94),
+ ("grey_background", 95),
+ ("no_background", 96),
+ ("no_border", 97),
+ ("shadow", 98),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Vertical card"},
+ ),
+ 134: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Person",),
+ {
+ "help_text": "Optional, all values can be manually specified or overriden below",
+ "label": "Person",
+ "required": False,
+ },
+ ),
+ 135: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255, "required": False}),
+ 136: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255, "required": False}),
+ 137: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"label": "Organization", "max_length": 255, "required": False},
+ ),
+ 138: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"label": "Contact info", "max_length": 500, "required": False},
+ ),
+ 139: ("wagtail.blocks.StreamBlock", [[("tag", 56)]], {"label": "Tags", "required": False}),
+ 140: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("contact", 134),
+ ("link", 82),
+ ("heading_tag", 2),
+ ("name", 135),
+ ("role", 136),
+ ("organization", 137),
+ ("contact_info", 138),
+ ("image", 69),
+ ("tags", 139),
+ ]
+ ],
+ {"group": "Extra components", "label": "Contact card"},
+ ),
+ 141: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 110),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("link", 58),
+ ("tile", 109),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ("stepper", 79),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("card", 133),
+ ("contact_card", 140),
+ ]
+ ],
+ {"label": "Content"},
+ ),
+ 142: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 52), ("content", 141)]],
+ {"label": "Tab", "max_num": 15, "min_num": 1},
+ ),
+ 143: (
+ "wagtail.blocks.StreamBlock",
+ [[("tabs", 142)]],
+ {"group": "DSFR components", "label": "Tabs"},
+ ),
+ 144: (
+ "wagtail.images.blocks.ImageChooserBlock",
+ (),
+ {"label": "Background image", "required": False},
+ ),
+ 145: (
+ "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,
+ },
+ ),
+ 146: (
+ "wagtail.blocks.RegexBlock",
+ (),
+ {
+ "error_messages": {"invalid": "Incorrect color format, must be #fff or #f5f5f5"},
+ "help_text": "This field is obsolete and will be removed in the near future. Replace it with the background color.",
+ "label": "Background color, hexadecimal format (obsolete)",
+ "regex": "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
+ "required": False,
+ },
+ ),
+ 147: (
+ "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,
+ },
+ ),
+ 148: (
+ "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,
+ },
+ ),
+ 149: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 110),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("link", 58),
+ ("tile", 109),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ("stepper", 79),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("card", 133),
+ ("contact_card", 140),
+ ]
+ ],
+ {"label": "Column content"},
+ ),
+ 150: (
+ "wagtail.blocks.StructBlock",
+ [[("width", 148), ("content", 149)]],
+ {"group": "Page structure", "label": "Adjustable column"},
+ ),
+ 151: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 110),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("link", 58),
+ ("tile", 109),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ("stepper", 79),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("card", 133),
+ ("column", 150),
+ ]
+ ],
+ {"label": "Columns"},
+ ),
+ 152: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("bg_image", 144),
+ ("bg_color_class", 145),
+ ("bg_color", 146),
+ ("title", 1),
+ ("heading_tag", 147),
+ ("columns", 151),
+ ]
+ ],
+ {"group": "Page structure", "label": "Multiple columns"},
+ ),
+ 153: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {"choices": [("3", "3/12"), ("4", "4/12"), ("6", "6/12")], "label": "Column width"},
+ ),
+ 154: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 110),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("link", 58),
+ ("tile", 109),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ("stepper", 79),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("card", 133),
+ ("contact_card", 140),
+ ]
+ ],
+ {"label": "Items"},
+ ),
+ 155: (
+ "wagtail.blocks.StructBlock",
+ [[("column_width", 153), ("items", 154)]],
+ {"group": "Page structure", "label": "Item grid"},
+ ),
+ 156: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 110),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("link", 58),
+ ("tile", 109),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ("stepper", 79),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("image_and_text", 23),
+ ("card", 99),
+ ("tabs", 143),
+ ("item_grid", 155),
+ ]
+ ],
+ {"label": "Content"},
+ ),
+ 157: (
+ "wagtail.blocks.StructBlock",
+ [[("bg_image", 144), ("bg_color_class", 145), ("content", 156)]],
+ {"group": "Page structure", "label": "Full width background"},
+ ),
+ 158: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 110),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("link", 58),
+ ("tile", 109),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ("stepper", 79),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("image_and_text", 23),
+ ("card", 99),
+ ("tabs", 143),
+ ("item_grid", 155),
+ ]
+ ],
+ {"label": "Main content"},
+ ),
+ 159: ("wagtail.blocks.CharBlock", (), {"label": "Side menu title", "required": False}),
+ 160: (
+ "wagtail.blocks.RawHTMLBlock",
+ (),
+ {
+ "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.",
+ "label": "HTML",
+ },
+ ),
+ 161: ("wagtail.blocks.PageChooserBlock", (), {"label": "Parent page"}),
+ 162: ("wagtail.blocks.StructBlock", [[("page", 161)]], {"label": "Page tree"}),
+ 163: (
+ "wagtail.blocks.StreamBlock",
+ [[("html", 160), ("pagetree", 162)]],
+ {"label": "Side menu content"},
+ ),
+ 164: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("bg_image", 144),
+ ("bg_color_class", 145),
+ ("main_content", 158),
+ ("sidemenu_title", 159),
+ ("sidemenu_content", 163),
+ ]
+ ],
+ {"group": "Page structure", "label": "Full width background with side menu"},
+ ),
+ 165: (
+ "wagtail.blocks.static_block.StaticBlock",
+ (),
+ {
+ "admin_text": "A simple, alphabetical list of the subpages of the current page.",
+ "group": "Website structure",
+ "label": "Subpages list",
+ "template": "content_manager/blocks/subpages_list.html",
+ },
+ ),
+ },
+ ),
+ ),
+ migrations.AlterField(
+ model_name="eventsindexpage",
+ name="body",
+ field=wagtail.fields.StreamField(
+ [
+ ("paragraph", 0),
+ ("image", 9),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("link", 58),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("stepper", 79),
+ ("card", 99),
+ ("tile", 109),
+ ("tabs", 143),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("multicolumns", 152),
+ ("item_grid", 155),
+ ("fullwidthbackground", 157),
+ ("fullwidthbackgroundwithsidemenu", 164),
+ ("subpageslist", 165),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ],
+ 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),
+ ]
+ ],
+ {},
+ ),
+ 10: ("wagtail.images.blocks.ImageBlock", [], {"label": "Image"}),
+ 11: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("left", "Left"), ("right", "Right")],
+ "label": "Side where the image is displayed",
+ },
+ ),
+ 12: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {"choices": [("3", "3/12"), ("5", "5/12"), ("6", "6/12")], "label": "Image width"},
+ ),
+ 13: (
+ "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,
+ },
+ ),
+ 14: (
+ "wagtail.documents.blocks.DocumentChooserBlock",
+ (),
+ {
+ "help_text": "Use either this, the external URL or the page parameter.",
+ "label": "Document",
+ "required": False,
+ },
+ ),
+ 15: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "help_text": "Use either this, the document or the page parameter.",
+ "label": "External URL",
+ "required": False,
+ },
+ ),
+ 16: ("wagtail.blocks.CharBlock", (), {"label": "Link label", "required": False}),
+ 17: (
+ "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,
+ },
+ ),
+ 18: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-link--sm", "Small"), ("", "Medium"), ("fr-link--lg", "Large")],
+ "label": "Size",
+ "required": False,
+ },
+ ),
+ 19: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 13),
+ ("document", 14),
+ ("external_url", 15),
+ ("text", 16),
+ ("icon", 17),
+ ("size", 18),
+ ]
+ ],
+ {
+ "help_text": "The link is shown at the bottom of the text block, with an arrow",
+ "label": "Link",
+ "required": False,
+ },
+ ),
+ 20: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link label (obsolete)",
+ "required": False,
+ },
+ ),
+ 21: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Internal link (obsolete)",
+ "required": False,
+ },
+ ),
+ 22: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "group": "obsolete",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link URL (obsolete)",
+ "required": False,
+ },
+ ),
+ 23: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("image", 10),
+ ("image_side", 11),
+ ("image_ratio", 12),
+ ("text", 0),
+ ("link", 19),
+ ("link_label", 20),
+ ("page", 21),
+ ("link_url", 22),
+ ]
+ ],
+ {"label": "Image and text"},
+ ),
+ 24: ("wagtail.blocks.CharBlock", (), {"label": "Message title", "required": False}),
+ 25: ("wagtail.blocks.TextBlock", (), {"label": "Message text", "required": False}),
+ 26: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [
+ ("error", "Error"),
+ ("success", "Success"),
+ ("info", "Information"),
+ ("warning", "Warning"),
+ ],
+ "label": "Message type",
+ },
+ ),
+ 27: (
+ "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",
+ },
+ ),
+ 28: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 24), ("description", 25), ("level", 26), ("heading_tag", 27)]],
+ {"label": "Alert message"},
+ ),
+ 29: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text", "required": False}),
+ 30: (
+ "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,
+ },
+ ),
+ 31: ("content_manager.blocks.IconPickerBlock", (), {"label": "Icon", "required": False}),
+ 32: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")],
+ "label": "Icon side",
+ "required": False,
+ },
+ ),
+ 33: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 13),
+ ("document", 14),
+ ("external_url", 15),
+ ("text", 16),
+ ("button_type", 30),
+ ("icon_class", 31),
+ ("icon_side", 32),
+ ]
+ ],
+ {"label": "Button"},
+ ),
+ 34: (
+ "wagtail.blocks.StreamBlock",
+ [[("button", 33)]],
+ {
+ "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",
+ },
+ ),
+ 35: (
+ "wagtail.blocks.StreamBlock",
+ [[("buttons", 34)]],
+ {"label": "Call-to-action buttons", "max_num": 1, "required": False},
+ ),
+ 36: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.",
+ "label": "Call to action label (obsolete)",
+ "required": False,
+ },
+ ),
+ 37: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.",
+ "label": "Link (obsolete)",
+ "required": False,
+ },
+ ),
+ 38: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 29), ("cta_buttons", 35), ("cta_label", 36), ("cta_url", 37)]],
+ {"label": "Text and call to action"},
+ ),
+ 39: ("wagtail.blocks.CharBlock", (), {"label": "Video title", "required": False}),
+ 40: (
+ "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",
+ },
+ ),
+ 41: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-ratio-16x9", "16x9"), ("fr-ratio-4x3", "4x3"), ("fr-ratio-1x1", "1x1")],
+ "label": "Video ratio",
+ "required": False,
+ },
+ ),
+ 42: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"default": "Transcription", "label": "Title", "required": False},
+ ),
+ 43: ("wagtail.blocks.RichTextBlock", (), {"label": "Transcription content", "required": False}),
+ 44: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 42), ("content", 43)]],
+ {"label": "Transcription", "required": False},
+ ),
+ 45: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 39),
+ ("caption", 7),
+ ("url", 40),
+ ("width", 5),
+ ("video_ratio", 41),
+ ("transcription", 44),
+ ]
+ ],
+ {"label": "Video"},
+ ),
+ 46: ("wagtail.blocks.StructBlock", [[("title", 42), ("content", 43)]], {"label": "Transcription"}),
+ 47: ("wagtail.blocks.CharBlock", (), {"label": "Badge label", "required": False}),
+ 48: (
+ "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,
+ },
+ ),
+ 49: ("wagtail.blocks.BooleanBlock", (), {"label": "Hide badge icon", "required": False}),
+ 50: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 47), ("color", 48), ("hide_icon", 49)]],
+ {"label": "Badge"},
+ ),
+ 51: ("wagtail.blocks.StreamBlock", [[("badge", 50)]], {"label": "Badge list"}),
+ 52: ("wagtail.blocks.CharBlock", (), {"label": "Title"}),
+ 53: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tag", "required": False}),
+ 54: (
+ "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,
+ },
+ ),
+ 55: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 13), ("document", 14), ("external_url", 15)]],
+ {"required": False},
+ ),
+ 56: (
+ "wagtail.blocks.StructBlock",
+ [[("label", 52), ("is_small", 53), ("color", 54), ("icon_class", 31), ("link", 55)]],
+ {"label": "Tag"},
+ ),
+ 57: ("wagtail.blocks.StreamBlock", [[("tag", 56)]], {"label": "Tag list"}),
+ 58: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 13),
+ ("document", 14),
+ ("external_url", 15),
+ ("text", 16),
+ ("icon", 17),
+ ("size", 18),
+ ]
+ ],
+ {"label": "Single link"},
+ ),
+ 59: ("wagtail.blocks.RichTextBlock", (), {"label": "Content"}),
+ 60: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 52), ("content", 59)]],
+ {"label": "Accordion", "max_num": 15, "min_num": 1},
+ ),
+ 61: (
+ "wagtail.blocks.StreamBlock",
+ [[("title", 52), ("accordion", 60)]],
+ {"group": "DSFR components", "label": "Accordions"},
+ ),
+ 62: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": [
+ "bold",
+ "italic",
+ "link",
+ "document-link",
+ "superscript",
+ "subscript",
+ "strikethrough",
+ ],
+ "label": "Content",
+ "required": False,
+ },
+ ),
+ 63: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("page", 13),
+ ("document", 14),
+ ("external_url", 15),
+ ("text", 16),
+ ("button_type", 30),
+ ("icon_class", 31),
+ ("icon_side", 32),
+ ]
+ ],
+ {"label": "Button", "required": False},
+ ),
+ 64: (
+ "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,
+ },
+ ),
+ 65: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 27),
+ ("icon_class", 31),
+ ("text", 62),
+ ("button", 63),
+ ("color", 64),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Callout"},
+ ),
+ 66: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": [
+ "bold",
+ "italic",
+ "link",
+ "document-link",
+ "superscript",
+ "subscript",
+ "strikethrough",
+ ],
+ "label": "Content",
+ },
+ ),
+ 67: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-text--sm", "Small"), ("", "Medium"), ("fr-text--lg", "Large")],
+ "label": "Size",
+ "required": False,
+ },
+ ),
+ 68: (
+ "wagtail.blocks.StructBlock",
+ [[("text", 66), ("color", 64), ("size", 67)]],
+ {"group": "DSFR components", "label": "Highlight"},
+ ),
+ 69: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image", "required": False}),
+ 70: ("wagtail.blocks.CharBlock", (), {"label": "Quote"}),
+ 71: ("wagtail.blocks.CharBlock", (), {"label": "Author name", "required": False}),
+ 72: ("wagtail.blocks.CharBlock", (), {"label": "Author title", "required": False}),
+ 73: (
+ "wagtail.blocks.StructBlock",
+ [[("image", 69), ("quote", 70), ("author_name", 71), ("author_title", 72), ("color", 64)]],
+ {"group": "DSFR components", "label": "Quote"},
+ ),
+ 74: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {"label": "Number of steps", "max_value": 8, "min_value": 1},
+ ),
+ 75: ("wagtail.blocks.IntegerBlock", (), {"label": "Current step", "max_value": 8, "min_value": 1}),
+ 76: ("wagtail.blocks.TextBlock", (), {"label": "Detail", "required": False}),
+ 77: ("wagtail.blocks.StructBlock", [[("title", 52), ("detail", 76)]], {"label": "Step"}),
+ 78: ("wagtail.blocks.StreamBlock", [[("step", 77)]], {"label": "Steps"}),
+ 79: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 52), ("total", 74), ("current", 75), ("steps", 78)]],
+ {"group": "DSFR components", "label": "Stepper"},
+ ),
+ 80: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {
+ "choices": [("fr-card--horizontal-tier", "1/3"), ("fr-card--horizontal-half", "50/50")],
+ "label": "Image ratio",
+ "required": False,
+ },
+ ),
+ 81: (
+ "wagtail.blocks.StreamBlock",
+ [[("badge", 50)]],
+ {
+ "help_text": "Only used if the card has an image.",
+ "label": "Image area badge",
+ "max_num": 1,
+ "required": False,
+ },
+ ),
+ 82: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 13), ("document", 14), ("external_url", 15)]],
+ {"label": "Link", "required": False},
+ ),
+ 83: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "group": "target",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "Link (obsolete)",
+ "required": False,
+ },
+ ),
+ 84: (
+ "wagtail.documents.blocks.DocumentChooserBlock",
+ (),
+ {
+ "group": "target",
+ "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.",
+ "label": "or Document (obsolete)",
+ "required": False,
+ },
+ ),
+ 85: ("wagtail.blocks.CharBlock", (), {"label": "Top detail: text", "required": False}),
+ 86: (
+ "content_manager.blocks.IconPickerBlock",
+ (),
+ {"label": "Top detail: icon", "required": False},
+ ),
+ 87: ("wagtail.blocks.StreamBlock", [[("badge", 50)]], {}),
+ 88: ("wagtail.blocks.StreamBlock", [[("tag", 56)]], {}),
+ 89: (
+ "wagtail.blocks.StreamBlock",
+ [[("badges", 87), ("tags", 88)]],
+ {"label": "Top detail: badges or tags", "max_num": 1, "required": False},
+ ),
+ 90: (
+ "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,
+ },
+ ),
+ 91: (
+ "content_manager.blocks.IconPickerBlock",
+ (),
+ {"label": "Bottom detail: icon", "required": False},
+ ),
+ 92: (
+ "wagtail.blocks.StructBlock",
+ [[("page", 13), ("document", 14), ("external_url", 15), ("text", 16)]],
+ {"label": "Link"},
+ ),
+ 93: ("wagtail.blocks.StreamBlock", [[("link", 92)]], {}),
+ 94: (
+ "wagtail.blocks.StreamBlock",
+ [[("links", 93), ("buttons", 34)]],
+ {
+ "help_text": "Incompatible with the bottom detail text.",
+ "label": "Bottom call-to-action: links or buttons",
+ "max_num": 1,
+ "required": False,
+ },
+ ),
+ 95: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with grey background", "required": False}),
+ 96: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without background", "required": False}),
+ 97: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without border", "required": False}),
+ 98: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with a shadow", "required": False}),
+ 99: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 52),
+ ("heading_tag", 27),
+ ("description", 62),
+ ("image", 69),
+ ("image_ratio", 80),
+ ("image_badge", 81),
+ ("link", 82),
+ ("url", 83),
+ ("document", 84),
+ ("top_detail_text", 85),
+ ("top_detail_icon", 86),
+ ("top_detail_badges_tags", 89),
+ ("bottom_detail_text", 90),
+ ("bottom_detail_icon", 91),
+ ("call_to_action", 94),
+ ("grey_background", 95),
+ ("no_background", 96),
+ ("no_border", 97),
+ ("shadow", 98),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Horizontal card"},
+ ),
+ 100: (
+ "wagtail.blocks.RichTextBlock",
+ (),
+ {
+ "features": ["bold", "italic", "superscript", "subscript", "strikethrough"],
+ "label": "Content",
+ "required": False,
+ },
+ ),
+ 101: (
+ "wagtail.images.blocks.ImageChooserBlock",
+ (),
+ {"help_text": "Prefer SVG files.", "label": "Image", "required": False},
+ ),
+ 102: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "If the tile links to a downloadable document, the values are pre-filled.",
+ "label": "Detail text",
+ "required": False,
+ },
+ ),
+ 103: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tile", "required": False}),
+ 104: (
+ "wagtail.blocks.BooleanBlock",
+ (),
+ {"label": "Tile with grey background", "required": False},
+ ),
+ 105: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without background", "required": False}),
+ 106: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without border", "required": False}),
+ 107: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with a shadow", "required": False}),
+ 108: ("wagtail.blocks.BooleanBlock", (), {"label": "Horizontal tile", "required": False}),
+ 109: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 52),
+ ("heading_tag", 27),
+ ("description", 100),
+ ("image", 101),
+ ("link", 82),
+ ("top_detail_badges_tags", 89),
+ ("detail_text", 102),
+ ("is_small", 103),
+ ("grey_background", 104),
+ ("no_background", 105),
+ ("no_border", 106),
+ ("shadow", 107),
+ ("is_horizontal", 108),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Tile"},
+ ),
+ 110: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 2),
+ ("image", 3),
+ ("alt", 4),
+ ("width", 5),
+ ("image_ratio", 6),
+ ("caption", 7),
+ ("url", 8),
+ ]
+ ],
+ {"label": "Image"},
+ ),
+ 111: (
+ "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,
+ },
+ ),
+ 112: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {"label": "Blog", "page_type": ["blog.BlogIndexPage"]},
+ ),
+ 113: (
+ "wagtail.blocks.IntegerBlock",
+ (),
+ {
+ "default": 3,
+ "label": "Number of entries",
+ "max_value": 8,
+ "min_value": 1,
+ "required": False,
+ },
+ ),
+ 114: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Category",),
+ {"label": "Filter by category", "required": False},
+ ),
+ 115: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("content_manager.Tag",),
+ {"label": "Filter by tag", "required": False},
+ ),
+ 116: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Person",),
+ {"label": "Filter by author", "required": False},
+ ),
+ 117: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Organization",),
+ {
+ "help_text": "The source is the organization of the post author",
+ "label": "Filter by source",
+ "required": False,
+ },
+ ),
+ 118: (
+ "wagtail.blocks.BooleanBlock",
+ (),
+ {"default": False, "label": "Show filters", "required": False},
+ ),
+ 119: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 111),
+ ("blog", 112),
+ ("entries_count", 113),
+ ("category_filter", 114),
+ ("tag_filter", 115),
+ ("author_filter", 116),
+ ("source_filter", 117),
+ ("show_filters", 118),
+ ]
+ ],
+ {"group": "Website structure", "label": "Blog recent entries"},
+ ),
+ 120: (
+ "wagtail.blocks.PageChooserBlock",
+ (),
+ {"label": "Event calendar", "page_type": ["events.EventsIndexPage"]},
+ ),
+ 121: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 1),
+ ("heading_tag", 111),
+ ("index_page", 120),
+ ("entries_count", 113),
+ ("category_filter", 114),
+ ("tag_filter", 115),
+ ("author_filter", 116),
+ ("source_filter", 117),
+ ("show_filters", 118),
+ ]
+ ],
+ {"group": "Website structure", "label": "Event calendar recent entries"},
+ ),
+ 122: ("wagtailmarkdown.blocks.MarkdownBlock", (), {"group": "Expert syntax", "label": "Markdown"}),
+ 123: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "Accessibility: The title should describe, in a clear and concise manner, the embedded content.",
+ "label": "Title",
+ },
+ ),
+ 124: (
+ "wagtail.blocks.URLBlock",
+ (),
+ {
+ "help_text": "Example for Tally: https://tally.so/embed/w2jMRa",
+ "label": "URL of the iframe",
+ },
+ ),
+ 125: ("wagtail.blocks.IntegerBlock", (), {"label": "Height (in pixels)"}),
+ 126: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {
+ "help_text": "For example: \"allow='geolocation'\".",
+ "label": "Parameters",
+ "required": False,
+ },
+ ),
+ 127: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 123), ("url", 124), ("height", 125), ("parameters", 126)]],
+ {"group": "Expert syntax", "label": "Iframe"},
+ ),
+ 128: (
+ "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,
+ },
+ ),
+ 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.CharBlock",
+ (),
+ {
+ "help_text": "Incompatible with the bottom call-to-action.",
+ "label": "Bottom detail: text",
+ "required": False,
+ },
+ ),
+ 133: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("title", 52),
+ ("heading_tag", 27),
+ ("description", 62),
+ ("image", 69),
+ ("image_ratio", 6),
+ ("image_badge", 81),
+ ("link", 82),
+ ("url", 83),
+ ("document", 84),
+ ("top_detail_text", 85),
+ ("top_detail_icon", 86),
+ ("top_detail_badges_tags", 89),
+ ("bottom_detail_text", 132),
+ ("bottom_detail_icon", 91),
+ ("call_to_action", 94),
+ ("grey_background", 95),
+ ("no_background", 96),
+ ("no_border", 97),
+ ("shadow", 98),
+ ]
+ ],
+ {"group": "DSFR components", "label": "Vertical card"},
+ ),
+ 134: (
+ "wagtail.snippets.blocks.SnippetChooserBlock",
+ ("blog.Person",),
+ {
+ "help_text": "Optional, all values can be manually specified or overriden below",
+ "label": "Person",
+ "required": False,
+ },
+ ),
+ 135: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255, "required": False}),
+ 136: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255, "required": False}),
+ 137: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"label": "Organization", "max_length": 255, "required": False},
+ ),
+ 138: (
+ "wagtail.blocks.CharBlock",
+ (),
+ {"label": "Contact info", "max_length": 500, "required": False},
+ ),
+ 139: ("wagtail.blocks.StreamBlock", [[("tag", 56)]], {"label": "Tags", "required": False}),
+ 140: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("contact", 134),
+ ("link", 82),
+ ("heading_tag", 2),
+ ("name", 135),
+ ("role", 136),
+ ("organization", 137),
+ ("contact_info", 138),
+ ("image", 69),
+ ("tags", 139),
+ ]
+ ],
+ {"group": "Extra components", "label": "Contact card"},
+ ),
+ 141: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 110),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("link", 58),
+ ("tile", 109),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ("stepper", 79),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("card", 133),
+ ("contact_card", 140),
+ ]
+ ],
+ {"label": "Content"},
+ ),
+ 142: (
+ "wagtail.blocks.StructBlock",
+ [[("title", 52), ("content", 141)]],
+ {"label": "Tab", "max_num": 15, "min_num": 1},
+ ),
+ 143: (
+ "wagtail.blocks.StreamBlock",
+ [[("tabs", 142)]],
+ {"group": "DSFR components", "label": "Tabs"},
+ ),
+ 144: (
+ "wagtail.images.blocks.ImageChooserBlock",
+ (),
+ {"label": "Background image", "required": False},
+ ),
+ 145: (
+ "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,
+ },
+ ),
+ 146: (
+ "wagtail.blocks.RegexBlock",
+ (),
+ {
+ "error_messages": {"invalid": "Incorrect color format, must be #fff or #f5f5f5"},
+ "help_text": "This field is obsolete and will be removed in the near future. Replace it with the background color.",
+ "label": "Background color, hexadecimal format (obsolete)",
+ "regex": "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$",
+ "required": False,
+ },
+ ),
+ 147: (
+ "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,
+ },
+ ),
+ 148: (
+ "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,
+ },
+ ),
+ 149: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 110),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("link", 58),
+ ("tile", 109),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ("stepper", 79),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("card", 133),
+ ("contact_card", 140),
+ ]
+ ],
+ {"label": "Column content"},
+ ),
+ 150: (
+ "wagtail.blocks.StructBlock",
+ [[("width", 148), ("content", 149)]],
+ {"group": "Page structure", "label": "Adjustable column"},
+ ),
+ 151: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 110),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("link", 58),
+ ("tile", 109),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ("stepper", 79),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("card", 133),
+ ("column", 150),
+ ]
+ ],
+ {"label": "Columns"},
+ ),
+ 152: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("bg_image", 144),
+ ("bg_color_class", 145),
+ ("bg_color", 146),
+ ("title", 1),
+ ("heading_tag", 147),
+ ("columns", 151),
+ ]
+ ],
+ {"group": "Page structure", "label": "Multiple columns"},
+ ),
+ 153: (
+ "wagtail.blocks.ChoiceBlock",
+ [],
+ {"choices": [("3", "3/12"), ("4", "4/12"), ("6", "6/12")], "label": "Column width"},
+ ),
+ 154: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 110),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("link", 58),
+ ("tile", 109),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ("stepper", 79),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("card", 133),
+ ("contact_card", 140),
+ ]
+ ],
+ {"label": "Items"},
+ ),
+ 155: (
+ "wagtail.blocks.StructBlock",
+ [[("column_width", 153), ("items", 154)]],
+ {"group": "Page structure", "label": "Item grid"},
+ ),
+ 156: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 110),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("link", 58),
+ ("tile", 109),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ("stepper", 79),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("image_and_text", 23),
+ ("card", 99),
+ ("tabs", 143),
+ ("item_grid", 155),
+ ]
+ ],
+ {"label": "Content"},
+ ),
+ 157: (
+ "wagtail.blocks.StructBlock",
+ [[("bg_image", 144), ("bg_color_class", 145), ("content", 156)]],
+ {"group": "Page structure", "label": "Full width background"},
+ ),
+ 158: (
+ "wagtail.blocks.StreamBlock",
+ [
+ [
+ ("text", 0),
+ ("image", 110),
+ ("imageandtext", 23),
+ ("alert", 28),
+ ("text_cta", 38),
+ ("video", 45),
+ ("transcription", 46),
+ ("badges_list", 51),
+ ("tags_list", 57),
+ ("accordions", 61),
+ ("callout", 65),
+ ("highlight", 68),
+ ("quote", 73),
+ ("link", 58),
+ ("tile", 109),
+ ("blog_recent_entries", 119),
+ ("events_recent_entries", 121),
+ ("stepper", 79),
+ ("markdown", 122),
+ ("iframe", 127),
+ ("html", 128),
+ ("separator", 131),
+ ("image_and_text", 23),
+ ("card", 99),
+ ("tabs", 143),
+ ("item_grid", 155),
+ ]
+ ],
+ {"label": "Main content"},
+ ),
+ 159: ("wagtail.blocks.CharBlock", (), {"label": "Side menu title", "required": False}),
+ 160: (
+ "wagtail.blocks.RawHTMLBlock",
+ (),
+ {
+ "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.",
+ "label": "HTML",
+ },
+ ),
+ 161: ("wagtail.blocks.PageChooserBlock", (), {"label": "Parent page"}),
+ 162: ("wagtail.blocks.StructBlock", [[("page", 161)]], {"label": "Page tree"}),
+ 163: (
+ "wagtail.blocks.StreamBlock",
+ [[("html", 160), ("pagetree", 162)]],
+ {"label": "Side menu content"},
+ ),
+ 164: (
+ "wagtail.blocks.StructBlock",
+ [
+ [
+ ("bg_image", 144),
+ ("bg_color_class", 145),
+ ("main_content", 158),
+ ("sidemenu_title", 159),
+ ("sidemenu_content", 163),
+ ]
+ ],
+ {"group": "Page structure", "label": "Full width background with side menu"},
+ ),
+ 165: (
+ "wagtail.blocks.static_block.StaticBlock",
+ (),
+ {
+ "admin_text": "A simple, alphabetical list of the subpages of the current page.",
+ "group": "Website structure",
+ "label": "Subpages list",
+ "template": "content_manager/blocks/subpages_list.html",
+ },
+ ),
+ },
+ ),
+ ),
+ ]
diff --git a/poetry.lock b/poetry.lock
index 573648c0..3b180e8d 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -128,17 +128,17 @@ webencodings = "*"
[[package]]
name = "boto3"
-version = "1.35.77"
+version = "1.35.79"
description = "The AWS SDK for Python"
optional = false
python-versions = ">=3.8"
files = [
- {file = "boto3-1.35.77-py3-none-any.whl", hash = "sha256:a09871805f8e462349a1c33c23eb413668df0bf68424e61d53518e1a7d883b2f"},
- {file = "boto3-1.35.77.tar.gz", hash = "sha256:cc819cdbccbc2d0dc185f1dcfe74cf3809489c4cae63c2e5d6a557aa0c5ab928"},
+ {file = "boto3-1.35.79-py3-none-any.whl", hash = "sha256:a673b0b6378c9ccbf045a31a43195b175e12aa5c37fb7635fcbfc8f48fb857b3"},
+ {file = "boto3-1.35.79.tar.gz", hash = "sha256:1fa26217cd33ded82e55aed4460cd55f7223fa647916aa0d3c5d6828e6ec7135"},
]
[package.dependencies]
-botocore = ">=1.35.77,<1.36.0"
+botocore = ">=1.35.79,<1.36.0"
jmespath = ">=0.7.1,<2.0.0"
s3transfer = ">=0.10.0,<0.11.0"
@@ -147,13 +147,13 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"]
[[package]]
name = "botocore"
-version = "1.35.77"
+version = "1.35.79"
description = "Low-level, data-driven core of boto 3."
optional = false
python-versions = ">=3.8"
files = [
- {file = "botocore-1.35.77-py3-none-any.whl", hash = "sha256:3faa27d65841499762228902d7e215fa99a4c2fdc76c9113e1c3f339bdf685b8"},
- {file = "botocore-1.35.77.tar.gz", hash = "sha256:17b778016644e9342ca3ff2f430c1d1db0c6126e9b41a57cff52ac58e7a455e0"},
+ {file = "botocore-1.35.79-py3-none-any.whl", hash = "sha256:e6b10bb9a357e3f5ca2e60f6dd15a85d311b9a476eb21b3c0c2a3b364a2897c8"},
+ {file = "botocore-1.35.79.tar.gz", hash = "sha256:245bfdda1b1508539ddd1819c67a8a2cc81780adf0715d3de418d64c4247f346"},
]
[package.dependencies]
@@ -499,13 +499,13 @@ sqlparse = ">=0.2"
[[package]]
name = "django-dsfr"
-version = "1.4.3"
+version = "1.4.4"
description = "Integrate the French government Design System into a Django app"
optional = false
python-versions = "<4.0,>=3.8"
files = [
- {file = "django_dsfr-1.4.3-py3-none-any.whl", hash = "sha256:7f30dc601137dd70ad0ba07b1c1d04009ba71976f82db26a3f1b64ce22c02fdf"},
- {file = "django_dsfr-1.4.3.tar.gz", hash = "sha256:f104b5554e35ab635e921587f854288a5a5382a66f37112bac6a6beeb415a728"},
+ {file = "django_dsfr-1.4.4-py3-none-any.whl", hash = "sha256:b8ba3fd4b72c1a3ac52c82835035f8fbe6f83fd40f17aa2f73bdcee8805f7e3b"},
+ {file = "django_dsfr-1.4.4.tar.gz", hash = "sha256:1b52811c1d71f813afdc36fdf45ed298cadb684d8fcc330ce2343328dfd46317"},
]
[package.dependencies]