From 0118b820f18461fa6dad66bad040a9f1b621cc91 Mon Sep 17 00:00:00 2001 From: Sylvain Boissel Date: Thu, 5 Dec 2024 15:35:56 +0100 Subject: [PATCH] [Catalogue] Carte contact verticale (#242) * Setting the new block aside for now * Work on the contact card * Finish code for contact cards --- ..._body_alter_blogindexpage_body_and_more.py | 3844 +++++++++++++++++ content_manager/blocks.py | 86 + .../locale/fr/LC_MESSAGES/django.mo | Bin 22968 -> 23443 bytes .../locale/fr/LC_MESSAGES/django.po | 241 +- .../migrations/0049_alter_contentpage_body.py | 1394 ++++++ .../blocks/contact_card_vertical.html | 55 + ...trypage_body_alter_eventsindexpage_body.py | 2774 ++++++++++++ static/css/style.css | 2 +- static/css/style.sass | 11 + 9 files changed, 8302 insertions(+), 105 deletions(-) create mode 100644 blog/migrations/0039_alter_blogentrypage_body_alter_blogindexpage_body_and_more.py create mode 100644 content_manager/migrations/0049_alter_contentpage_body.py create mode 100644 content_manager/templates/content_manager/blocks/contact_card_vertical.html create mode 100644 events/migrations/0011_alter_evententrypage_body_alter_eventsindexpage_body.py diff --git a/blog/migrations/0039_alter_blogentrypage_body_alter_blogindexpage_body_and_more.py b/blog/migrations/0039_alter_blogentrypage_body_alter_blogindexpage_body_and_more.py new file mode 100644 index 00000000..b0bcb20b --- /dev/null +++ b/blog/migrations/0039_alter_blogentrypage_body_alter_blogindexpage_body_and_more.py @@ -0,0 +1,3844 @@ +# Generated by Django 5.1.3 on 2024-12-05 14:24 + +import wagtail.fields +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("blog", "0038_blogindexpage_feed_posts_limit"), + ] + + operations = [ + migrations.AlterField( + model_name="blogentrypage", + name="body", + field=wagtail.fields.StreamField( + [ + ("paragraph", 0), + ("image", 9), + ("imageandtext", 22), + ("alert", 27), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("video", 53), + ("transcription", 54), + ("badges_list", 59), + ("tags_list", 64), + ("link", 65), + ("stepper", 71), + ("card", 93), + ("tile", 103), + ("tabs", 137), + ("markdown", 138), + ("iframe", 139), + ("separator", 142), + ("multicolumns", 151), + ("item_grid", 154), + ("fullwidthbackground", 156), + ("fullwidthbackgroundwithsidemenu", 163), + ("subpageslist", 164), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("html", 165), + ], + blank=True, + block_lookup={ + 0: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text"}), + 1: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": False}), + 2: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 3.", + "label": "Heading level", + "required": False, + }, + ), + 3: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image"}), + 4: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Alternative text (textual description of the image)", "required": False}, + ), + 5: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-content-media--sm", "Small"), + ("", "Medium"), + ("fr-content-media--lg", "Large"), + ], + "label": "Witdh", + "required": False, + }, + ), + 6: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-ratio-32x9", "32x9"), + ("fr-ratio-16x9", "16x9"), + ("fr-ratio-3x2", "3x2"), + ("fr-ratio-4x3", "4x3"), + ("fr-ratio-1x1", "1x1"), + ("fr-ratio-3x4", "3x4"), + ("fr-ratio-2x3", "2x3"), + ], + "label": "Image ratio", + "required": False, + }, + ), + 7: ("wagtail.blocks.CharBlock", (), {"label": "Caption", "required": False}), + 8: ("wagtail.blocks.URLBlock", (), {"label": "Link", "required": False}), + 9: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 2), + ("image", 3), + ("alt", 4), + ("width", 5), + ("image_ratio", 6), + ("caption", 7), + ("url", 8), + ] + ], + {}, + ), + 10: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("right", "Right")], + "label": "Side where the image is displayed", + }, + ), + 11: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("3", "3/12"), ("5", "5/12"), ("6", "6/12")], "label": "Image width"}, + ), + 12: ( + "wagtail.blocks.PageChooserBlock", + (), + { + "help_text": "Link to a page of this site. Use either this, the document, or the external URL parameter.", + "label": "Page", + "required": False, + }, + ), + 13: ( + "wagtail.documents.blocks.DocumentChooserBlock", + (), + { + "help_text": "Use either this, the external URL or the page parameter.", + "label": "Document", + "required": False, + }, + ), + 14: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Use either this, the document or the page parameter.", + "label": "External URL", + "required": False, + }, + ), + 15: ("wagtail.blocks.CharBlock", (), {"label": "Link label", "required": False}), + 16: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", "No icon"), + ("fr-icon-arrow-right-line fr-link--icon-right", "Icon on the right side"), + ("fr-icon-arrow-right-line fr-link--icon-left", "Icon on the left side"), + ], + "help_text": "Only used for internal links.", + "label": "Icon", + "required": False, + }, + ), + 17: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-link--sm", "Small"), ("", "Medium"), ("fr-link--lg", "Large")], + "label": "Size", + "required": False, + }, + ), + 18: ( + "wagtail.blocks.StructBlock", + [ + [ + ("page", 12), + ("document", 13), + ("external_url", 14), + ("text", 15), + ("icon", 16), + ("size", 17), + ] + ], + { + "help_text": "The link is shown at the bottom of the text block, with an arrow", + "label": "Link", + "required": False, + }, + ), + 19: ( + "wagtail.blocks.CharBlock", + (), + { + "group": "obsolete", + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.", + "label": "Link label (obsolete)", + "required": False, + }, + ), + 20: ( + "wagtail.blocks.PageChooserBlock", + (), + { + "group": "obsolete", + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.", + "label": "Internal link (obsolete)", + "required": False, + }, + ), + 21: ( + "wagtail.blocks.URLBlock", + (), + { + "group": "obsolete", + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.", + "label": "Link URL (obsolete)", + "required": False, + }, + ), + 22: ( + "wagtail.blocks.StructBlock", + [ + [ + ("image", 3), + ("image_side", 10), + ("image_ratio", 11), + ("text", 0), + ("link", 18), + ("link_label", 19), + ("page", 20), + ("link_url", 21), + ] + ], + {"label": "Image and text"}, + ), + 23: ("wagtail.blocks.CharBlock", (), {"label": "Message title", "required": False}), + 24: ("wagtail.blocks.TextBlock", (), {"label": "Message text", "required": False}), + 25: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("error", "Error"), + ("success", "Success"), + ("info", "Information"), + ("warning", "Warning"), + ], + "label": "Message type", + }, + ), + 26: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 3.", + "label": "Heading level", + }, + ), + 27: ( + "wagtail.blocks.StructBlock", + [[("title", 23), ("description", 24), ("level", 25), ("heading_tag", 26)]], + {"label": "Alert message"}, + ), + 28: ("wagtail.blocks.CharBlock", (), {"label": "Title"}), + 29: ("wagtail.blocks.RichTextBlock", (), {"label": "Content"}), + 30: ( + "wagtail.blocks.StructBlock", + [[("title", 28), ("content", 29)]], + {"label": "Accordion", "max_num": 15, "min_num": 1}, + ), + 31: ( + "wagtail.blocks.StreamBlock", + [[("title", 28), ("accordion", 30)]], + {"group": "DSFR components", "label": "Accordions"}, + ), + 32: ("content_manager.blocks.IconPickerBlock", (), {"label": "Icon", "required": False}), + 33: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + ], + "label": "Content", + "required": False, + }, + ), + 34: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-btn", "Primary"), + ("fr-btn fr-btn--secondary", "Secundary"), + ("fr-btn fr-btn--tertiary", "Tertiary"), + ("fr-btn fr-btn--tertiary-no-outline", "Tertiary without border"), + ], + "label": "Button type", + "required": False, + }, + ), + 35: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")], + "label": "Icon side", + "required": False, + }, + ), + 36: ( + "wagtail.blocks.StructBlock", + [ + [ + ("page", 12), + ("document", 13), + ("external_url", 14), + ("text", 15), + ("button_type", 34), + ("icon_class", 32), + ("icon_side", 35), + ] + ], + {"label": "Button", "required": False}, + ), + 37: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + "label": "Color", + "required": False, + }, + ), + 38: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 26), + ("icon_class", 32), + ("text", 33), + ("button", 36), + ("color", 37), + ] + ], + {"group": "DSFR components", "label": "Callout"}, + ), + 39: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + ], + "label": "Content", + }, + ), + 40: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-text--sm", "Small"), ("", "Medium"), ("fr-text--lg", "Large")], + "label": "Size", + "required": False, + }, + ), + 41: ( + "wagtail.blocks.StructBlock", + [[("text", 39), ("color", 37), ("size", 40)]], + {"group": "DSFR components", "label": "Highlight"}, + ), + 42: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image", "required": False}), + 43: ("wagtail.blocks.CharBlock", (), {"label": "Quote"}), + 44: ("wagtail.blocks.CharBlock", (), {"label": "Author name", "required": False}), + 45: ("wagtail.blocks.CharBlock", (), {"label": "Author title", "required": False}), + 46: ( + "wagtail.blocks.StructBlock", + [[("image", 42), ("quote", 43), ("author_name", 44), ("author_title", 45), ("color", 37)]], + {"group": "DSFR components", "label": "Quote"}, + ), + 47: ("wagtail.blocks.CharBlock", (), {"label": "Video title", "required": False}), + 48: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Use embed format, with a version that doesn't require a consent banner if available. (e.g. : https://www.youtube-nocookie.com/embed/gLzXOViPX-0) For Youtube, use Embed video and check Enable privacy-enhanced mode.", + "label": "Video URL", + }, + ), + 49: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-ratio-16x9", "16x9"), ("fr-ratio-4x3", "4x3"), ("fr-ratio-1x1", "1x1")], + "label": "Video ratio", + "required": False, + }, + ), + 50: ( + "wagtail.blocks.CharBlock", + (), + {"default": "Transcription", "label": "Title", "required": False}, + ), + 51: ("wagtail.blocks.RichTextBlock", (), {"label": "Transcription content", "required": False}), + 52: ( + "wagtail.blocks.StructBlock", + [[("title", 50), ("content", 51)]], + {"label": "Transcription", "required": False}, + ), + 53: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 47), + ("caption", 7), + ("url", 48), + ("width", 5), + ("video_ratio", 49), + ("transcription", 52), + ] + ], + {"label": "Video"}, + ), + 54: ("wagtail.blocks.StructBlock", [[("title", 50), ("content", 51)]], {"label": "Transcription"}), + 55: ("wagtail.blocks.CharBlock", (), {"label": "Badge label", "required": False}), + 56: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", [("new", "New"), ("grey", "Grey")]), + ( + "System colors", + [ + ("info", "Info"), + ("success", "Success"), + ("warning", "Warning"), + ("error", "Error"), + ], + ), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "label": "Badge color", + "required": False, + }, + ), + 57: ("wagtail.blocks.BooleanBlock", (), {"label": "Hide badge icon", "required": False}), + 58: ( + "wagtail.blocks.StructBlock", + [[("text", 55), ("color", 56), ("hide_icon", 57)]], + {"label": "Badge"}, + ), + 59: ("wagtail.blocks.StreamBlock", [[("badge", 58)]], {"label": "Badge list"}), + 60: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tag", "required": False}), + 61: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + "help_text": "Only for clickable tags", + "label": "Tag color", + "required": False, + }, + ), + 62: ( + "wagtail.blocks.StructBlock", + [[("page", 12), ("document", 13), ("external_url", 14)]], + {"required": False}, + ), + 63: ( + "wagtail.blocks.StructBlock", + [[("label", 28), ("is_small", 60), ("color", 61), ("icon_class", 32), ("link", 62)]], + {"label": "Tag"}, + ), + 64: ("wagtail.blocks.StreamBlock", [[("tag", 63)]], {"label": "Tag list"}), + 65: ( + "wagtail.blocks.StructBlock", + [ + [ + ("page", 12), + ("document", 13), + ("external_url", 14), + ("text", 15), + ("icon", 16), + ("size", 17), + ] + ], + {"label": "Single link"}, + ), + 66: ( + "wagtail.blocks.IntegerBlock", + (), + {"label": "Number of steps", "max_value": 8, "min_value": 1}, + ), + 67: ("wagtail.blocks.IntegerBlock", (), {"label": "Current step", "max_value": 8, "min_value": 1}), + 68: ("wagtail.blocks.TextBlock", (), {"label": "Detail"}), + 69: ("wagtail.blocks.StructBlock", [[("title", 28), ("detail", 68)]], {"label": "Step"}), + 70: ("wagtail.blocks.StreamBlock", [[("step", 69)]], {"label": "Steps"}), + 71: ( + "wagtail.blocks.StructBlock", + [[("title", 28), ("total", 66), ("current", 67), ("steps", 70)]], + {"group": "DSFR components", "label": "Stepper"}, + ), + 72: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-card--horizontal-tier", "1/3"), ("fr-card--horizontal-half", "50/50")], + "label": "Image ratio", + "required": False, + }, + ), + 73: ( + "wagtail.blocks.StreamBlock", + [[("badge", 58)]], + { + "help_text": "Only used if the card has an image.", + "label": "Image area badge", + "max_num": 1, + "required": False, + }, + ), + 74: ( + "wagtail.blocks.StructBlock", + [[("page", 12), ("document", 13), ("external_url", 14)]], + {"label": "Link", "required": False}, + ), + 75: ( + "wagtail.blocks.URLBlock", + (), + { + "group": "target", + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.", + "label": "Link (obsolete)", + "required": False, + }, + ), + 76: ( + "wagtail.documents.blocks.DocumentChooserBlock", + (), + { + "group": "target", + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.", + "label": "or Document (obsolete)", + "required": False, + }, + ), + 77: ("wagtail.blocks.CharBlock", (), {"label": "Top detail: text", "required": False}), + 78: ( + "content_manager.blocks.IconPickerBlock", + (), + {"label": "Top detail: icon", "required": False}, + ), + 79: ("wagtail.blocks.StreamBlock", [[("badge", 58)]], {}), + 80: ("wagtail.blocks.StreamBlock", [[("tag", 63)]], {}), + 81: ( + "wagtail.blocks.StreamBlock", + [[("badges", 79), ("tags", 80)]], + {"label": "Top detail: badges or tags", "max_num": 1, "required": False}, + ), + 82: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Incompatible with the bottom call-to-action. If the card links to a downloadable document, the values are pre-filled.", + "label": "Bottom detail: text", + "required": False, + }, + ), + 83: ( + "content_manager.blocks.IconPickerBlock", + (), + {"label": "Bottom detail: icon", "required": False}, + ), + 84: ( + "wagtail.blocks.StructBlock", + [[("page", 12), ("document", 13), ("external_url", 14), ("text", 15)]], + {"label": "Link"}, + ), + 85: ("wagtail.blocks.StreamBlock", [[("link", 84)]], {}), + 86: ( + "wagtail.blocks.StructBlock", + [ + [ + ("page", 12), + ("document", 13), + ("external_url", 14), + ("text", 15), + ("button_type", 34), + ("icon_class", 32), + ("icon_side", 35), + ] + ], + {"label": "Button"}, + ), + 87: ( + "wagtail.blocks.StreamBlock", + [[("button", 86)]], + { + "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", + "label": "Buttons", + }, + ), + 88: ( + "wagtail.blocks.StreamBlock", + [[("links", 85), ("buttons", 87)]], + { + "help_text": "Incompatible with the bottom detail text.", + "label": "Bottom call-to-action: links or buttons", + "max_num": 1, + "required": False, + }, + ), + 89: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with grey background", "required": False}), + 90: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without background", "required": False}), + 91: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without border", "required": False}), + 92: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with a shadow", "required": False}), + 93: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 28), + ("heading_tag", 26), + ("description", 33), + ("image", 42), + ("image_ratio", 72), + ("image_badge", 73), + ("link", 74), + ("url", 75), + ("document", 76), + ("top_detail_text", 77), + ("top_detail_icon", 78), + ("top_detail_badges_tags", 81), + ("bottom_detail_text", 82), + ("bottom_detail_icon", 83), + ("call_to_action", 88), + ("grey_background", 89), + ("no_background", 90), + ("no_border", 91), + ("shadow", 92), + ] + ], + {"group": "DSFR components", "label": "Horizontal card"}, + ), + 94: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": ["bold", "italic", "superscript", "subscript", "strikethrough"], + "label": "Content", + "required": False, + }, + ), + 95: ( + "wagtail.images.blocks.ImageChooserBlock", + (), + {"help_text": "Prefer SVG files.", "label": "Image", "required": False}, + ), + 96: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "If the tile links to a downloadable document, the values are pre-filled.", + "label": "Detail text", + "required": False, + }, + ), + 97: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tile", "required": False}), + 98: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with grey background", "required": False}), + 99: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without background", "required": False}), + 100: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without border", "required": False}), + 101: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with a shadow", "required": False}), + 102: ("wagtail.blocks.BooleanBlock", (), {"label": "Horizontal tile", "required": False}), + 103: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 28), + ("heading_tag", 26), + ("description", 94), + ("image", 95), + ("link", 74), + ("top_detail_badges_tags", 81), + ("detail_text", 96), + ("is_small", 97), + ("grey_background", 98), + ("no_background", 99), + ("no_border", 100), + ("shadow", 101), + ("is_horizontal", 102), + ] + ], + {"group": "DSFR components", "label": "Tile"}, + ), + 104: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 2), + ("image", 3), + ("alt", 4), + ("width", 5), + ("image_ratio", 6), + ("caption", 7), + ("url", 8), + ] + ], + {"label": "Image"}, + ), + 105: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text", "required": False}), + 106: ( + "wagtail.blocks.StreamBlock", + [[("buttons", 87)]], + {"label": "Call-to-action buttons", "max_num": 1, "required": False}, + ), + 107: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.", + "label": "Call to action label (obsolete)", + "required": False, + }, + ), + 108: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.", + "label": "Link (obsolete)", + "required": False, + }, + ), + 109: ( + "wagtail.blocks.StructBlock", + [[("text", 105), ("cta_buttons", 106), ("cta_label", 107), ("cta_url", 108)]], + {"label": "Text and call to action"}, + ), + 110: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Accessibility: The title should describe, in a clear and concise manner, the embedded content.", + "label": "Title", + }, + ), + 111: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Example for Tally: https://tally.so/embed/w2jMRa", + "label": "URL of the iframe", + }, + ), + 112: ("wagtail.blocks.IntegerBlock", (), {"label": "Height (in pixels)"}), + 113: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "For example: \"allow='geolocation'\".", + "label": "Parameters", + "required": False, + }, + ), + 114: ( + "wagtail.blocks.StructBlock", + [[("title", 110), ("url", 111), ("height", 112), ("parameters", 113)]], + {"group": "DSFR components", "label": "Iframe"}, + ), + 115: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + "required": False, + }, + ), + 116: ( + "wagtail.blocks.PageChooserBlock", + (), + {"label": "Blog", "page_type": ["blog.BlogIndexPage"]}, + ), + 117: ( + "wagtail.blocks.IntegerBlock", + (), + { + "default": 3, + "label": "Number of entries", + "max_value": 8, + "min_value": 1, + "required": False, + }, + ), + 118: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Category",), + {"label": "Filter by category", "required": False}, + ), + 119: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("content_manager.Tag",), + {"label": "Filter by tag", "required": False}, + ), + 120: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Person",), + {"label": "Filter by author", "required": False}, + ), + 121: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Organization",), + { + "help_text": "The source is the organization of the post author", + "label": "Filter by source", + "required": False, + }, + ), + 122: ( + "wagtail.blocks.BooleanBlock", + (), + {"default": False, "label": "Show filters", "required": False}, + ), + 123: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 115), + ("blog", 116), + ("entries_count", 117), + ("category_filter", 118), + ("tag_filter", 119), + ("author_filter", 120), + ("source_filter", 121), + ("show_filters", 122), + ] + ], + {"group": "Website structure", "label": "Blog recent entries"}, + ), + 124: ( + "wagtail.blocks.PageChooserBlock", + (), + {"label": "Event calendar", "page_type": ["events.EventsIndexPage"]}, + ), + 125: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 115), + ("index_page", 124), + ("entries_count", 117), + ("category_filter", 118), + ("tag_filter", 119), + ("author_filter", 120), + ("source_filter", 121), + ("show_filters", 122), + ] + ], + {"group": "Website structure", "label": "Event calendar recent entries"}, + ), + 126: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Incompatible with the bottom call-to-action.", + "label": "Bottom detail: text", + "required": False, + }, + ), + 127: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 28), + ("heading_tag", 26), + ("description", 33), + ("image", 42), + ("image_ratio", 6), + ("image_badge", 73), + ("link", 74), + ("url", 75), + ("document", 76), + ("top_detail_text", 77), + ("top_detail_icon", 78), + ("top_detail_badges_tags", 81), + ("bottom_detail_text", 126), + ("bottom_detail_icon", 83), + ("call_to_action", 88), + ("grey_background", 89), + ("no_background", 90), + ("no_border", 91), + ("shadow", 92), + ] + ], + {"group": "DSFR components", "label": "Vertical card"}, + ), + 128: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Person",), + { + "help_text": "Optional, all values can be manually specified or overriden below", + "label": "Person", + "required": False, + }, + ), + 129: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255, "required": False}), + 130: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255, "required": False}), + 131: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Organization", "max_length": 255, "required": False}, + ), + 132: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Contact info", "max_length": 500, "required": False}, + ), + 133: ("wagtail.blocks.StreamBlock", [[("tag", 63)]], {"label": "Tags", "required": False}), + 134: ( + "wagtail.blocks.StructBlock", + [ + [ + ("contact", 128), + ("link", 74), + ("heading_tag", 2), + ("name", 129), + ("role", 130), + ("organization", 131), + ("contact_info", 132), + ("image", 42), + ("tags", 133), + ] + ], + {"group": "Extra components", "label": "Contact card"}, + ), + 135: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 104), + ("video", 53), + ("transcription", 54), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("stepper", 71), + ("text_cta", 109), + ("link", 65), + ("iframe", 114), + ("tile", 103), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("card", 127), + ("contact_card", 134), + ] + ], + {"label": "Content"}, + ), + 136: ( + "wagtail.blocks.StructBlock", + [[("title", 28), ("content", 135)]], + {"label": "Tab", "max_num": 15, "min_num": 1}, + ), + 137: ( + "wagtail.blocks.StreamBlock", + [[("tabs", 136)]], + {"group": "DSFR components", "label": "Tabs"}, + ), + 138: ("wagtailmarkdown.blocks.MarkdownBlock", (), {"group": "Expert syntax", "label": "Markdown"}), + 139: ( + "wagtail.blocks.StructBlock", + [[("title", 110), ("url", 111), ("height", 112), ("parameters", 113)]], + {"group": "Expert syntax", "label": "Iframe"}, + ), + 140: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 3, "label": "Top margin", "max_value": 15, "min_value": 0}, + ), + 141: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 3, "label": "Bottom margin", "max_value": 15, "min_value": 0}, + ), + 142: ( + "wagtail.blocks.StructBlock", + [[("top_margin", 140), ("bottom_margin", 141)]], + {"group": "Page structure", "label": "Separator"}, + ), + 143: ( + "wagtail.images.blocks.ImageChooserBlock", + (), + {"label": "Background image", "required": False}, + ), + 144: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("Primary colors", [("blue-france", "Blue France"), ("red-marianne", "Red Marianne")]), + ("Neutral colors", [("grey", "Grey")]), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "help_text": "Uses the French Design System colors", + "label": "Background color", + "required": False, + }, + ), + 145: ( + "wagtail.blocks.RegexBlock", + (), + { + "error_messages": {"invalid": "Incorrect color format, must be #fff or #f5f5f5"}, + "help_text": "This field is obsolete and will be removed in the near future. Replace it with the background color.", + "label": "Background color, hexadecimal format (obsolete)", + "regex": "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$", + "required": False, + }, + ), + 146: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + "required": False, + }, + ), + 147: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("3", "3/12"), + ("4", "4/12"), + ("5", "5/12"), + ("6", "6/12"), + ("7", "7/12"), + ("8", "8/12"), + ("9", "9/12"), + ], + "help_text": "The total width of all columns should be 12.", + "label": "Column width", + "required": False, + }, + ), + 148: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 104), + ("video", 53), + ("transcription", 54), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("stepper", 71), + ("text_cta", 109), + ("link", 65), + ("iframe", 114), + ("tile", 103), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("card", 127), + ("contact_card", 134), + ] + ], + {"label": "Column content"}, + ), + 149: ( + "wagtail.blocks.StructBlock", + [[("width", 147), ("content", 148)]], + {"group": "Page structure", "label": "Adjustable column"}, + ), + 150: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 104), + ("video", 53), + ("transcription", 54), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("stepper", 71), + ("text_cta", 109), + ("link", 65), + ("iframe", 114), + ("tile", 103), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("card", 127), + ("column", 149), + ] + ], + {"label": "Columns"}, + ), + 151: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 143), + ("bg_color_class", 144), + ("bg_color", 145), + ("title", 1), + ("heading_tag", 146), + ("columns", 150), + ] + ], + {"group": "Page structure", "label": "Multiple columns"}, + ), + 152: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("3", "3/12"), ("4", "4/12"), ("6", "6/12")], "label": "Column width"}, + ), + 153: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 104), + ("video", 53), + ("transcription", 54), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("stepper", 71), + ("text_cta", 109), + ("link", 65), + ("iframe", 114), + ("tile", 103), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("card", 127), + ("contact_card", 134), + ] + ], + {"label": "Items"}, + ), + 154: ( + "wagtail.blocks.StructBlock", + [[("column_width", 152), ("items", 153)]], + {"group": "Page structure", "label": "Item grid"}, + ), + 155: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 104), + ("video", 53), + ("transcription", 54), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("stepper", 71), + ("text_cta", 109), + ("link", 65), + ("iframe", 114), + ("tile", 103), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("image_and_text", 22), + ("card", 93), + ("tabs", 137), + ("item_grid", 154), + ] + ], + {"label": "Content"}, + ), + 156: ( + "wagtail.blocks.StructBlock", + [[("bg_image", 143), ("bg_color_class", 144), ("content", 155)]], + {"group": "Page structure", "label": "Full width background"}, + ), + 157: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 104), + ("video", 53), + ("transcription", 54), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("stepper", 71), + ("text_cta", 109), + ("link", 65), + ("iframe", 114), + ("tile", 103), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("image_and_text", 22), + ("card", 93), + ("tabs", 137), + ("item_grid", 154), + ] + ], + {"label": "Main content"}, + ), + 158: ("wagtail.blocks.CharBlock", (), {"label": "Side menu title", "required": False}), + 159: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "label": "HTML", + }, + ), + 160: ("wagtail.blocks.PageChooserBlock", (), {"label": "Parent page"}), + 161: ("wagtail.blocks.StructBlock", [[("page", 160)]], {"label": "Page tree"}), + 162: ( + "wagtail.blocks.StreamBlock", + [[("html", 159), ("pagetree", 161)]], + {"label": "Side menu content"}, + ), + 163: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 143), + ("bg_color_class", 144), + ("main_content", 157), + ("sidemenu_title", 158), + ("sidemenu_content", 162), + ] + ], + {"group": "Page structure", "label": "Full width background with side menu"}, + ), + 164: ( + "wagtail.blocks.static_block.StaticBlock", + (), + { + "admin_text": "A simple, alphabetical list of the subpages of the current page.", + "group": "Website structure", + "label": "Subpages list", + "template": "content_manager/blocks/subpages_list.html", + }, + ), + 165: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "group": "Expert syntax", + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "readonly": True, + }, + ), + }, + ), + ), + migrations.AlterField( + model_name="blogindexpage", + name="body", + field=wagtail.fields.StreamField( + [ + ("paragraph", 0), + ("image", 9), + ("imageandtext", 22), + ("alert", 27), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("video", 53), + ("transcription", 54), + ("badges_list", 59), + ("tags_list", 64), + ("link", 65), + ("stepper", 71), + ("card", 93), + ("tile", 103), + ("tabs", 137), + ("markdown", 138), + ("iframe", 139), + ("separator", 142), + ("multicolumns", 151), + ("item_grid", 154), + ("fullwidthbackground", 156), + ("fullwidthbackgroundwithsidemenu", 163), + ("subpageslist", 164), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("html", 165), + ], + blank=True, + block_lookup={ + 0: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text"}), + 1: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": False}), + 2: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 3.", + "label": "Heading level", + "required": False, + }, + ), + 3: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image"}), + 4: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Alternative text (textual description of the image)", "required": False}, + ), + 5: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-content-media--sm", "Small"), + ("", "Medium"), + ("fr-content-media--lg", "Large"), + ], + "label": "Witdh", + "required": False, + }, + ), + 6: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-ratio-32x9", "32x9"), + ("fr-ratio-16x9", "16x9"), + ("fr-ratio-3x2", "3x2"), + ("fr-ratio-4x3", "4x3"), + ("fr-ratio-1x1", "1x1"), + ("fr-ratio-3x4", "3x4"), + ("fr-ratio-2x3", "2x3"), + ], + "label": "Image ratio", + "required": False, + }, + ), + 7: ("wagtail.blocks.CharBlock", (), {"label": "Caption", "required": False}), + 8: ("wagtail.blocks.URLBlock", (), {"label": "Link", "required": False}), + 9: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 2), + ("image", 3), + ("alt", 4), + ("width", 5), + ("image_ratio", 6), + ("caption", 7), + ("url", 8), + ] + ], + {}, + ), + 10: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("right", "Right")], + "label": "Side where the image is displayed", + }, + ), + 11: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("3", "3/12"), ("5", "5/12"), ("6", "6/12")], "label": "Image width"}, + ), + 12: ( + "wagtail.blocks.PageChooserBlock", + (), + { + "help_text": "Link to a page of this site. Use either this, the document, or the external URL parameter.", + "label": "Page", + "required": False, + }, + ), + 13: ( + "wagtail.documents.blocks.DocumentChooserBlock", + (), + { + "help_text": "Use either this, the external URL or the page parameter.", + "label": "Document", + "required": False, + }, + ), + 14: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Use either this, the document or the page parameter.", + "label": "External URL", + "required": False, + }, + ), + 15: ("wagtail.blocks.CharBlock", (), {"label": "Link label", "required": False}), + 16: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", "No icon"), + ("fr-icon-arrow-right-line fr-link--icon-right", "Icon on the right side"), + ("fr-icon-arrow-right-line fr-link--icon-left", "Icon on the left side"), + ], + "help_text": "Only used for internal links.", + "label": "Icon", + "required": False, + }, + ), + 17: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-link--sm", "Small"), ("", "Medium"), ("fr-link--lg", "Large")], + "label": "Size", + "required": False, + }, + ), + 18: ( + "wagtail.blocks.StructBlock", + [ + [ + ("page", 12), + ("document", 13), + ("external_url", 14), + ("text", 15), + ("icon", 16), + ("size", 17), + ] + ], + { + "help_text": "The link is shown at the bottom of the text block, with an arrow", + "label": "Link", + "required": False, + }, + ), + 19: ( + "wagtail.blocks.CharBlock", + (), + { + "group": "obsolete", + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.", + "label": "Link label (obsolete)", + "required": False, + }, + ), + 20: ( + "wagtail.blocks.PageChooserBlock", + (), + { + "group": "obsolete", + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.", + "label": "Internal link (obsolete)", + "required": False, + }, + ), + 21: ( + "wagtail.blocks.URLBlock", + (), + { + "group": "obsolete", + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.", + "label": "Link URL (obsolete)", + "required": False, + }, + ), + 22: ( + "wagtail.blocks.StructBlock", + [ + [ + ("image", 3), + ("image_side", 10), + ("image_ratio", 11), + ("text", 0), + ("link", 18), + ("link_label", 19), + ("page", 20), + ("link_url", 21), + ] + ], + {"label": "Image and text"}, + ), + 23: ("wagtail.blocks.CharBlock", (), {"label": "Message title", "required": False}), + 24: ("wagtail.blocks.TextBlock", (), {"label": "Message text", "required": False}), + 25: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("error", "Error"), + ("success", "Success"), + ("info", "Information"), + ("warning", "Warning"), + ], + "label": "Message type", + }, + ), + 26: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 3.", + "label": "Heading level", + }, + ), + 27: ( + "wagtail.blocks.StructBlock", + [[("title", 23), ("description", 24), ("level", 25), ("heading_tag", 26)]], + {"label": "Alert message"}, + ), + 28: ("wagtail.blocks.CharBlock", (), {"label": "Title"}), + 29: ("wagtail.blocks.RichTextBlock", (), {"label": "Content"}), + 30: ( + "wagtail.blocks.StructBlock", + [[("title", 28), ("content", 29)]], + {"label": "Accordion", "max_num": 15, "min_num": 1}, + ), + 31: ( + "wagtail.blocks.StreamBlock", + [[("title", 28), ("accordion", 30)]], + {"group": "DSFR components", "label": "Accordions"}, + ), + 32: ("content_manager.blocks.IconPickerBlock", (), {"label": "Icon", "required": False}), + 33: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + ], + "label": "Content", + "required": False, + }, + ), + 34: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-btn", "Primary"), + ("fr-btn fr-btn--secondary", "Secundary"), + ("fr-btn fr-btn--tertiary", "Tertiary"), + ("fr-btn fr-btn--tertiary-no-outline", "Tertiary without border"), + ], + "label": "Button type", + "required": False, + }, + ), + 35: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")], + "label": "Icon side", + "required": False, + }, + ), + 36: ( + "wagtail.blocks.StructBlock", + [ + [ + ("page", 12), + ("document", 13), + ("external_url", 14), + ("text", 15), + ("button_type", 34), + ("icon_class", 32), + ("icon_side", 35), + ] + ], + {"label": "Button", "required": False}, + ), + 37: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + "label": "Color", + "required": False, + }, + ), + 38: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 26), + ("icon_class", 32), + ("text", 33), + ("button", 36), + ("color", 37), + ] + ], + {"group": "DSFR components", "label": "Callout"}, + ), + 39: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + ], + "label": "Content", + }, + ), + 40: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-text--sm", "Small"), ("", "Medium"), ("fr-text--lg", "Large")], + "label": "Size", + "required": False, + }, + ), + 41: ( + "wagtail.blocks.StructBlock", + [[("text", 39), ("color", 37), ("size", 40)]], + {"group": "DSFR components", "label": "Highlight"}, + ), + 42: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image", "required": False}), + 43: ("wagtail.blocks.CharBlock", (), {"label": "Quote"}), + 44: ("wagtail.blocks.CharBlock", (), {"label": "Author name", "required": False}), + 45: ("wagtail.blocks.CharBlock", (), {"label": "Author title", "required": False}), + 46: ( + "wagtail.blocks.StructBlock", + [[("image", 42), ("quote", 43), ("author_name", 44), ("author_title", 45), ("color", 37)]], + {"group": "DSFR components", "label": "Quote"}, + ), + 47: ("wagtail.blocks.CharBlock", (), {"label": "Video title", "required": False}), + 48: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Use embed format, with a version that doesn't require a consent banner if available. (e.g. : https://www.youtube-nocookie.com/embed/gLzXOViPX-0) For Youtube, use Embed video and check Enable privacy-enhanced mode.", + "label": "Video URL", + }, + ), + 49: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-ratio-16x9", "16x9"), ("fr-ratio-4x3", "4x3"), ("fr-ratio-1x1", "1x1")], + "label": "Video ratio", + "required": False, + }, + ), + 50: ( + "wagtail.blocks.CharBlock", + (), + {"default": "Transcription", "label": "Title", "required": False}, + ), + 51: ("wagtail.blocks.RichTextBlock", (), {"label": "Transcription content", "required": False}), + 52: ( + "wagtail.blocks.StructBlock", + [[("title", 50), ("content", 51)]], + {"label": "Transcription", "required": False}, + ), + 53: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 47), + ("caption", 7), + ("url", 48), + ("width", 5), + ("video_ratio", 49), + ("transcription", 52), + ] + ], + {"label": "Video"}, + ), + 54: ("wagtail.blocks.StructBlock", [[("title", 50), ("content", 51)]], {"label": "Transcription"}), + 55: ("wagtail.blocks.CharBlock", (), {"label": "Badge label", "required": False}), + 56: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", [("new", "New"), ("grey", "Grey")]), + ( + "System colors", + [ + ("info", "Info"), + ("success", "Success"), + ("warning", "Warning"), + ("error", "Error"), + ], + ), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "label": "Badge color", + "required": False, + }, + ), + 57: ("wagtail.blocks.BooleanBlock", (), {"label": "Hide badge icon", "required": False}), + 58: ( + "wagtail.blocks.StructBlock", + [[("text", 55), ("color", 56), ("hide_icon", 57)]], + {"label": "Badge"}, + ), + 59: ("wagtail.blocks.StreamBlock", [[("badge", 58)]], {"label": "Badge list"}), + 60: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tag", "required": False}), + 61: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + "help_text": "Only for clickable tags", + "label": "Tag color", + "required": False, + }, + ), + 62: ( + "wagtail.blocks.StructBlock", + [[("page", 12), ("document", 13), ("external_url", 14)]], + {"required": False}, + ), + 63: ( + "wagtail.blocks.StructBlock", + [[("label", 28), ("is_small", 60), ("color", 61), ("icon_class", 32), ("link", 62)]], + {"label": "Tag"}, + ), + 64: ("wagtail.blocks.StreamBlock", [[("tag", 63)]], {"label": "Tag list"}), + 65: ( + "wagtail.blocks.StructBlock", + [ + [ + ("page", 12), + ("document", 13), + ("external_url", 14), + ("text", 15), + ("icon", 16), + ("size", 17), + ] + ], + {"label": "Single link"}, + ), + 66: ( + "wagtail.blocks.IntegerBlock", + (), + {"label": "Number of steps", "max_value": 8, "min_value": 1}, + ), + 67: ("wagtail.blocks.IntegerBlock", (), {"label": "Current step", "max_value": 8, "min_value": 1}), + 68: ("wagtail.blocks.TextBlock", (), {"label": "Detail"}), + 69: ("wagtail.blocks.StructBlock", [[("title", 28), ("detail", 68)]], {"label": "Step"}), + 70: ("wagtail.blocks.StreamBlock", [[("step", 69)]], {"label": "Steps"}), + 71: ( + "wagtail.blocks.StructBlock", + [[("title", 28), ("total", 66), ("current", 67), ("steps", 70)]], + {"group": "DSFR components", "label": "Stepper"}, + ), + 72: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-card--horizontal-tier", "1/3"), ("fr-card--horizontal-half", "50/50")], + "label": "Image ratio", + "required": False, + }, + ), + 73: ( + "wagtail.blocks.StreamBlock", + [[("badge", 58)]], + { + "help_text": "Only used if the card has an image.", + "label": "Image area badge", + "max_num": 1, + "required": False, + }, + ), + 74: ( + "wagtail.blocks.StructBlock", + [[("page", 12), ("document", 13), ("external_url", 14)]], + {"label": "Link", "required": False}, + ), + 75: ( + "wagtail.blocks.URLBlock", + (), + { + "group": "target", + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.", + "label": "Link (obsolete)", + "required": False, + }, + ), + 76: ( + "wagtail.documents.blocks.DocumentChooserBlock", + (), + { + "group": "target", + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.", + "label": "or Document (obsolete)", + "required": False, + }, + ), + 77: ("wagtail.blocks.CharBlock", (), {"label": "Top detail: text", "required": False}), + 78: ( + "content_manager.blocks.IconPickerBlock", + (), + {"label": "Top detail: icon", "required": False}, + ), + 79: ("wagtail.blocks.StreamBlock", [[("badge", 58)]], {}), + 80: ("wagtail.blocks.StreamBlock", [[("tag", 63)]], {}), + 81: ( + "wagtail.blocks.StreamBlock", + [[("badges", 79), ("tags", 80)]], + {"label": "Top detail: badges or tags", "max_num": 1, "required": False}, + ), + 82: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Incompatible with the bottom call-to-action. If the card links to a downloadable document, the values are pre-filled.", + "label": "Bottom detail: text", + "required": False, + }, + ), + 83: ( + "content_manager.blocks.IconPickerBlock", + (), + {"label": "Bottom detail: icon", "required": False}, + ), + 84: ( + "wagtail.blocks.StructBlock", + [[("page", 12), ("document", 13), ("external_url", 14), ("text", 15)]], + {"label": "Link"}, + ), + 85: ("wagtail.blocks.StreamBlock", [[("link", 84)]], {}), + 86: ( + "wagtail.blocks.StructBlock", + [ + [ + ("page", 12), + ("document", 13), + ("external_url", 14), + ("text", 15), + ("button_type", 34), + ("icon_class", 32), + ("icon_side", 35), + ] + ], + {"label": "Button"}, + ), + 87: ( + "wagtail.blocks.StreamBlock", + [[("button", 86)]], + { + "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", + "label": "Buttons", + }, + ), + 88: ( + "wagtail.blocks.StreamBlock", + [[("links", 85), ("buttons", 87)]], + { + "help_text": "Incompatible with the bottom detail text.", + "label": "Bottom call-to-action: links or buttons", + "max_num": 1, + "required": False, + }, + ), + 89: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with grey background", "required": False}), + 90: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without background", "required": False}), + 91: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without border", "required": False}), + 92: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with a shadow", "required": False}), + 93: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 28), + ("heading_tag", 26), + ("description", 33), + ("image", 42), + ("image_ratio", 72), + ("image_badge", 73), + ("link", 74), + ("url", 75), + ("document", 76), + ("top_detail_text", 77), + ("top_detail_icon", 78), + ("top_detail_badges_tags", 81), + ("bottom_detail_text", 82), + ("bottom_detail_icon", 83), + ("call_to_action", 88), + ("grey_background", 89), + ("no_background", 90), + ("no_border", 91), + ("shadow", 92), + ] + ], + {"group": "DSFR components", "label": "Horizontal card"}, + ), + 94: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": ["bold", "italic", "superscript", "subscript", "strikethrough"], + "label": "Content", + "required": False, + }, + ), + 95: ( + "wagtail.images.blocks.ImageChooserBlock", + (), + {"help_text": "Prefer SVG files.", "label": "Image", "required": False}, + ), + 96: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "If the tile links to a downloadable document, the values are pre-filled.", + "label": "Detail text", + "required": False, + }, + ), + 97: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tile", "required": False}), + 98: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with grey background", "required": False}), + 99: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without background", "required": False}), + 100: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without border", "required": False}), + 101: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with a shadow", "required": False}), + 102: ("wagtail.blocks.BooleanBlock", (), {"label": "Horizontal tile", "required": False}), + 103: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 28), + ("heading_tag", 26), + ("description", 94), + ("image", 95), + ("link", 74), + ("top_detail_badges_tags", 81), + ("detail_text", 96), + ("is_small", 97), + ("grey_background", 98), + ("no_background", 99), + ("no_border", 100), + ("shadow", 101), + ("is_horizontal", 102), + ] + ], + {"group": "DSFR components", "label": "Tile"}, + ), + 104: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 2), + ("image", 3), + ("alt", 4), + ("width", 5), + ("image_ratio", 6), + ("caption", 7), + ("url", 8), + ] + ], + {"label": "Image"}, + ), + 105: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text", "required": False}), + 106: ( + "wagtail.blocks.StreamBlock", + [[("buttons", 87)]], + {"label": "Call-to-action buttons", "max_num": 1, "required": False}, + ), + 107: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.", + "label": "Call to action label (obsolete)", + "required": False, + }, + ), + 108: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.", + "label": "Link (obsolete)", + "required": False, + }, + ), + 109: ( + "wagtail.blocks.StructBlock", + [[("text", 105), ("cta_buttons", 106), ("cta_label", 107), ("cta_url", 108)]], + {"label": "Text and call to action"}, + ), + 110: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Accessibility: The title should describe, in a clear and concise manner, the embedded content.", + "label": "Title", + }, + ), + 111: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Example for Tally: https://tally.so/embed/w2jMRa", + "label": "URL of the iframe", + }, + ), + 112: ("wagtail.blocks.IntegerBlock", (), {"label": "Height (in pixels)"}), + 113: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "For example: \"allow='geolocation'\".", + "label": "Parameters", + "required": False, + }, + ), + 114: ( + "wagtail.blocks.StructBlock", + [[("title", 110), ("url", 111), ("height", 112), ("parameters", 113)]], + {"group": "DSFR components", "label": "Iframe"}, + ), + 115: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + "required": False, + }, + ), + 116: ( + "wagtail.blocks.PageChooserBlock", + (), + {"label": "Blog", "page_type": ["blog.BlogIndexPage"]}, + ), + 117: ( + "wagtail.blocks.IntegerBlock", + (), + { + "default": 3, + "label": "Number of entries", + "max_value": 8, + "min_value": 1, + "required": False, + }, + ), + 118: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Category",), + {"label": "Filter by category", "required": False}, + ), + 119: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("content_manager.Tag",), + {"label": "Filter by tag", "required": False}, + ), + 120: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Person",), + {"label": "Filter by author", "required": False}, + ), + 121: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Organization",), + { + "help_text": "The source is the organization of the post author", + "label": "Filter by source", + "required": False, + }, + ), + 122: ( + "wagtail.blocks.BooleanBlock", + (), + {"default": False, "label": "Show filters", "required": False}, + ), + 123: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 115), + ("blog", 116), + ("entries_count", 117), + ("category_filter", 118), + ("tag_filter", 119), + ("author_filter", 120), + ("source_filter", 121), + ("show_filters", 122), + ] + ], + {"group": "Website structure", "label": "Blog recent entries"}, + ), + 124: ( + "wagtail.blocks.PageChooserBlock", + (), + {"label": "Event calendar", "page_type": ["events.EventsIndexPage"]}, + ), + 125: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 115), + ("index_page", 124), + ("entries_count", 117), + ("category_filter", 118), + ("tag_filter", 119), + ("author_filter", 120), + ("source_filter", 121), + ("show_filters", 122), + ] + ], + {"group": "Website structure", "label": "Event calendar recent entries"}, + ), + 126: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Incompatible with the bottom call-to-action.", + "label": "Bottom detail: text", + "required": False, + }, + ), + 127: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 28), + ("heading_tag", 26), + ("description", 33), + ("image", 42), + ("image_ratio", 6), + ("image_badge", 73), + ("link", 74), + ("url", 75), + ("document", 76), + ("top_detail_text", 77), + ("top_detail_icon", 78), + ("top_detail_badges_tags", 81), + ("bottom_detail_text", 126), + ("bottom_detail_icon", 83), + ("call_to_action", 88), + ("grey_background", 89), + ("no_background", 90), + ("no_border", 91), + ("shadow", 92), + ] + ], + {"group": "DSFR components", "label": "Vertical card"}, + ), + 128: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Person",), + { + "help_text": "Optional, all values can be manually specified or overriden below", + "label": "Person", + "required": False, + }, + ), + 129: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255, "required": False}), + 130: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255, "required": False}), + 131: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Organization", "max_length": 255, "required": False}, + ), + 132: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Contact info", "max_length": 500, "required": False}, + ), + 133: ("wagtail.blocks.StreamBlock", [[("tag", 63)]], {"label": "Tags", "required": False}), + 134: ( + "wagtail.blocks.StructBlock", + [ + [ + ("contact", 128), + ("link", 74), + ("heading_tag", 2), + ("name", 129), + ("role", 130), + ("organization", 131), + ("contact_info", 132), + ("image", 42), + ("tags", 133), + ] + ], + {"group": "Extra components", "label": "Contact card"}, + ), + 135: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 104), + ("video", 53), + ("transcription", 54), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("stepper", 71), + ("text_cta", 109), + ("link", 65), + ("iframe", 114), + ("tile", 103), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("card", 127), + ("contact_card", 134), + ] + ], + {"label": "Content"}, + ), + 136: ( + "wagtail.blocks.StructBlock", + [[("title", 28), ("content", 135)]], + {"label": "Tab", "max_num": 15, "min_num": 1}, + ), + 137: ( + "wagtail.blocks.StreamBlock", + [[("tabs", 136)]], + {"group": "DSFR components", "label": "Tabs"}, + ), + 138: ("wagtailmarkdown.blocks.MarkdownBlock", (), {"group": "Expert syntax", "label": "Markdown"}), + 139: ( + "wagtail.blocks.StructBlock", + [[("title", 110), ("url", 111), ("height", 112), ("parameters", 113)]], + {"group": "Expert syntax", "label": "Iframe"}, + ), + 140: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 3, "label": "Top margin", "max_value": 15, "min_value": 0}, + ), + 141: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 3, "label": "Bottom margin", "max_value": 15, "min_value": 0}, + ), + 142: ( + "wagtail.blocks.StructBlock", + [[("top_margin", 140), ("bottom_margin", 141)]], + {"group": "Page structure", "label": "Separator"}, + ), + 143: ( + "wagtail.images.blocks.ImageChooserBlock", + (), + {"label": "Background image", "required": False}, + ), + 144: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("Primary colors", [("blue-france", "Blue France"), ("red-marianne", "Red Marianne")]), + ("Neutral colors", [("grey", "Grey")]), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "help_text": "Uses the French Design System colors", + "label": "Background color", + "required": False, + }, + ), + 145: ( + "wagtail.blocks.RegexBlock", + (), + { + "error_messages": {"invalid": "Incorrect color format, must be #fff or #f5f5f5"}, + "help_text": "This field is obsolete and will be removed in the near future. Replace it with the background color.", + "label": "Background color, hexadecimal format (obsolete)", + "regex": "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$", + "required": False, + }, + ), + 146: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + "required": False, + }, + ), + 147: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("3", "3/12"), + ("4", "4/12"), + ("5", "5/12"), + ("6", "6/12"), + ("7", "7/12"), + ("8", "8/12"), + ("9", "9/12"), + ], + "help_text": "The total width of all columns should be 12.", + "label": "Column width", + "required": False, + }, + ), + 148: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 104), + ("video", 53), + ("transcription", 54), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("stepper", 71), + ("text_cta", 109), + ("link", 65), + ("iframe", 114), + ("tile", 103), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("card", 127), + ("contact_card", 134), + ] + ], + {"label": "Column content"}, + ), + 149: ( + "wagtail.blocks.StructBlock", + [[("width", 147), ("content", 148)]], + {"group": "Page structure", "label": "Adjustable column"}, + ), + 150: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 104), + ("video", 53), + ("transcription", 54), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("stepper", 71), + ("text_cta", 109), + ("link", 65), + ("iframe", 114), + ("tile", 103), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("card", 127), + ("column", 149), + ] + ], + {"label": "Columns"}, + ), + 151: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 143), + ("bg_color_class", 144), + ("bg_color", 145), + ("title", 1), + ("heading_tag", 146), + ("columns", 150), + ] + ], + {"group": "Page structure", "label": "Multiple columns"}, + ), + 152: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("3", "3/12"), ("4", "4/12"), ("6", "6/12")], "label": "Column width"}, + ), + 153: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 104), + ("video", 53), + ("transcription", 54), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("stepper", 71), + ("text_cta", 109), + ("link", 65), + ("iframe", 114), + ("tile", 103), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("card", 127), + ("contact_card", 134), + ] + ], + {"label": "Items"}, + ), + 154: ( + "wagtail.blocks.StructBlock", + [[("column_width", 152), ("items", 153)]], + {"group": "Page structure", "label": "Item grid"}, + ), + 155: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 104), + ("video", 53), + ("transcription", 54), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("stepper", 71), + ("text_cta", 109), + ("link", 65), + ("iframe", 114), + ("tile", 103), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("image_and_text", 22), + ("card", 93), + ("tabs", 137), + ("item_grid", 154), + ] + ], + {"label": "Content"}, + ), + 156: ( + "wagtail.blocks.StructBlock", + [[("bg_image", 143), ("bg_color_class", 144), ("content", 155)]], + {"group": "Page structure", "label": "Full width background"}, + ), + 157: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 104), + ("video", 53), + ("transcription", 54), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("stepper", 71), + ("text_cta", 109), + ("link", 65), + ("iframe", 114), + ("tile", 103), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("image_and_text", 22), + ("card", 93), + ("tabs", 137), + ("item_grid", 154), + ] + ], + {"label": "Main content"}, + ), + 158: ("wagtail.blocks.CharBlock", (), {"label": "Side menu title", "required": False}), + 159: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "label": "HTML", + }, + ), + 160: ("wagtail.blocks.PageChooserBlock", (), {"label": "Parent page"}), + 161: ("wagtail.blocks.StructBlock", [[("page", 160)]], {"label": "Page tree"}), + 162: ( + "wagtail.blocks.StreamBlock", + [[("html", 159), ("pagetree", 161)]], + {"label": "Side menu content"}, + ), + 163: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 143), + ("bg_color_class", 144), + ("main_content", 157), + ("sidemenu_title", 158), + ("sidemenu_content", 162), + ] + ], + {"group": "Page structure", "label": "Full width background with side menu"}, + ), + 164: ( + "wagtail.blocks.static_block.StaticBlock", + (), + { + "admin_text": "A simple, alphabetical list of the subpages of the current page.", + "group": "Website structure", + "label": "Subpages list", + "template": "content_manager/blocks/subpages_list.html", + }, + ), + 165: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "group": "Expert syntax", + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "readonly": True, + }, + ), + }, + ), + ), + migrations.AlterField( + model_name="category", + name="colophon", + field=wagtail.fields.StreamField( + [("paragraph", 0), ("imageandtext", 14), ("quote", 20), ("multicolumns", 134), ("contact_card", 138)], + blank=True, + block_lookup={ + 0: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text"}), + 1: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image"}), + 2: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("right", "Right")], + "label": "Side where the image is displayed", + }, + ), + 3: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("3", "3/12"), ("5", "5/12"), ("6", "6/12")], "label": "Image width"}, + ), + 4: ( + "wagtail.blocks.PageChooserBlock", + (), + { + "help_text": "Link to a page of this site. Use either this, the document, or the external URL parameter.", + "label": "Page", + "required": False, + }, + ), + 5: ( + "wagtail.documents.blocks.DocumentChooserBlock", + (), + { + "help_text": "Use either this, the external URL or the page parameter.", + "label": "Document", + "required": False, + }, + ), + 6: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Use either this, the document or the page parameter.", + "label": "External URL", + "required": False, + }, + ), + 7: ("wagtail.blocks.CharBlock", (), {"label": "Link label", "required": False}), + 8: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", "No icon"), + ("fr-icon-arrow-right-line fr-link--icon-right", "Icon on the right side"), + ("fr-icon-arrow-right-line fr-link--icon-left", "Icon on the left side"), + ], + "help_text": "Only used for internal links.", + "label": "Icon", + "required": False, + }, + ), + 9: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-link--sm", "Small"), ("", "Medium"), ("fr-link--lg", "Large")], + "label": "Size", + "required": False, + }, + ), + 10: ( + "wagtail.blocks.StructBlock", + [[("page", 4), ("document", 5), ("external_url", 6), ("text", 7), ("icon", 8), ("size", 9)]], + { + "help_text": "The link is shown at the bottom of the text block, with an arrow", + "label": "Link", + "required": False, + }, + ), + 11: ( + "wagtail.blocks.CharBlock", + (), + { + "group": "obsolete", + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.", + "label": "Link label (obsolete)", + "required": False, + }, + ), + 12: ( + "wagtail.blocks.PageChooserBlock", + (), + { + "group": "obsolete", + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.", + "label": "Internal link (obsolete)", + "required": False, + }, + ), + 13: ( + "wagtail.blocks.URLBlock", + (), + { + "group": "obsolete", + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.", + "label": "Link URL (obsolete)", + "required": False, + }, + ), + 14: ( + "wagtail.blocks.StructBlock", + [ + [ + ("image", 1), + ("image_side", 2), + ("image_ratio", 3), + ("text", 0), + ("link", 10), + ("link_label", 11), + ("page", 12), + ("link_url", 13), + ] + ], + {"label": "Bloc image et texte"}, + ), + 15: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image", "required": False}), + 16: ("wagtail.blocks.CharBlock", (), {"label": "Quote"}), + 17: ("wagtail.blocks.CharBlock", (), {"label": "Author name", "required": False}), + 18: ("wagtail.blocks.CharBlock", (), {"label": "Author title", "required": False}), + 19: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + "label": "Color", + "required": False, + }, + ), + 20: ( + "wagtail.blocks.StructBlock", + [[("image", 15), ("quote", 16), ("author_name", 17), ("author_title", 18), ("color", 19)]], + {"label": "Citation"}, + ), + 21: ( + "wagtail.images.blocks.ImageChooserBlock", + (), + {"label": "Background image", "required": False}, + ), + 22: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("Primary colors", [("blue-france", "Blue France"), ("red-marianne", "Red Marianne")]), + ("Neutral colors", [("grey", "Grey")]), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "help_text": "Uses the French Design System colors", + "label": "Background color", + "required": False, + }, + ), + 23: ( + "wagtail.blocks.RegexBlock", + (), + { + "error_messages": {"invalid": "Incorrect color format, must be #fff or #f5f5f5"}, + "help_text": "This field is obsolete and will be removed in the near future. Replace it with the background color.", + "label": "Background color, hexadecimal format (obsolete)", + "regex": "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$", + "required": False, + }, + ), + 24: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": False}), + 25: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + "required": False, + }, + ), + 26: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 3.", + "label": "Heading level", + "required": False, + }, + ), + 27: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Alternative text (textual description of the image)", "required": False}, + ), + 28: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-content-media--sm", "Small"), + ("", "Medium"), + ("fr-content-media--lg", "Large"), + ], + "label": "Witdh", + "required": False, + }, + ), + 29: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-ratio-32x9", "32x9"), + ("fr-ratio-16x9", "16x9"), + ("fr-ratio-3x2", "3x2"), + ("fr-ratio-4x3", "4x3"), + ("fr-ratio-1x1", "1x1"), + ("fr-ratio-3x4", "3x4"), + ("fr-ratio-2x3", "2x3"), + ], + "label": "Image ratio", + "required": False, + }, + ), + 30: ("wagtail.blocks.CharBlock", (), {"label": "Caption", "required": False}), + 31: ("wagtail.blocks.URLBlock", (), {"label": "Link", "required": False}), + 32: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 24), + ("heading_tag", 26), + ("image", 1), + ("alt", 27), + ("width", 28), + ("image_ratio", 29), + ("caption", 30), + ("url", 31), + ] + ], + {"label": "Image"}, + ), + 33: ("wagtail.blocks.CharBlock", (), {"label": "Video title", "required": False}), + 34: ( + "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", + }, + ), + 35: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-ratio-16x9", "16x9"), ("fr-ratio-4x3", "4x3"), ("fr-ratio-1x1", "1x1")], + "label": "Video ratio", + "required": False, + }, + ), + 36: ( + "wagtail.blocks.CharBlock", + (), + {"default": "Transcription", "label": "Title", "required": False}, + ), + 37: ("wagtail.blocks.RichTextBlock", (), {"label": "Transcription content", "required": False}), + 38: ( + "wagtail.blocks.StructBlock", + [[("title", 36), ("content", 37)]], + {"label": "Transcription", "required": False}, + ), + 39: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 33), + ("caption", 30), + ("url", 34), + ("width", 28), + ("video_ratio", 35), + ("transcription", 38), + ] + ], + {"label": "Video"}, + ), + 40: ("wagtail.blocks.StructBlock", [[("title", 36), ("content", 37)]], {"label": "Transcription"}), + 41: ("wagtail.blocks.CharBlock", (), {"label": "Title"}), + 42: ("wagtail.blocks.RichTextBlock", (), {"label": "Content"}), + 43: ( + "wagtail.blocks.StructBlock", + [[("title", 41), ("content", 42)]], + {"label": "Accordion", "max_num": 15, "min_num": 1}, + ), + 44: ( + "wagtail.blocks.StreamBlock", + [[("title", 41), ("accordion", 43)]], + {"group": "DSFR components", "label": "Accordions"}, + ), + 45: ( + "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", + }, + ), + 46: ("content_manager.blocks.IconPickerBlock", (), {"label": "Icon", "required": False}), + 47: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + ], + "label": "Content", + "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: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")], + "label": "Icon side", + "required": False, + }, + ), + 50: ( + "wagtail.blocks.StructBlock", + [ + [ + ("page", 4), + ("document", 5), + ("external_url", 6), + ("text", 7), + ("button_type", 48), + ("icon_class", 46), + ("icon_side", 49), + ] + ], + {"label": "Button", "required": False}, + ), + 51: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 24), + ("heading_tag", 45), + ("icon_class", 46), + ("text", 47), + ("button", 50), + ("color", 19), + ] + ], + {"group": "DSFR components", "label": "Callout"}, + ), + 52: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + ], + "label": "Content", + }, + ), + 53: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-text--sm", "Small"), ("", "Medium"), ("fr-text--lg", "Large")], + "label": "Size", + "required": False, + }, + ), + 54: ( + "wagtail.blocks.StructBlock", + [[("text", 52), ("color", 19), ("size", 53)]], + {"group": "DSFR components", "label": "Highlight"}, + ), + 55: ( + "wagtail.blocks.StructBlock", + [[("image", 15), ("quote", 16), ("author_name", 17), ("author_title", 18), ("color", 19)]], + {"group": "DSFR components", "label": "Quote"}, + ), + 56: ( + "wagtail.blocks.IntegerBlock", + (), + {"label": "Number of steps", "max_value": 8, "min_value": 1}, + ), + 57: ("wagtail.blocks.IntegerBlock", (), {"label": "Current step", "max_value": 8, "min_value": 1}), + 58: ("wagtail.blocks.TextBlock", (), {"label": "Detail"}), + 59: ("wagtail.blocks.StructBlock", [[("title", 41), ("detail", 58)]], {"label": "Step"}), + 60: ("wagtail.blocks.StreamBlock", [[("step", 59)]], {"label": "Steps"}), + 61: ( + "wagtail.blocks.StructBlock", + [[("title", 41), ("total", 56), ("current", 57), ("steps", 60)]], + {"group": "DSFR components", "label": "Stepper"}, + ), + 62: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text", "required": False}), + 63: ( + "wagtail.blocks.StructBlock", + [ + [ + ("page", 4), + ("document", 5), + ("external_url", 6), + ("text", 7), + ("button_type", 48), + ("icon_class", 46), + ("icon_side", 49), + ] + ], + {"label": "Button"}, + ), + 64: ( + "wagtail.blocks.StreamBlock", + [[("button", 63)]], + { + "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", + }, + ), + 65: ( + "wagtail.blocks.StreamBlock", + [[("buttons", 64)]], + {"label": "Call-to-action buttons", "max_num": 1, "required": False}, + ), + 66: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.", + "label": "Call to action label (obsolete)", + "required": False, + }, + ), + 67: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.", + "label": "Link (obsolete)", + "required": False, + }, + ), + 68: ( + "wagtail.blocks.StructBlock", + [[("text", 62), ("cta_buttons", 65), ("cta_label", 66), ("cta_url", 67)]], + {"label": "Text and call to action"}, + ), + 69: ( + "wagtail.blocks.StructBlock", + [[("page", 4), ("document", 5), ("external_url", 6), ("text", 7), ("icon", 8), ("size", 9)]], + {"label": "Single link"}, + ), + 70: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Accessibility: The title should describe, in a clear and concise manner, the embedded content.", + "label": "Title", + }, + ), + 71: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Example for Tally: https://tally.so/embed/w2jMRa", + "label": "URL of the iframe", + }, + ), + 72: ("wagtail.blocks.IntegerBlock", (), {"label": "Height (in pixels)"}), + 73: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "For example: \"allow='geolocation'\".", + "label": "Parameters", + "required": False, + }, + ), + 74: ( + "wagtail.blocks.StructBlock", + [[("title", 70), ("url", 71), ("height", 72), ("parameters", 73)]], + {"group": "DSFR components", "label": "Iframe"}, + ), + 75: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": ["bold", "italic", "superscript", "subscript", "strikethrough"], + "label": "Content", + "required": False, + }, + ), + 76: ( + "wagtail.images.blocks.ImageChooserBlock", + (), + {"help_text": "Prefer SVG files.", "label": "Image", "required": False}, + ), + 77: ( + "wagtail.blocks.StructBlock", + [[("page", 4), ("document", 5), ("external_url", 6)]], + {"label": "Link", "required": False}, + ), + 78: ("wagtail.blocks.CharBlock", (), {"label": "Badge label", "required": False}), + 79: ( + "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, + }, + ), + 80: ("wagtail.blocks.BooleanBlock", (), {"label": "Hide badge icon", "required": False}), + 81: ( + "wagtail.blocks.StructBlock", + [[("text", 78), ("color", 79), ("hide_icon", 80)]], + {"label": "Badge"}, + ), + 82: ("wagtail.blocks.StreamBlock", [[("badge", 81)]], {}), + 83: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tag", "required": False}), + 84: ( + "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, + }, + ), + 85: ( + "wagtail.blocks.StructBlock", + [[("page", 4), ("document", 5), ("external_url", 6)]], + {"required": False}, + ), + 86: ( + "wagtail.blocks.StructBlock", + [[("label", 41), ("is_small", 83), ("color", 84), ("icon_class", 46), ("link", 85)]], + {"label": "Tag"}, + ), + 87: ("wagtail.blocks.StreamBlock", [[("tag", 86)]], {}), + 88: ( + "wagtail.blocks.StreamBlock", + [[("badges", 82), ("tags", 87)]], + {"label": "Top detail: badges or tags", "max_num": 1, "required": False}, + ), + 89: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "If the tile links to a downloadable document, the values are pre-filled.", + "label": "Detail text", + "required": False, + }, + ), + 90: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tile", "required": False}), + 91: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with grey background", "required": False}), + 92: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without background", "required": False}), + 93: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without border", "required": False}), + 94: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with a shadow", "required": False}), + 95: ("wagtail.blocks.BooleanBlock", (), {"label": "Horizontal tile", "required": False}), + 96: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 41), + ("heading_tag", 45), + ("description", 75), + ("image", 76), + ("link", 77), + ("top_detail_badges_tags", 88), + ("detail_text", 89), + ("is_small", 90), + ("grey_background", 91), + ("no_background", 92), + ("no_border", 93), + ("shadow", 94), + ("is_horizontal", 95), + ] + ], + {"group": "DSFR components", "label": "Tile"}, + ), + 97: ( + "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, + }, + ), + 98: ( + "wagtail.blocks.PageChooserBlock", + (), + {"label": "Blog", "page_type": ["blog.BlogIndexPage"]}, + ), + 99: ( + "wagtail.blocks.IntegerBlock", + (), + { + "default": 3, + "label": "Number of entries", + "max_value": 8, + "min_value": 1, + "required": False, + }, + ), + 100: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Category",), + {"label": "Filter by category", "required": False}, + ), + 101: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("content_manager.Tag",), + {"label": "Filter by tag", "required": False}, + ), + 102: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Person",), + {"label": "Filter by author", "required": False}, + ), + 103: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Organization",), + { + "help_text": "The source is the organization of the post author", + "label": "Filter by source", + "required": False, + }, + ), + 104: ( + "wagtail.blocks.BooleanBlock", + (), + {"default": False, "label": "Show filters", "required": False}, + ), + 105: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 24), + ("heading_tag", 97), + ("blog", 98), + ("entries_count", 99), + ("category_filter", 100), + ("tag_filter", 101), + ("author_filter", 102), + ("source_filter", 103), + ("show_filters", 104), + ] + ], + {"group": "Website structure", "label": "Blog recent entries"}, + ), + 106: ( + "wagtail.blocks.PageChooserBlock", + (), + {"label": "Event calendar", "page_type": ["events.EventsIndexPage"]}, + ), + 107: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 24), + ("heading_tag", 97), + ("index_page", 106), + ("entries_count", 99), + ("category_filter", 100), + ("tag_filter", 101), + ("author_filter", 102), + ("source_filter", 103), + ("show_filters", 104), + ] + ], + {"group": "Website structure", "label": "Event calendar recent entries"}, + ), + 108: ( + "wagtail.blocks.StreamBlock", + [[("badge", 81)]], + { + "help_text": "Only used if the card has an image.", + "label": "Image area badge", + "max_num": 1, + "required": False, + }, + ), + 109: ( + "wagtail.blocks.URLBlock", + (), + { + "group": "target", + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.", + "label": "Link (obsolete)", + "required": False, + }, + ), + 110: ( + "wagtail.documents.blocks.DocumentChooserBlock", + (), + { + "group": "target", + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.", + "label": "or Document (obsolete)", + "required": False, + }, + ), + 111: ("wagtail.blocks.CharBlock", (), {"label": "Top detail: text", "required": False}), + 112: ( + "content_manager.blocks.IconPickerBlock", + (), + {"label": "Top detail: icon", "required": False}, + ), + 113: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Incompatible with the bottom call-to-action.", + "label": "Bottom detail: text", + "required": False, + }, + ), + 114: ( + "content_manager.blocks.IconPickerBlock", + (), + {"label": "Bottom detail: icon", "required": False}, + ), + 115: ( + "wagtail.blocks.StructBlock", + [[("page", 4), ("document", 5), ("external_url", 6), ("text", 7)]], + {"label": "Link"}, + ), + 116: ("wagtail.blocks.StreamBlock", [[("link", 115)]], {}), + 117: ( + "wagtail.blocks.StreamBlock", + [[("links", 116), ("buttons", 64)]], + { + "help_text": "Incompatible with the bottom detail text.", + "label": "Bottom call-to-action: links or buttons", + "max_num": 1, + "required": False, + }, + ), + 118: ( + "wagtail.blocks.BooleanBlock", + (), + {"label": "Card with grey background", "required": False}, + ), + 119: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without background", "required": False}), + 120: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without border", "required": False}), + 121: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with a shadow", "required": False}), + 122: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 41), + ("heading_tag", 45), + ("description", 47), + ("image", 15), + ("image_ratio", 29), + ("image_badge", 108), + ("link", 77), + ("url", 109), + ("document", 110), + ("top_detail_text", 111), + ("top_detail_icon", 112), + ("top_detail_badges_tags", 88), + ("bottom_detail_text", 113), + ("bottom_detail_icon", 114), + ("call_to_action", 117), + ("grey_background", 118), + ("no_background", 119), + ("no_border", 120), + ("shadow", 121), + ] + ], + {"group": "DSFR components", "label": "Vertical card"}, + ), + 123: ( + "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, + }, + ), + 124: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Person",), + { + "help_text": "Optional, all values can be manually specified or overriden below", + "label": "Person", + "required": False, + }, + ), + 125: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255, "required": False}), + 126: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255, "required": False}), + 127: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Organization", "max_length": 255, "required": False}, + ), + 128: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Contact info", "max_length": 500, "required": False}, + ), + 129: ("wagtail.blocks.StreamBlock", [[("tag", 86)]], {"label": "Tags", "required": False}), + 130: ( + "wagtail.blocks.StructBlock", + [ + [ + ("contact", 124), + ("link", 77), + ("heading_tag", 26), + ("name", 125), + ("role", 126), + ("organization", 127), + ("contact_info", 128), + ("image", 15), + ("tags", 129), + ] + ], + {"group": "Extra components", "label": "Contact card"}, + ), + 131: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 32), + ("video", 39), + ("transcription", 40), + ("accordions", 44), + ("callout", 51), + ("highlight", 54), + ("quote", 55), + ("stepper", 61), + ("text_cta", 68), + ("link", 69), + ("iframe", 74), + ("tile", 96), + ("blog_recent_entries", 105), + ("events_recent_entries", 107), + ("card", 122), + ("contact_card", 130), + ] + ], + {"label": "Column content"}, + ), + 132: ( + "wagtail.blocks.StructBlock", + [[("width", 123), ("content", 131)]], + {"group": "Page structure", "label": "Adjustable column"}, + ), + 133: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 32), + ("video", 39), + ("transcription", 40), + ("accordions", 44), + ("callout", 51), + ("highlight", 54), + ("quote", 55), + ("stepper", 61), + ("text_cta", 68), + ("link", 69), + ("iframe", 74), + ("tile", 96), + ("blog_recent_entries", 105), + ("events_recent_entries", 107), + ("card", 122), + ("column", 132), + ] + ], + {"label": "Columns"}, + ), + 134: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 21), + ("bg_color_class", 22), + ("bg_color", 23), + ("title", 24), + ("heading_tag", 25), + ("columns", 133), + ] + ], + {"label": "Multi-colonnes"}, + ), + 135: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255}), + 136: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255}), + 137: ("wagtail.blocks.CharBlock", (), {"label": "Organization", "max_length": 255}), + 138: ( + "wagtail.blocks.StructBlock", + [[("name", 135), ("role", 136), ("organization", 137), ("contact_info", 128), ("image", 1)]], + {"label": "Contact card"}, + ), + }, + help_text="Text displayed at the end of every page in the category", + ), + ), + ] diff --git a/content_manager/blocks.py b/content_manager/blocks.py index 8f5c99fe..b37a94e3 100644 --- a/content_manager/blocks.py +++ b/content_manager/blocks.py @@ -717,6 +717,91 @@ class Meta: template = "content_manager/blocks/video.html" +class VerticalContactCardStructValue(blocks.StructValue): + def display(self): + contact = self.get("contact", None) + + name = self.get("name", "") + if contact and not name: + name = contact.name + + role = self.get("role", "") + if contact and not role: + role = contact.role + + organization = self.get("organization", "") + if contact and not organization: + organization = contact.organization.name + + image = self.get("image", "") + if contact and not image: + image = contact.image + + return {"name": name, "role": role, "organization": organization, "image": image} + + def enlarge_link(self): + """ + Determine if we need (and can) enlarge the link on the card. + This requires: + - That a link is present + - That no other link is used on the card (such as a tag with a link, or a call-to-action) + """ + link = self.get("link") + tags = self.get("tags") + call_to_action = self.get("call_to_action", "") + + if not (link and link.url()): + return False + + enlarge = True + if len(call_to_action): + enlarge = False + elif len(tags): + print(tags) + print(tags.raw_data) + tags_list = tags.raw_data + for tag in tags_list: + if ( + tag["value"]["link"]["page"] is not None + or tag["value"]["link"]["document"] is not None + or tag["value"]["link"]["external_url"] != "" + ): + enlarge = False + + return enlarge + + +class VerticalContactCardBlock(blocks.StructBlock): + contact = SnippetChooserBlock( + "blog.Person", + label=_("Person"), + help_text=_("Optional, all values can be manually specified or overriden below"), + required=False, + ) + link = LinkWithoutLabelBlock( + label=_("Link"), + required=False, + ) + heading_tag = blocks.ChoiceBlock( + label=_("Heading level"), + choices=HEADING_CHOICES, + required=False, + default="h3", + help_text=_("Adapt to the page layout. Defaults to heading 3."), + ) + name = blocks.CharBlock(label=_("Name"), max_length=255, required=False) + role = blocks.CharBlock(label=_("Role"), max_length=255, required=False) + organization = blocks.CharBlock(label=_("Organization"), max_length=255, required=False) + contact_info = blocks.CharBlock(label=_("Contact info"), max_length=500, required=False) + image = ImageChooserBlock(label="Image", required=False) + tags = TagListBlock(label=_("Tags"), required=False) + + class Meta: + icon = "user" + value_class = VerticalContactCardStructValue + template = ("content_manager/blocks/contact_card_vertical.html",) + + ## Other apps-related blocks class RecentEntriesStructValue(blocks.StructValue): """ @@ -877,6 +962,7 @@ class Meta: class ColumnBlock(CommonStreamBlock): card = VerticalCardBlock(label=_("Vertical card"), group=_("DSFR components")) + contact_card = VerticalContactCardBlock(label=_("Contact card"), group=_("Extra components")) class ItemGridBlock(blocks.StructBlock): diff --git a/content_manager/locale/fr/LC_MESSAGES/django.mo b/content_manager/locale/fr/LC_MESSAGES/django.mo index 1e68d355272be7ee9555b4cde556d814ec185af9..2b741e942ca3a44d7c53738dde3850268fc59fbb 100644 GIT binary patch delta 6949 zcmY+|30Rd?9>?*6fGmOv?x1i{TmeOJ%OxqrHP^~gNAn6-MS+X=f=iQg)ly5#YSc_~ zvau|eER`&moHVy)%C(#_wOlIAEORThw7$Rl9_D%GJpTEdbMAZ3`#;P3LTxS&S@2#+ z;H&tsMTXKU#F+ZHFv^%E)MIL>*O-!e#^m5c9Elr|OH5pXG0~Wasn`S?Vqa{G#n=cJ zVkU03evfgq6B2_4OgfcVI_}27cpvt}<@g|;!))wAc2#g9#^5xpj&rdUzGT}UV>s;- zsO!&Ie?ldE3pIi825JY4sYWG?js(=ClWjX2o6_!J`$t(zQ3*eZy1@%r8CTf$YK)-0 z32WkZbm0-y_*bnFNygOX{w9%%zL15QQAgYEi}AGYM^@d8!8$k{HPDNw8NG>-_#SFy zcA!>ZKUT$0ZT}h6eJ-KK`xOKFLR_-*#U#`PX||n>8aT(cd!q&%V%r|9M%#x3}+1 zLr_~X2Q{HZsFhq{Ek~{7ZrlDGb^ZC2fRpJjbm+9+MxEXij~9hJy#RKkZ*hwha1g7sR!R_<6M$wHaMqcV1(mN*+VKsVd&XB~mM zaS?ye@0X&Ug6Y;pSW0^hW^sR$+{9VZ!Pd!GmkXAmGT(&Z_Z=}iTZvw)Yc8O?U5Ksdje`jOEC>+p(d~aL%F|smx?mpirTY1sMCJ}`DbqM zL$Ayf);9vPQ8(^{>hF(Q>QSgf3T=C;{d^W`g%+a@^&626}NGY68EZwkkS<^{+yu zZiaJVDr%sX7=zgui#e#7_D5}v50%(_)Y86!ygJN!)ObfwEBY1cP+mrj7v9oYfq2w? z8U(0lMh#J!HnSIGp>EIxHP8UtKN>sGEd!i{tPn=BuBJ zH10lRVgd6B75z5)8g+x4s3nWzBxy#CaR#O#e><3USRFsI9z)IK0&3>hQO|j3w)2?Q zL(RM;#$guL!0y2|`~NVNcsj;o8=Qt(;*EF|f57#)lMhqT*VehwVpM`FQ7g9=wfCE> zJ5gJ+A4lL(R07%U9CI;R&;LVIG|*_|Q8(kTHa?FUU=^l>kOcOkeWblH!!eO8HS@`+ z8_z_}nVFB=%e-&Bf*ol$yNlO3=2=%@KpCB;qBq)A)JjBh^#Dw?PQX0c+mL@Ixsx-4 zVOWE9Ay&ib$TpkjP+PGRHL-)JEjx-;@jKM@*E_NQ!N;Pr^M!cS;c#I+Y>XP9EAk7{ zS^aZBj4NSz;F06ljDmh*F&4(jUnLmbF zk+~R&%WZoVHlV#7mB?|_id{n`5W)ItOKPCTNkS!%j!L)<>iWK@aYqKIXa-|ZUzmn^ z3g)4{_$q3t)}jvCHrw8V8t^FUbYDab{4;81p& zn~q!9Qy1hod-*grroA1N@mbUoU$kDuWZJio2gM{Xx)Sb>T9J{cgvO&1oQ+C+iPH|4 z^|oUd>MVST+M{!ri#6_bUMxdVdpZww=$2v=d<*rxqo^64L7kzisDy8zZXD9h+0vS* zEovS#z@FHSuGT)*2T?N_g}Px0Y9>$E{#Q^>&wA^JsFnH5wvVH>@<-H+!@D~P)W-*D zx5moc-^`(+3+AIv`%2VI*V_KAs2Lna9m;R8A>KqKR-a{Rhne^^j>S~GhP*0Fy&le1 z3_^`F0(HL<3_L+)4i%C#F>Ji{av(O+1*lWL5Oqk`p_XnJhT{ROjGti`9!G7#Db&m_ z+jdkh=P66TG4!`b7rxw!=f4@159rWibsn{(l{tx8fw~xpO;M*c6LrJ!s6-~B-V=|Z z5`6)cz}waxs4YB(~^6%6d75<}%vREDQeGq{FY`mp}I z&oLI0@MTp0cI#f$(jP=^&3W5@33dGqYn=hkjoV=f{r6x3_ct4hXFF_5Bm5gwJ9GUPNutHQSCF>>Tbm)b))pg7aruP>IJZ z)WEq|6$fH0K7yJ_5h}5%sDvIzt;kaR7nUQhf8*o8uy|$zD#4HkjG2yi;RM`@W3UNt zp@3%m3>9U%0JU_hPy_G9c>Ef5-4&dKH&BPlJH%O$=TXz0T(N1}Y{nrQCbZ{6V-5Dd*EJd8N#3s^RA%Xd8qRj&hJ=_cGfUwN$9HtUsL;^VjE%(p}o9Cyh*4;@P&#}o%)9~{!Khb zcb*Z`X0f+WqwqYA}VuA?<92SDvGwJqI_;EY254(^|=JE1M@m@fM^iH{;O!O|4ZywgOW@<7OegM zk7x!8B~)tSC0s)^Q3pk5LFH%S58_?oQG)Yo!npn)IEYZu|L|O9?{6;Bu{zkzbIAu? zZG9GgWb4Q9d%|zqB8qF#J7Y>V~5~-;4t-Hh}*XBRh(_>i8kRXj)CAGjruH! zj&l5t7(kpM66iaQ2MHd1bCM__&J!w|i7Uh%H7Hk!b;Lbt*m46q5S5)9n!nlp7jT27 z5<}%hqAnLakM9vG3y9B%n?xI;qU2Edofu8DB?^f!qL>&=^dZI&uMlNK3&KUHyi6P+ zGKg62*IY~4f=Vn_lrL>175_;j5)TkdiS9)34FvZS+lYFEO1wkxXE;Bn5tWH>##c$V zPNM!pu!pTopwihk^omtkOspi%5u=D7 z(0;!Pb(K>(O0{k0+jM-PUR&zWKbd+b+a8E7*?N0?+SbKzq8G7>m_SS+-Xb~@e<3Q$ zQ&j#=%q02}cWM7mQ>iE^+;kp|TKJ>weBastM-a~vyNEPGC5os+d`0vlDoRf(k;JdW zYqm3)aqAH(S;VI){0O0AlX`6VD>k9ehcO}L2kO2NUdx?V>dJHb@=Z5yaj6;w#bdnX zB}r2%RnMJL>T|pDyhSD6Vo!0Yzx!5OdHjq}>>BNH z6}gMc=$-2Fmw56D#uRw+U0$EdJIUko736z#NuhVL8Q>f1E-rY~t#QhSG_Mg7?(zA( z#S6x^*c>+4Tj(iIN?RWto0XB-*44Ug$E@tM%+}?{+fIu}b^A&^hv+T|}RDJk5wx`-LL3w$1bd4rt2(W9JM6nmIPskf|@DHIaS z##83=yGlG|lepfsYfY)o!(?`?)@*jI<`QoiBl_~jxqV}U?Yx4Fe2?GnE%V!X`JH*4 f=`%DWa$s;`#hwKn?>igW!&{seoO1ns%VPcn651nD delta 6464 zcmYM(30##`8prVi0$vbQ5Jg11;EJIrDB^;Jlz@p^S;C0f<^ozFE{$8gW~pU5nP^rn zsbi5zZa0^5CT%7i%{?p27L1zQE4NZBo!|ey2j_e~58rdn``+`O^PKZuu*$atZ1n{= z-$n&3G?b(OW18ZSP-Es&UlOHWV-7VoCJPVaP>hN-hFeS-hT#-!i8HY|uEAD#09)WC z?1+t?gyeLRgF@ORrzW);D- zGg0?vTl=FXJQ%fr;r_N`OevKhIwoTSbZomE+t7Z+_V2KMikk3A)B}FS5DbiW+o4#S zc0-KDcuc@F)c6CfBe4GXOPS0Xpg^vo}ma4K&lXUqlVC#J1O9J=$AQ6WNW*z;RRt&f4}x z%%FY4n&EZZrP!PP3QWgyUgP*v(;~qbw$I#wn!tmo6_lVRP>L+pJcT+;OHf;|AGPAI zP?vg1$4L?TD{h`)=t)*s0HLYR5auJP^m4pH%zqc>DKwE2d_j;v;sBJjo1ix zqaIv^d3Xvn!8Deuv(gQf(SE3j4n$?ld6a=gNevIR3S7937OTMX^S=LJAE5$K~sc7b>F&HmduVD~v)7mu{HK8!nikhG@ zk%G!ZHyn%uZ2N8GoS7Y{R3Are)laDB{f-`gtf64_24nK z{~1)O7osMz!nW7i>+hp7v=8-qevNu-E+M;SqS!Z$*9EnJKImwM1ypn>hF~a;Mtxuc zk|pyhY7cjyQhE{ffCjg?_a~!PmX4ZW7HT2+7>Yx2CKlWNpHT}8NGAW<^HB1o8|$Ik zv8b7Qtv&7aA}pnUIBLS5p;qz(*1-#?ajv5l=HcWjQxT~9nxGbzg!;b8Z%6($(_%W5 zy2;3^Y-XbdtVE@3E9%hg#c-^`Fg%NT&~K=T|ACr7V0-s^IBNVD)HrQze)6GqHqr2^QlK9EO>E4{P8RsFl5m`la$7>H$Yk89Reo&<%VVgBhIP z>}D3$*ZaTHtr#C_B_Ck~9z?y@-=JQ@i>Q@*IEj%Mj(R{d+fKtM+IL`QEI_4r4t|C^ zaXl{X6jS6*}^>9m0gS}())jziUznl!+r1&WP408a<6&Wx(~b44rE!kVo&Q-)P%NS zH15YJti}O&+1k6CF^|w*h#KcAI{IK|T1sUO*2BTbc9~JAtyqj&*=l6Z%sSNTw*z(m zK@7(#)ct2sXX6^`Ox!?yKDLMZH=-9C)6VWe{*|I4IvV0wRO+8YeHAZ2J!mm1g>R$2 zfHoqpxcLO*@H+BWm}!#9dB6~cSS9r7wWzORAwGPovBjWo`hQP^QgnT+@Yd@R-sn11vP;q zsDY|bDL;X|@CveRraK2fj>kT@7ISqSwRKsyxqso5p(eNpmC@za3iQ%;)>7e(Fb7aG z4$N{V5QUmpGt`VzZ9C7li%@$$7PS=)_Qo}sisw;V*MeE=Y^9-om*k*6_ZYG;$4sW8 z!}0=Zrt?q_eigNMm8h-w(7Mlh)LLylhg!fD)B`=)ZbqA;`n#eId!BVLhUoo&)OL)+ z7;cz>TJciU1m4B_a1Sbl-rL>ltx>1CCu*g)+x~k{3n)Q-ekwM{mrxUX7rWqYoWt|Y z4Js{h&K>Tb$s15-;1p`0%cu!?$nUf0MLuFyp%+hL3ti7~4|6-zVeE~{ToDH22n@kT zF$l+@!ycH4RJ8KvQSBAj6gT1sJctR{g%g&91sIRhP$^x8%D{Tm7H&r!&fOS-fqCvk zLNS(hH0rHO$s_-IU@jf95Vcn&sMl^1YT#MO`7|$ME&Lp7<1tibsxb+#Vn=MwE5RFU z2BNOdLyc2m+nZ4f+~0@%>w%}~&;+ib+I8-9_bLvx1szZ+&bE#~e$|`V=zncdpF4s| z?f0m?KZ)9kKT-EL=?W}HJMk;(?tULL_Pyoh!1I_h-^%XcRfgL+Uh&chzq z4ELc2&sZ;^Qv4@s3mWxv?~Au)qMqXvQ5i#J1UA8=sFYnm4G`Mjok(-k15!{c%RpVv z$7CFi9q=XF{~>CeW2m!o9<`u)1KfkfL|cr#%9so?yup`Q4?%^4~xK|IGX31Dk>we??89O8&Nae zib~yn)WBy@6AQZ6y)OozpdF7oLkmzD*^IjX5JuxE)Wol&4r@5yX1Xs49lcK3RP-L_ z*b9ZIvoO}S=i=?OD=-JoU`hZdc@V3m{ZN7Xhe~3hdpHYF86AoB@p06|9qWA5gx)A5 z|Kq9n?2So(aVOFZwby-7dsm2^@j=uV)k4(Pyo1ccj3#PIm^vtL5FH6EgarFD*#*}V zDyxWm?Z3(fg6|H0nZi%Ty;)A%S`R!==qzlqed6y#7C}<{WjH^5#BO4YzlVQ-`aww{W)W2cuk+3FwXMB*vxnai)SD4M z5`QB$5-W-3L;z#!0IK}M#sBlyn{}q%h@1YPBh7YZ;^mt+81oGEPi;F9gYAUNslP-l zCseKw7yPyV|5!lv5u!1lnTqp?1nOr|<#^5Pj?kD*+*)21-JpD0bdZxvs~NWrLzRCL zKl^L$k0S8c_CfrZ7)N-Ccs>`6?TJr_!Nf?Sn5ajLBBF@z36%$kw#0vl3Zk34r|$P# z0|xtrPL*4T&xyy08AN@q)s&sK5=Y-=>Zvss@FC&_+m7J+bX#9&tz*YYr`^uq$HqKi zFCIXBoy;U&w0)6Q@eMJLXlVzjroNb{O?x$}yhi*^{F`V)zlRt|{V5`ls40u6bS9!4 zZurjjhEUI;9*HWi5KW12H7Lo%HDZk#ly8aKh!aFhq6wcX#MgNf@p~OW(rHts{ukmXL-?sHTv7fCs#&?O2h+afp#<>g65w(dg ziIc=3LM4HS4dBI$qY^`?yhk+UgU@2HI;g)YZD~#WL0cbzF|;RQSK=74jtHV}JN}DM zX+@kOqUk@3?-MFph#Sh+E-H@^iQMoOP9s$260M1SM0Y}^1yPIp^uIBB`+N8=0oGbr zV(WZ0KOS2V?Cani7wGdPmU?_;w?qY$&raU#>)mc$SVYJ6X`K^N)4QjqCwENq1!O!~ e+qdf0U4g!ty>^EAD)S2i$|L$$`>ym~9R5F(WutZg diff --git a/content_manager/locale/fr/LC_MESSAGES/django.po b/content_manager/locale/fr/LC_MESSAGES/django.po index 1cc92ae1..9cb6feb7 100644 --- a/content_manager/locale/fr/LC_MESSAGES/django.po +++ b/content_manager/locale/fr/LC_MESSAGES/django.po @@ -7,8 +7,8 @@ msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-10-24 15:55+0200\n" -"PO-Revision-Date: 2024-10-24 15:55+0200\n" +"POT-Creation-Date: 2024-12-05 15:22+0100\n" +"PO-Revision-Date: 2024-12-05 15:23+0100\n" "Last-Translator: \n" "Language-Team: \n" "Language: fr\n" @@ -26,13 +26,13 @@ msgstr "Afficher le titre sur l’image d’en-tête ?" msgid "Header image" msgstr "Image d’en-tête" -#: content_manager/abstract.py:39 content_manager/blocks.py:939 -#: content_manager/blocks.py:980 content_manager/blocks.py:1013 +#: content_manager/abstract.py:39 content_manager/blocks.py:1025 +#: content_manager/blocks.py:1066 content_manager/blocks.py:1099 msgid "Background color" msgstr "Couleur de fond" -#: content_manager/abstract.py:43 content_manager/blocks.py:941 -#: content_manager/blocks.py:982 content_manager/blocks.py:1015 +#: content_manager/abstract.py:43 content_manager/blocks.py:1027 +#: content_manager/blocks.py:1068 content_manager/blocks.py:1101 msgid "Uses the French Design System colors" msgstr "Utilise les couleurs du système de design de l'État" @@ -147,7 +147,7 @@ msgstr "Libellé du lien" #: content_manager/blocks.py:107 content_manager/blocks.py:282 #: content_manager/blocks.py:390 content_manager/blocks.py:533 -#: content_manager/blocks.py:594 +#: content_manager/blocks.py:594 content_manager/blocks.py:782 msgid "Link" msgstr "Lien" @@ -214,9 +214,9 @@ msgstr "Badge" #: content_manager/blocks.py:427 content_manager/blocks.py:451 #: content_manager/blocks.py:493 content_manager/blocks.py:568 #: content_manager/blocks.py:623 content_manager/blocks.py:632 -#: content_manager/blocks.py:681 content_manager/blocks.py:795 -#: content_manager/blocks.py:825 content_manager/blocks.py:896 -#: content_manager/blocks.py:952 content_manager/models.py:393 +#: content_manager/blocks.py:681 content_manager/blocks.py:880 +#: content_manager/blocks.py:910 content_manager/blocks.py:982 +#: content_manager/blocks.py:1038 content_manager/models.py:393 msgid "Title" msgstr "Titre" @@ -239,27 +239,28 @@ msgstr "Tag" #: content_manager/blocks.py:265 content_manager/blocks.py:380 #: content_manager/blocks.py:439 content_manager/blocks.py:453 -#: content_manager/blocks.py:570 content_manager/blocks.py:797 -#: content_manager/blocks.py:827 content_manager/blocks.py:954 +#: content_manager/blocks.py:570 content_manager/blocks.py:786 +#: content_manager/blocks.py:882 content_manager/blocks.py:912 +#: content_manager/blocks.py:1040 msgid "Heading level" msgstr "Niveau de titre" #: content_manager/blocks.py:268 content_manager/blocks.py:383 #: content_manager/blocks.py:442 content_manager/blocks.py:456 -#: content_manager/blocks.py:574 +#: content_manager/blocks.py:574 content_manager/blocks.py:790 msgid "Adapt to the page layout. Defaults to heading 3." msgstr "À adapter à la structure de la page. Par défaut en-tête 3." #: content_manager/blocks.py:270 content_manager/blocks.py:386 #: content_manager/blocks.py:423 content_manager/blocks.py:460 -#: content_manager/blocks.py:474 content_manager/blocks.py:897 -#: content_manager/blocks.py:984 +#: content_manager/blocks.py:474 content_manager/blocks.py:983 +#: content_manager/blocks.py:1070 msgid "Content" msgstr "Contenu" #: content_manager/blocks.py:271 content_manager/blocks.py:388 #: content_manager/blocks.py:513 content_manager/blocks.py:576 -#: content_manager/blocks.py:602 content_manager/blocks.py:857 +#: content_manager/blocks.py:602 content_manager/blocks.py:942 msgid "Image" msgstr "Image" @@ -455,7 +456,7 @@ msgid "Image width" msgstr "Largeur de l’image" #: content_manager/blocks.py:531 content_manager/blocks.py:642 -#: content_manager/blocks.py:856 content_manager/blocks.py:1027 +#: content_manager/blocks.py:941 content_manager/blocks.py:1113 msgid "Rich text" msgstr "Texte avec mise en forme" @@ -487,8 +488,8 @@ msgstr "Largeur" msgid "Caption" msgstr "Légende" -#: content_manager/blocks.py:603 content_manager/blocks.py:863 -#: content_manager/blocks.py:1034 +#: content_manager/blocks.py:603 content_manager/blocks.py:948 +#: content_manager/blocks.py:1120 msgid "Quote" msgstr "Citation" @@ -559,169 +560,209 @@ msgstr "" msgid "Video ratio" msgstr "Ratio de la vidéo" -#: content_manager/blocks.py:713 content_manager/blocks.py:859 -#: content_manager/blocks.py:1036 +#: content_manager/blocks.py:713 content_manager/blocks.py:944 +#: content_manager/blocks.py:1122 msgid "Transcription" msgstr "Transcription" -#: content_manager/blocks.py:801 content_manager/blocks.py:831 -#: content_manager/blocks.py:958 +#: content_manager/blocks.py:777 +msgid "Person" +msgstr "Personne" + +#: content_manager/blocks.py:778 +msgid "Optional, all values can be manually specified or overriden below" +msgstr "" +"Optionnel, toutes les valeurs peuvent être spécifiées ou surchargées ci-" +"dessous" + +#: content_manager/blocks.py:792 content_manager/models.py:425 +msgid "Name" +msgstr "Nom" + +#: content_manager/blocks.py:793 +msgid "Role" +msgstr "Fonction" + +#: content_manager/blocks.py:794 +msgid "Organization" +msgstr "Organisation" + +#: content_manager/blocks.py:795 +msgid "Contact info" +msgstr "Informations de contact" + +#: content_manager/blocks.py:797 +#: content_manager/templates/content_manager/tags_list_page.html:31 +#: content_manager/views.py:46 content_manager/views.py:77 +msgid "Tags" +msgstr "Étiquettes" + +#: content_manager/blocks.py:886 content_manager/blocks.py:916 +#: content_manager/blocks.py:1044 msgid "Adapt to the page layout. Defaults to heading 2." msgstr "À adapter à la structure de la page. Par défaut en-tête 2." -#: content_manager/blocks.py:803 +#: content_manager/blocks.py:888 msgid "Blog" msgstr "Blog" -#: content_manager/blocks.py:805 content_manager/blocks.py:835 +#: content_manager/blocks.py:890 content_manager/blocks.py:920 msgid "Number of entries" msgstr "Nombre d’articles" -#: content_manager/blocks.py:807 content_manager/blocks.py:837 +#: content_manager/blocks.py:892 content_manager/blocks.py:922 #: content_manager/templates/content_manager/blocks/blog_recent_entries.html:11 #: content_manager/templates/content_manager/blocks/events_recent_entries.html:11 msgid "Filter by category" msgstr "Filtrer par catégorie" -#: content_manager/blocks.py:808 content_manager/blocks.py:838 +#: content_manager/blocks.py:893 content_manager/blocks.py:923 #: content_manager/templates/content_manager/blocks/blog_recent_entries.html:28 #: content_manager/templates/content_manager/blocks/events_recent_entries.html:28 msgid "Filter by tag" msgstr "Filtrer par étiquette" -#: content_manager/blocks.py:809 content_manager/blocks.py:839 +#: content_manager/blocks.py:894 content_manager/blocks.py:924 #: content_manager/templates/content_manager/blocks/blog_recent_entries.html:45 #: content_manager/templates/content_manager/blocks/events_recent_entries.html:45 msgid "Filter by author" msgstr "Filtrer par auteur" -#: content_manager/blocks.py:812 content_manager/blocks.py:842 +#: content_manager/blocks.py:897 content_manager/blocks.py:927 #: content_manager/templates/content_manager/blocks/blog_recent_entries.html:60 #: content_manager/templates/content_manager/blocks/events_recent_entries.html:60 msgid "Filter by source" msgstr "Filtrer par source" -#: content_manager/blocks.py:813 content_manager/blocks.py:843 +#: content_manager/blocks.py:898 content_manager/blocks.py:928 msgid "The source is the organization of the post author" msgstr "" "La source est l’organisation à laquelle appartient l’auteur de l’article" -#: content_manager/blocks.py:816 content_manager/blocks.py:846 +#: content_manager/blocks.py:901 content_manager/blocks.py:931 msgid "Show filters" msgstr "Afficher les filtres" -#: content_manager/blocks.py:833 +#: content_manager/blocks.py:918 msgid "Event calendar" msgstr "Agenda" -#: content_manager/blocks.py:858 content_manager/blocks.py:1035 +#: content_manager/blocks.py:943 content_manager/blocks.py:1121 msgid "Video" msgstr "Vidéo" -#: content_manager/blocks.py:860 content_manager/blocks.py:1031 +#: content_manager/blocks.py:945 content_manager/blocks.py:1117 msgid "Accordions" msgstr "Accordéons" -#: content_manager/blocks.py:860 content_manager/blocks.py:861 -#: content_manager/blocks.py:862 content_manager/blocks.py:863 -#: content_manager/blocks.py:864 content_manager/blocks.py:867 -#: content_manager/blocks.py:868 content_manager/blocks.py:879 -#: content_manager/blocks.py:929 content_manager/blocks.py:969 -#: content_manager/blocks.py:970 content_manager/blocks.py:1031 -#: content_manager/blocks.py:1032 content_manager/blocks.py:1033 -#: content_manager/blocks.py:1034 content_manager/blocks.py:1040 -#: content_manager/blocks.py:1041 content_manager/blocks.py:1042 -#: content_manager/blocks.py:1043 +#: content_manager/blocks.py:945 content_manager/blocks.py:946 +#: content_manager/blocks.py:947 content_manager/blocks.py:948 +#: content_manager/blocks.py:949 content_manager/blocks.py:952 +#: content_manager/blocks.py:953 content_manager/blocks.py:964 +#: content_manager/blocks.py:1015 content_manager/blocks.py:1055 +#: content_manager/blocks.py:1056 content_manager/blocks.py:1117 +#: content_manager/blocks.py:1118 content_manager/blocks.py:1119 +#: content_manager/blocks.py:1120 content_manager/blocks.py:1126 +#: content_manager/blocks.py:1127 content_manager/blocks.py:1128 +#: content_manager/blocks.py:1129 msgid "DSFR components" msgstr "Composants du DSFR" -#: content_manager/blocks.py:861 content_manager/blocks.py:1032 +#: content_manager/blocks.py:946 content_manager/blocks.py:1118 msgid "Callout" msgstr "Mise en avant" -#: content_manager/blocks.py:862 content_manager/blocks.py:1033 +#: content_manager/blocks.py:947 content_manager/blocks.py:1119 msgid "Highlight" msgstr "Mise en exergue" -#: content_manager/blocks.py:864 content_manager/blocks.py:1040 +#: content_manager/blocks.py:949 content_manager/blocks.py:1126 msgid "Stepper" msgstr "Étapier" -#: content_manager/blocks.py:865 +#: content_manager/blocks.py:950 msgid "Text and call to action" msgstr "Texte et appel à action" -#: content_manager/blocks.py:866 content_manager/blocks.py:1039 +#: content_manager/blocks.py:951 content_manager/blocks.py:1125 msgid "Single link" msgstr "Lien isolé" -#: content_manager/blocks.py:867 content_manager/blocks.py:1045 +#: content_manager/blocks.py:952 content_manager/blocks.py:1131 msgid "Iframe" msgstr "Iframe" -#: content_manager/blocks.py:868 content_manager/blocks.py:1042 +#: content_manager/blocks.py:953 content_manager/blocks.py:1128 msgid "Tile" msgstr "Tuile" -#: content_manager/blocks.py:869 content_manager/blocks.py:1067 +#: content_manager/blocks.py:954 content_manager/blocks.py:1153 msgid "Blog recent entries" msgstr "Articles récents du blog" -#: content_manager/blocks.py:869 content_manager/blocks.py:871 -#: content_manager/blocks.py:1062 content_manager/blocks.py:1067 -#: content_manager/blocks.py:1071 +#: content_manager/blocks.py:954 content_manager/blocks.py:956 +#: content_manager/blocks.py:1148 content_manager/blocks.py:1153 +#: content_manager/blocks.py:1157 msgid "Website structure" msgstr "Structure du site" -#: content_manager/blocks.py:871 content_manager/blocks.py:1071 +#: content_manager/blocks.py:956 content_manager/blocks.py:1157 msgid "Event calendar recent entries" msgstr "Articles récents de l’agenda" -#: content_manager/blocks.py:879 content_manager/blocks.py:929 +#: content_manager/blocks.py:964 content_manager/blocks.py:1015 msgid "Vertical card" msgstr "Carte verticale" -#: content_manager/blocks.py:884 content_manager/blocks.py:909 +#: content_manager/blocks.py:965 +msgid "Contact card" +msgstr "Carte contact" + +#: content_manager/blocks.py:965 +msgid "Extra components" +msgstr "Composants supplémentaires" + +#: content_manager/blocks.py:970 content_manager/blocks.py:995 msgid "Column width" msgstr "Largeur de colonne" -#: content_manager/blocks.py:888 +#: content_manager/blocks.py:974 msgid "Items" msgstr "Éléments" -#: content_manager/blocks.py:901 +#: content_manager/blocks.py:987 msgid "Tab" msgstr "Onglet" -#: content_manager/blocks.py:919 +#: content_manager/blocks.py:1005 msgid "The total width of all columns should be 12." msgstr "La largeur totale de toutes les colonnes doit être 12." -#: content_manager/blocks.py:922 +#: content_manager/blocks.py:1008 msgid "Column content" msgstr "Contenu de la colonnne" -#: content_manager/blocks.py:930 +#: content_manager/blocks.py:1016 msgid "Adjustable column" msgstr "Colonne ajustable" -#: content_manager/blocks.py:930 content_manager/blocks.py:971 -#: content_manager/blocks.py:1046 content_manager/blocks.py:1047 -#: content_manager/blocks.py:1048 content_manager/blocks.py:1049 -#: content_manager/blocks.py:1053 +#: content_manager/blocks.py:1016 content_manager/blocks.py:1057 +#: content_manager/blocks.py:1132 content_manager/blocks.py:1133 +#: content_manager/blocks.py:1134 content_manager/blocks.py:1135 +#: content_manager/blocks.py:1139 msgid "Page structure" msgstr "Structure de la page" -#: content_manager/blocks.py:937 content_manager/blocks.py:978 -#: content_manager/blocks.py:1011 +#: content_manager/blocks.py:1023 content_manager/blocks.py:1064 +#: content_manager/blocks.py:1097 msgid "Background image" msgstr "Image de fond" -#: content_manager/blocks.py:944 +#: content_manager/blocks.py:1030 msgid "Background color, hexadecimal format (obsolete)" msgstr "Couleur de fond, format hexadécimal (obsolète)" -#: content_manager/blocks.py:947 +#: content_manager/blocks.py:1033 msgid "" "This field is obsolete and will be removed in the near future. Replace it " "with the background color." @@ -729,35 +770,35 @@ msgstr "" "Ce champ est obsolète et sera prochainement supprimé. Merci de le remplacer " "avec la couleur de fond." -#: content_manager/blocks.py:949 +#: content_manager/blocks.py:1035 msgid "Incorrect color format, must be #fff or #f5f5f5" msgstr "Format de couleur incorrect, doit être #fff ou #f5f5f5" -#: content_manager/blocks.py:960 +#: content_manager/blocks.py:1046 msgid "Columns" msgstr "Colonnes" -#: content_manager/blocks.py:968 content_manager/blocks.py:1029 +#: content_manager/blocks.py:1054 content_manager/blocks.py:1115 msgid "Image and text" msgstr "Image et texte" -#: content_manager/blocks.py:969 content_manager/blocks.py:1041 +#: content_manager/blocks.py:1055 content_manager/blocks.py:1127 msgid "Horizontal card" msgstr "Carte horizontale" -#: content_manager/blocks.py:970 content_manager/blocks.py:1043 +#: content_manager/blocks.py:1056 content_manager/blocks.py:1129 msgid "Tabs" msgstr "Onglets" -#: content_manager/blocks.py:971 content_manager/blocks.py:1048 +#: content_manager/blocks.py:1057 content_manager/blocks.py:1134 msgid "Item grid" msgstr "Grille d’éléments" -#: content_manager/blocks.py:992 +#: content_manager/blocks.py:1078 msgid "Parent page" msgstr "Page parente" -#: content_manager/blocks.py:1002 content_manager/blocks.py:1084 +#: content_manager/blocks.py:1088 content_manager/blocks.py:1170 msgid "" "Warning: Use HTML block with caution. Malicious code can compromise the " "security of the site." @@ -765,64 +806,64 @@ msgstr "" "Avertissement : Utilisez le bloc HTML avec précaution. Un code malveillant " "peut compromettre la sécurité du site." -#: content_manager/blocks.py:1004 +#: content_manager/blocks.py:1090 msgid "Page tree" msgstr "Arborescence de pages" -#: content_manager/blocks.py:1017 +#: content_manager/blocks.py:1103 msgid "Main content" msgstr "Contenu principal" -#: content_manager/blocks.py:1018 +#: content_manager/blocks.py:1104 msgid "Side menu title" msgstr "Titre du menu latéral" -#: content_manager/blocks.py:1019 +#: content_manager/blocks.py:1105 msgid "Side menu content" msgstr "Contenu du menu latéral" -#: content_manager/blocks.py:1030 +#: content_manager/blocks.py:1116 msgid "Alert message" msgstr "Message d’alerte" -#: content_manager/blocks.py:1037 +#: content_manager/blocks.py:1123 msgid "Badge list" msgstr "Liste de badges" -#: content_manager/blocks.py:1038 +#: content_manager/blocks.py:1124 msgid "Tag list" msgstr "Liste de tags" -#: content_manager/blocks.py:1044 +#: content_manager/blocks.py:1130 msgid "Markdown" msgstr "Markdown" -#: content_manager/blocks.py:1044 content_manager/blocks.py:1045 -#: content_manager/blocks.py:1086 +#: content_manager/blocks.py:1130 content_manager/blocks.py:1131 +#: content_manager/blocks.py:1172 msgid "Expert syntax" msgstr "Syntaxe experte" -#: content_manager/blocks.py:1046 +#: content_manager/blocks.py:1132 msgid "Separator" msgstr "Séparateur" -#: content_manager/blocks.py:1047 +#: content_manager/blocks.py:1133 msgid "Multiple columns" msgstr "Multi-colonnes" -#: content_manager/blocks.py:1049 +#: content_manager/blocks.py:1135 msgid "Full width background" msgstr "Fond pleine largeur" -#: content_manager/blocks.py:1053 +#: content_manager/blocks.py:1139 msgid "Full width background with side menu" msgstr "Fond pleine largeur avec menu latéral" -#: content_manager/blocks.py:1059 +#: content_manager/blocks.py:1145 msgid "Subpages list" msgstr "Liste des sous-pages" -#: content_manager/blocks.py:1060 +#: content_manager/blocks.py:1146 msgid "A simple, alphabetical list of the subpages of the current page." msgstr "" "Une liste alphabétique toute simple des sous-pages de la page actuelle." @@ -1215,10 +1256,6 @@ msgstr "Catégorie de méga menu" msgid "Mega menu categories" msgstr "Catégories de méga menu" -#: content_manager/models.py:425 -msgid "Name" -msgstr "Nom" - #: content_manager/models.py:430 msgid "Main link" msgstr "Lien principal" @@ -1246,6 +1283,7 @@ msgstr "Voir tous les articles" #: content_manager/templates/content_manager/blocks/card_horizontal.html:11 #: content_manager/templates/content_manager/blocks/card_vertical.html:11 +#: content_manager/templates/content_manager/blocks/contact_card_vertical.html:14 #: content_manager/templates/content_manager/blocks/link.html:9 #: content_manager/templates/content_manager/blocks/tile.html:12 msgid "Opens a new window" @@ -1320,11 +1358,6 @@ msgstr "Afficher" msgid "Continue" msgstr "Continuer" -#: content_manager/templates/content_manager/tags_list_page.html:31 -#: content_manager/views.py:46 content_manager/views.py:77 -msgid "Tags" -msgstr "Étiquettes" - #: content_manager/templates/content_manager/widgets/dsfr-icon-picker-widget.html:9 msgid "Select icon" msgstr "Sélectionner une icône" diff --git a/content_manager/migrations/0049_alter_contentpage_body.py b/content_manager/migrations/0049_alter_contentpage_body.py new file mode 100644 index 00000000..74646843 --- /dev/null +++ b/content_manager/migrations/0049_alter_contentpage_body.py @@ -0,0 +1,1394 @@ +# Generated by Django 5.1.3 on 2024-12-05 14:24 + +import wagtail.fields +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("content_manager", "0048_alter_contentpage_body_and_more"), + ] + + operations = [ + migrations.AlterField( + model_name="contentpage", + name="body", + field=wagtail.fields.StreamField( + [ + ("paragraph", 0), + ("image", 9), + ("imageandtext", 22), + ("alert", 27), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("video", 53), + ("transcription", 54), + ("badges_list", 59), + ("tags_list", 64), + ("link", 65), + ("stepper", 71), + ("card", 93), + ("tile", 103), + ("tabs", 137), + ("markdown", 138), + ("iframe", 139), + ("separator", 142), + ("multicolumns", 151), + ("item_grid", 154), + ("fullwidthbackground", 156), + ("fullwidthbackgroundwithsidemenu", 163), + ("subpageslist", 164), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("html", 165), + ], + blank=True, + block_lookup={ + 0: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text"}), + 1: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": False}), + 2: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 3.", + "label": "Heading level", + "required": False, + }, + ), + 3: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image"}), + 4: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Alternative text (textual description of the image)", "required": False}, + ), + 5: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-content-media--sm", "Small"), + ("", "Medium"), + ("fr-content-media--lg", "Large"), + ], + "label": "Witdh", + "required": False, + }, + ), + 6: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-ratio-32x9", "32x9"), + ("fr-ratio-16x9", "16x9"), + ("fr-ratio-3x2", "3x2"), + ("fr-ratio-4x3", "4x3"), + ("fr-ratio-1x1", "1x1"), + ("fr-ratio-3x4", "3x4"), + ("fr-ratio-2x3", "2x3"), + ], + "label": "Image ratio", + "required": False, + }, + ), + 7: ("wagtail.blocks.CharBlock", (), {"label": "Caption", "required": False}), + 8: ("wagtail.blocks.URLBlock", (), {"label": "Link", "required": False}), + 9: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 2), + ("image", 3), + ("alt", 4), + ("width", 5), + ("image_ratio", 6), + ("caption", 7), + ("url", 8), + ] + ], + {}, + ), + 10: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("right", "Right")], + "label": "Side where the image is displayed", + }, + ), + 11: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("3", "3/12"), ("5", "5/12"), ("6", "6/12")], "label": "Image width"}, + ), + 12: ( + "wagtail.blocks.PageChooserBlock", + (), + { + "help_text": "Link to a page of this site. Use either this, the document, or the external URL parameter.", + "label": "Page", + "required": False, + }, + ), + 13: ( + "wagtail.documents.blocks.DocumentChooserBlock", + (), + { + "help_text": "Use either this, the external URL or the page parameter.", + "label": "Document", + "required": False, + }, + ), + 14: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Use either this, the document or the page parameter.", + "label": "External URL", + "required": False, + }, + ), + 15: ("wagtail.blocks.CharBlock", (), {"label": "Link label", "required": False}), + 16: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", "No icon"), + ("fr-icon-arrow-right-line fr-link--icon-right", "Icon on the right side"), + ("fr-icon-arrow-right-line fr-link--icon-left", "Icon on the left side"), + ], + "help_text": "Only used for internal links.", + "label": "Icon", + "required": False, + }, + ), + 17: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-link--sm", "Small"), ("", "Medium"), ("fr-link--lg", "Large")], + "label": "Size", + "required": False, + }, + ), + 18: ( + "wagtail.blocks.StructBlock", + [ + [ + ("page", 12), + ("document", 13), + ("external_url", 14), + ("text", 15), + ("icon", 16), + ("size", 17), + ] + ], + { + "help_text": "The link is shown at the bottom of the text block, with an arrow", + "label": "Link", + "required": False, + }, + ), + 19: ( + "wagtail.blocks.CharBlock", + (), + { + "group": "obsolete", + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.", + "label": "Link label (obsolete)", + "required": False, + }, + ), + 20: ( + "wagtail.blocks.PageChooserBlock", + (), + { + "group": "obsolete", + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.", + "label": "Internal link (obsolete)", + "required": False, + }, + ), + 21: ( + "wagtail.blocks.URLBlock", + (), + { + "group": "obsolete", + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.", + "label": "Link URL (obsolete)", + "required": False, + }, + ), + 22: ( + "wagtail.blocks.StructBlock", + [ + [ + ("image", 3), + ("image_side", 10), + ("image_ratio", 11), + ("text", 0), + ("link", 18), + ("link_label", 19), + ("page", 20), + ("link_url", 21), + ] + ], + {"label": "Image and text"}, + ), + 23: ("wagtail.blocks.CharBlock", (), {"label": "Message title", "required": False}), + 24: ("wagtail.blocks.TextBlock", (), {"label": "Message text", "required": False}), + 25: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("error", "Error"), + ("success", "Success"), + ("info", "Information"), + ("warning", "Warning"), + ], + "label": "Message type", + }, + ), + 26: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 3.", + "label": "Heading level", + }, + ), + 27: ( + "wagtail.blocks.StructBlock", + [[("title", 23), ("description", 24), ("level", 25), ("heading_tag", 26)]], + {"label": "Alert message"}, + ), + 28: ("wagtail.blocks.CharBlock", (), {"label": "Title"}), + 29: ("wagtail.blocks.RichTextBlock", (), {"label": "Content"}), + 30: ( + "wagtail.blocks.StructBlock", + [[("title", 28), ("content", 29)]], + {"label": "Accordion", "max_num": 15, "min_num": 1}, + ), + 31: ( + "wagtail.blocks.StreamBlock", + [[("title", 28), ("accordion", 30)]], + {"group": "DSFR components", "label": "Accordions"}, + ), + 32: ("content_manager.blocks.IconPickerBlock", (), {"label": "Icon", "required": False}), + 33: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + ], + "label": "Content", + "required": False, + }, + ), + 34: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-btn", "Primary"), + ("fr-btn fr-btn--secondary", "Secundary"), + ("fr-btn fr-btn--tertiary", "Tertiary"), + ("fr-btn fr-btn--tertiary-no-outline", "Tertiary without border"), + ], + "label": "Button type", + "required": False, + }, + ), + 35: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")], + "label": "Icon side", + "required": False, + }, + ), + 36: ( + "wagtail.blocks.StructBlock", + [ + [ + ("page", 12), + ("document", 13), + ("external_url", 14), + ("text", 15), + ("button_type", 34), + ("icon_class", 32), + ("icon_side", 35), + ] + ], + {"label": "Button", "required": False}, + ), + 37: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + "label": "Color", + "required": False, + }, + ), + 38: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 26), + ("icon_class", 32), + ("text", 33), + ("button", 36), + ("color", 37), + ] + ], + {"group": "DSFR components", "label": "Callout"}, + ), + 39: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + ], + "label": "Content", + }, + ), + 40: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-text--sm", "Small"), ("", "Medium"), ("fr-text--lg", "Large")], + "label": "Size", + "required": False, + }, + ), + 41: ( + "wagtail.blocks.StructBlock", + [[("text", 39), ("color", 37), ("size", 40)]], + {"group": "DSFR components", "label": "Highlight"}, + ), + 42: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image", "required": False}), + 43: ("wagtail.blocks.CharBlock", (), {"label": "Quote"}), + 44: ("wagtail.blocks.CharBlock", (), {"label": "Author name", "required": False}), + 45: ("wagtail.blocks.CharBlock", (), {"label": "Author title", "required": False}), + 46: ( + "wagtail.blocks.StructBlock", + [[("image", 42), ("quote", 43), ("author_name", 44), ("author_title", 45), ("color", 37)]], + {"group": "DSFR components", "label": "Quote"}, + ), + 47: ("wagtail.blocks.CharBlock", (), {"label": "Video title", "required": False}), + 48: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Use embed format, with a version that doesn't require a consent banner if available. (e.g. : https://www.youtube-nocookie.com/embed/gLzXOViPX-0) For Youtube, use Embed video and check Enable privacy-enhanced mode.", + "label": "Video URL", + }, + ), + 49: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-ratio-16x9", "16x9"), ("fr-ratio-4x3", "4x3"), ("fr-ratio-1x1", "1x1")], + "label": "Video ratio", + "required": False, + }, + ), + 50: ( + "wagtail.blocks.CharBlock", + (), + {"default": "Transcription", "label": "Title", "required": False}, + ), + 51: ("wagtail.blocks.RichTextBlock", (), {"label": "Transcription content", "required": False}), + 52: ( + "wagtail.blocks.StructBlock", + [[("title", 50), ("content", 51)]], + {"label": "Transcription", "required": False}, + ), + 53: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 47), + ("caption", 7), + ("url", 48), + ("width", 5), + ("video_ratio", 49), + ("transcription", 52), + ] + ], + {"label": "Video"}, + ), + 54: ("wagtail.blocks.StructBlock", [[("title", 50), ("content", 51)]], {"label": "Transcription"}), + 55: ("wagtail.blocks.CharBlock", (), {"label": "Badge label", "required": False}), + 56: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", [("new", "New"), ("grey", "Grey")]), + ( + "System colors", + [ + ("info", "Info"), + ("success", "Success"), + ("warning", "Warning"), + ("error", "Error"), + ], + ), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "label": "Badge color", + "required": False, + }, + ), + 57: ("wagtail.blocks.BooleanBlock", (), {"label": "Hide badge icon", "required": False}), + 58: ( + "wagtail.blocks.StructBlock", + [[("text", 55), ("color", 56), ("hide_icon", 57)]], + {"label": "Badge"}, + ), + 59: ("wagtail.blocks.StreamBlock", [[("badge", 58)]], {"label": "Badge list"}), + 60: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tag", "required": False}), + 61: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + "help_text": "Only for clickable tags", + "label": "Tag color", + "required": False, + }, + ), + 62: ( + "wagtail.blocks.StructBlock", + [[("page", 12), ("document", 13), ("external_url", 14)]], + {"required": False}, + ), + 63: ( + "wagtail.blocks.StructBlock", + [[("label", 28), ("is_small", 60), ("color", 61), ("icon_class", 32), ("link", 62)]], + {"label": "Tag"}, + ), + 64: ("wagtail.blocks.StreamBlock", [[("tag", 63)]], {"label": "Tag list"}), + 65: ( + "wagtail.blocks.StructBlock", + [ + [ + ("page", 12), + ("document", 13), + ("external_url", 14), + ("text", 15), + ("icon", 16), + ("size", 17), + ] + ], + {"label": "Single link"}, + ), + 66: ( + "wagtail.blocks.IntegerBlock", + (), + {"label": "Number of steps", "max_value": 8, "min_value": 1}, + ), + 67: ("wagtail.blocks.IntegerBlock", (), {"label": "Current step", "max_value": 8, "min_value": 1}), + 68: ("wagtail.blocks.TextBlock", (), {"label": "Detail"}), + 69: ("wagtail.blocks.StructBlock", [[("title", 28), ("detail", 68)]], {"label": "Step"}), + 70: ("wagtail.blocks.StreamBlock", [[("step", 69)]], {"label": "Steps"}), + 71: ( + "wagtail.blocks.StructBlock", + [[("title", 28), ("total", 66), ("current", 67), ("steps", 70)]], + {"group": "DSFR components", "label": "Stepper"}, + ), + 72: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-card--horizontal-tier", "1/3"), ("fr-card--horizontal-half", "50/50")], + "label": "Image ratio", + "required": False, + }, + ), + 73: ( + "wagtail.blocks.StreamBlock", + [[("badge", 58)]], + { + "help_text": "Only used if the card has an image.", + "label": "Image area badge", + "max_num": 1, + "required": False, + }, + ), + 74: ( + "wagtail.blocks.StructBlock", + [[("page", 12), ("document", 13), ("external_url", 14)]], + {"label": "Link", "required": False}, + ), + 75: ( + "wagtail.blocks.URLBlock", + (), + { + "group": "target", + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.", + "label": "Link (obsolete)", + "required": False, + }, + ), + 76: ( + "wagtail.documents.blocks.DocumentChooserBlock", + (), + { + "group": "target", + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.", + "label": "or Document (obsolete)", + "required": False, + }, + ), + 77: ("wagtail.blocks.CharBlock", (), {"label": "Top detail: text", "required": False}), + 78: ( + "content_manager.blocks.IconPickerBlock", + (), + {"label": "Top detail: icon", "required": False}, + ), + 79: ("wagtail.blocks.StreamBlock", [[("badge", 58)]], {}), + 80: ("wagtail.blocks.StreamBlock", [[("tag", 63)]], {}), + 81: ( + "wagtail.blocks.StreamBlock", + [[("badges", 79), ("tags", 80)]], + {"label": "Top detail: badges or tags", "max_num": 1, "required": False}, + ), + 82: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Incompatible with the bottom call-to-action. If the card links to a downloadable document, the values are pre-filled.", + "label": "Bottom detail: text", + "required": False, + }, + ), + 83: ( + "content_manager.blocks.IconPickerBlock", + (), + {"label": "Bottom detail: icon", "required": False}, + ), + 84: ( + "wagtail.blocks.StructBlock", + [[("page", 12), ("document", 13), ("external_url", 14), ("text", 15)]], + {"label": "Link"}, + ), + 85: ("wagtail.blocks.StreamBlock", [[("link", 84)]], {}), + 86: ( + "wagtail.blocks.StructBlock", + [ + [ + ("page", 12), + ("document", 13), + ("external_url", 14), + ("text", 15), + ("button_type", 34), + ("icon_class", 32), + ("icon_side", 35), + ] + ], + {"label": "Button"}, + ), + 87: ( + "wagtail.blocks.StreamBlock", + [[("button", 86)]], + { + "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", + "label": "Buttons", + }, + ), + 88: ( + "wagtail.blocks.StreamBlock", + [[("links", 85), ("buttons", 87)]], + { + "help_text": "Incompatible with the bottom detail text.", + "label": "Bottom call-to-action: links or buttons", + "max_num": 1, + "required": False, + }, + ), + 89: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with grey background", "required": False}), + 90: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without background", "required": False}), + 91: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without border", "required": False}), + 92: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with a shadow", "required": False}), + 93: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 28), + ("heading_tag", 26), + ("description", 33), + ("image", 42), + ("image_ratio", 72), + ("image_badge", 73), + ("link", 74), + ("url", 75), + ("document", 76), + ("top_detail_text", 77), + ("top_detail_icon", 78), + ("top_detail_badges_tags", 81), + ("bottom_detail_text", 82), + ("bottom_detail_icon", 83), + ("call_to_action", 88), + ("grey_background", 89), + ("no_background", 90), + ("no_border", 91), + ("shadow", 92), + ] + ], + {"group": "DSFR components", "label": "Horizontal card"}, + ), + 94: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": ["bold", "italic", "superscript", "subscript", "strikethrough"], + "label": "Content", + "required": False, + }, + ), + 95: ( + "wagtail.images.blocks.ImageChooserBlock", + (), + {"help_text": "Prefer SVG files.", "label": "Image", "required": False}, + ), + 96: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "If the tile links to a downloadable document, the values are pre-filled.", + "label": "Detail text", + "required": False, + }, + ), + 97: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tile", "required": False}), + 98: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with grey background", "required": False}), + 99: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without background", "required": False}), + 100: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without border", "required": False}), + 101: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with a shadow", "required": False}), + 102: ("wagtail.blocks.BooleanBlock", (), {"label": "Horizontal tile", "required": False}), + 103: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 28), + ("heading_tag", 26), + ("description", 94), + ("image", 95), + ("link", 74), + ("top_detail_badges_tags", 81), + ("detail_text", 96), + ("is_small", 97), + ("grey_background", 98), + ("no_background", 99), + ("no_border", 100), + ("shadow", 101), + ("is_horizontal", 102), + ] + ], + {"group": "DSFR components", "label": "Tile"}, + ), + 104: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 2), + ("image", 3), + ("alt", 4), + ("width", 5), + ("image_ratio", 6), + ("caption", 7), + ("url", 8), + ] + ], + {"label": "Image"}, + ), + 105: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text", "required": False}), + 106: ( + "wagtail.blocks.StreamBlock", + [[("buttons", 87)]], + {"label": "Call-to-action buttons", "max_num": 1, "required": False}, + ), + 107: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.", + "label": "Call to action label (obsolete)", + "required": False, + }, + ), + 108: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.", + "label": "Link (obsolete)", + "required": False, + }, + ), + 109: ( + "wagtail.blocks.StructBlock", + [[("text", 105), ("cta_buttons", 106), ("cta_label", 107), ("cta_url", 108)]], + {"label": "Text and call to action"}, + ), + 110: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Accessibility: The title should describe, in a clear and concise manner, the embedded content.", + "label": "Title", + }, + ), + 111: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Example for Tally: https://tally.so/embed/w2jMRa", + "label": "URL of the iframe", + }, + ), + 112: ("wagtail.blocks.IntegerBlock", (), {"label": "Height (in pixels)"}), + 113: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "For example: \"allow='geolocation'\".", + "label": "Parameters", + "required": False, + }, + ), + 114: ( + "wagtail.blocks.StructBlock", + [[("title", 110), ("url", 111), ("height", 112), ("parameters", 113)]], + {"group": "DSFR components", "label": "Iframe"}, + ), + 115: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + "required": False, + }, + ), + 116: ( + "wagtail.blocks.PageChooserBlock", + (), + {"label": "Blog", "page_type": ["blog.BlogIndexPage"]}, + ), + 117: ( + "wagtail.blocks.IntegerBlock", + (), + { + "default": 3, + "label": "Number of entries", + "max_value": 8, + "min_value": 1, + "required": False, + }, + ), + 118: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Category",), + {"label": "Filter by category", "required": False}, + ), + 119: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("content_manager.Tag",), + {"label": "Filter by tag", "required": False}, + ), + 120: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Person",), + {"label": "Filter by author", "required": False}, + ), + 121: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Organization",), + { + "help_text": "The source is the organization of the post author", + "label": "Filter by source", + "required": False, + }, + ), + 122: ( + "wagtail.blocks.BooleanBlock", + (), + {"default": False, "label": "Show filters", "required": False}, + ), + 123: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 115), + ("blog", 116), + ("entries_count", 117), + ("category_filter", 118), + ("tag_filter", 119), + ("author_filter", 120), + ("source_filter", 121), + ("show_filters", 122), + ] + ], + {"group": "Website structure", "label": "Blog recent entries"}, + ), + 124: ( + "wagtail.blocks.PageChooserBlock", + (), + {"label": "Event calendar", "page_type": ["events.EventsIndexPage"]}, + ), + 125: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 115), + ("index_page", 124), + ("entries_count", 117), + ("category_filter", 118), + ("tag_filter", 119), + ("author_filter", 120), + ("source_filter", 121), + ("show_filters", 122), + ] + ], + {"group": "Website structure", "label": "Event calendar recent entries"}, + ), + 126: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Incompatible with the bottom call-to-action.", + "label": "Bottom detail: text", + "required": False, + }, + ), + 127: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 28), + ("heading_tag", 26), + ("description", 33), + ("image", 42), + ("image_ratio", 6), + ("image_badge", 73), + ("link", 74), + ("url", 75), + ("document", 76), + ("top_detail_text", 77), + ("top_detail_icon", 78), + ("top_detail_badges_tags", 81), + ("bottom_detail_text", 126), + ("bottom_detail_icon", 83), + ("call_to_action", 88), + ("grey_background", 89), + ("no_background", 90), + ("no_border", 91), + ("shadow", 92), + ] + ], + {"group": "DSFR components", "label": "Vertical card"}, + ), + 128: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Person",), + { + "help_text": "Optional, all values can be manually specified or overriden below", + "label": "Person", + "required": False, + }, + ), + 129: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255, "required": False}), + 130: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255, "required": False}), + 131: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Organization", "max_length": 255, "required": False}, + ), + 132: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Contact info", "max_length": 500, "required": False}, + ), + 133: ("wagtail.blocks.StreamBlock", [[("tag", 63)]], {"label": "Tags", "required": False}), + 134: ( + "wagtail.blocks.StructBlock", + [ + [ + ("contact", 128), + ("link", 74), + ("heading_tag", 2), + ("name", 129), + ("role", 130), + ("organization", 131), + ("contact_info", 132), + ("image", 42), + ("tags", 133), + ] + ], + {"group": "Extra components", "label": "Contact card"}, + ), + 135: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 104), + ("video", 53), + ("transcription", 54), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("stepper", 71), + ("text_cta", 109), + ("link", 65), + ("iframe", 114), + ("tile", 103), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("card", 127), + ("contact_card", 134), + ] + ], + {"label": "Content"}, + ), + 136: ( + "wagtail.blocks.StructBlock", + [[("title", 28), ("content", 135)]], + {"label": "Tab", "max_num": 15, "min_num": 1}, + ), + 137: ( + "wagtail.blocks.StreamBlock", + [[("tabs", 136)]], + {"group": "DSFR components", "label": "Tabs"}, + ), + 138: ("wagtailmarkdown.blocks.MarkdownBlock", (), {"group": "Expert syntax", "label": "Markdown"}), + 139: ( + "wagtail.blocks.StructBlock", + [[("title", 110), ("url", 111), ("height", 112), ("parameters", 113)]], + {"group": "Expert syntax", "label": "Iframe"}, + ), + 140: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 3, "label": "Top margin", "max_value": 15, "min_value": 0}, + ), + 141: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 3, "label": "Bottom margin", "max_value": 15, "min_value": 0}, + ), + 142: ( + "wagtail.blocks.StructBlock", + [[("top_margin", 140), ("bottom_margin", 141)]], + {"group": "Page structure", "label": "Separator"}, + ), + 143: ( + "wagtail.images.blocks.ImageChooserBlock", + (), + {"label": "Background image", "required": False}, + ), + 144: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("Primary colors", [("blue-france", "Blue France"), ("red-marianne", "Red Marianne")]), + ("Neutral colors", [("grey", "Grey")]), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "help_text": "Uses the French Design System colors", + "label": "Background color", + "required": False, + }, + ), + 145: ( + "wagtail.blocks.RegexBlock", + (), + { + "error_messages": {"invalid": "Incorrect color format, must be #fff or #f5f5f5"}, + "help_text": "This field is obsolete and will be removed in the near future. Replace it with the background color.", + "label": "Background color, hexadecimal format (obsolete)", + "regex": "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$", + "required": False, + }, + ), + 146: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + "required": False, + }, + ), + 147: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("3", "3/12"), + ("4", "4/12"), + ("5", "5/12"), + ("6", "6/12"), + ("7", "7/12"), + ("8", "8/12"), + ("9", "9/12"), + ], + "help_text": "The total width of all columns should be 12.", + "label": "Column width", + "required": False, + }, + ), + 148: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 104), + ("video", 53), + ("transcription", 54), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("stepper", 71), + ("text_cta", 109), + ("link", 65), + ("iframe", 114), + ("tile", 103), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("card", 127), + ("contact_card", 134), + ] + ], + {"label": "Column content"}, + ), + 149: ( + "wagtail.blocks.StructBlock", + [[("width", 147), ("content", 148)]], + {"group": "Page structure", "label": "Adjustable column"}, + ), + 150: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 104), + ("video", 53), + ("transcription", 54), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("stepper", 71), + ("text_cta", 109), + ("link", 65), + ("iframe", 114), + ("tile", 103), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("card", 127), + ("column", 149), + ] + ], + {"label": "Columns"}, + ), + 151: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 143), + ("bg_color_class", 144), + ("bg_color", 145), + ("title", 1), + ("heading_tag", 146), + ("columns", 150), + ] + ], + {"group": "Page structure", "label": "Multiple columns"}, + ), + 152: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("3", "3/12"), ("4", "4/12"), ("6", "6/12")], "label": "Column width"}, + ), + 153: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 104), + ("video", 53), + ("transcription", 54), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("stepper", 71), + ("text_cta", 109), + ("link", 65), + ("iframe", 114), + ("tile", 103), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("card", 127), + ("contact_card", 134), + ] + ], + {"label": "Items"}, + ), + 154: ( + "wagtail.blocks.StructBlock", + [[("column_width", 152), ("items", 153)]], + {"group": "Page structure", "label": "Item grid"}, + ), + 155: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 104), + ("video", 53), + ("transcription", 54), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("stepper", 71), + ("text_cta", 109), + ("link", 65), + ("iframe", 114), + ("tile", 103), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("image_and_text", 22), + ("card", 93), + ("tabs", 137), + ("item_grid", 154), + ] + ], + {"label": "Content"}, + ), + 156: ( + "wagtail.blocks.StructBlock", + [[("bg_image", 143), ("bg_color_class", 144), ("content", 155)]], + {"group": "Page structure", "label": "Full width background"}, + ), + 157: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 104), + ("video", 53), + ("transcription", 54), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("stepper", 71), + ("text_cta", 109), + ("link", 65), + ("iframe", 114), + ("tile", 103), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("image_and_text", 22), + ("card", 93), + ("tabs", 137), + ("item_grid", 154), + ] + ], + {"label": "Main content"}, + ), + 158: ("wagtail.blocks.CharBlock", (), {"label": "Side menu title", "required": False}), + 159: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "label": "HTML", + }, + ), + 160: ("wagtail.blocks.PageChooserBlock", (), {"label": "Parent page"}), + 161: ("wagtail.blocks.StructBlock", [[("page", 160)]], {"label": "Page tree"}), + 162: ( + "wagtail.blocks.StreamBlock", + [[("html", 159), ("pagetree", 161)]], + {"label": "Side menu content"}, + ), + 163: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 143), + ("bg_color_class", 144), + ("main_content", 157), + ("sidemenu_title", 158), + ("sidemenu_content", 162), + ] + ], + {"group": "Page structure", "label": "Full width background with side menu"}, + ), + 164: ( + "wagtail.blocks.static_block.StaticBlock", + (), + { + "admin_text": "A simple, alphabetical list of the subpages of the current page.", + "group": "Website structure", + "label": "Subpages list", + "template": "content_manager/blocks/subpages_list.html", + }, + ), + 165: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "group": "Expert syntax", + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "readonly": True, + }, + ), + }, + ), + ), + ] diff --git a/content_manager/templates/content_manager/blocks/contact_card_vertical.html b/content_manager/templates/content_manager/blocks/contact_card_vertical.html new file mode 100644 index 00000000..20f9510a --- /dev/null +++ b/content_manager/templates/content_manager/blocks/contact_card_vertical.html @@ -0,0 +1,55 @@ +{% load i18n wagtailcore_tags wagtailimages_tags %} +{# Uses value instead of block.value because it is also used #} +{# to display Person items #} + + diff --git a/events/migrations/0011_alter_evententrypage_body_alter_eventsindexpage_body.py b/events/migrations/0011_alter_evententrypage_body_alter_eventsindexpage_body.py new file mode 100644 index 00000000..e94eb903 --- /dev/null +++ b/events/migrations/0011_alter_evententrypage_body_alter_eventsindexpage_body.py @@ -0,0 +1,2774 @@ +# Generated by Django 5.1.3 on 2024-12-05 14:24 + +import wagtail.fields +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ("events", "0010_alter_evententrypage_body_and_more"), + ] + + operations = [ + migrations.AlterField( + model_name="evententrypage", + name="body", + field=wagtail.fields.StreamField( + [ + ("paragraph", 0), + ("image", 9), + ("imageandtext", 22), + ("alert", 27), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("video", 53), + ("transcription", 54), + ("badges_list", 59), + ("tags_list", 64), + ("link", 65), + ("stepper", 71), + ("card", 93), + ("tile", 103), + ("tabs", 137), + ("markdown", 138), + ("iframe", 139), + ("separator", 142), + ("multicolumns", 151), + ("item_grid", 154), + ("fullwidthbackground", 156), + ("fullwidthbackgroundwithsidemenu", 163), + ("subpageslist", 164), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("html", 165), + ], + blank=True, + block_lookup={ + 0: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text"}), + 1: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": False}), + 2: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 3.", + "label": "Heading level", + "required": False, + }, + ), + 3: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image"}), + 4: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Alternative text (textual description of the image)", "required": False}, + ), + 5: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-content-media--sm", "Small"), + ("", "Medium"), + ("fr-content-media--lg", "Large"), + ], + "label": "Witdh", + "required": False, + }, + ), + 6: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-ratio-32x9", "32x9"), + ("fr-ratio-16x9", "16x9"), + ("fr-ratio-3x2", "3x2"), + ("fr-ratio-4x3", "4x3"), + ("fr-ratio-1x1", "1x1"), + ("fr-ratio-3x4", "3x4"), + ("fr-ratio-2x3", "2x3"), + ], + "label": "Image ratio", + "required": False, + }, + ), + 7: ("wagtail.blocks.CharBlock", (), {"label": "Caption", "required": False}), + 8: ("wagtail.blocks.URLBlock", (), {"label": "Link", "required": False}), + 9: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 2), + ("image", 3), + ("alt", 4), + ("width", 5), + ("image_ratio", 6), + ("caption", 7), + ("url", 8), + ] + ], + {}, + ), + 10: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("right", "Right")], + "label": "Side where the image is displayed", + }, + ), + 11: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("3", "3/12"), ("5", "5/12"), ("6", "6/12")], "label": "Image width"}, + ), + 12: ( + "wagtail.blocks.PageChooserBlock", + (), + { + "help_text": "Link to a page of this site. Use either this, the document, or the external URL parameter.", + "label": "Page", + "required": False, + }, + ), + 13: ( + "wagtail.documents.blocks.DocumentChooserBlock", + (), + { + "help_text": "Use either this, the external URL or the page parameter.", + "label": "Document", + "required": False, + }, + ), + 14: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Use either this, the document or the page parameter.", + "label": "External URL", + "required": False, + }, + ), + 15: ("wagtail.blocks.CharBlock", (), {"label": "Link label", "required": False}), + 16: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", "No icon"), + ("fr-icon-arrow-right-line fr-link--icon-right", "Icon on the right side"), + ("fr-icon-arrow-right-line fr-link--icon-left", "Icon on the left side"), + ], + "help_text": "Only used for internal links.", + "label": "Icon", + "required": False, + }, + ), + 17: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-link--sm", "Small"), ("", "Medium"), ("fr-link--lg", "Large")], + "label": "Size", + "required": False, + }, + ), + 18: ( + "wagtail.blocks.StructBlock", + [ + [ + ("page", 12), + ("document", 13), + ("external_url", 14), + ("text", 15), + ("icon", 16), + ("size", 17), + ] + ], + { + "help_text": "The link is shown at the bottom of the text block, with an arrow", + "label": "Link", + "required": False, + }, + ), + 19: ( + "wagtail.blocks.CharBlock", + (), + { + "group": "obsolete", + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.", + "label": "Link label (obsolete)", + "required": False, + }, + ), + 20: ( + "wagtail.blocks.PageChooserBlock", + (), + { + "group": "obsolete", + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.", + "label": "Internal link (obsolete)", + "required": False, + }, + ), + 21: ( + "wagtail.blocks.URLBlock", + (), + { + "group": "obsolete", + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.", + "label": "Link URL (obsolete)", + "required": False, + }, + ), + 22: ( + "wagtail.blocks.StructBlock", + [ + [ + ("image", 3), + ("image_side", 10), + ("image_ratio", 11), + ("text", 0), + ("link", 18), + ("link_label", 19), + ("page", 20), + ("link_url", 21), + ] + ], + {"label": "Image and text"}, + ), + 23: ("wagtail.blocks.CharBlock", (), {"label": "Message title", "required": False}), + 24: ("wagtail.blocks.TextBlock", (), {"label": "Message text", "required": False}), + 25: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("error", "Error"), + ("success", "Success"), + ("info", "Information"), + ("warning", "Warning"), + ], + "label": "Message type", + }, + ), + 26: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 3.", + "label": "Heading level", + }, + ), + 27: ( + "wagtail.blocks.StructBlock", + [[("title", 23), ("description", 24), ("level", 25), ("heading_tag", 26)]], + {"label": "Alert message"}, + ), + 28: ("wagtail.blocks.CharBlock", (), {"label": "Title"}), + 29: ("wagtail.blocks.RichTextBlock", (), {"label": "Content"}), + 30: ( + "wagtail.blocks.StructBlock", + [[("title", 28), ("content", 29)]], + {"label": "Accordion", "max_num": 15, "min_num": 1}, + ), + 31: ( + "wagtail.blocks.StreamBlock", + [[("title", 28), ("accordion", 30)]], + {"group": "DSFR components", "label": "Accordions"}, + ), + 32: ("content_manager.blocks.IconPickerBlock", (), {"label": "Icon", "required": False}), + 33: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + ], + "label": "Content", + "required": False, + }, + ), + 34: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-btn", "Primary"), + ("fr-btn fr-btn--secondary", "Secundary"), + ("fr-btn fr-btn--tertiary", "Tertiary"), + ("fr-btn fr-btn--tertiary-no-outline", "Tertiary without border"), + ], + "label": "Button type", + "required": False, + }, + ), + 35: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")], + "label": "Icon side", + "required": False, + }, + ), + 36: ( + "wagtail.blocks.StructBlock", + [ + [ + ("page", 12), + ("document", 13), + ("external_url", 14), + ("text", 15), + ("button_type", 34), + ("icon_class", 32), + ("icon_side", 35), + ] + ], + {"label": "Button", "required": False}, + ), + 37: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + "label": "Color", + "required": False, + }, + ), + 38: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 26), + ("icon_class", 32), + ("text", 33), + ("button", 36), + ("color", 37), + ] + ], + {"group": "DSFR components", "label": "Callout"}, + ), + 39: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + ], + "label": "Content", + }, + ), + 40: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-text--sm", "Small"), ("", "Medium"), ("fr-text--lg", "Large")], + "label": "Size", + "required": False, + }, + ), + 41: ( + "wagtail.blocks.StructBlock", + [[("text", 39), ("color", 37), ("size", 40)]], + {"group": "DSFR components", "label": "Highlight"}, + ), + 42: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image", "required": False}), + 43: ("wagtail.blocks.CharBlock", (), {"label": "Quote"}), + 44: ("wagtail.blocks.CharBlock", (), {"label": "Author name", "required": False}), + 45: ("wagtail.blocks.CharBlock", (), {"label": "Author title", "required": False}), + 46: ( + "wagtail.blocks.StructBlock", + [[("image", 42), ("quote", 43), ("author_name", 44), ("author_title", 45), ("color", 37)]], + {"group": "DSFR components", "label": "Quote"}, + ), + 47: ("wagtail.blocks.CharBlock", (), {"label": "Video title", "required": False}), + 48: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Use embed format, with a version that doesn't require a consent banner if available. (e.g. : https://www.youtube-nocookie.com/embed/gLzXOViPX-0) For Youtube, use Embed video and check Enable privacy-enhanced mode.", + "label": "Video URL", + }, + ), + 49: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-ratio-16x9", "16x9"), ("fr-ratio-4x3", "4x3"), ("fr-ratio-1x1", "1x1")], + "label": "Video ratio", + "required": False, + }, + ), + 50: ( + "wagtail.blocks.CharBlock", + (), + {"default": "Transcription", "label": "Title", "required": False}, + ), + 51: ("wagtail.blocks.RichTextBlock", (), {"label": "Transcription content", "required": False}), + 52: ( + "wagtail.blocks.StructBlock", + [[("title", 50), ("content", 51)]], + {"label": "Transcription", "required": False}, + ), + 53: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 47), + ("caption", 7), + ("url", 48), + ("width", 5), + ("video_ratio", 49), + ("transcription", 52), + ] + ], + {"label": "Video"}, + ), + 54: ("wagtail.blocks.StructBlock", [[("title", 50), ("content", 51)]], {"label": "Transcription"}), + 55: ("wagtail.blocks.CharBlock", (), {"label": "Badge label", "required": False}), + 56: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", [("new", "New"), ("grey", "Grey")]), + ( + "System colors", + [ + ("info", "Info"), + ("success", "Success"), + ("warning", "Warning"), + ("error", "Error"), + ], + ), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "label": "Badge color", + "required": False, + }, + ), + 57: ("wagtail.blocks.BooleanBlock", (), {"label": "Hide badge icon", "required": False}), + 58: ( + "wagtail.blocks.StructBlock", + [[("text", 55), ("color", 56), ("hide_icon", 57)]], + {"label": "Badge"}, + ), + 59: ("wagtail.blocks.StreamBlock", [[("badge", 58)]], {"label": "Badge list"}), + 60: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tag", "required": False}), + 61: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + "help_text": "Only for clickable tags", + "label": "Tag color", + "required": False, + }, + ), + 62: ( + "wagtail.blocks.StructBlock", + [[("page", 12), ("document", 13), ("external_url", 14)]], + {"required": False}, + ), + 63: ( + "wagtail.blocks.StructBlock", + [[("label", 28), ("is_small", 60), ("color", 61), ("icon_class", 32), ("link", 62)]], + {"label": "Tag"}, + ), + 64: ("wagtail.blocks.StreamBlock", [[("tag", 63)]], {"label": "Tag list"}), + 65: ( + "wagtail.blocks.StructBlock", + [ + [ + ("page", 12), + ("document", 13), + ("external_url", 14), + ("text", 15), + ("icon", 16), + ("size", 17), + ] + ], + {"label": "Single link"}, + ), + 66: ( + "wagtail.blocks.IntegerBlock", + (), + {"label": "Number of steps", "max_value": 8, "min_value": 1}, + ), + 67: ("wagtail.blocks.IntegerBlock", (), {"label": "Current step", "max_value": 8, "min_value": 1}), + 68: ("wagtail.blocks.TextBlock", (), {"label": "Detail"}), + 69: ("wagtail.blocks.StructBlock", [[("title", 28), ("detail", 68)]], {"label": "Step"}), + 70: ("wagtail.blocks.StreamBlock", [[("step", 69)]], {"label": "Steps"}), + 71: ( + "wagtail.blocks.StructBlock", + [[("title", 28), ("total", 66), ("current", 67), ("steps", 70)]], + {"group": "DSFR components", "label": "Stepper"}, + ), + 72: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-card--horizontal-tier", "1/3"), ("fr-card--horizontal-half", "50/50")], + "label": "Image ratio", + "required": False, + }, + ), + 73: ( + "wagtail.blocks.StreamBlock", + [[("badge", 58)]], + { + "help_text": "Only used if the card has an image.", + "label": "Image area badge", + "max_num": 1, + "required": False, + }, + ), + 74: ( + "wagtail.blocks.StructBlock", + [[("page", 12), ("document", 13), ("external_url", 14)]], + {"label": "Link", "required": False}, + ), + 75: ( + "wagtail.blocks.URLBlock", + (), + { + "group": "target", + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.", + "label": "Link (obsolete)", + "required": False, + }, + ), + 76: ( + "wagtail.documents.blocks.DocumentChooserBlock", + (), + { + "group": "target", + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.", + "label": "or Document (obsolete)", + "required": False, + }, + ), + 77: ("wagtail.blocks.CharBlock", (), {"label": "Top detail: text", "required": False}), + 78: ( + "content_manager.blocks.IconPickerBlock", + (), + {"label": "Top detail: icon", "required": False}, + ), + 79: ("wagtail.blocks.StreamBlock", [[("badge", 58)]], {}), + 80: ("wagtail.blocks.StreamBlock", [[("tag", 63)]], {}), + 81: ( + "wagtail.blocks.StreamBlock", + [[("badges", 79), ("tags", 80)]], + {"label": "Top detail: badges or tags", "max_num": 1, "required": False}, + ), + 82: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Incompatible with the bottom call-to-action. If the card links to a downloadable document, the values are pre-filled.", + "label": "Bottom detail: text", + "required": False, + }, + ), + 83: ( + "content_manager.blocks.IconPickerBlock", + (), + {"label": "Bottom detail: icon", "required": False}, + ), + 84: ( + "wagtail.blocks.StructBlock", + [[("page", 12), ("document", 13), ("external_url", 14), ("text", 15)]], + {"label": "Link"}, + ), + 85: ("wagtail.blocks.StreamBlock", [[("link", 84)]], {}), + 86: ( + "wagtail.blocks.StructBlock", + [ + [ + ("page", 12), + ("document", 13), + ("external_url", 14), + ("text", 15), + ("button_type", 34), + ("icon_class", 32), + ("icon_side", 35), + ] + ], + {"label": "Button"}, + ), + 87: ( + "wagtail.blocks.StreamBlock", + [[("button", 86)]], + { + "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", + "label": "Buttons", + }, + ), + 88: ( + "wagtail.blocks.StreamBlock", + [[("links", 85), ("buttons", 87)]], + { + "help_text": "Incompatible with the bottom detail text.", + "label": "Bottom call-to-action: links or buttons", + "max_num": 1, + "required": False, + }, + ), + 89: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with grey background", "required": False}), + 90: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without background", "required": False}), + 91: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without border", "required": False}), + 92: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with a shadow", "required": False}), + 93: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 28), + ("heading_tag", 26), + ("description", 33), + ("image", 42), + ("image_ratio", 72), + ("image_badge", 73), + ("link", 74), + ("url", 75), + ("document", 76), + ("top_detail_text", 77), + ("top_detail_icon", 78), + ("top_detail_badges_tags", 81), + ("bottom_detail_text", 82), + ("bottom_detail_icon", 83), + ("call_to_action", 88), + ("grey_background", 89), + ("no_background", 90), + ("no_border", 91), + ("shadow", 92), + ] + ], + {"group": "DSFR components", "label": "Horizontal card"}, + ), + 94: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": ["bold", "italic", "superscript", "subscript", "strikethrough"], + "label": "Content", + "required": False, + }, + ), + 95: ( + "wagtail.images.blocks.ImageChooserBlock", + (), + {"help_text": "Prefer SVG files.", "label": "Image", "required": False}, + ), + 96: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "If the tile links to a downloadable document, the values are pre-filled.", + "label": "Detail text", + "required": False, + }, + ), + 97: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tile", "required": False}), + 98: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with grey background", "required": False}), + 99: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without background", "required": False}), + 100: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without border", "required": False}), + 101: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with a shadow", "required": False}), + 102: ("wagtail.blocks.BooleanBlock", (), {"label": "Horizontal tile", "required": False}), + 103: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 28), + ("heading_tag", 26), + ("description", 94), + ("image", 95), + ("link", 74), + ("top_detail_badges_tags", 81), + ("detail_text", 96), + ("is_small", 97), + ("grey_background", 98), + ("no_background", 99), + ("no_border", 100), + ("shadow", 101), + ("is_horizontal", 102), + ] + ], + {"group": "DSFR components", "label": "Tile"}, + ), + 104: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 2), + ("image", 3), + ("alt", 4), + ("width", 5), + ("image_ratio", 6), + ("caption", 7), + ("url", 8), + ] + ], + {"label": "Image"}, + ), + 105: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text", "required": False}), + 106: ( + "wagtail.blocks.StreamBlock", + [[("buttons", 87)]], + {"label": "Call-to-action buttons", "max_num": 1, "required": False}, + ), + 107: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.", + "label": "Call to action label (obsolete)", + "required": False, + }, + ), + 108: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.", + "label": "Link (obsolete)", + "required": False, + }, + ), + 109: ( + "wagtail.blocks.StructBlock", + [[("text", 105), ("cta_buttons", 106), ("cta_label", 107), ("cta_url", 108)]], + {"label": "Text and call to action"}, + ), + 110: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Accessibility: The title should describe, in a clear and concise manner, the embedded content.", + "label": "Title", + }, + ), + 111: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Example for Tally: https://tally.so/embed/w2jMRa", + "label": "URL of the iframe", + }, + ), + 112: ("wagtail.blocks.IntegerBlock", (), {"label": "Height (in pixels)"}), + 113: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "For example: \"allow='geolocation'\".", + "label": "Parameters", + "required": False, + }, + ), + 114: ( + "wagtail.blocks.StructBlock", + [[("title", 110), ("url", 111), ("height", 112), ("parameters", 113)]], + {"group": "DSFR components", "label": "Iframe"}, + ), + 115: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + "required": False, + }, + ), + 116: ( + "wagtail.blocks.PageChooserBlock", + (), + {"label": "Blog", "page_type": ["blog.BlogIndexPage"]}, + ), + 117: ( + "wagtail.blocks.IntegerBlock", + (), + { + "default": 3, + "label": "Number of entries", + "max_value": 8, + "min_value": 1, + "required": False, + }, + ), + 118: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Category",), + {"label": "Filter by category", "required": False}, + ), + 119: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("content_manager.Tag",), + {"label": "Filter by tag", "required": False}, + ), + 120: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Person",), + {"label": "Filter by author", "required": False}, + ), + 121: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Organization",), + { + "help_text": "The source is the organization of the post author", + "label": "Filter by source", + "required": False, + }, + ), + 122: ( + "wagtail.blocks.BooleanBlock", + (), + {"default": False, "label": "Show filters", "required": False}, + ), + 123: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 115), + ("blog", 116), + ("entries_count", 117), + ("category_filter", 118), + ("tag_filter", 119), + ("author_filter", 120), + ("source_filter", 121), + ("show_filters", 122), + ] + ], + {"group": "Website structure", "label": "Blog recent entries"}, + ), + 124: ( + "wagtail.blocks.PageChooserBlock", + (), + {"label": "Event calendar", "page_type": ["events.EventsIndexPage"]}, + ), + 125: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 115), + ("index_page", 124), + ("entries_count", 117), + ("category_filter", 118), + ("tag_filter", 119), + ("author_filter", 120), + ("source_filter", 121), + ("show_filters", 122), + ] + ], + {"group": "Website structure", "label": "Event calendar recent entries"}, + ), + 126: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Incompatible with the bottom call-to-action.", + "label": "Bottom detail: text", + "required": False, + }, + ), + 127: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 28), + ("heading_tag", 26), + ("description", 33), + ("image", 42), + ("image_ratio", 6), + ("image_badge", 73), + ("link", 74), + ("url", 75), + ("document", 76), + ("top_detail_text", 77), + ("top_detail_icon", 78), + ("top_detail_badges_tags", 81), + ("bottom_detail_text", 126), + ("bottom_detail_icon", 83), + ("call_to_action", 88), + ("grey_background", 89), + ("no_background", 90), + ("no_border", 91), + ("shadow", 92), + ] + ], + {"group": "DSFR components", "label": "Vertical card"}, + ), + 128: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Person",), + { + "help_text": "Optional, all values can be manually specified or overriden below", + "label": "Person", + "required": False, + }, + ), + 129: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255, "required": False}), + 130: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255, "required": False}), + 131: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Organization", "max_length": 255, "required": False}, + ), + 132: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Contact info", "max_length": 500, "required": False}, + ), + 133: ("wagtail.blocks.StreamBlock", [[("tag", 63)]], {"label": "Tags", "required": False}), + 134: ( + "wagtail.blocks.StructBlock", + [ + [ + ("contact", 128), + ("link", 74), + ("heading_tag", 2), + ("name", 129), + ("role", 130), + ("organization", 131), + ("contact_info", 132), + ("image", 42), + ("tags", 133), + ] + ], + {"group": "Extra components", "label": "Contact card"}, + ), + 135: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 104), + ("video", 53), + ("transcription", 54), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("stepper", 71), + ("text_cta", 109), + ("link", 65), + ("iframe", 114), + ("tile", 103), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("card", 127), + ("contact_card", 134), + ] + ], + {"label": "Content"}, + ), + 136: ( + "wagtail.blocks.StructBlock", + [[("title", 28), ("content", 135)]], + {"label": "Tab", "max_num": 15, "min_num": 1}, + ), + 137: ( + "wagtail.blocks.StreamBlock", + [[("tabs", 136)]], + {"group": "DSFR components", "label": "Tabs"}, + ), + 138: ("wagtailmarkdown.blocks.MarkdownBlock", (), {"group": "Expert syntax", "label": "Markdown"}), + 139: ( + "wagtail.blocks.StructBlock", + [[("title", 110), ("url", 111), ("height", 112), ("parameters", 113)]], + {"group": "Expert syntax", "label": "Iframe"}, + ), + 140: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 3, "label": "Top margin", "max_value": 15, "min_value": 0}, + ), + 141: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 3, "label": "Bottom margin", "max_value": 15, "min_value": 0}, + ), + 142: ( + "wagtail.blocks.StructBlock", + [[("top_margin", 140), ("bottom_margin", 141)]], + {"group": "Page structure", "label": "Separator"}, + ), + 143: ( + "wagtail.images.blocks.ImageChooserBlock", + (), + {"label": "Background image", "required": False}, + ), + 144: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("Primary colors", [("blue-france", "Blue France"), ("red-marianne", "Red Marianne")]), + ("Neutral colors", [("grey", "Grey")]), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "help_text": "Uses the French Design System colors", + "label": "Background color", + "required": False, + }, + ), + 145: ( + "wagtail.blocks.RegexBlock", + (), + { + "error_messages": {"invalid": "Incorrect color format, must be #fff or #f5f5f5"}, + "help_text": "This field is obsolete and will be removed in the near future. Replace it with the background color.", + "label": "Background color, hexadecimal format (obsolete)", + "regex": "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$", + "required": False, + }, + ), + 146: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + "required": False, + }, + ), + 147: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("3", "3/12"), + ("4", "4/12"), + ("5", "5/12"), + ("6", "6/12"), + ("7", "7/12"), + ("8", "8/12"), + ("9", "9/12"), + ], + "help_text": "The total width of all columns should be 12.", + "label": "Column width", + "required": False, + }, + ), + 148: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 104), + ("video", 53), + ("transcription", 54), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("stepper", 71), + ("text_cta", 109), + ("link", 65), + ("iframe", 114), + ("tile", 103), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("card", 127), + ("contact_card", 134), + ] + ], + {"label": "Column content"}, + ), + 149: ( + "wagtail.blocks.StructBlock", + [[("width", 147), ("content", 148)]], + {"group": "Page structure", "label": "Adjustable column"}, + ), + 150: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 104), + ("video", 53), + ("transcription", 54), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("stepper", 71), + ("text_cta", 109), + ("link", 65), + ("iframe", 114), + ("tile", 103), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("card", 127), + ("column", 149), + ] + ], + {"label": "Columns"}, + ), + 151: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 143), + ("bg_color_class", 144), + ("bg_color", 145), + ("title", 1), + ("heading_tag", 146), + ("columns", 150), + ] + ], + {"group": "Page structure", "label": "Multiple columns"}, + ), + 152: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("3", "3/12"), ("4", "4/12"), ("6", "6/12")], "label": "Column width"}, + ), + 153: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 104), + ("video", 53), + ("transcription", 54), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("stepper", 71), + ("text_cta", 109), + ("link", 65), + ("iframe", 114), + ("tile", 103), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("card", 127), + ("contact_card", 134), + ] + ], + {"label": "Items"}, + ), + 154: ( + "wagtail.blocks.StructBlock", + [[("column_width", 152), ("items", 153)]], + {"group": "Page structure", "label": "Item grid"}, + ), + 155: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 104), + ("video", 53), + ("transcription", 54), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("stepper", 71), + ("text_cta", 109), + ("link", 65), + ("iframe", 114), + ("tile", 103), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("image_and_text", 22), + ("card", 93), + ("tabs", 137), + ("item_grid", 154), + ] + ], + {"label": "Content"}, + ), + 156: ( + "wagtail.blocks.StructBlock", + [[("bg_image", 143), ("bg_color_class", 144), ("content", 155)]], + {"group": "Page structure", "label": "Full width background"}, + ), + 157: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 104), + ("video", 53), + ("transcription", 54), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("stepper", 71), + ("text_cta", 109), + ("link", 65), + ("iframe", 114), + ("tile", 103), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("image_and_text", 22), + ("card", 93), + ("tabs", 137), + ("item_grid", 154), + ] + ], + {"label": "Main content"}, + ), + 158: ("wagtail.blocks.CharBlock", (), {"label": "Side menu title", "required": False}), + 159: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "label": "HTML", + }, + ), + 160: ("wagtail.blocks.PageChooserBlock", (), {"label": "Parent page"}), + 161: ("wagtail.blocks.StructBlock", [[("page", 160)]], {"label": "Page tree"}), + 162: ( + "wagtail.blocks.StreamBlock", + [[("html", 159), ("pagetree", 161)]], + {"label": "Side menu content"}, + ), + 163: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 143), + ("bg_color_class", 144), + ("main_content", 157), + ("sidemenu_title", 158), + ("sidemenu_content", 162), + ] + ], + {"group": "Page structure", "label": "Full width background with side menu"}, + ), + 164: ( + "wagtail.blocks.static_block.StaticBlock", + (), + { + "admin_text": "A simple, alphabetical list of the subpages of the current page.", + "group": "Website structure", + "label": "Subpages list", + "template": "content_manager/blocks/subpages_list.html", + }, + ), + 165: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "group": "Expert syntax", + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "readonly": True, + }, + ), + }, + ), + ), + migrations.AlterField( + model_name="eventsindexpage", + name="body", + field=wagtail.fields.StreamField( + [ + ("paragraph", 0), + ("image", 9), + ("imageandtext", 22), + ("alert", 27), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("video", 53), + ("transcription", 54), + ("badges_list", 59), + ("tags_list", 64), + ("link", 65), + ("stepper", 71), + ("card", 93), + ("tile", 103), + ("tabs", 137), + ("markdown", 138), + ("iframe", 139), + ("separator", 142), + ("multicolumns", 151), + ("item_grid", 154), + ("fullwidthbackground", 156), + ("fullwidthbackgroundwithsidemenu", 163), + ("subpageslist", 164), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("html", 165), + ], + blank=True, + block_lookup={ + 0: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text"}), + 1: ("wagtail.blocks.CharBlock", (), {"label": "Title", "required": False}), + 2: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 3.", + "label": "Heading level", + "required": False, + }, + ), + 3: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image"}), + 4: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Alternative text (textual description of the image)", "required": False}, + ), + 5: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-content-media--sm", "Small"), + ("", "Medium"), + ("fr-content-media--lg", "Large"), + ], + "label": "Witdh", + "required": False, + }, + ), + 6: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-ratio-32x9", "32x9"), + ("fr-ratio-16x9", "16x9"), + ("fr-ratio-3x2", "3x2"), + ("fr-ratio-4x3", "4x3"), + ("fr-ratio-1x1", "1x1"), + ("fr-ratio-3x4", "3x4"), + ("fr-ratio-2x3", "2x3"), + ], + "label": "Image ratio", + "required": False, + }, + ), + 7: ("wagtail.blocks.CharBlock", (), {"label": "Caption", "required": False}), + 8: ("wagtail.blocks.URLBlock", (), {"label": "Link", "required": False}), + 9: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 2), + ("image", 3), + ("alt", 4), + ("width", 5), + ("image_ratio", 6), + ("caption", 7), + ("url", 8), + ] + ], + {}, + ), + 10: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("left", "Left"), ("right", "Right")], + "label": "Side where the image is displayed", + }, + ), + 11: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("3", "3/12"), ("5", "5/12"), ("6", "6/12")], "label": "Image width"}, + ), + 12: ( + "wagtail.blocks.PageChooserBlock", + (), + { + "help_text": "Link to a page of this site. Use either this, the document, or the external URL parameter.", + "label": "Page", + "required": False, + }, + ), + 13: ( + "wagtail.documents.blocks.DocumentChooserBlock", + (), + { + "help_text": "Use either this, the external URL or the page parameter.", + "label": "Document", + "required": False, + }, + ), + 14: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Use either this, the document or the page parameter.", + "label": "External URL", + "required": False, + }, + ), + 15: ("wagtail.blocks.CharBlock", (), {"label": "Link label", "required": False}), + 16: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", "No icon"), + ("fr-icon-arrow-right-line fr-link--icon-right", "Icon on the right side"), + ("fr-icon-arrow-right-line fr-link--icon-left", "Icon on the left side"), + ], + "help_text": "Only used for internal links.", + "label": "Icon", + "required": False, + }, + ), + 17: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-link--sm", "Small"), ("", "Medium"), ("fr-link--lg", "Large")], + "label": "Size", + "required": False, + }, + ), + 18: ( + "wagtail.blocks.StructBlock", + [ + [ + ("page", 12), + ("document", 13), + ("external_url", 14), + ("text", 15), + ("icon", 16), + ("size", 17), + ] + ], + { + "help_text": "The link is shown at the bottom of the text block, with an arrow", + "label": "Link", + "required": False, + }, + ), + 19: ( + "wagtail.blocks.CharBlock", + (), + { + "group": "obsolete", + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.", + "label": "Link label (obsolete)", + "required": False, + }, + ), + 20: ( + "wagtail.blocks.PageChooserBlock", + (), + { + "group": "obsolete", + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.", + "label": "Internal link (obsolete)", + "required": False, + }, + ), + 21: ( + "wagtail.blocks.URLBlock", + (), + { + "group": "obsolete", + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.", + "label": "Link URL (obsolete)", + "required": False, + }, + ), + 22: ( + "wagtail.blocks.StructBlock", + [ + [ + ("image", 3), + ("image_side", 10), + ("image_ratio", 11), + ("text", 0), + ("link", 18), + ("link_label", 19), + ("page", 20), + ("link_url", 21), + ] + ], + {"label": "Image and text"}, + ), + 23: ("wagtail.blocks.CharBlock", (), {"label": "Message title", "required": False}), + 24: ("wagtail.blocks.TextBlock", (), {"label": "Message text", "required": False}), + 25: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("error", "Error"), + ("success", "Success"), + ("info", "Information"), + ("warning", "Warning"), + ], + "label": "Message type", + }, + ), + 26: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 3.", + "label": "Heading level", + }, + ), + 27: ( + "wagtail.blocks.StructBlock", + [[("title", 23), ("description", 24), ("level", 25), ("heading_tag", 26)]], + {"label": "Alert message"}, + ), + 28: ("wagtail.blocks.CharBlock", (), {"label": "Title"}), + 29: ("wagtail.blocks.RichTextBlock", (), {"label": "Content"}), + 30: ( + "wagtail.blocks.StructBlock", + [[("title", 28), ("content", 29)]], + {"label": "Accordion", "max_num": 15, "min_num": 1}, + ), + 31: ( + "wagtail.blocks.StreamBlock", + [[("title", 28), ("accordion", 30)]], + {"group": "DSFR components", "label": "Accordions"}, + ), + 32: ("content_manager.blocks.IconPickerBlock", (), {"label": "Icon", "required": False}), + 33: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + ], + "label": "Content", + "required": False, + }, + ), + 34: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("fr-btn", "Primary"), + ("fr-btn fr-btn--secondary", "Secundary"), + ("fr-btn fr-btn--tertiary", "Tertiary"), + ("fr-btn fr-btn--tertiary-no-outline", "Tertiary without border"), + ], + "label": "Button type", + "required": False, + }, + ), + 35: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-btn--icon-left", "Left"), ("fr-btn--icon-right", "Right")], + "label": "Icon side", + "required": False, + }, + ), + 36: ( + "wagtail.blocks.StructBlock", + [ + [ + ("page", 12), + ("document", 13), + ("external_url", 14), + ("text", 15), + ("button_type", 34), + ("icon_class", 32), + ("icon_side", 35), + ] + ], + {"label": "Button", "required": False}, + ), + 37: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + "label": "Color", + "required": False, + }, + ), + 38: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 26), + ("icon_class", 32), + ("text", 33), + ("button", 36), + ("color", 37), + ] + ], + {"group": "DSFR components", "label": "Callout"}, + ), + 39: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": [ + "bold", + "italic", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + ], + "label": "Content", + }, + ), + 40: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-text--sm", "Small"), ("", "Medium"), ("fr-text--lg", "Large")], + "label": "Size", + "required": False, + }, + ), + 41: ( + "wagtail.blocks.StructBlock", + [[("text", 39), ("color", 37), ("size", 40)]], + {"group": "DSFR components", "label": "Highlight"}, + ), + 42: ("wagtail.images.blocks.ImageChooserBlock", (), {"label": "Image", "required": False}), + 43: ("wagtail.blocks.CharBlock", (), {"label": "Quote"}), + 44: ("wagtail.blocks.CharBlock", (), {"label": "Author name", "required": False}), + 45: ("wagtail.blocks.CharBlock", (), {"label": "Author title", "required": False}), + 46: ( + "wagtail.blocks.StructBlock", + [[("image", 42), ("quote", 43), ("author_name", 44), ("author_title", 45), ("color", 37)]], + {"group": "DSFR components", "label": "Quote"}, + ), + 47: ("wagtail.blocks.CharBlock", (), {"label": "Video title", "required": False}), + 48: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Use embed format, with a version that doesn't require a consent banner if available. (e.g. : https://www.youtube-nocookie.com/embed/gLzXOViPX-0) For Youtube, use Embed video and check Enable privacy-enhanced mode.", + "label": "Video URL", + }, + ), + 49: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-ratio-16x9", "16x9"), ("fr-ratio-4x3", "4x3"), ("fr-ratio-1x1", "1x1")], + "label": "Video ratio", + "required": False, + }, + ), + 50: ( + "wagtail.blocks.CharBlock", + (), + {"default": "Transcription", "label": "Title", "required": False}, + ), + 51: ("wagtail.blocks.RichTextBlock", (), {"label": "Transcription content", "required": False}), + 52: ( + "wagtail.blocks.StructBlock", + [[("title", 50), ("content", 51)]], + {"label": "Transcription", "required": False}, + ), + 53: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 47), + ("caption", 7), + ("url", 48), + ("width", 5), + ("video_ratio", 49), + ("transcription", 52), + ] + ], + {"label": "Video"}, + ), + 54: ("wagtail.blocks.StructBlock", [[("title", 50), ("content", 51)]], {"label": "Transcription"}), + 55: ("wagtail.blocks.CharBlock", (), {"label": "Badge label", "required": False}), + 56: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("", [("new", "New"), ("grey", "Grey")]), + ( + "System colors", + [ + ("info", "Info"), + ("success", "Success"), + ("warning", "Warning"), + ("error", "Error"), + ], + ), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "label": "Badge color", + "required": False, + }, + ), + 57: ("wagtail.blocks.BooleanBlock", (), {"label": "Hide badge icon", "required": False}), + 58: ( + "wagtail.blocks.StructBlock", + [[("text", 55), ("color", 56), ("hide_icon", 57)]], + {"label": "Badge"}, + ), + 59: ("wagtail.blocks.StreamBlock", [[("badge", 58)]], {"label": "Badge list"}), + 60: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tag", "required": False}), + 61: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + "help_text": "Only for clickable tags", + "label": "Tag color", + "required": False, + }, + ), + 62: ( + "wagtail.blocks.StructBlock", + [[("page", 12), ("document", 13), ("external_url", 14)]], + {"required": False}, + ), + 63: ( + "wagtail.blocks.StructBlock", + [[("label", 28), ("is_small", 60), ("color", 61), ("icon_class", 32), ("link", 62)]], + {"label": "Tag"}, + ), + 64: ("wagtail.blocks.StreamBlock", [[("tag", 63)]], {"label": "Tag list"}), + 65: ( + "wagtail.blocks.StructBlock", + [ + [ + ("page", 12), + ("document", 13), + ("external_url", 14), + ("text", 15), + ("icon", 16), + ("size", 17), + ] + ], + {"label": "Single link"}, + ), + 66: ( + "wagtail.blocks.IntegerBlock", + (), + {"label": "Number of steps", "max_value": 8, "min_value": 1}, + ), + 67: ("wagtail.blocks.IntegerBlock", (), {"label": "Current step", "max_value": 8, "min_value": 1}), + 68: ("wagtail.blocks.TextBlock", (), {"label": "Detail"}), + 69: ("wagtail.blocks.StructBlock", [[("title", 28), ("detail", 68)]], {"label": "Step"}), + 70: ("wagtail.blocks.StreamBlock", [[("step", 69)]], {"label": "Steps"}), + 71: ( + "wagtail.blocks.StructBlock", + [[("title", 28), ("total", 66), ("current", 67), ("steps", 70)]], + {"group": "DSFR components", "label": "Stepper"}, + ), + 72: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [("fr-card--horizontal-tier", "1/3"), ("fr-card--horizontal-half", "50/50")], + "label": "Image ratio", + "required": False, + }, + ), + 73: ( + "wagtail.blocks.StreamBlock", + [[("badge", 58)]], + { + "help_text": "Only used if the card has an image.", + "label": "Image area badge", + "max_num": 1, + "required": False, + }, + ), + 74: ( + "wagtail.blocks.StructBlock", + [[("page", 12), ("document", 13), ("external_url", 14)]], + {"label": "Link", "required": False}, + ), + 75: ( + "wagtail.blocks.URLBlock", + (), + { + "group": "target", + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.", + "label": "Link (obsolete)", + "required": False, + }, + ), + 76: ( + "wagtail.documents.blocks.DocumentChooserBlock", + (), + { + "group": "target", + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the Link field above.", + "label": "or Document (obsolete)", + "required": False, + }, + ), + 77: ("wagtail.blocks.CharBlock", (), {"label": "Top detail: text", "required": False}), + 78: ( + "content_manager.blocks.IconPickerBlock", + (), + {"label": "Top detail: icon", "required": False}, + ), + 79: ("wagtail.blocks.StreamBlock", [[("badge", 58)]], {}), + 80: ("wagtail.blocks.StreamBlock", [[("tag", 63)]], {}), + 81: ( + "wagtail.blocks.StreamBlock", + [[("badges", 79), ("tags", 80)]], + {"label": "Top detail: badges or tags", "max_num": 1, "required": False}, + ), + 82: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Incompatible with the bottom call-to-action. If the card links to a downloadable document, the values are pre-filled.", + "label": "Bottom detail: text", + "required": False, + }, + ), + 83: ( + "content_manager.blocks.IconPickerBlock", + (), + {"label": "Bottom detail: icon", "required": False}, + ), + 84: ( + "wagtail.blocks.StructBlock", + [[("page", 12), ("document", 13), ("external_url", 14), ("text", 15)]], + {"label": "Link"}, + ), + 85: ("wagtail.blocks.StreamBlock", [[("link", 84)]], {}), + 86: ( + "wagtail.blocks.StructBlock", + [ + [ + ("page", 12), + ("document", 13), + ("external_url", 14), + ("text", 15), + ("button_type", 34), + ("icon_class", 32), + ("icon_side", 35), + ] + ], + {"label": "Button"}, + ), + 87: ( + "wagtail.blocks.StreamBlock", + [[("button", 86)]], + { + "help_text": "Please use only one primary button.\n If you use icons, use them on all buttons and align them on the same side.", + "label": "Buttons", + }, + ), + 88: ( + "wagtail.blocks.StreamBlock", + [[("links", 85), ("buttons", 87)]], + { + "help_text": "Incompatible with the bottom detail text.", + "label": "Bottom call-to-action: links or buttons", + "max_num": 1, + "required": False, + }, + ), + 89: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with grey background", "required": False}), + 90: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without background", "required": False}), + 91: ("wagtail.blocks.BooleanBlock", (), {"label": "Card without border", "required": False}), + 92: ("wagtail.blocks.BooleanBlock", (), {"label": "Card with a shadow", "required": False}), + 93: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 28), + ("heading_tag", 26), + ("description", 33), + ("image", 42), + ("image_ratio", 72), + ("image_badge", 73), + ("link", 74), + ("url", 75), + ("document", 76), + ("top_detail_text", 77), + ("top_detail_icon", 78), + ("top_detail_badges_tags", 81), + ("bottom_detail_text", 82), + ("bottom_detail_icon", 83), + ("call_to_action", 88), + ("grey_background", 89), + ("no_background", 90), + ("no_border", 91), + ("shadow", 92), + ] + ], + {"group": "DSFR components", "label": "Horizontal card"}, + ), + 94: ( + "wagtail.blocks.RichTextBlock", + (), + { + "features": ["bold", "italic", "superscript", "subscript", "strikethrough"], + "label": "Content", + "required": False, + }, + ), + 95: ( + "wagtail.images.blocks.ImageChooserBlock", + (), + {"help_text": "Prefer SVG files.", "label": "Image", "required": False}, + ), + 96: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "If the tile links to a downloadable document, the values are pre-filled.", + "label": "Detail text", + "required": False, + }, + ), + 97: ("wagtail.blocks.BooleanBlock", (), {"label": "Small tile", "required": False}), + 98: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with grey background", "required": False}), + 99: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without background", "required": False}), + 100: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile without border", "required": False}), + 101: ("wagtail.blocks.BooleanBlock", (), {"label": "Tile with a shadow", "required": False}), + 102: ("wagtail.blocks.BooleanBlock", (), {"label": "Horizontal tile", "required": False}), + 103: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 28), + ("heading_tag", 26), + ("description", 94), + ("image", 95), + ("link", 74), + ("top_detail_badges_tags", 81), + ("detail_text", 96), + ("is_small", 97), + ("grey_background", 98), + ("no_background", 99), + ("no_border", 100), + ("shadow", 101), + ("is_horizontal", 102), + ] + ], + {"group": "DSFR components", "label": "Tile"}, + ), + 104: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 2), + ("image", 3), + ("alt", 4), + ("width", 5), + ("image_ratio", 6), + ("caption", 7), + ("url", 8), + ] + ], + {"label": "Image"}, + ), + 105: ("wagtail.blocks.RichTextBlock", (), {"label": "Rich text", "required": False}), + 106: ( + "wagtail.blocks.StreamBlock", + [[("buttons", 87)]], + {"label": "Call-to-action buttons", "max_num": 1, "required": False}, + ), + 107: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.", + "label": "Call to action label (obsolete)", + "required": False, + }, + ), + 108: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "This field is obsolete and will be removed in the near future. Please replace with the CTA buttons above.", + "label": "Link (obsolete)", + "required": False, + }, + ), + 109: ( + "wagtail.blocks.StructBlock", + [[("text", 105), ("cta_buttons", 106), ("cta_label", 107), ("cta_url", 108)]], + {"label": "Text and call to action"}, + ), + 110: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Accessibility: The title should describe, in a clear and concise manner, the embedded content.", + "label": "Title", + }, + ), + 111: ( + "wagtail.blocks.URLBlock", + (), + { + "help_text": "Example for Tally: https://tally.so/embed/w2jMRa", + "label": "URL of the iframe", + }, + ), + 112: ("wagtail.blocks.IntegerBlock", (), {"label": "Height (in pixels)"}), + 113: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "For example: \"allow='geolocation'\".", + "label": "Parameters", + "required": False, + }, + ), + 114: ( + "wagtail.blocks.StructBlock", + [[("title", 110), ("url", 111), ("height", 112), ("parameters", 113)]], + {"group": "DSFR components", "label": "Iframe"}, + ), + 115: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + "required": False, + }, + ), + 116: ( + "wagtail.blocks.PageChooserBlock", + (), + {"label": "Blog", "page_type": ["blog.BlogIndexPage"]}, + ), + 117: ( + "wagtail.blocks.IntegerBlock", + (), + { + "default": 3, + "label": "Number of entries", + "max_value": 8, + "min_value": 1, + "required": False, + }, + ), + 118: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Category",), + {"label": "Filter by category", "required": False}, + ), + 119: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("content_manager.Tag",), + {"label": "Filter by tag", "required": False}, + ), + 120: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Person",), + {"label": "Filter by author", "required": False}, + ), + 121: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Organization",), + { + "help_text": "The source is the organization of the post author", + "label": "Filter by source", + "required": False, + }, + ), + 122: ( + "wagtail.blocks.BooleanBlock", + (), + {"default": False, "label": "Show filters", "required": False}, + ), + 123: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 115), + ("blog", 116), + ("entries_count", 117), + ("category_filter", 118), + ("tag_filter", 119), + ("author_filter", 120), + ("source_filter", 121), + ("show_filters", 122), + ] + ], + {"group": "Website structure", "label": "Blog recent entries"}, + ), + 124: ( + "wagtail.blocks.PageChooserBlock", + (), + {"label": "Event calendar", "page_type": ["events.EventsIndexPage"]}, + ), + 125: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 1), + ("heading_tag", 115), + ("index_page", 124), + ("entries_count", 117), + ("category_filter", 118), + ("tag_filter", 119), + ("author_filter", 120), + ("source_filter", 121), + ("show_filters", 122), + ] + ], + {"group": "Website structure", "label": "Event calendar recent entries"}, + ), + 126: ( + "wagtail.blocks.CharBlock", + (), + { + "help_text": "Incompatible with the bottom call-to-action.", + "label": "Bottom detail: text", + "required": False, + }, + ), + 127: ( + "wagtail.blocks.StructBlock", + [ + [ + ("title", 28), + ("heading_tag", 26), + ("description", 33), + ("image", 42), + ("image_ratio", 6), + ("image_badge", 73), + ("link", 74), + ("url", 75), + ("document", 76), + ("top_detail_text", 77), + ("top_detail_icon", 78), + ("top_detail_badges_tags", 81), + ("bottom_detail_text", 126), + ("bottom_detail_icon", 83), + ("call_to_action", 88), + ("grey_background", 89), + ("no_background", 90), + ("no_border", 91), + ("shadow", 92), + ] + ], + {"group": "DSFR components", "label": "Vertical card"}, + ), + 128: ( + "wagtail.snippets.blocks.SnippetChooserBlock", + ("blog.Person",), + { + "help_text": "Optional, all values can be manually specified or overriden below", + "label": "Person", + "required": False, + }, + ), + 129: ("wagtail.blocks.CharBlock", (), {"label": "Name", "max_length": 255, "required": False}), + 130: ("wagtail.blocks.CharBlock", (), {"label": "Role", "max_length": 255, "required": False}), + 131: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Organization", "max_length": 255, "required": False}, + ), + 132: ( + "wagtail.blocks.CharBlock", + (), + {"label": "Contact info", "max_length": 500, "required": False}, + ), + 133: ("wagtail.blocks.StreamBlock", [[("tag", 63)]], {"label": "Tags", "required": False}), + 134: ( + "wagtail.blocks.StructBlock", + [ + [ + ("contact", 128), + ("link", 74), + ("heading_tag", 2), + ("name", 129), + ("role", 130), + ("organization", 131), + ("contact_info", 132), + ("image", 42), + ("tags", 133), + ] + ], + {"group": "Extra components", "label": "Contact card"}, + ), + 135: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 104), + ("video", 53), + ("transcription", 54), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("stepper", 71), + ("text_cta", 109), + ("link", 65), + ("iframe", 114), + ("tile", 103), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("card", 127), + ("contact_card", 134), + ] + ], + {"label": "Content"}, + ), + 136: ( + "wagtail.blocks.StructBlock", + [[("title", 28), ("content", 135)]], + {"label": "Tab", "max_num": 15, "min_num": 1}, + ), + 137: ( + "wagtail.blocks.StreamBlock", + [[("tabs", 136)]], + {"group": "DSFR components", "label": "Tabs"}, + ), + 138: ("wagtailmarkdown.blocks.MarkdownBlock", (), {"group": "Expert syntax", "label": "Markdown"}), + 139: ( + "wagtail.blocks.StructBlock", + [[("title", 110), ("url", 111), ("height", 112), ("parameters", 113)]], + {"group": "Expert syntax", "label": "Iframe"}, + ), + 140: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 3, "label": "Top margin", "max_value": 15, "min_value": 0}, + ), + 141: ( + "wagtail.blocks.IntegerBlock", + (), + {"default": 3, "label": "Bottom margin", "max_value": 15, "min_value": 0}, + ), + 142: ( + "wagtail.blocks.StructBlock", + [[("top_margin", 140), ("bottom_margin", 141)]], + {"group": "Page structure", "label": "Separator"}, + ), + 143: ( + "wagtail.images.blocks.ImageChooserBlock", + (), + {"label": "Background image", "required": False}, + ), + 144: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("Primary colors", [("blue-france", "Blue France"), ("red-marianne", "Red Marianne")]), + ("Neutral colors", [("grey", "Grey")]), + ( + "Illustration colors", + [ + ("green-tilleul-verveine", "Tilleul verveine"), + ("green-bourgeon", "Bourgeon"), + ("green-emeraude", "Émeraude"), + ("green-menthe", "Menthe"), + ("green-archipel", "Archipel"), + ("blue-ecume", "Écume"), + ("blue-cumulus", "Cumulus"), + ("purple-glycine", "Glycine"), + ("pink-macaron", "Macaron"), + ("pink-tuile", "Tuile"), + ("yellow-tournesol", "Tournesol"), + ("yellow-moutarde", "Moutarde"), + ("orange-terre-battue", "Terre battue"), + ("brown-cafe-creme", "Café crème"), + ("brown-caramel", "Caramel"), + ("brown-opera", "Opéra"), + ("beige-gris-galet", "Gris galet"), + ], + ), + ], + "help_text": "Uses the French Design System colors", + "label": "Background color", + "required": False, + }, + ), + 145: ( + "wagtail.blocks.RegexBlock", + (), + { + "error_messages": {"invalid": "Incorrect color format, must be #fff or #f5f5f5"}, + "help_text": "This field is obsolete and will be removed in the near future. Replace it with the background color.", + "label": "Background color, hexadecimal format (obsolete)", + "regex": "^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$", + "required": False, + }, + ), + 146: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("h2", "Heading 2"), + ("h3", "Heading 3"), + ("h4", "Heading 4"), + ("h5", "Heading 5"), + ("h6", "Heading 6"), + ("p", "Paragraph"), + ], + "help_text": "Adapt to the page layout. Defaults to heading 2.", + "label": "Heading level", + "required": False, + }, + ), + 147: ( + "wagtail.blocks.ChoiceBlock", + [], + { + "choices": [ + ("3", "3/12"), + ("4", "4/12"), + ("5", "5/12"), + ("6", "6/12"), + ("7", "7/12"), + ("8", "8/12"), + ("9", "9/12"), + ], + "help_text": "The total width of all columns should be 12.", + "label": "Column width", + "required": False, + }, + ), + 148: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 104), + ("video", 53), + ("transcription", 54), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("stepper", 71), + ("text_cta", 109), + ("link", 65), + ("iframe", 114), + ("tile", 103), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("card", 127), + ("contact_card", 134), + ] + ], + {"label": "Column content"}, + ), + 149: ( + "wagtail.blocks.StructBlock", + [[("width", 147), ("content", 148)]], + {"group": "Page structure", "label": "Adjustable column"}, + ), + 150: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 104), + ("video", 53), + ("transcription", 54), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("stepper", 71), + ("text_cta", 109), + ("link", 65), + ("iframe", 114), + ("tile", 103), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("card", 127), + ("column", 149), + ] + ], + {"label": "Columns"}, + ), + 151: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 143), + ("bg_color_class", 144), + ("bg_color", 145), + ("title", 1), + ("heading_tag", 146), + ("columns", 150), + ] + ], + {"group": "Page structure", "label": "Multiple columns"}, + ), + 152: ( + "wagtail.blocks.ChoiceBlock", + [], + {"choices": [("3", "3/12"), ("4", "4/12"), ("6", "6/12")], "label": "Column width"}, + ), + 153: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 104), + ("video", 53), + ("transcription", 54), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("stepper", 71), + ("text_cta", 109), + ("link", 65), + ("iframe", 114), + ("tile", 103), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("card", 127), + ("contact_card", 134), + ] + ], + {"label": "Items"}, + ), + 154: ( + "wagtail.blocks.StructBlock", + [[("column_width", 152), ("items", 153)]], + {"group": "Page structure", "label": "Item grid"}, + ), + 155: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 104), + ("video", 53), + ("transcription", 54), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("stepper", 71), + ("text_cta", 109), + ("link", 65), + ("iframe", 114), + ("tile", 103), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("image_and_text", 22), + ("card", 93), + ("tabs", 137), + ("item_grid", 154), + ] + ], + {"label": "Content"}, + ), + 156: ( + "wagtail.blocks.StructBlock", + [[("bg_image", 143), ("bg_color_class", 144), ("content", 155)]], + {"group": "Page structure", "label": "Full width background"}, + ), + 157: ( + "wagtail.blocks.StreamBlock", + [ + [ + ("text", 0), + ("image", 104), + ("video", 53), + ("transcription", 54), + ("accordions", 31), + ("callout", 38), + ("highlight", 41), + ("quote", 46), + ("stepper", 71), + ("text_cta", 109), + ("link", 65), + ("iframe", 114), + ("tile", 103), + ("blog_recent_entries", 123), + ("events_recent_entries", 125), + ("image_and_text", 22), + ("card", 93), + ("tabs", 137), + ("item_grid", 154), + ] + ], + {"label": "Main content"}, + ), + 158: ("wagtail.blocks.CharBlock", (), {"label": "Side menu title", "required": False}), + 159: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "label": "HTML", + }, + ), + 160: ("wagtail.blocks.PageChooserBlock", (), {"label": "Parent page"}), + 161: ("wagtail.blocks.StructBlock", [[("page", 160)]], {"label": "Page tree"}), + 162: ( + "wagtail.blocks.StreamBlock", + [[("html", 159), ("pagetree", 161)]], + {"label": "Side menu content"}, + ), + 163: ( + "wagtail.blocks.StructBlock", + [ + [ + ("bg_image", 143), + ("bg_color_class", 144), + ("main_content", 157), + ("sidemenu_title", 158), + ("sidemenu_content", 162), + ] + ], + {"group": "Page structure", "label": "Full width background with side menu"}, + ), + 164: ( + "wagtail.blocks.static_block.StaticBlock", + (), + { + "admin_text": "A simple, alphabetical list of the subpages of the current page.", + "group": "Website structure", + "label": "Subpages list", + "template": "content_manager/blocks/subpages_list.html", + }, + ), + 165: ( + "wagtail.blocks.RawHTMLBlock", + (), + { + "group": "Expert syntax", + "help_text": "Warning: Use HTML block with caution. Malicious code can compromise the security of the site.", + "readonly": True, + }, + ), + }, + ), + ), + ] diff --git a/static/css/style.css b/static/css/style.css index 9c234e6d..4358e003 100644 --- a/static/css/style.css +++ b/static/css/style.css @@ -1 +1 @@ -.cmsfr-hero{background-size:cover;background-position:center;background-repeat:no-repeat}.cmsfr-hero-large{display:flex;justify-content:center;align-items:center;text-align:center}.cmsfr-background-dark h1,.cmsfr-background-dark p,.cmsfr-background-dark ul{color:white}:root[data-fr-theme=light] .cmsfr-background-dark .fr-btn--secondary{background-color:rgba(255,255,255,0.3)}.fr-header__service-title em{font-weight:lighter}.cmsfr-author_card__header{flex:0 0 6rem !important;width:6rem !important}.cmsfr-author-img{border-radius:50%;height:4.5rem !important;margin:1.5rem;width:4.5rem}.cmsfr-footer__bottom-extra{border-left:1px solid var(--border-default-grey);padding-left:1em;margin-left:1em}.cmsfr-display__inline{display:inline} +.cmsfr-hero{background-size:cover;background-position:center;background-repeat:no-repeat}.cmsfr-hero-large{display:flex;justify-content:center;align-items:center;text-align:center}.cmsfr-background-dark h1,.cmsfr-background-dark p,.cmsfr-background-dark ul{color:white}:root[data-fr-theme=light] .cmsfr-background-dark .fr-btn--secondary{background-color:rgba(255,255,255,0.3)}.fr-header__service-title em{font-weight:lighter}.cmsfr-author_card__header{flex:0 0 6rem !important;width:6rem !important}.cmsfr-author-img{border-radius:50%;height:4.5rem !important;margin:1.5rem;width:4.5rem}.cmsfr-vertical_contact_card__header{background:var(--background-default-grey)}.cmsfr-vertical_contact_card-img{border-radius:50%;height:100%;width:100%;margin:auto;max-width:50%;aspect-ratio:initial !important}.cmsfr-footer__bottom-extra{border-left:1px solid var(--border-default-grey);padding-left:1em;margin-left:1em}.cmsfr-display__inline{display:inline} diff --git a/static/css/style.sass b/static/css/style.sass index 9b937d4d..c4f7d55e 100644 --- a/static/css/style.sass +++ b/static/css/style.sass @@ -32,6 +32,17 @@ margin: 1.5rem width: 4.5rem +.cmsfr-vertical_contact_card__header + background: var(--background-default-grey) + +.cmsfr-vertical_contact_card-img + border-radius: 50% + height: 100% + width: 100% + margin: auto + max-width: 50% + aspect-ratio: initial !important + .cmsfr-footer__bottom-extra border-left: 1px solid var(--border-default-grey) padding-left: 1em