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/locale/fr/LC_MESSAGES/django.mo b/blog/locale/fr/LC_MESSAGES/django.mo index c7000ea4..d2310fcd 100644 Binary files a/blog/locale/fr/LC_MESSAGES/django.mo and b/blog/locale/fr/LC_MESSAGES/django.mo differ diff --git a/blog/locale/fr/LC_MESSAGES/django.po b/blog/locale/fr/LC_MESSAGES/django.po index 13d7b4ee..7c79d6a9 100644 --- a/blog/locale/fr/LC_MESSAGES/django.po +++ b/blog/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-11-27 14:45+0100\n" -"PO-Revision-Date: 2024-11-27 14:47+0100\n" +"POT-Creation-Date: 2024-12-10 14:32+0100\n" +"PO-Revision-Date: 2024-12-10 14:33+0100\n" "Last-Translator: \n" "Language-Team: \n" "Language: fr\n" @@ -78,8 +78,8 @@ msgstr "Il est impossible d’avoir des parents circulaires." msgid "Category" msgstr "Catégorie" -#: blog/models.py:167 blog/models.py:279 blog/models.py:460 blog/models.py:467 -#: blog/models.py:518 +#: blog/models.py:167 blog/models.py:279 blog/models.py:461 blog/models.py:468 +#: blog/models.py:519 msgid "Categories" msgstr "Catégories" @@ -119,7 +119,7 @@ msgstr "Afficher les filtres" msgid "Blog index" msgstr "Index de blog" -#: blog/models.py:262 blog/models.py:483 blog/models.py:497 +#: blog/models.py:262 blog/models.py:484 blog/models.py:498 #: blog/templates/blog/tags_list_page.html:20 msgid "Tags" msgstr "Étiquettes" @@ -143,23 +143,23 @@ msgstr "Articles écrits par" msgid "Posts published in %(year)s" msgstr "Articles publiés en %(year)s" -#: blog/models.py:520 +#: blog/models.py:521 msgid "Post date" msgstr "Date de publication" -#: blog/models.py:522 +#: blog/models.py:523 msgid "Author entries can be created in Snippets > Persons" msgstr "Les auteurs peuvent être créés via Fragments > Personnes" -#: blog/models.py:541 +#: blog/models.py:542 msgid "Scheduled publishing" msgstr "Publication planifiée" -#: blog/models.py:549 +#: blog/models.py:550 msgid "Tags and Categories" msgstr "Étiquettes et Catégories" -#: blog/models.py:565 +#: blog/models.py:566 msgid "Blog page" msgstr "Page de blog" 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/blog/models.py b/blog/models.py index 3cca040f..9ce13024 100644 --- a/blog/models.py +++ b/blog/models.py @@ -382,6 +382,7 @@ def list_tags(self, min_count: int = 1) -> list: .order_by("-tag_count") ) + @property def show_filters(self) -> bool | BooleanField: return self.filter_by_category or self.filter_by_tag or self.filter_by_author or self.filter_by_source 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 2b741e94..2e23c5e6 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 9cb6feb7..14f0dd0e 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-05 15:22+0100\n" -"PO-Revision-Date: 2024-12-05 15:23+0100\n" +"POT-Creation-Date: 2024-12-12 12:25+0100\n" +"PO-Revision-Date: 2024-12-19 11:43+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:393 +#: 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:425 +#: content_manager/blocks.py:792 content_manager/models.py:549 msgid "Name" msgstr "Nom" @@ -591,14 +591,16 @@ msgstr "Organisation" msgid "Contact info" msgstr "Informations de contact" -#: content_manager/blocks.py:797 -#: content_manager/templates/content_manager/tags_list_page.html:31 +#: 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." @@ -613,24 +615,29 @@ msgstr "Nombre d’articles" #: content_manager/blocks.py:892 content_manager/blocks.py:922 #: content_manager/templates/content_manager/blocks/blog_recent_entries.html:11 #: content_manager/templates/content_manager/blocks/events_recent_entries.html:11 +#: content_manager/templates/content_manager/catalog_index_page.html:77 msgid "Filter by category" msgstr "Filtrer par catégorie" #: content_manager/blocks.py:893 content_manager/blocks.py:923 +#: 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 msgid "Filter by tag" msgstr "Filtrer par étiquette" #: content_manager/blocks.py:894 content_manager/blocks.py:924 #: content_manager/templates/content_manager/blocks/blog_recent_entries.html:45 #: content_manager/templates/content_manager/blocks/events_recent_entries.html:45 +#: content_manager/templates/content_manager/catalog_index_page.html:111 msgid "Filter by author" msgstr "Filtrer par auteur" #: content_manager/blocks.py:897 content_manager/blocks.py:927 #: content_manager/templates/content_manager/blocks/blog_recent_entries.html:60 #: content_manager/templates/content_manager/blocks/events_recent_entries.html:60 +#: content_manager/templates/content_manager/catalog_index_page.html:126 msgid "Filter by source" msgstr "Filtrer par source" @@ -640,6 +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:64 msgid "Show filters" msgstr "Afficher les filtres" @@ -647,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." @@ -770,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." @@ -806,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." @@ -951,43 +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:27 +#: content_manager/models.py:33 msgid "Content page" msgstr "Page de contenu" -#: content_manager/models.py:48 +#: content_manager/models.py:52 +msgid "Entries per page" +msgstr "Entrées par page" + +#: content_manager/models.py:71 +msgid "Catalog index page" +msgstr "Index de catalogue" + +#: content_manager/models.py:99 +#, python-format +msgid "Pages tagged with %(tag)s" +msgstr "Pages avec l’étiquette %(tag)s" + +#: content_manager/models.py:172 msgid "Tag" msgstr "Étiquette" -#: content_manager/models.py:70 content_manager/models.py:105 +#: content_manager/models.py:194 content_manager/models.py:229 msgid "Custom scripts" msgstr "Scripts personnalisés" -#: content_manager/models.py:75 +#: content_manager/models.py:199 msgid "Scripts in the section" msgstr "Scripts dans la section " -#: content_manager/models.py:76 +#: 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:82 +#: content_manager/models.py:206 msgid "Scripts in the section" msgstr "Scripts dans la section " -#: content_manager/models.py:83 +#: 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:87 +#: content_manager/models.py:211 msgid "Use Tarteaucitron?" msgstr "Utiliser Tarteaucitron ?" -#: content_manager/models.py:91 +#: content_manager/models.py:215 msgid "" "See Documentation" @@ -995,7 +1017,7 @@ msgstr "" "Voir Documentation" -#: content_manager/models.py:106 +#: content_manager/models.py:230 msgid "" "Allows to add custom CSS and JS to the site, for example for Matomo, " "Tarteaucitron…" @@ -1003,19 +1025,19 @@ msgstr "" "Permet d’ajouter du CSS et du JS personnalisé au site, par exemple pour " "Matomo, Tarteaucitron…" -#: content_manager/models.py:114 +#: content_manager/models.py:238 msgid "Site configuration" msgstr "Configuration du site" -#: content_manager/models.py:115 +#: content_manager/models.py:239 msgid "Site configurations" msgstr "Configurations du site" -#: content_manager/models.py:118 +#: content_manager/models.py:242 msgid "Institution (header)" msgstr "Institution (en-tête)" -#: content_manager/models.py:123 +#: content_manager/models.py:247 msgid "" "Institution brand as defined on official page." @@ -1023,47 +1045,47 @@ msgstr "" "Nom de l’institution tel que défini sur la page officielle." -#: content_manager/models.py:129 +#: content_manager/models.py:253 msgid "Institution with line break (header)" msgstr "Institution avec césure (en-tête)" -#: content_manager/models.py:133 +#: 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:136 +#: content_manager/models.py:260 msgid "Institution (footer)" msgstr "Institution (pied)" -#: content_manager/models.py:143 +#: content_manager/models.py:267 msgid "Institution with line break (footer)" msgstr "Institution avec césure (pied)" -#: content_manager/models.py:150 content_manager/models.py:152 +#: content_manager/models.py:274 content_manager/models.py:276 msgid "Site title" msgstr "Titre du site" -#: content_manager/models.py:156 content_manager/models.py:158 +#: content_manager/models.py:280 content_manager/models.py:282 msgid "Site tagline" msgstr "Sous-titre du site" -#: content_manager/models.py:163 +#: content_manager/models.py:287 msgid "Notice title" msgstr "Titre du bandeau" -#: content_manager/models.py:167 content_manager/models.py:174 +#: content_manager/models.py:291 content_manager/models.py:298 msgid "Can include HTML" msgstr "Peut inclure du HTML" -#: content_manager/models.py:171 +#: content_manager/models.py:295 msgid "Notice description" msgstr "Description du bandeau" -#: content_manager/models.py:177 +#: content_manager/models.py:301 msgid "Notice type" msgstr "Type de bandeau" -#: content_manager/models.py:184 +#: content_manager/models.py:308 msgid "" "Use is strictly regulated, see documentation." -#: content_manager/models.py:191 +#: content_manager/models.py:315 msgid "Notice link" msgstr "Lien du bandeau" -#: content_manager/models.py:194 +#: 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:198 +#: content_manager/models.py:322 msgid "Notice icon class" msgstr "Classe d’icône du bandeau" -#: content_manager/models.py:202 +#: content_manager/models.py:326 msgid "For weather alerts only" msgstr "Pour les bandeaux de vigilance météo uniquement" -#: content_manager/models.py:205 +#: content_manager/models.py:329 msgid "Collapsible?" msgstr "Refermable ?" -#: content_manager/models.py:207 +#: 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:210 content_manager/models.py:429 +#: content_manager/models.py:334 content_manager/models.py:553 msgid "Description" msgstr "Description" -#: content_manager/models.py:223 content_manager/models.py:299 +#: content_manager/models.py:347 content_manager/models.py:423 msgid "Operator logo" msgstr "Logo opérateur" -#: content_manager/models.py:227 +#: content_manager/models.py:351 msgid "Logo alt text" msgstr "Alternative textuelle du logo" -#: content_manager/models.py:230 +#: 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:233 +#: content_manager/models.py:357 msgid "Width (em)" msgstr "Largeur (em)" -#: content_manager/models.py:239 +#: 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." @@ -1125,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:244 +#: 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:245 +#: content_manager/models.py:369 msgid "Display theme modale button" msgstr "Afficher le bouton de choix du thème" -#: content_manager/models.py:246 +#: content_manager/models.py:370 msgid "Mourning" msgstr "Mise en berne" -#: content_manager/models.py:248 +#: content_manager/models.py:372 msgid "Newsletter description" msgstr "Description de la lettre d’information" -#: content_manager/models.py:251 +#: content_manager/models.py:375 msgid "Newsletter registration URL" msgstr "URL d‘inscription à la lettre d’information" -#: content_manager/models.py:256 +#: 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:257 +#: 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:258 +#: 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:261 +#: 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:264 +#: 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:267 +#: 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:269 +#: 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:271 +#: 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:287 +#: content_manager/models.py:411 msgid "Important notice" msgstr "Bandeau d’information importante" -#: content_manager/models.py:289 +#: 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” " @@ -1192,83 +1214,83 @@ msgstr "" "information primordiale et temporaire. (Une utilisation excessive ou " "continue risque de “noyer” le message)" -#: content_manager/models.py:308 +#: content_manager/models.py:432 msgid "Advanced settings" msgstr "Paramètres avancés" -#: content_manager/models.py:318 +#: content_manager/models.py:442 msgid "Header" msgstr "En-tête" -#: content_manager/models.py:325 +#: content_manager/models.py:449 msgid "Footer" msgstr "Pied de page" -#: content_manager/models.py:335 +#: content_manager/models.py:459 msgid "Newsletter" msgstr "Lettre d’information" -#: content_manager/models.py:337 content_manager/models.py:410 +#: content_manager/models.py:461 content_manager/models.py:534 msgid "Social media items" msgstr "Liens de réseaux sociaux" -#: content_manager/models.py:344 +#: 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:354 +#: content_manager/models.py:478 msgid "Types of share links" msgstr "Types de liens de partage" -#: content_manager/models.py:359 +#: content_manager/models.py:483 msgid "Generic" msgstr "Génériques" -#: content_manager/models.py:360 +#: content_manager/models.py:484 msgid "Brand block" msgstr "Bloc-marque" -#: content_manager/models.py:361 +#: 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:396 +#: content_manager/models.py:520 msgid "URL" msgstr "URL" -#: content_manager/models.py:400 +#: content_manager/models.py:524 msgid "Icon class" msgstr "Classe d’icône" -#: content_manager/models.py:409 +#: content_manager/models.py:533 msgid "Social media item" msgstr "Lien de réseau social" -#: content_manager/models.py:416 +#: content_manager/models.py:540 msgid "Category" msgstr "Catégorie" -#: content_manager/models.py:419 +#: content_manager/models.py:543 msgid "Mega menu category" msgstr "Catégorie de méga menu" -#: content_manager/models.py:420 +#: content_manager/models.py:544 msgid "Mega menu categories" msgstr "Catégories de méga menu" -#: content_manager/models.py:430 +#: content_manager/models.py:554 msgid "Main link" msgstr "Lien principal" -#: content_manager/models.py:440 +#: content_manager/models.py:564 msgid "Categories" msgstr "Catégories" -#: content_manager/models.py:441 +#: 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:452 +#: content_manager/models.py:576 msgid "Mega menu" msgstr "Méga menu" @@ -1289,6 +1311,10 @@ msgstr "Voir tous les articles" msgid "Opens a new window" msgstr "Ouvre une nouvelle fenêtre" +#: content_manager/templates/content_manager/blocks/catalog_index_entries_list.html:37 +msgid "No page found." +msgstr "Aucune page trouvée." + #: content_manager/templates/content_manager/blocks/download_info.html:5 msgid "Unknown file format" msgstr "Format de fichier inconnu" @@ -1325,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 %(total_steps)s" + #: content_manager/templates/content_manager/blocks/tabs.html:3 msgid "Tabs group" msgstr "Groupe d’onglets" @@ -1333,6 +1364,11 @@ msgstr "Groupe d’onglets" msgid "Watch on the site" msgstr "Voir sur le site" +#: content_manager/templates/content_manager/catalog_index_page.html:72 +#: content_manager/templates/content_manager/catalog_index_page.html:74 +msgid "Filters" +msgstr "Filtres" + #: content_manager/templates/content_manager/password_required.html:5 #: content_manager/templates/content_manager/password_required.html:15 msgid "Password required" diff --git a/content_manager/management/commands/create_demo_pages.py b/content_manager/management/commands/create_demo_pages.py index c84923bd..d8dd3e96 100644 --- a/content_manager/management/commands/create_demo_pages.py +++ b/content_manager/management/commands/create_demo_pages.py @@ -8,7 +8,7 @@ from blog.models import BlogIndexPage from content_manager.models import ContentPage, MegaMenu, MegaMenuCategory -from content_manager.services.accessors import get_or_create_content_page +from content_manager.services.accessors import get_or_create_catalog_index_page, get_or_create_content_page from forms.models import FormField, FormPage ALL_ALLOWED_SLUGS = ["blog_index", "publications", "menu_page", "form"] @@ -111,7 +111,7 @@ def create_publication_pages(self, site, main_menu): text_raw = """

