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

En savoir plus


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

Titre de la section


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

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

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

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

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

En savoir plus


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

Titre de la section


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

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

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

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

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

{% translate "Posted by:" %}

{% endwith %}
- {% for tag in page.tags.all|dictsort:"slug" %} - {{ tag }} - {% endfor %} +
{% if settings.content_manager.CmsDsfrConfig.show_share_links and settings.content_manager.CmsDsfrConfig.share_links_blog_posts %} diff --git a/blog/templates/blog/blog_index_page.html b/blog/templates/blog/blog_index_page.html index 7c292dc91..eb0f3bb1c 100644 --- a/blog/templates/blog/blog_index_page.html +++ b/blog/templates/blog/blog_index_page.html @@ -65,7 +65,7 @@
{% include "content_manager/blocks/breadcrumbs.html" %} - + {% if page.show_title %}

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

{% translate "Filter by category" %}

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

{% translate "Filter by tag" %}

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

En savoir plus


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

Titre de la section


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

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

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

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

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

En savoir plus


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

Titre de la section


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

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

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

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

", + "title": "Titre de l'accordéon 2", + }, + ), + ], + "label": "Accordion", + }, + ), + 219: ( + "wagtail.blocks.StructBlock", + [[("accordion", 218), ("layout", 198)]], + {"group": "1. Section templates to be adapted", "label": "Accordions with layout"}, + ), + }, + ), + ), + ] diff --git a/content_manager/templates/content_manager/blocks/stepper.html b/content_manager/templates/content_manager/blocks/stepper.html index d92d66288..877c1d0df 100644 --- a/content_manager/templates/content_manager/blocks/stepper.html +++ b/content_manager/templates/content_manager/blocks/stepper.html @@ -1,14 +1,14 @@ {% load i18n %}
-

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

+ <{{ value.heading_tag | default:"h2" }} class="fr-stepper__title"> + {{ value.title }} + + {% with current_step=value.current total_steps=value.total %} + {% blocktranslate %}Step {{ current_step }} of {{ total_steps }}{% endblocktranslate %} + {% endwith %} + +
diff --git a/content_manager/templates/content_manager/catalog_index_page.html b/content_manager/templates/content_manager/catalog_index_page.html index 70ed561f1..5b6a436ba 100644 --- a/content_manager/templates/content_manager/catalog_index_page.html +++ b/content_manager/templates/content_manager/catalog_index_page.html @@ -116,6 +116,7 @@

{% translate "Filter by tag" %}

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

{% translate "Filter by tag" %}

pointer-events: none"> diff --git a/content_manager/templates/content_manager/content_page.html b/content_manager/templates/content_manager/content_page.html index e6a2085e2..ab4ad4f7b 100644 --- a/content_manager/templates/content_manager/content_page.html +++ b/content_manager/templates/content_manager/content_page.html @@ -38,7 +38,7 @@ {% include "content_manager/blocks/heading.html" %}
{% include "content_manager/blocks/breadcrumbs.html" %} - + {% if page.show_title %}

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

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

{% translate "Tags" %}

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

{{ first_letter }}

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

En savoir plus


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

Titre de la section


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

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

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

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

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

En savoir plus


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

Titre de la section


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

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

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

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

", + "title": "Titre de l'accordéon 2", + }, + ), + ], + "label": "Accordion", + }, + ), + 219: ( + "wagtail.blocks.StructBlock", + [[("accordion", 218), ("layout", 198)]], + {"group": "1. Section templates to be adapted", "label": "Accordions with layout"}, + ), + }, + ), + ), + ] diff --git a/events/templates/events/events_index_page.html b/events/templates/events/events_index_page.html index a662c2111..95772bde4 100644 --- a/events/templates/events/events_index_page.html +++ b/events/templates/events/events_index_page.html @@ -103,6 +103,7 @@

{% translate "Filter by category" %}

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

{% translate "Filter by tag" %}

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

{% translate "Filter by author" %}

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

{% translate "Filter by source" %}

{{ source.name }} {% endfor %} diff --git a/templates/blocks/header.html b/templates/blocks/header.html index 776a120bb..2c2651d73 100644 --- a/templates/blocks/header.html +++ b/templates/blocks/header.html @@ -89,7 +89,7 @@ {% block burger_menu %} {% translate "Search" as search_label %} -
+
+ {% endblock burger_menu %} {% block main_menu %}