Veuillez trouver ici une liste de publications

""" body.append(("paragraph", RichText(text_raw))) - publications_page = get_or_create_content_page(slug=slug, title=title, body=body) + publications_page = get_or_create_catalog_index_page(slug=slug, title=title, body=body) publications_menu_item, _created = MainMenuItem.objects.update_or_create( link_page=publications_page, menu=main_menu, defaults={"sort_order": 2} ) diff --git a/content_manager/migrations/0050_catalogindexpage.py b/content_manager/migrations/0050_catalogindexpage.py new file mode 100644 index 00000000..eb39bbda --- /dev/null +++ b/content_manager/migrations/0050_catalogindexpage.py @@ -0,0 +1,1668 @@ +# Generated by Django 5.1.3 on 2024-12-10 10:07 + +import django.core.validators +import django.db.models.deletion +import wagtail.fields +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ("content_manager", "0049_alter_contentpage_body"), + ("wagtailcore", "0094_alter_page_locale"), + ("wagtailimages", "0027_image_description"), + ] + + operations = [ + migrations.CreateModel( + name="CatalogIndexPage", + fields=[ + ( + "page_ptr", + models.OneToOneField( + auto_created=True, + on_delete=django.db.models.deletion.CASCADE, + parent_link=True, + primary_key=True, + serialize=False, + to="wagtailcore.page", + ), + ), + ( + "body", + wagtail.fields.StreamField( + [ + ("paragraph", 0), + ("image", 9), + ("imageandtext", 22), + ("alert", 27), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("video", 53), + ("transcription", 54), + ("badges_list", 59), + ("tags_list", 64), + ("link", 65), + ("stepper", 71), + ("card", 93), + ("tile", 103), + ("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.CharBlock", (), {"label": "Title"}), + 29: ("wagtail.blocks.RichTextBlock", (), {"label": "Content"}), + 30: ( + "wagtail.blocks.StructBlock", + [[("title", 28), ("content", 29)]], + {"label": "Accordion", "max_num": 15, "min_num": 1}, + ), + 31: ( + "wagtail.blocks.StreamBlock", + [[("title", 28), ("accordion", 30)]], + {"group": "DSFR components", "label": "Accordions"}, + ), + 32: ("content_manager.blocks.IconPickerBlock", (), {"label": "Icon", "required": False}), + 33: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + ], + "label": "Content", + "required": False, + }, + ), + 34: ( + "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, + }, + ), + 35: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")], + "label": "Icon side", + "required": False, + }, + ), + 36: ( + "wagtail.blocks.StructBlock", + [ + [ + ("page", 12), + ("document", 13), + ("external_url", 14), + ("text", 15), + ("button_type", 34), + ("icon_class", 32), + ("icon_side", 35), + ] + ], + {"label": "Button", "required": False}, + ), + 37: ( + "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, + }, + ), + 38: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 26), + ("icon_class", 32), + ("text", 33), + ("button", 36), + ("color", 37), + ] + ], + {"group": "DSFR components", "label": "Callout"}, + ), + 39: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + ], + "label": "Content", + }, + ), + 40: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-text--sm", "Small"), ("", "Medium"), ("fr-text--lg", "Large")], + "label": "Size", + "required": False, + }, + ), + 41: ( + "wagtail.blocks.StructBlock", + [[("text", 39), ("color", 37), ("size", 40)]], + {"group": "DSFR components", "label": "Highlight"}, + ), + 42: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image", "required": False}), + 43: ("wagtail.blocks.CharBlock", (), {"label": "Quote"}), + 44: ("wagtail.blocks.CharBlock", (), {"label": "Author name", "required": False}), + 45: ("wagtail.blocks.CharBlock", (), {"label": "Author title", "required": False}), + 46: ( + "wagtail.blocks.StructBlock", + [ + [ + ("image", 42), + ("quote", 43), + ("author_name", 44), + ("author_title", 45), + ("color", 37), + ] + ], + {"group": "DSFR components", "label": "Quote"}, + ), + 47: ("wagtail.blocks.CharBlock", (), {"label": "Video title", "required": False}), + 48: ( + "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", + }, + ), + 49: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-ratio-16x9", "16x9"), + ("fr-ratio-4x3", "4x3"), + ("fr-ratio-1x1", "1x1"), + ], + "label": "Video ratio", + "required": False, + }, + ), + 50: ( + "wagtail.blocks.CharBlock", + (), + {"default": "Transcription", "label": "Title", "required": False}, + ), + 51: ( + "wagtail.blocks.RichTextBlock", + (), + {"label": "Transcription content", "required": False}, + ), + 52: ( + "wagtail.blocks.StructBlock", + [[("title", 50), ("content", 51)]], + {"label": "Transcription", "required": False}, + ), + 53: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 47), + ("caption", 7), + ("url", 48), + ("width", 5), + ("video_ratio", 49), + ("transcription", 52), + ] + ], + {"label": "Video"}, + ), + 54: ( + "wagtail.blocks.StructBlock", + [[("title", 50), ("content", 51)]], + {"label": "Transcription"}, + ), + 55: ("wagtail.blocks.CharBlock", (), {"label": "Badge label", "required": False}), + 56: ( + "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, + }, + ), + 57: ("wagtail.blocks.BooleanBlock", (), {"label": "Hide badge icon", "required": False}), + 58: ( + "wagtail.blocks.StructBlock", + [[("text", 55), ("color", 56), ("hide_icon", 57)]], + {"label": "Badge"}, + ), + 59: ("wagtail.blocks.StreamBlock", [[("badge", 58)]], {"label": "Badge list"}), + 60: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tag", "required": False}), + 61: ( + "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, + }, + ), + 62: ( + "wagtail.blocks.StructBlock", + [[("page", 12), ("document", 13), ("external_url", 14)]], + {"required": False}, + ), + 63: ( + "wagtail.blocks.StructBlock", + [[("label", 28), ("is_small", 60), ("color", 61), ("icon_class", 32), ("link", 62)]], + {"label": "Tag"}, + ), + 64: ("wagtail.blocks.StreamBlock", [[("tag", 63)]], {"label": "Tag list"}), + 65: ( + "wagtail.blocks.StructBlock", + [ + [ + ("page", 12), + ("document", 13), + ("external_url", 14), + ("text", 15), + ("icon", 16), + ("size", 17), + ] + ], + {"label": "Single link"}, + ), + 66: ( + "wagtail.blocks.IntegerBlock", + (), + {"label": "Number of steps", "max_value": 8, "min_value": 1}, + ), + 67: ( + "wagtail.blocks.IntegerBlock", + (), + {"label": "Current step", "max_value": 8, "min_value": 1}, + ), + 68: ("wagtail.blocks.TextBlock", (), {"label": "Detail"}), + 69: ("wagtail.blocks.StructBlock", [[("title", 28), ("detail", 68)]], {"label": "Step"}), + 70: ("wagtail.blocks.StreamBlock", [[("step", 69)]], {"label": "Steps"}), + 71: ( + "wagtail.blocks.StructBlock", + [[("title", 28), ("total", 66), ("current", 67), ("steps", 70)]], + {"group": "DSFR components", "label": "Stepper"}, + ), + 72: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-card--horizontal-tier", "1/3"), + ("fr-card--horizontal-half", "50/50"), + ], + "label": "Image ratio", + "required": False, + }, + ), + 73: ( + "wagtail.blocks.StreamBlock", + [[("badge", 58)]], + { + "help_text": "Only used if the card has an image.", + "label": "Image area badge", + "max_num": 1, + "required": False, + }, + ), + 74: ( + "wagtail.blocks.StructBlock", + [[("page", 12), ("document", 13), ("external_url", 14)]], + {"label": "Link", "required": False}, + ), + 75: ( + "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, + }, + ), + 76: ( + "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, + }, + ), + 77: ("wagtail.blocks.CharBlock", (), {"label": "Top detail: text", "required": False}), + 78: ( + "content_manager.blocks.IconPickerBlock", + (), + {"label": "Top detail: icon", "required": False}, + ), + 79: ("wagtail.blocks.StreamBlock", [[("badge", 58)]], {}), + 80: ("wagtail.blocks.StreamBlock", [[("tag", 63)]], {}), + 81: ( + "wagtail.blocks.StreamBlock", + [[("badges", 79), ("tags", 80)]], + {"label": "Top detail: badges or tags", "max_num": 1, "required": False}, + ), + 82: ( + "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, + }, + ), + 83: ( + "content_manager.blocks.IconPickerBlock", + (), + {"label": "Bottom detail: icon", "required": False}, + ), + 84: ( + "wagtail.blocks.StructBlock", + [[("page", 12), ("document", 13), ("external_url", 14), ("text", 15)]], + {"label": "Link"}, + ), + 85: ("wagtail.blocks.StreamBlock", [[("link", 84)]], {}), + 86: ( + "wagtail.blocks.StructBlock", + [ + [ + ("page", 12), + ("document", 13), + ("external_url", 14), + ("text", 15), + ("button_type", 34), + ("icon_class", 32), + ("icon_side", 35), + ] + ], + {"label": "Button"}, + ), + 87: ( + "wagtail.blocks.StreamBlock", + [[("button", 86)]], + { + "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", + }, + ), + 88: ( + "wagtail.blocks.StreamBlock", + [[("links", 85), ("buttons", 87)]], + { + "help_text": "Incompatible with the bottom detail text.", + "label": "Bottom call-to-action: links or buttons", + "max_num": 1, + "required": False, + }, + ), + 89: ( + "wagtail.blocks.BooleanBlock", + (), + {"label": "Card with grey background", "required": False}, + ), + 90: ( + "wagtail.blocks.BooleanBlock", + (), + {"label": "Card without background", "required": False}, + ), + 91: ( + "wagtail.blocks.BooleanBlock", + (), + {"label": "Card without border", "required": False}, + ), + 92: ( + "wagtail.blocks.BooleanBlock", + (), + {"label": "Card with a shadow", "required": False}, + ), + 93: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 28), + ("heading_tag", 26), + ("description", 33), + ("image", 42), + ("image_ratio", 72), + ("image_badge", 73), + ("link", 74), + ("url", 75), + ("document", 76), + ("top_detail_text", 77), + ("top_detail_icon", 78), + ("top_detail_badges_tags", 81), + ("bottom_detail_text", 82), + ("bottom_detail_icon", 83), + ("call_to_action", 88), + ("grey_background", 89), + ("no_background", 90), + ("no_border", 91), + ("shadow", 92), + ] + ], + {"group": "DSFR components", "label": "Horizontal card"}, + ), + 94: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": ["bold", "italic", "superscript", "subscript", "strikethrough"], + "label": "Content", + "required": False, + }, + ), + 95: ( + "wagtail.images.blocks.ImageChooserBlock", + (), + {"help_text": "Prefer SVG files.", "label": "Image", "required": False}, + ), + 96: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "If the tile links to a downloadable document, the values are pre-filled.", + "label": "Detail text", + "required": False, + }, + ), + 97: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tile", "required": False}), + 98: ( + "wagtail.blocks.BooleanBlock", + (), + {"label": "Tile with grey background", "required": False}, + ), + 99: ( + "wagtail.blocks.BooleanBlock", + (), + {"label": "Tile without background", "required": False}, + ), + 100: ( + "wagtail.blocks.BooleanBlock", + (), + {"label": "Tile without border", "required": False}, + ), + 101: ( + "wagtail.blocks.BooleanBlock", + (), + {"label": "Tile with a shadow", "required": False}, + ), + 102: ("wagtail.blocks.BooleanBlock", (), {"label": "Horizontal tile", "required": False}), + 103: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 28), + ("heading_tag", 26), + ("description", 94), + ("image", 95), + ("link", 74), + ("top_detail_badges_tags", 81), + ("detail_text", 96), + ("is_small", 97), + ("grey_background", 98), + ("no_background", 99), + ("no_border", 100), + ("shadow", 101), + ("is_horizontal", 102), + ] + ], + {"group": "DSFR components", "label": "Tile"}, + ), + 104: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 2), + ("image", 3), + ("alt", 4), + ("width", 5), + ("image_ratio", 6), + ("caption", 7), + ("url", 8), + ] + ], + {"label": "Image"}, + ), + 105: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text", "required": False}), + 106: ( + "wagtail.blocks.StreamBlock", + [[("buttons", 87)]], + {"label": "Call-to-action buttons", "max_num": 1, "required": False}, + ), + 107: ( + "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, + }, + ), + 108: ( + "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, + }, + ), + 109: ( + "wagtail.blocks.StructBlock", + [[("text", 105), ("cta_buttons", 106), ("cta_label", 107), ("cta_url", 108)]], + {"label": "Text and call to action"}, + ), + 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", 28), + ("heading_tag", 26), + ("description", 33), + ("image", 42), + ("image_ratio", 6), + ("image_badge", 73), + ("link", 74), + ("url", 75), + ("document", 76), + ("top_detail_text", 77), + ("top_detail_icon", 78), + ("top_detail_badges_tags", 81), + ("bottom_detail_text", 126), + ("bottom_detail_icon", 83), + ("call_to_action", 88), + ("grey_background", 89), + ("no_background", 90), + ("no_border", 91), + ("shadow", 92), + ] + ], + {"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", 63)]], {"label": "Tags", "required": False}), + 134: ( + "wagtail.blocks.StructBlock", + [ + [ + ("contact", 128), + ("link", 74), + ("heading_tag", 2), + ("name", 129), + ("role", 130), + ("organization", 131), + ("contact_info", 132), + ("image", 42), + ("tags", 133), + ] + ], + {"group": "Extra components", "label": "Contact card"}, + ), + 135: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 104), + ("video", 53), + ("transcription", 54), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("stepper", 71), + ("text_cta", 109), + ("link", 65), + ("iframe", 114), + ("tile", 103), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("card", 127), + ("contact_card", 134), + ] + ], + {"label": "Content"}, + ), + 136: ( + "wagtail.blocks.StructBlock", + [[("title", 28), ("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", 104), + ("video", 53), + ("transcription", 54), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("stepper", 71), + ("text_cta", 109), + ("link", 65), + ("iframe", 114), + ("tile", 103), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("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", 104), + ("video", 53), + ("transcription", 54), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("stepper", 71), + ("text_cta", 109), + ("link", 65), + ("iframe", 114), + ("tile", 103), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("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", 104), + ("video", 53), + ("transcription", 54), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("stepper", 71), + ("text_cta", 109), + ("link", 65), + ("iframe", 114), + ("tile", 103), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("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", 104), + ("video", 53), + ("transcription", 54), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("stepper", 71), + ("text_cta", 109), + ("link", 65), + ("iframe", 114), + ("tile", 103), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("image_and_text", 22), + ("card", 93), + ("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", 104), + ("video", 53), + ("transcription", 54), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("stepper", 71), + ("text_cta", 109), + ("link", 65), + ("iframe", 114), + ("tile", 103), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("image_and_text", 22), + ("card", 93), + ("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, + }, + ), + }, + ), + ), + ("header_with_title", models.BooleanField(default=False, verbose_name="Show title in header image?")), + ( + "header_color_class", + models.CharField( + blank=True, + 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", + null=True, + verbose_name="Background color", + ), + ), + ("header_large", models.BooleanField(default=False, verbose_name="Full width")), + ("header_darken", models.BooleanField(default=False, verbose_name="Darken background image")), + ( + "header_cta_text", + wagtail.fields.RichTextField(blank=True, null=True, verbose_name="Call to action text"), + ), + ( + "header_cta_buttons", + wagtail.fields.StreamField( + [("buttons", 8)], + blank=True, + block_lookup={ + 0: ( + "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, + }, + ), + 1: ( + "wagtail.documents.blocks.DocumentChooserBlock", + (), + { + "help_text": "Use either this, the external URL or the page parameter.", + "label": "Document", + "required": False, + }, + ), + 2: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Use either this, the document or the page parameter.", + "label": "External URL", + "required": False, + }, + ), + 3: ("wagtail.blocks.CharBlock", (), {"label": "Link label", "required": False}), + 4: ( + "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, + }, + ), + 5: ("content_manager.blocks.IconPickerBlock", (), {"label": "Icon", "required": False}), + 6: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")], + "label": "Icon side", + "required": False, + }, + ), + 7: ( + "wagtail.blocks.StructBlock", + [ + [ + ("page", 0), + ("document", 1), + ("external_url", 2), + ("text", 3), + ("button_type", 4), + ("icon_class", 5), + ("icon_side", 6), + ] + ], + {"label": "Button"}, + ), + 8: ( + "wagtail.blocks.StreamBlock", + [[("button", 7)]], + { + "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", + }, + ), + }, + null=True, + ), + ), + ( + "header_cta_label", + models.CharField( + blank=True, + help_text="This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.", + null=True, + verbose_name="Call to action label", + ), + ), + ( + "header_cta_link", + models.URLField( + blank=True, + help_text="This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.", + null=True, + verbose_name="Call to action link", + ), + ), + ( + "source_url", + models.URLField( + blank=True, + help_text="For imported pages, to allow updates.", + null=True, + verbose_name="Source URL", + ), + ), + ( + "entries_per_page", + models.PositiveSmallIntegerField( + default=10, + validators=[ + django.core.validators.MaxValueValidator(100), + django.core.validators.MinValueValidator(1), + ], + verbose_name="Entries per page", + ), + ), + ("filter_by_tag", models.BooleanField(default=True, verbose_name="Filter by tag")), + ( + "header_image", + models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + related_name="+", + to="wagtailimages.image", + verbose_name="Header image", + ), + ), + ], + options={ + "verbose_name": "Catalog index page", + }, + bases=("wagtailcore.page",), + ), + ] 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/models.py b/content_manager/models.py index 29ada499..d72f36cc 100644 --- a/content_manager/models.py +++ b/content_manager/models.py @@ -1,13 +1,19 @@ +from django.core.paginator import EmptyPage, PageNotAnInteger, Paginator +from django.core.validators import MaxValueValidator, MinValueValidator from django.db import models from django.forms.widgets import Textarea, mark_safe +from django.http import HttpRequest, HttpResponse +from django.shortcuts import get_object_or_404 from django.utils.translation import gettext_lazy as _ from dsfr.constants import NOTICE_TYPE_CHOICES from modelcluster.fields import ParentalKey from modelcluster.models import ClusterableModel from modelcluster.tags import ClusterTaggableManager from taggit.models import Tag as TaggitTag, TaggedItemBase +from unidecode import unidecode from wagtail.admin.panels import FieldPanel, InlinePanel, MultiFieldPanel, ObjectList, TabbedInterface from wagtail.api import APIField +from wagtail.contrib.routable_page.models import RoutablePageMixin, path from wagtail.contrib.settings.models import BaseSiteSetting, register_setting from wagtail.fields import RichTextField from wagtail.images import get_image_model_string @@ -39,6 +45,124 @@ class TagContentPage(TaggedItemBase): content_object = ParentalKey("ContentPage", related_name="contentpage_tags") +class CatalogIndexPage(RoutablePageMixin, SitesFacilesBasePage): + entries_per_page = models.PositiveSmallIntegerField( + default=10, + validators=[MaxValueValidator(100), MinValueValidator(1)], + verbose_name=_("Entries per page"), + ) + + # Filters + filter_by_tag = models.BooleanField(_("Filter by tag"), default=True) + + settings_panels = SitesFacilesBasePage.settings_panels + [ + FieldPanel("entries_per_page"), + MultiFieldPanel( + [ + FieldPanel("filter_by_tag"), + ], + heading=_("Show filters"), + ), + ] + + subpage_types = ["content_manager.ContentPage"] + + class Meta: + verbose_name = _("Catalog index page") + + @property + def entries(self): + # Get a list of live content pages that are children of this page + return ContentPage.objects.child_of(self).live().specific().prefetch_related("tags") + + def get_context(self, request, *args, **kwargs): + context = super(CatalogIndexPage, self).get_context(request, *args, **kwargs) + entries = self.entries + + extra_breadcrumbs = None + extra_title = "" + + tag = request.GET.get("tag") + if tag: + tag = get_object_or_404(Tag, slug=tag) + entries = entries.filter(tags=tag) + extra_breadcrumbs = { + "links": [ + {"url": self.get_url(), "title": self.title}, + { + "url": f"{self.get_url()}{self.reverse_subpage('tags_list')}", + "title": _("Tags"), + }, + ], + "current": tag, + } + extra_title = _("Pages tagged with %(tag)s") % {"tag": tag} + + # Pagination + page = request.GET.get("page") + page_size = self.entries_per_page + + paginator = Paginator(entries, page_size) # Show entries per page + try: + entries = paginator.page(page) + except PageNotAnInteger: + entries = paginator.page(1) + except EmptyPage: + entries = paginator.page(paginator.num_pages) + + context["entries"] = entries + context["current_tag"] = tag + context["paginator"] = paginator + context["extra_title"] = extra_title + + # Filters + context["tags"] = self.get_tags() + + if extra_breadcrumbs: + context["extra_breadcrumbs"] = extra_breadcrumbs + + return context + + def get_tags(self) -> models.QuerySet: + ids = self.entries.values_list("tags", flat=True) + return Tag.objects.tags_with_usecount(1).filter(id__in=ids).order_by("name") + + @property + def show_filters(self) -> bool | models.BooleanField: + return self.filter_by_tag and self.get_tags().count() > 0 + + @path("tags/", name="tags_list") + def tags_list(self, request: HttpRequest, *args, **kwargs) -> HttpResponse: + extra_title = _("Tags") + tags = self.get_tags() + + tags_by_first_letter = {} + for tag in tags: + first_letter = unidecode(tag.slug[0].upper()) + if first_letter not in tags_by_first_letter: + tags_by_first_letter[first_letter] = [] + tags_by_first_letter[first_letter].append(tag) + + extra_breadcrumbs = { + "links": [ + {"url": self.get_url(), "title": self.title}, + ], + "current": _("Tags"), + } + + return self.render( + request, + context_overrides={ + "title": _("Tags"), + "sorted_tags": tags_by_first_letter, + "page": self, + "extra_title": extra_title, + "extra_breadcrumbs": extra_breadcrumbs, + }, + template="content_manager/tags_list_page.html", + ) + + @register_snippet class Tag(TaggitTag): objects = TagManager() diff --git a/content_manager/services/accessors.py b/content_manager/services/accessors.py index 290acb21..286bec67 100644 --- a/content_manager/services/accessors.py +++ b/content_manager/services/accessors.py @@ -6,7 +6,7 @@ from wagtailmenus.models.menus import FlatMenu, MainMenu from content_manager.constants import HEADER_FIELDS -from content_manager.models import ContentPage +from content_manager.models import CatalogIndexPage, ContentPage style = color_style() @@ -26,25 +26,78 @@ def get_or_create_collection(col_name: str) -> Collection: return result -def get_or_create_content_page( +def get_or_create_catalog_index_page( slug: str, title: str, body: list, parent_page: ContentPage | None = None, restriction_type: str | None = None, page_fields: dict | None = None, +) -> CatalogIndexPage: + """ + Get a CatalogIndexPage if it exists, or creates it instead. + """ + + site = Site.objects.filter(is_default_site=True).first() + root_page = site.root_page + locale = root_page.locale + + # If parent_page is not passed as parameter, use the Home page of the default site. + if not parent_page: + parent_page = root_page + + # Don't replace or duplicate an already existing page + already_exists = CatalogIndexPage.objects.filter(slug=slug, locale=locale).first() + if already_exists: + sys.stdout.write(f"The {slug} page seem to already exist with id {already_exists.id}\n") + return already_exists + + new_page = parent_page.add_child( + instance=CatalogIndexPage( + title=title, + body=body, + slug=slug, + show_in_menus=True, + ) + ) + + allowed_page_fields = HEADER_FIELDS + ["source_url"] + if page_fields and len(page_fields): + for k, v in page_fields.items(): + if k in allowed_page_fields: + setattr(new_page, k, v) + new_page.save() + + if restriction_type: + PageViewRestriction.objects.create(page=new_page, restriction_type=restriction_type) + + sys.stdout.write(style.SUCCESS(f"Page {slug} created with id {new_page.id}")) + + return new_page + + +def get_or_create_content_page( + slug: str, + title: str, + body: list, + parent_page: ContentPage | CatalogIndexPage | None = None, + restriction_type: str | None = None, + page_fields: dict | None = None, ) -> ContentPage: """ - Get a ContentPage, or creates it if it exists. + Get a ContentPage if it exists, or creates it instead. """ + site = Site.objects.filter(is_default_site=True).first() + root_page = site.root_page + locale = root_page.locale + # If parent_page is not passed as parameter, use the Home page of the default site. if not parent_page: - site = Site.objects.filter(is_default_site=True).first() - parent_page = site.root_page + parent_page = root_page # Don't replace or duplicate an already existing page - already_exists = ContentPage.objects.filter(slug=slug).first() + already_exists = ContentPage.objects.filter(slug=slug, locale=locale).first() if already_exists: sys.stdout.write(f"The {slug} page seem to already exist with id {already_exists.id}\n") return already_exists diff --git a/content_manager/templates/content_manager/blocks/catalog_index_entries_list.html b/content_manager/templates/content_manager/blocks/catalog_index_entries_list.html new file mode 100644 index 00000000..395f5b92 --- /dev/null +++ b/content_manager/templates/content_manager/blocks/catalog_index_entries_list.html @@ -0,0 +1,39 @@ +{% load i18n %} +{% for entry in entries %} +
+ +
+{% empty %} +
+

{% translate "No page found." %}

+
+{% endfor %} 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/content_manager/templates/content_manager/catalog_index_page.html b/content_manager/templates/content_manager/catalog_index_page.html new file mode 100644 index 00000000..2cea8511 --- /dev/null +++ b/content_manager/templates/content_manager/catalog_index_page.html @@ -0,0 +1,161 @@ +{% extends "base.html" %} +{% load static dsfr_tags wagtailcore_tags wagtailimages_tags wagtail_dsfr_tags i18n %} + +{% block title %} + {{ page.seo_title|default:page.title }} — {{ settings.content_manager.CmsDsfrConfig.site_title }} +{% endblock title %} + +{% if page.search_description %} + {% block description %} + + {% endblock description %} +{% endif %} + +{% block social_media %} + + + + + + + + {% if page.get_translations.live %} + {% for translation in page.get_translations.live %} + + {% endfor %} + {% endif %} + + + + + {% if page.header_image %} + + {% image page.header_image fill-1200x627 as header_image %} + + + {% else %} + + {% endif %} +{% endblock social_media %} + +{% block content %} + {% include "content_manager/blocks/heading.html" %} + {% include "content_manager/blocks/messages.html" %} + +
+ {% include "content_manager/blocks/breadcrumbs.html" %} + {% if not page.header_with_title %} +

+ {{ page.title }} + {% if extra_title %}: {{ extra_title }}{% endif %} + {% include "content_manager/blocks/page_visibility.html" %} +

+ {% endif %} + + {% if current_category.description %} + {{ current_category.description|richtext }} + {% else %} + {{ page.body }} + {% endif %} + + {% if page.show_filters %} +
+
+ +
+ +
+
+ {% include "content_manager/blocks/catalog_index_entries_list.html" %} +
+ {% if entries.paginator.num_pages > 1 %} +
{% dsfr_pagination entries %}
+ {% endif %} +
+
+ {% else %} +
+ {% include "content_manager/blocks/catalog_index_entries_list.html" %} +
+ {% if entries.paginator.num_pages > 1 %} +
{% dsfr_pagination entries %}
+ {% endif %} + {% endif %} +
+{% endblock content %} diff --git a/content_manager/templates/content_manager/tags_list_page.html b/content_manager/templates/content_manager/tags_list_page.html index 68055a38..8cd8c2ce 100644 --- a/content_manager/templates/content_manager/tags_list_page.html +++ b/content_manager/templates/content_manager/tags_list_page.html @@ -3,48 +3,71 @@ {% load static dsfr_tags wagtailcore_tags wagtailimages_tags i18n %} {% block title %} + {% if page %} + {{ page.seo_title|default:page.title }} + {% if extra_title %}: {{ extra_title }}{% endif %} + — {{ settings.content_manager.CmsDsfrConfig.site_title }} + {% else %} {{ title }} — {{ settings.content_manager.CmsDsfrConfig.site_title }} + {% endif %} {% endblock title %} {% block description %} - + {% endblock description %} {% block social_media %} - - - - - - - - - + + + + + + + + + {% endblock social_media %} {% block content %} - {% include "content_manager/blocks/messages.html" %} - -
- {% dsfr_breadcrumb breadcrumb %} -

{% translate "Tags" %}

- -
- {% for first_letter in sorted_tags.keys|dictsort:0 %} - {{ first_letter }} - {% endfor %} -
- - {% for first_letter, tags in sorted_tags.items|dictsort:0 %} -

{{ first_letter }}

- - {% endfor %} + {% include "content_manager/blocks/messages.html" %} + +
+ {% if page %} + {% include "content_manager/blocks/breadcrumbs.html" %} + {% else %} + {% dsfr_breadcrumb breadcrumb %} + {% endif %} + {% if page %} +

+ {{ page.title }} + {% if extra_title %}: {{ extra_title }}{% endif %} + {% include "content_manager/blocks/page_visibility.html" %} +

+ + {% else %} +

{% translate "Tags" %}

+ {% endif %} + +
+ {% for first_letter in sorted_tags.keys|dictsort:0 %} + {{ first_letter }} + {% endfor %}
+ + {% for first_letter, tags in sorted_tags.items|dictsort:0 %} +

{{ first_letter }}

+ + {% endfor %} +
{% endblock content %} diff --git a/content_manager/tests/test_views.py b/content_manager/tests/test_views.py index 34f62c3c..91a53223 100644 --- a/content_manager/tests/test_views.py +++ b/content_manager/tests/test_views.py @@ -6,7 +6,7 @@ from wagtailmenus.models.menuitems import FlatMenuItem, MainMenuItem from wagtailmenus.models.menus import FlatMenu, MainMenu -from content_manager.models import CmsDsfrConfig, ContentPage, MegaMenu, MegaMenuCategory +from content_manager.models import CatalogIndexPage, CmsDsfrConfig, ContentPage, MegaMenu, MegaMenuCategory class ContentPageTestCase(WagtailPageTestCase): @@ -281,3 +281,46 @@ def test_mega_menu_is_rendered(self): """, response.content.decode(), ) + + +class CatalogIndexPageTestCase(WagtailPageTestCase): + def setUp(self): + home = Page.objects.get(slug="home") + self.admin = User.objects.create_superuser("test", "test@test.test", "pass") + self.admin.save() + self.catalog_index_page = home.add_child( + instance=CatalogIndexPage( + title="Index de catalogue", + slug="catalog-index", + owner=self.admin, + ) + ) + self.catalog_index_page.save() + + self.catalog_entry = self.catalog_index_page.add_child( + instance=ContentPage( + title="Entrée de catalogue", + slug="catalog-entry", + owner=self.admin, + ) + ) + + self.catalog_entry.save() + + def test_catalog_index_page_is_renderable(self): + self.assertPageIsRenderable(self.catalog_index_page) + + def test_catalog_index_page_has_minimal_content(self): + url = self.catalog_index_page.url + response = self.client.get(url) + self.assertEqual(response.status_code, 200) + + self.assertInHTML( + "Index de catalogue — Titre du site", + response.content.decode(), + ) + + self.assertInHTML( + 'Entrée de catalogue', + response.content.decode(), + ) diff --git a/dashboard/wagtail_hooks.py b/dashboard/wagtail_hooks.py index 3332654c..dc726b77 100644 --- a/dashboard/wagtail_hooks.py +++ b/dashboard/wagtail_hooks.py @@ -27,7 +27,7 @@ class UserbarPageAPILinkItem: """ def render(self, request) -> str: - if hasattr(request, "_wagtail_route_for_request"): + if hasattr(request, "_wagtail_route_for_request") and hasattr(request._wagtail_route_for_request, "page"): page = request._wagtail_route_for_request.page page_url = reverse("wagtailapi:pages:detail", kwargs={"pk": page.id}) page_in_api_label = _("See page entry in API") 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 d679b940..8f013396 100644 --- a/poetry.lock +++ b/poetry.lock @@ -30,21 +30,18 @@ tests = ["mypy (>=0.800)", "pytest", "pytest-asyncio"] [[package]] name = "asttokens" -version = "2.4.1" +version = "3.0.0" description = "Annotate AST trees with source code positions" optional = false -python-versions = "*" +python-versions = ">=3.8" files = [ - {file = "asttokens-2.4.1-py2.py3-none-any.whl", hash = "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24"}, - {file = "asttokens-2.4.1.tar.gz", hash = "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0"}, + {file = "asttokens-3.0.0-py3-none-any.whl", hash = "sha256:e3078351a059199dd5138cb1c706e6430c05eff2ff136af5eb4790f9d28932e2"}, + {file = "asttokens-3.0.0.tar.gz", hash = "sha256:0dcd8baa8d62b0c1d118b399b2ddba3c4aff271d0d7a9e0d4c1681c79035bbc7"}, ] -[package.dependencies] -six = ">=1.12.0" - [package.extras] -astroid = ["astroid (>=1,<2)", "astroid (>=2,<4)"] -test = ["astroid (>=1,<2)", "astroid (>=2,<4)", "pytest"] +astroid = ["astroid (>=2,<4)"] +test = ["astroid (>=2,<4)", "pytest", "pytest-cov", "pytest-xdist"] [[package]] name = "beautifulsoup4" @@ -131,17 +128,17 @@ webencodings = "*" [[package]] name = "boto3" -version = "1.35.65" +version = "1.35.82" description = "The AWS SDK for Python" optional = false python-versions = ">=3.8" files = [ - {file = "boto3-1.35.65-py3-none-any.whl", hash = "sha256:acbca38322b66516450f959c7874826267d431becdc2b080e331e56c2ebbe507"}, - {file = "boto3-1.35.65.tar.gz", hash = "sha256:f6c266b4124b92b1603727bf1ed1917e0b74a899bd0e326f151d80c3eaed27a1"}, + {file = "boto3-1.35.82-py3-none-any.whl", hash = "sha256:c422b68ae76959b9e23b77eb79e41c3483332f7e1de918d2b083c456d8cf234c"}, + {file = "boto3-1.35.82.tar.gz", hash = "sha256:2bbaf1551b1ed55770cb437d7040f1abe6742601103695057b30ce6328eef286"}, ] [package.dependencies] -botocore = ">=1.35.65,<1.36.0" +botocore = ">=1.35.82,<1.36.0" jmespath = ">=0.7.1,<2.0.0" s3transfer = ">=0.10.0,<0.11.0" @@ -150,13 +147,13 @@ crt = ["botocore[crt] (>=1.21.0,<2.0a0)"] [[package]] name = "botocore" -version = "1.35.65" +version = "1.35.82" description = "Low-level, data-driven core of boto 3." optional = false python-versions = ">=3.8" files = [ - {file = "botocore-1.35.65-py3-none-any.whl", hash = "sha256:8fcaa82ab2338f412e1494449c4c57f9ca785623fb0303f6be5b279c4d27522c"}, - {file = "botocore-1.35.65.tar.gz", hash = "sha256:46652f732f2b2fb395fffcc33cacb288d05ea283047c9a996fb59d6849464919"}, + {file = "botocore-1.35.82-py3-none-any.whl", hash = "sha256:e43b97d8cbf19d35ce3a177f144bd97cc370f0a67d0984c7d7cf105ac198748f"}, + {file = "botocore-1.35.82.tar.gz", hash = "sha256:78dd7bf8f49616d00073698d7bbaf5a115208fe730b7b7afae4456adddb3552e"}, ] [package.dependencies] @@ -169,13 +166,13 @@ crt = ["awscrt (==0.22.0)"] [[package]] name = "certifi" -version = "2024.8.30" +version = "2024.12.14" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8"}, - {file = "certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9"}, + {file = "certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56"}, + {file = "certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db"}, ] [[package]] @@ -406,13 +403,13 @@ static3 = "*" [[package]] name = "django" -version = "5.1.3" +version = "5.1.4" description = "A high-level Python web framework that encourages rapid development and clean, pragmatic design." optional = false python-versions = ">=3.10" files = [ - {file = "Django-5.1.3-py3-none-any.whl", hash = "sha256:8b38a9a12da3ae00cb0ba72da985ec4b14de6345046b1e174b1fd7254398f818"}, - {file = "Django-5.1.3.tar.gz", hash = "sha256:c0fa0e619c39325a169208caef234f90baa925227032ad3f44842ba14d75234a"}, + {file = "Django-5.1.4-py3-none-any.whl", hash = "sha256:236e023f021f5ce7dee5779de7b286565fdea5f4ab86bae5338e3f7b69896cf0"}, + {file = "Django-5.1.4.tar.gz", hash = "sha256:de450c09e91879fa5a307f696e57c851955c910a438a35e6b4c895e86bedc82a"}, ] [package.dependencies] @@ -502,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] @@ -673,33 +670,33 @@ django = ">=4.2" [[package]] name = "djlint" -version = "1.36.1" +version = "1.36.3" description = "HTML Template Linter and Formatter" optional = false python-versions = ">=3.9" files = [ - {file = "djlint-1.36.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ef40527fd6cd82cdd18f65a6bf5b486b767d2386f6c21f2ebd60e5d88f487fe8"}, - {file = "djlint-1.36.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:4712de3dea172000a098da6a0cd709d158909b4964ba0f68bee584cef18b4878"}, - {file = "djlint-1.36.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:63d01c1425170b7059d68a3b01709e1c31d2cd6520a1eb0166e6670fd250518a"}, - {file = "djlint-1.36.1-cp310-cp310-win_amd64.whl", hash = "sha256:65585a97d3a37760b4c1fbd089a3573506ad0ab2885119322a66231f911d113f"}, - {file = "djlint-1.36.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:607437a0a230462916858c269bc5dfd15ff71b27d15dfd1ad6e96b3da9cbd8f6"}, - {file = "djlint-1.36.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8ddc9ae6b83b288465f6685b24797adbde79952d6e1a5276026e5ef479bac76f"}, - {file = "djlint-1.36.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:001e5124b0ebab60a2044134abd11ff11dee772e7c3caaa2c8d12eb5d3b1f1dc"}, - {file = "djlint-1.36.1-cp311-cp311-win_amd64.whl", hash = "sha256:095d62f3cabbac08683c51c1d9dacab522b54437a2a317df9e134599360f7b89"}, - {file = "djlint-1.36.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:210f319c2d22489aebc0e9c1acd5015ca3892b66fa35647344511b3c03fcbe82"}, - {file = "djlint-1.36.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7aa3db13d7702c35f4e408325061d9d4e84d006c99bb3e55fddf2b2543736923"}, - {file = "djlint-1.36.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2f907e97f4d67f4423dc71671592891cfd9cd311aeef14db25633f292dbf7048"}, - {file = "djlint-1.36.1-cp312-cp312-win_amd64.whl", hash = "sha256:abadf6b61dc53d81710f230542f57f2d470b7503cd3108ad8a0113271c0514dd"}, - {file = "djlint-1.36.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7f31646435385eec1d4b03dad7bebb5e4078d9893c60d490a685535bd6303c83"}, - {file = "djlint-1.36.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4399477ac51f9c8147eedbef70aa8465eccba6759d875d1feec6782744aa168a"}, - {file = "djlint-1.36.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f08c217b17d3ae3c0e3b5fff57fb708029cceda6e232f5a54ff1b3aeb43a7540"}, - {file = "djlint-1.36.1-cp313-cp313-win_amd64.whl", hash = "sha256:1577490802ca4697af3488ed13066c9214ef0f625a96aa20d4f297e37aa19303"}, - {file = "djlint-1.36.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3ae356faf8180c7629ca705b7b9d8c9269b2c53273a1887a438a21b8fa263588"}, - {file = "djlint-1.36.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:2237ac5cecd2524960e1684f64ce358624b0d769b7404e5aad415750ad00edc9"}, - {file = "djlint-1.36.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:02c22352a49c053ff6260428ed571afb783011d20afc98b44bbe1dd2fa2d5418"}, - {file = "djlint-1.36.1-cp39-cp39-win_amd64.whl", hash = "sha256:99a2debeea2e931b68360306fdbf13861e3d6f96037a9d882f3d4d5e44fdc319"}, - {file = "djlint-1.36.1-py3-none-any.whl", hash = "sha256:950782b396dd82b74622c09d7e4c52328e56a3b03c8ac790c319708e5caa0686"}, - {file = "djlint-1.36.1.tar.gz", hash = "sha256:f7260637ed72c270fa6dd4a87628e1a21c49b24a46df52e4e26f44d4934fb97c"}, + {file = "djlint-1.36.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2ae7c620b58e16d6bf003bd7de3f71376a7a3daa79dc02e77f3726d5a75243f2"}, + {file = "djlint-1.36.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e155ce0970d4a28d0a2e9f2e106733a2ad05910eee90e056b056d48049e4a97b"}, + {file = "djlint-1.36.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8e8bb0406e60cc696806aa6226df137618f3889c72f2dbdfa76c908c99151579"}, + {file = "djlint-1.36.3-cp310-cp310-win_amd64.whl", hash = "sha256:76d32faf988ad58ef2e7a11d04046fc984b98391761bf1b61f9a6044da53d414"}, + {file = "djlint-1.36.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:32f7a5834000fff22e94d1d35f95aaf2e06f2af2cae18af0ed2a4e215d60e730"}, + {file = "djlint-1.36.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3eb1b9c0be499e63e8822a051e7e55f188ff1ab8172a85d338a8ae21c872060e"}, + {file = "djlint-1.36.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4c2e0dd1f26eb472b8c84eb70d6482877b6497a1fd031d7534864088f016d5ea"}, + {file = "djlint-1.36.3-cp311-cp311-win_amd64.whl", hash = "sha256:a06b531ab9d049c46ad4d2365d1857004a1a9dd0c23c8eae94aa0d233c6ec00d"}, + {file = "djlint-1.36.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e66361a865e5e5a4bbcb40f56af7f256fd02cbf9d48b763a40172749cc294084"}, + {file = "djlint-1.36.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:36e102b80d83e9ac2e6be9a9ded32fb925945f6dbc7a7156e4415de1b0aa0dba"}, + {file = "djlint-1.36.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9ac4b7370d80bd82281e57a470de8923ac494ffb571b89d8787cef57c738c69a"}, + {file = "djlint-1.36.3-cp312-cp312-win_amd64.whl", hash = "sha256:107cc56bbef13d60cc0ae774a4d52881bf98e37c02412e573827a3e549217e3a"}, + {file = "djlint-1.36.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2a9f51971d6e63c41ea9b3831c928e1f21ae6fe57e87a3452cfe672d10232433"}, + {file = "djlint-1.36.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:080c98714b55d8f0fef5c42beaee8247ebb2e3d46b0936473bd6c47808bb6302"}, + {file = "djlint-1.36.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f65a80e0b5cb13d357ea51ca6570b34c2d9d18974c1e57142de760ea27d49ed0"}, + {file = "djlint-1.36.3-cp313-cp313-win_amd64.whl", hash = "sha256:95ef6b67ef7f2b90d9434bba37d572031079001dc8524add85c00ef0386bda1e"}, + {file = "djlint-1.36.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:8e2317a32094d525bc41cd11c8dc064bf38d1b442c99cc3f7c4a2616b5e6ce6e"}, + {file = "djlint-1.36.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e82266c28793cd15f97b93535d72bfbc77306eaaf6b210dd90910383a814ee6c"}, + {file = "djlint-1.36.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:01b2101c2d1b079e8d545e6d9d03487fcca14d2371e44cbfdedee15b0bf4567c"}, + {file = "djlint-1.36.3-cp39-cp39-win_amd64.whl", hash = "sha256:15cde63ef28beb5194ff4137883025f125676ece1b574b64a3e1c6daed734639"}, + {file = "djlint-1.36.3-py3-none-any.whl", hash = "sha256:0c05cd5b76785de2c41a2420c06ffd112800bfc0f9c0f399cc7cea7c42557f4c"}, + {file = "djlint-1.36.3.tar.gz", hash = "sha256:d85735da34bc7ac93ad8ef9b4822cc2a23d5f0ce33f25438737b8dca1d404f78"}, ] [package.dependencies] @@ -731,12 +728,13 @@ lxml = ["lxml (>=4.2.0,<5)"] [[package]] name = "editorconfig" -version = "0.12.4" +version = "0.17.0" description = "EditorConfig File Locator and Interpreter for Python" optional = false python-versions = "*" files = [ - {file = "EditorConfig-0.12.4.tar.gz", hash = "sha256:24857fa1793917dd9ccf0c7810a07e05404ce9b823521c7dce22a4fb5d125f80"}, + {file = "EditorConfig-0.17.0-py3-none-any.whl", hash = "sha256:fe491719c5f65959ec00b167d07740e7ffec9a3f362038c72b289330b9991dfc"}, + {file = "editorconfig-0.17.0.tar.gz", hash = "sha256:8739052279699840065d3a9f5c125d7d5a98daeefe53b0e5274261d77cb49aa2"}, ] [[package]] @@ -873,13 +871,13 @@ pytz = "*" [[package]] name = "identify" -version = "2.6.2" +version = "2.6.3" description = "File identification library for Python" optional = false python-versions = ">=3.9" files = [ - {file = "identify-2.6.2-py2.py3-none-any.whl", hash = "sha256:c097384259f49e372f4ea00a19719d95ae27dd5ff0fd77ad630aa891306b82f3"}, - {file = "identify-2.6.2.tar.gz", hash = "sha256:fab5c716c24d7a789775228823797296a2994b075fb6080ac83a102772a98cbd"}, + {file = "identify-2.6.3-py2.py3-none-any.whl", hash = "sha256:9edba65473324c2ea9684b1f944fe3191db3345e50b6d04571d10ed164f8d7bd"}, + {file = "identify-2.6.3.tar.gz", hash = "sha256:62f5dae9b5fef52c84cc188514e9ea4f3f636b1d8799ab5ebc475471f9e47a02"}, ] [package.extras] @@ -901,13 +899,13 @@ all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2 [[package]] name = "ipython" -version = "8.29.0" +version = "8.30.0" description = "IPython: Productive Interactive Computing" optional = false python-versions = ">=3.10" files = [ - {file = "ipython-8.29.0-py3-none-any.whl", hash = "sha256:0188a1bd83267192123ccea7f4a8ed0a78910535dbaa3f37671dca76ebd429c8"}, - {file = "ipython-8.29.0.tar.gz", hash = "sha256:40b60e15b22591450eef73e40a027cf77bd652e757523eebc5bd7c7c498290eb"}, + {file = "ipython-8.30.0-py3-none-any.whl", hash = "sha256:85ec56a7e20f6c38fce7727dcca699ae4ffc85985aa7b23635a8008f918ae321"}, + {file = "ipython-8.30.0.tar.gz", hash = "sha256:cb0a405a306d2995a5cbb9901894d240784a9f341394c6ba3f4fe8c6eb89ff6e"}, ] [package.dependencies] @@ -917,16 +915,16 @@ exceptiongroup = {version = "*", markers = "python_version < \"3.11\""} jedi = ">=0.16" matplotlib-inline = "*" pexpect = {version = ">4.3", markers = "sys_platform != \"win32\" and sys_platform != \"emscripten\""} -prompt-toolkit = ">=3.0.41,<3.1.0" +prompt_toolkit = ">=3.0.41,<3.1.0" pygments = ">=2.4.0" -stack-data = "*" +stack_data = "*" traitlets = ">=5.13.0" -typing-extensions = {version = ">=4.6", markers = "python_version < \"3.12\""} +typing_extensions = {version = ">=4.6", markers = "python_version < \"3.12\""} [package.extras] all = ["ipython[black,doc,kernel,matplotlib,nbconvert,nbformat,notebook,parallel,qtconsole]", "ipython[test,test-extra]"] black = ["black"] -doc = ["docrepr", "exceptiongroup", "intersphinx-registry", "ipykernel", "ipython[test]", "matplotlib", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "sphinxcontrib-jquery", "tomli", "typing-extensions"] +doc = ["docrepr", "exceptiongroup", "intersphinx_registry", "ipykernel", "ipython[test]", "matplotlib", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "sphinxcontrib-jquery", "tomli", "typing_extensions"] kernel = ["ipykernel"] matplotlib = ["matplotlib"] nbconvert = ["nbconvert"] @@ -997,13 +995,13 @@ six = ">=1.13.0" [[package]] name = "json5" -version = "0.9.28" +version = "0.10.0" description = "A Python implementation of the JSON5 data format." optional = false python-versions = ">=3.8.0" files = [ - {file = "json5-0.9.28-py3-none-any.whl", hash = "sha256:29c56f1accdd8bc2e037321237662034a7e07921e2b7223281a5ce2c46f0c4df"}, - {file = "json5-0.9.28.tar.gz", hash = "sha256:1f82f36e615bc5b42f1bbd49dbc94b12563c56408c6ffa06414ea310890e9a6e"}, + {file = "json5-0.10.0-py3-none-any.whl", hash = "sha256:19b23410220a7271e8377f81ba8aacba2fdd56947fbb137ee5977cbe1f5e8dfa"}, + {file = "json5-0.10.0.tar.gz", hash = "sha256:e66941c8f0a02026943c52c2eb34ebeb2a6f819a0be05920a6f5243cd30fd559"}, ] [package.extras] @@ -1277,57 +1275,57 @@ xmp = ["defusedxml"] [[package]] name = "pillow-heif" -version = "0.20.0" +version = "0.21.0" description = "Python interface for libheif library" optional = false python-versions = ">=3.9" files = [ - {file = "pillow_heif-0.20.0-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:ef2ad418f42adc9ef5d5e709547e799fb32141543856cb14f04fa4b22f83bfd7"}, - {file = "pillow_heif-0.20.0-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:af229e214ec23053bea1f162972645495bfb12f2c3b5ece463bd8a01aefda17a"}, - {file = "pillow_heif-0.20.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f446a78a9d84ef75761638a7e72a477aadeffb282ac70ffe67360a98d54775b1"}, - {file = "pillow_heif-0.20.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a4a77c6e78756948a2a5fc8ec7341184fca1bc7316c11f6df0cf3fe9732e1688"}, - {file = "pillow_heif-0.20.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d30d19b8ba9c384a06523c3d419c46d62c823abdb6d75581ffd5328503f6d3aa"}, - {file = "pillow_heif-0.20.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:0ec02ebbe88e2af0f093e80c95b716f54479a32b037da6b1c12b9f4024eab359"}, - {file = "pillow_heif-0.20.0-cp310-cp310-win_amd64.whl", hash = "sha256:86a8920ea3a3b3923c827629afc850c1ee9f753b71346180c226882545028e06"}, - {file = "pillow_heif-0.20.0-cp311-cp311-macosx_12_0_x86_64.whl", hash = "sha256:8e3bc0bda64cce72e41f6c20a5cf3e24af308a09e146df78d31acb337a8ff58b"}, - {file = "pillow_heif-0.20.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:a35e9e17d112573e9568d07c0e2c5cb81218a8f4c0da84a428618c7a746c4d98"}, - {file = "pillow_heif-0.20.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:618d63338afb9f49f1fb7b9a421aff6ad71ceb8092855e5988c05ab10dc21152"}, - {file = "pillow_heif-0.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6174d31580081d53f4eadc2428c699a5e47d111e64f136945951d12a9a277936"}, - {file = "pillow_heif-0.20.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7d106a1c87587838e9099bbfef9ddc7eef0dd3e77e9b1b8a1292a5f9dc4ad5a2"}, - {file = "pillow_heif-0.20.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ba9e11f56a5e1fd1d559a1fd60d498f343922affc0e118fb3d4e808902fee1a9"}, - {file = "pillow_heif-0.20.0-cp311-cp311-win_amd64.whl", hash = "sha256:daf209dd79ad21b21f7b2bbd575f331702d2f1dd0b529c12cdbee00d62c24254"}, - {file = "pillow_heif-0.20.0-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:0919f7738b886ed88367b9d0247132b1cbe5d40411bac5d7536d1876980af23e"}, - {file = "pillow_heif-0.20.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:146e55436b4feafcd086bd40211d5c3159b4d488b7f4918921560c9718c62dc9"}, - {file = "pillow_heif-0.20.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:70564e6e301498b484e467d96d25065c8102b8bba6227959dcff2df68d888d82"}, - {file = "pillow_heif-0.20.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d14de6325eff7840d223c27fc974af28de0bb098b7678e05efe7e5cbf345e6b"}, - {file = "pillow_heif-0.20.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6ff0d429d01ac1d4b54358bc3e10ac8aea7b04913e118800641394261d4430a3"}, - {file = "pillow_heif-0.20.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ccb16e488fc700029da111547039ac21e7cab9cae47f127ad2866824569a7a4c"}, - {file = "pillow_heif-0.20.0-cp312-cp312-win_amd64.whl", hash = "sha256:ce6fb39f5d62d8a72ec2718ee110c49db529d9a1171c6ef243d7d66cfa17edc2"}, - {file = "pillow_heif-0.20.0-cp313-cp313-macosx_12_0_x86_64.whl", hash = "sha256:aadf4151095753b823b2ab061a51bfd4f5e56e69d6a1e125d12083eab639fd16"}, - {file = "pillow_heif-0.20.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:4f3fac5a22946ec8df9c45a9f2d50a99407d798b2e7dce24bd2ef53b039f7f02"}, - {file = "pillow_heif-0.20.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6244a4934b21978c33651a77bdf446a9e9ae2450c332426bd2901a2523737938"}, - {file = "pillow_heif-0.20.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:47fbfbd5b87c3ee2e165de8f43260c5cea45bb282f291ef09ae8a21fdd284467"}, - {file = "pillow_heif-0.20.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a3e9f2a87ba24468d1717c1403ceed7b6bc6c7f82023a8b888169ae494ee33d3"}, - {file = "pillow_heif-0.20.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:cc5d116713657b12becd8a2241a5c70ec28a34053fcbd58164ca08b26b23970a"}, - {file = "pillow_heif-0.20.0-cp313-cp313-win_amd64.whl", hash = "sha256:b4e9162f1265ed808af872abe894398ba2b5f2297221b03031f48870638cf491"}, - {file = "pillow_heif-0.20.0-cp39-cp39-macosx_12_0_x86_64.whl", hash = "sha256:5647cda2566da6786f0c090fd61c268b6d530d3a2c88361ed630f5ed2bd52766"}, - {file = "pillow_heif-0.20.0-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:9ae1a75deb8ffca01ae389593af6112a721415ff8a6ccc2676bb1da71186f13b"}, - {file = "pillow_heif-0.20.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:309d37303378ceb93d8408e26b67917a2091bc1e136fe0afb7c72610954de635"}, - {file = "pillow_heif-0.20.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b0ccaade96a8a7d8614374b6d5c1b259e62040e33180fadfef336089b4919ed5"}, - {file = "pillow_heif-0.20.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1dffa961f316a9cb5a495087c17e41f2fdc83a8cbdf6d845716cbf2c9eb244bf"}, - {file = "pillow_heif-0.20.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7da99aa51bc80c24bc70fffcaa8e17c4944c4d4babdca0c38c82d5a69f7b8fa2"}, - {file = "pillow_heif-0.20.0-cp39-cp39-win_amd64.whl", hash = "sha256:3f88de96b1ade76d408b4d490cd2f0de31c4790e4cf573e90503d9715082811c"}, - {file = "pillow_heif-0.20.0-pp310-pypy310_pp73-macosx_12_0_x86_64.whl", hash = "sha256:0a1a4ecaf150b569ad7d5fdeafde713e18d70e1a0d15395cdf96069818eae913"}, - {file = "pillow_heif-0.20.0-pp310-pypy310_pp73-macosx_14_0_arm64.whl", hash = "sha256:a8938faf7a48289601a5413078b2f21551228e1d1b203c41aaf7638ce156e073"}, - {file = "pillow_heif-0.20.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9430a33f69965d067be7e5c15dc70f1e43d5e3c8b5e9dc16c8c8d52179ce1cc"}, - {file = "pillow_heif-0.20.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da749d087ae3a7538af73d7a676cf332f81d1e6da9a6dea083aa382290d2d172"}, - {file = "pillow_heif-0.20.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:039f0c82ab3c0b364947979583d53ec9aad42d22159b9497e3c20ddde92c99bd"}, - {file = "pillow_heif-0.20.0-pp39-pypy39_pp73-macosx_12_0_x86_64.whl", hash = "sha256:9d42d164f378cf3ba1ddd00b2379360604a8461cee54eeebd67aac341f27ccac"}, - {file = "pillow_heif-0.20.0-pp39-pypy39_pp73-macosx_14_0_arm64.whl", hash = "sha256:740ef7652c7b278f24ead94e4098f0d1baf679a1e7373135e2820ce1c34a1bc5"}, - {file = "pillow_heif-0.20.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:adc56caf280e39f0540d40df925cde2cd960d2ee2492f856224e2e399f4a7590"}, - {file = "pillow_heif-0.20.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:623c0b777b15773605eeed811b23658923b4e4d822172fb62d4cbe983e5a8722"}, - {file = "pillow_heif-0.20.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2f9515e21aa2f112252238175bbe3a1daad7a0c1020fc4ed52eae7805651431c"}, - {file = "pillow_heif-0.20.0.tar.gz", hash = "sha256:cac19c4434ab776f833160d61f3cbeddb347bd8ed2f82205b243eba5c572fa33"}, + {file = "pillow_heif-0.21.0-cp310-cp310-macosx_13_0_x86_64.whl", hash = "sha256:f54609401164b0cb58000bd2516a88516b5e3e9b2f9c52ad9500575f1851da5e"}, + {file = "pillow_heif-0.21.0-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:d0a68246340d4fad4f10721a1a50b87a7011f1bd18d0a7b7d231e196776d0260"}, + {file = "pillow_heif-0.21.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:208b066bc7349b1ea1447199668edb6e2f74f36df54c86457ecb0131db8294df"}, + {file = "pillow_heif-0.21.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cea6f1519a9c486baf3bdf63487fa3f699402724895d64841bb4636258a87c90"}, + {file = "pillow_heif-0.21.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:7f9e939cd8e343237800fe998e26558a82cb25496b74d7674f29e75dc87eb636"}, + {file = "pillow_heif-0.21.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8b30fbbb672a3413413bcfc726f9994e495c647c6b96ab9f832dccb61b67fb2f"}, + {file = "pillow_heif-0.21.0-cp310-cp310-win_amd64.whl", hash = "sha256:9807c955ea7ed2caa5d105aea7d870d8c0958079ed2aba39a6ace7ef82aad402"}, + {file = "pillow_heif-0.21.0-cp311-cp311-macosx_13_0_x86_64.whl", hash = "sha256:0c3ffa486f56f52fe790d3b1bd522d93d2f59e22ce86045641cd596adc3c5273"}, + {file = "pillow_heif-0.21.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:c46be20058d72a5a158ffc65e6158279a4bcb337707a29b312c5293846bd5b8a"}, + {file = "pillow_heif-0.21.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:06663c825a3d71779e51df02080467761b74d515e59fce9d780220cd75de7dd0"}, + {file = "pillow_heif-0.21.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:23efab69a03a9a3a9ff07043d8c8bf0d15ffd661ecc5c7bff59b386eb25f0466"}, + {file = "pillow_heif-0.21.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e5eebb73268b806d3c801271126382da4f556b756990f87590c843c5a8ec14e2"}, + {file = "pillow_heif-0.21.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:3456b4cdb4da485f27c53a91c81f0488b44dc99c0be6870f6a1dc5ac85709894"}, + {file = "pillow_heif-0.21.0-cp311-cp311-win_amd64.whl", hash = "sha256:d36441100756122b9d401502e39b60d0df9d876a929f5db858a4b7d05cc02e88"}, + {file = "pillow_heif-0.21.0-cp312-cp312-macosx_13_0_x86_64.whl", hash = "sha256:0aaea6ea45257cf74e76666b80b6109f8f56217009534726fa7f6a5694ebd563"}, + {file = "pillow_heif-0.21.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:f28c2c934f547823de3e204e48866c571d81ebb6b3e8646c32fe2104c570c7b2"}, + {file = "pillow_heif-0.21.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e10ab63559346fc294b9612502221ddd6bfac8cd74091ace7328fefc1163a167"}, + {file = "pillow_heif-0.21.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da2a015cfe4afec75551190d93c99dda13410aec89dc468794885b90f870f657"}, + {file = "pillow_heif-0.21.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:41693f5d87ed2b5fd01df4a6215045aff14d148a750aa0708c77e71139698154"}, + {file = "pillow_heif-0.21.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:8b27031c561ee3485a119c769fc2ef41d81fae1de530857beef935683e09615e"}, + {file = "pillow_heif-0.21.0-cp312-cp312-win_amd64.whl", hash = "sha256:60196c08e9c256e81054c5da468eb5a0266c931b8564c96283a43e5fd2d7ce0e"}, + {file = "pillow_heif-0.21.0-cp313-cp313-macosx_13_0_x86_64.whl", hash = "sha256:9e67aae3c22a90bc7dfd42c9f0033c53a7d358e0f0d5d29aa42f2f193162fb01"}, + {file = "pillow_heif-0.21.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:ee2d68cbc0df8ba6fd9103ac6b550ebafcaa3a179416737a96becf6e5f079586"}, + {file = "pillow_heif-0.21.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9e5c0df7b8c84e4a8c249ba45ceca2453f205028d8a6525612ec6dd0553d925d"}, + {file = "pillow_heif-0.21.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aaedb7f16f3f18fbb315648ba576d0d7bb26b18b50c16281665123c38f73101e"}, + {file = "pillow_heif-0.21.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6724d6a2561f36b06e14e1cd396c004d32717e81528cb03565491ac8679ed760"}, + {file = "pillow_heif-0.21.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:bf2e2b0abad455a0896118856e82a8d5358dfe5480bedd09ddd6a04b23773899"}, + {file = "pillow_heif-0.21.0-cp313-cp313-win_amd64.whl", hash = "sha256:1b6ba6c3c4de739a1abf4f7fe0cdd04acd9e0c7fc661985b9a5288d94893a4b1"}, + {file = "pillow_heif-0.21.0-cp39-cp39-macosx_13_0_x86_64.whl", hash = "sha256:2448e180150b1ecb6576cc5030a6d14a179a7fa430b2b54d976f3beb3c5628ae"}, + {file = "pillow_heif-0.21.0-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:fa9a91d6e390e78fe5670ff6083f26d13c6f1cabfaf0f61d0b272f50b5651c81"}, + {file = "pillow_heif-0.21.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dc919aa10fe97cb2134043d6e2d0d7fdbe17d7a2a833b202437e53be39fa7eae"}, + {file = "pillow_heif-0.21.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d2fec1715ec77c2622e1eb52a6b30b58cea437b66dc45cfd28515dcb70bcc99"}, + {file = "pillow_heif-0.21.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:55cba67787dfabb20e3fe0f54e4e768ca42c0ac5aa74c6b293b3407c7782fc87"}, + {file = "pillow_heif-0.21.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:04e824c087934bfd09605a992788db3c461f045a903dbc9f14b20eba0df0c6ac"}, + {file = "pillow_heif-0.21.0-cp39-cp39-win_amd64.whl", hash = "sha256:c2d2ec026094c919ce010921586192968abe9dfd2528b38bce905c74cac9b9c6"}, + {file = "pillow_heif-0.21.0-pp310-pypy310_pp73-macosx_13_0_x86_64.whl", hash = "sha256:9305aa837ce77d98a8b5e7bc8f86eeaefb52237686d84d60de11d55bad541d7f"}, + {file = "pillow_heif-0.21.0-pp310-pypy310_pp73-macosx_14_0_arm64.whl", hash = "sha256:fc9bfc50f55267d13b0abf63bd7d141b92a39e09812dadee1a88b5863d9b8808"}, + {file = "pillow_heif-0.21.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:03273b94a7548ba615f6bfc1031137f1a025b657226de6c3f09f84945295f565"}, + {file = "pillow_heif-0.21.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6576c9c7713e33150395cdc6e9cf59efd8f42c5783cf0764092ba50a048ee2c6"}, + {file = "pillow_heif-0.21.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:2813c34cdd3f07e406b6a2cb216019409eb62270e6799088ddf3d4cb08a0d503"}, + {file = "pillow_heif-0.21.0-pp39-pypy39_pp73-macosx_13_0_x86_64.whl", hash = "sha256:b06125d594ca71c9af3bf69118c661b8f82a3a7ce2d2ea5302328d91ebef36cb"}, + {file = "pillow_heif-0.21.0-pp39-pypy39_pp73-macosx_14_0_arm64.whl", hash = "sha256:22a73ed7ca5c2c8ef1b4872827dc7d8a6875938e9e791fff2db92fb4ca60f560"}, + {file = "pillow_heif-0.21.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:121451d016c450bfb4d926fe08274e165553679917eb8c85d41fcadfda5f3b2e"}, + {file = "pillow_heif-0.21.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5680a00519e5f3c7c1c51dfd41e7f1c632793dfde57a9620339ba4cc70cf9196"}, + {file = "pillow_heif-0.21.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a39d1043ec74afdeef00086c8d24b3cc30095927817182ae5bc960ddb3422d9c"}, + {file = "pillow_heif-0.21.0.tar.gz", hash = "sha256:07aee1bff05e5d61feb989eaa745ae21b367011fd66ee48f7732931f8a12b49b"}, ] [package.dependencies] @@ -1900,13 +1898,13 @@ files = [ [[package]] name = "s3transfer" -version = "0.10.3" +version = "0.10.4" description = "An Amazon S3 Transfer Manager" optional = false python-versions = ">=3.8" files = [ - {file = "s3transfer-0.10.3-py3-none-any.whl", hash = "sha256:263ed587a5803c6c708d3ce44dc4dfedaab4c1a32e8329bab818933d79ddcf5d"}, - {file = "s3transfer-0.10.3.tar.gz", hash = "sha256:4f50ed74ab84d474ce614475e0b8d5047ff080810aac5d01ea25231cfc944b0c"}, + {file = "s3transfer-0.10.4-py3-none-any.whl", hash = "sha256:244a76a24355363a68164241438de1b72f8781664920260c48465896b712a41e"}, + {file = "s3transfer-0.10.4.tar.gz", hash = "sha256:29edc09801743c21eb5ecbc617a152df41d3c287f67b615f73e5f750583666a7"}, ] [package.dependencies] @@ -1917,13 +1915,13 @@ crt = ["botocore[crt] (>=1.33.2,<2.0a.0)"] [[package]] name = "six" -version = "1.16.0" +version = "1.17.0" description = "Python 2 and 3 compatibility utilities" optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" files = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, + {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, + {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, ] [[package]] @@ -1939,13 +1937,13 @@ files = [ [[package]] name = "sqlparse" -version = "0.5.2" +version = "0.5.3" description = "A non-validating SQL parser." optional = false python-versions = ">=3.8" files = [ - {file = "sqlparse-0.5.2-py3-none-any.whl", hash = "sha256:e99bc85c78160918c3e1d9230834ab8d80fc06c59d03f8db2618f65f65dda55e"}, - {file = "sqlparse-0.5.2.tar.gz", hash = "sha256:9e37b35e16d1cc652a2545f0997c1deb23ea28fa1f3eefe609eee3063c3b105f"}, + {file = "sqlparse-0.5.3-py3-none-any.whl", hash = "sha256:cf2196ed3418f3ba5de6af7e82c694a9fbdbfecccdfc72e281548517081f16ca"}, + {file = "sqlparse-0.5.3.tar.gz", hash = "sha256:09f67787f56a0b16ecdbde1bfc7f5d9c3371ca683cfeaa8e6ff60b4807ec9272"}, ] [package.extras] @@ -2001,31 +1999,61 @@ docs = ["mkdocs (>=1.1,<1.2)", "mkdocs-material (>=6.2,<6.3)"] [[package]] name = "tomli" -version = "2.1.0" +version = "2.2.1" description = "A lil' TOML parser" optional = false python-versions = ">=3.8" files = [ - {file = "tomli-2.1.0-py3-none-any.whl", hash = "sha256:a5c57c3d1c56f5ccdf89f6523458f60ef716e210fc47c4cfb188c5ba473e0391"}, - {file = "tomli-2.1.0.tar.gz", hash = "sha256:3f646cae2aec94e17d04973e4249548320197cfabdf130015d023de4b74d8ab8"}, + {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"}, + {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee"}, + {file = "tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106"}, + {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8"}, + {file = "tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff"}, + {file = "tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b"}, + {file = "tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea"}, + {file = "tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222"}, + {file = "tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd"}, + {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e"}, + {file = "tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98"}, + {file = "tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4"}, + {file = "tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7"}, + {file = "tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281"}, + {file = "tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2"}, + {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744"}, + {file = "tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec"}, + {file = "tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69"}, + {file = "tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc"}, + {file = "tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff"}, ] [[package]] name = "tqdm" -version = "4.67.0" +version = "4.67.1" description = "Fast, Extensible Progress Meter" optional = false python-versions = ">=3.7" files = [ - {file = "tqdm-4.67.0-py3-none-any.whl", hash = "sha256:0cd8af9d56911acab92182e88d763100d4788bdf421d251616040cc4d44863be"}, - {file = "tqdm-4.67.0.tar.gz", hash = "sha256:fe5a6f95e6fe0b9755e9469b77b9c3cf850048224ecaa8293d7d2d31f97d869a"}, + {file = "tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2"}, + {file = "tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2"}, ] [package.dependencies] colorama = {version = "*", markers = "platform_system == \"Windows\""} [package.extras] -dev = ["pytest (>=6)", "pytest-cov", "pytest-timeout", "pytest-xdist"] +dev = ["nbval", "pytest (>=6)", "pytest-asyncio (>=0.24)", "pytest-cov", "pytest-timeout"] discord = ["requests"] notebook = ["ipywidgets (>=6)"] slack = ["slack-sdk"] @@ -2098,13 +2126,13 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "virtualenv" -version = "20.27.1" +version = "20.28.0" description = "Virtual Python Environment builder" optional = false python-versions = ">=3.8" files = [ - {file = "virtualenv-20.27.1-py3-none-any.whl", hash = "sha256:f11f1b8a29525562925f745563bfd48b189450f61fb34c4f9cc79dd5aa32a1f4"}, - {file = "virtualenv-20.27.1.tar.gz", hash = "sha256:142c6be10212543b32c6c45d3d3893dff89112cc588b7d0879ae5a1ec03a47ba"}, + {file = "virtualenv-20.28.0-py3-none-any.whl", hash = "sha256:23eae1b4516ecd610481eda647f3a7c09aea295055337331bb4e6892ecce47b0"}, + {file = "virtualenv-20.28.0.tar.gz", hash = "sha256:2c9c3262bb8e7b87ea801d715fae4495e6032450c71d2309be9550e7364049aa"}, ] [package.dependencies] @@ -2280,4 +2308,4 @@ wand = ["Wand (>=0.6,<1.0)"] [metadata] lock-version = "2.0" python-versions = "^3.10" -content-hash = "02778e6ad4f056ce972461741ae56570b90ec2b30d2bcae033d5dbff5db0950e" +content-hash = "196516ce0410f1e765aa22ff97fbfa229eb377d0e8ff443d234fd38a01e3ac6e" diff --git a/pyproject.toml b/pyproject.toml index 4d624e8c..c734281e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,7 +3,7 @@ requires-python = ">=3.10" [tool.poetry] name = "content-manager" -version = "1.10.2" +version = "1.11.1" description = "Gestionnaire de contenu permettant de créer et gérer un site internet basé sur le Système de design de l’État, accessible et responsive" authors = [ "Sébastien Reuiller ", @@ -16,7 +16,7 @@ readme = "README.md" [tool.poetry.dependencies] python = "^3.10" -django = "^5.0.9" +django = "^5.1.4" wagtail = "^6.1" django-dsfr = "^1.1.2" psycopg2-binary = "^2.9.9" @@ -36,7 +36,7 @@ beautifulsoup4 = "^4.12.3" django-taggit = "^5.0.1" wagtail-localize = "^1.9" icalendar = "^5.0.13" - +faker = "^24.3.0" [tool.poetry.group.dev.dependencies] black = "^24.3.0" @@ -46,9 +46,7 @@ pre-commit = "^3.5.0" djlint = "^1.34.0" django-extensions = "^3.2.3" ipython = "^8.18.1" -libsass = "^0.22.0" django-compressor = "^4.4" -faker = "^24.3.0" django-debug-toolbar = "^4.4.2" ruff = "^0.4.10"