diff --git a/district/migrations/0114_districtcustompage_access_token_and_more.py b/district/migrations/0114_districtcustompage_access_token_and_more.py new file mode 100644 index 0000000000000000000000000000000000000000..c20723ba7e1abd4c680b2b65da092d36eaaff02b --- /dev/null +++ b/district/migrations/0114_districtcustompage_access_token_and_more.py @@ -0,0 +1,6586 @@ +# Generated by Django 4.1.8 on 2023-05-12 22:44 + +import wagtail.blocks +import wagtail.contrib.table_block.blocks +import wagtail.fields +import wagtail.images.blocks +from django.db import migrations, models + +import shared.blocks + + +class Migration(migrations.Migration): + dependencies = [ + ("district", "0113_merge_20230502_1854"), + ] + + operations = [ + migrations.AddField( + model_name="districtcustompage", + name="access_token", + field=models.CharField( + blank=True, max_length=512, null=True, verbose_name="Access token" + ), + ), + migrations.AddField( + model_name="districtcustompage", + name="require_confirmation", + field=models.BooleanField( + default=True, verbose_name="Požadovat zaslání ověřovacího e-mailu?" + ), + ), + migrations.AddField( + model_name="districtcustompage", + name="subscription_id", + field=models.CharField( + blank=True, max_length=512, null=True, verbose_name="ID newsletteru" + ), + ), + migrations.AddField( + model_name="districthomepage", + name="access_token", + field=models.CharField( + blank=True, max_length=512, null=True, verbose_name="Access token" + ), + ), + migrations.AddField( + model_name="districthomepage", + name="require_confirmation", + field=models.BooleanField( + default=True, verbose_name="Požadovat zaslání ověřovacího e-mailu?" + ), + ), + migrations.AddField( + model_name="districthomepage", + name="subscription_id", + field=models.CharField( + blank=True, max_length=512, null=True, verbose_name="ID newsletteru" + ), + ), + migrations.AlterField( + model_name="districtcustompage", + name="content", + field=wagtail.fields.StreamField( + [ + ( + "text", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", + ], + label="Textový editor", + ), + ), + ( + "headline", + wagtail.blocks.StructBlock( + [ + ( + "headline", + wagtail.blocks.CharBlock( + label="Headline", max_length=300, required=True + ), + ), + ( + "style", + wagtail.blocks.ChoiceBlock( + choices=[ + ("head-alt-xl", "Bebas XL"), + ("head-alt-lg", "Bebas L"), + ("head-alt-md", "Bebas M"), + ("head-alt-base", "Bebas base"), + ("head-alt-sm", "Bebas SM"), + ("head-alt-xs", "Bebas XS"), + ("head-alt-2xs", "Bebas 2XS"), + ("head-heavy-base", "Roboto base"), + ("head-heavy-sm", "Roboto SM"), + ("head-heavy-xs", "Roboto XS"), + ("head-heavy-2xs", "Roboto 2XS"), + ("head-allcaps-2xs", "Allcaps 2XS"), + ("head-allcaps-3xs", "Allcaps 3XS"), + ("head-allcaps-4xs", "Allcaps 4XS"), + ( + "head-heavy-allcaps-2xs", + "Allcaps heavy 2XS", + ), + ( + "head-heavy-allcaps-3xs", + "Allcaps heavy 3XS", + ), + ( + "head-heavy-allcaps-4xs", + "Allcaps heavy 4XS", + ), + ], + help_text="Náhled si prohlédněte na https://styleguide.pir-test.eu/latest/?p=viewall-atoms-text.", + label="Styl", + ), + ), + ( + "tag", + wagtail.blocks.ChoiceBlock( + choices=[ + ("h1", "H1"), + ("h2", "H2"), + ("h3", "H3"), + ("h4", "H4"), + ("h5", "H5"), + ("h6", "H6"), + ], + help_text="Čím nižší číslo, tím vyšší úroveň.", + label="Úroveň nadpisu", + ), + ), + ( + "align", + wagtail.blocks.ChoiceBlock( + choices=[ + ("auto", "Automaticky"), + ("center", "Na střed"), + ], + label="Zarovnání", + ), + ), + ] + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "gallery", + wagtail.blocks.StructBlock( + [ + ( + "gallery_items", + wagtail.blocks.ListBlock( + wagtail.images.blocks.ImageChooserBlock( + label="obrázek", required=True + ), + group="ostatní", + icon="image", + label="Galerie", + ), + ) + ], + label="Galerie", + ), + ), + ( + "figure", + wagtail.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", required=True + ), + ), + ( + "caption", + wagtail.blocks.TextBlock( + label="Popisek", required=False + ), + ), + ] + ), + ), + ( + "card", + wagtail.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", required=False + ), + ), + ( + "elevation", + wagtail.blocks.IntegerBlock( + default=2, + help_text="0 = žádný stín, 21 = maximální stín", + label="Velikost stínu", + max_value=21, + min_value=0, + ), + ), + ( + "headline", + wagtail.blocks.TextBlock( + label="Titulek", required=False + ), + ), + ( + "hoveractive", + wagtail.blocks.BooleanBlock( + default=False, + help_text="Pokud je zapnuto, stín se zvýrazní, když na kartu uživatel najede myší.", + label="Zvýraznit stín na hover", + required=False, + ), + ), + ( + "content", + wagtail.blocks.StreamBlock( + [ + ( + "text", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "figure", + wagtail.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.blocks.StructBlock( + [ + ( + "poster_image", + wagtail.images.blocks.ImageChooserBlock( + help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", + label="Náhled videa (automatické pole)", + required=False, + ), + ), + ( + "video_url", + wagtail.blocks.URLBlock( + help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", + label="Odkaz na video", + required=False, + ), + ), + ( + "video_id", + wagtail.blocks.CharBlock( + help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", + label="ID videa (automatické pole)", + required=False, + ), + ), + ] + ), + ), + ( + "map_point", + wagtail.blocks.StructBlock( + [ + ( + "lat", + wagtail.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ), + ( + "stadia-osm-bright", + "Stadia OSM Bright", + ), + ( + "stadia-outdoors", + "Stadia Outdoors", + ), + ( + "mapbox-streets", + "Mapbox Streets", + ), + ( + "mapbox-outdoors", + "Mapbox Outdoors", + ), + ( + "mapbox-light", + "Mapbox Light", + ), + ( + "mapbox-dark", + "Mapbox Dark", + ), + ( + "mapbox-satellite", + "Mapbox Satellite", + ), + ( + "mapbox-pirate", + "Mapbox Pirate Theme", + ), + ], + label="Styl", + ), + ), + ( + "height", + wagtail.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.blocks.StructBlock( + [ + ( + "features", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva (HEX)", + ), + ), + ], + required=True, + ), + label="Součásti", + ), + ), + ( + "zoom", + wagtail.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ), + ( + "stadia-osm-bright", + "Stadia OSM Bright", + ), + ( + "stadia-outdoors", + "Stadia Outdoors", + ), + ( + "mapbox-streets", + "Mapbox Streets", + ), + ( + "mapbox-outdoors", + "Mapbox Outdoors", + ), + ( + "mapbox-light", + "Mapbox Light", + ), + ( + "mapbox-dark", + "Mapbox Dark", + ), + ( + "mapbox-satellite", + "Mapbox Satellite", + ), + ( + "mapbox-pirate", + "Mapbox Pirate Theme", + ), + ], + label="Styl", + ), + ), + ( + "height", + wagtail.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ], + label="Obsah", + required=False, + ), + ), + ( + "page", + wagtail.blocks.PageChooserBlock( + label="Stránka", required=False + ), + ), + ( + "link", + wagtail.blocks.URLBlock( + label="Odkaz", required=False + ), + ), + ] + ), + ), + ( + "two_columns", + wagtail.blocks.StructBlock( + [ + ( + "left_column_content", + wagtail.blocks.StreamBlock( + [ + ( + "text", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "card", + wagtail.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "elevation", + wagtail.blocks.IntegerBlock( + default=2, + help_text="0 = žádný stín, 21 = maximální stín", + label="Velikost stínu", + max_value=21, + min_value=0, + ), + ), + ( + "headline", + wagtail.blocks.TextBlock( + label="Titulek", + required=False, + ), + ), + ( + "hoveractive", + wagtail.blocks.BooleanBlock( + default=False, + help_text="Pokud je zapnuto, stín se zvýrazní, když na kartu uživatel najede myší.", + label="Zvýraznit stín na hover", + required=False, + ), + ), + ( + "content", + wagtail.blocks.StreamBlock( + [ + ( + "text", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "figure", + wagtail.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.blocks.StructBlock( + [ + ( + "poster_image", + wagtail.images.blocks.ImageChooserBlock( + help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", + label="Náhled videa (automatické pole)", + required=False, + ), + ), + ( + "video_url", + wagtail.blocks.URLBlock( + help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", + label="Odkaz na video", + required=False, + ), + ), + ( + "video_id", + wagtail.blocks.CharBlock( + help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", + label="ID videa (automatické pole)", + required=False, + ), + ), + ] + ), + ), + ( + "map_point", + wagtail.blocks.StructBlock( + [ + ( + "lat", + wagtail.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ), + ( + "stadia-osm-bright", + "Stadia OSM Bright", + ), + ( + "stadia-outdoors", + "Stadia Outdoors", + ), + ( + "mapbox-streets", + "Mapbox Streets", + ), + ( + "mapbox-outdoors", + "Mapbox Outdoors", + ), + ( + "mapbox-light", + "Mapbox Light", + ), + ( + "mapbox-dark", + "Mapbox Dark", + ), + ( + "mapbox-satellite", + "Mapbox Satellite", + ), + ( + "mapbox-pirate", + "Mapbox Pirate Theme", + ), + ], + label="Styl", + ), + ), + ( + "height", + wagtail.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.blocks.StructBlock( + [ + ( + "features", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva (HEX)", + ), + ), + ], + required=True, + ), + label="Součásti", + ), + ), + ( + "zoom", + wagtail.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ), + ( + "stadia-osm-bright", + "Stadia OSM Bright", + ), + ( + "stadia-outdoors", + "Stadia Outdoors", + ), + ( + "mapbox-streets", + "Mapbox Streets", + ), + ( + "mapbox-outdoors", + "Mapbox Outdoors", + ), + ( + "mapbox-light", + "Mapbox Light", + ), + ( + "mapbox-dark", + "Mapbox Dark", + ), + ( + "mapbox-satellite", + "Mapbox Satellite", + ), + ( + "mapbox-pirate", + "Mapbox Pirate Theme", + ), + ], + label="Styl", + ), + ), + ( + "height", + wagtail.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ], + label="Obsah", + required=False, + ), + ), + ( + "page", + wagtail.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + ), + ( + "figure", + wagtail.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.blocks.StructBlock( + [ + ( + "poster_image", + wagtail.images.blocks.ImageChooserBlock( + help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", + label="Náhled videa (automatické pole)", + required=False, + ), + ), + ( + "video_url", + wagtail.blocks.URLBlock( + help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", + label="Odkaz na video", + required=False, + ), + ), + ( + "video_id", + wagtail.blocks.CharBlock( + help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", + label="ID videa (automatické pole)", + required=False, + ), + ), + ] + ), + ), + ( + "map_point", + wagtail.blocks.StructBlock( + [ + ( + "lat", + wagtail.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ), + ( + "stadia-osm-bright", + "Stadia OSM Bright", + ), + ( + "stadia-outdoors", + "Stadia Outdoors", + ), + ( + "mapbox-streets", + "Mapbox Streets", + ), + ( + "mapbox-outdoors", + "Mapbox Outdoors", + ), + ( + "mapbox-light", + "Mapbox Light", + ), + ( + "mapbox-dark", + "Mapbox Dark", + ), + ( + "mapbox-satellite", + "Mapbox Satellite", + ), + ( + "mapbox-pirate", + "Mapbox Pirate Theme", + ), + ], + label="Styl", + ), + ), + ( + "height", + wagtail.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.blocks.StructBlock( + [ + ( + "features", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva (HEX)", + ), + ), + ], + required=True, + ), + label="Součásti", + ), + ), + ( + "zoom", + wagtail.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ), + ( + "stadia-osm-bright", + "Stadia OSM Bright", + ), + ( + "stadia-outdoors", + "Stadia Outdoors", + ), + ( + "mapbox-streets", + "Mapbox Streets", + ), + ( + "mapbox-outdoors", + "Mapbox Outdoors", + ), + ( + "mapbox-light", + "Mapbox Light", + ), + ( + "mapbox-dark", + "Mapbox Dark", + ), + ( + "mapbox-satellite", + "Mapbox Satellite", + ), + ( + "mapbox-pirate", + "Mapbox Pirate Theme", + ), + ], + label="Styl", + ), + ), + ( + "height", + wagtail.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ( + "button", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.blocks.ChoiceBlock( + choices=[ + ("sm", "Malá"), + ("base", "Střední"), + ("lg", "Velká"), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.blocks.ChoiceBlock( + choices=[ + ("black", "Černá"), + ("white", "Bílá"), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "mobile_fullwidth", + wagtail.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko se na mobilních zařízeních roztáhne na plnou šířku.", + label="Plná šířka na mobilních zařízeních", + required=False, + ), + ), + ( + "page", + wagtail.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "align", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "auto", + "Automaticky", + ), + ( + "center", + "Na střed", + ), + ], + label="Zarovnání", + ), + ), + ] + ), + ), + ( + "button_group", + wagtail.blocks.StructBlock( + [ + ( + "buttons", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "mobile_fullwidth", + wagtail.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko se na mobilních zařízeních roztáhne na plnou šířku.", + label="Plná šířka na mobilních zařízeních", + required=False, + ), + ), + ( + "page", + wagtail.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "align", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "auto", + "Automaticky", + ), + ( + "center", + "Na střed", + ), + ], + label="Zarovnání", + ), + ), + ] + ), + label="Tlačítka", + ), + ) + ] + ), + ), + ], + label="Obsah levého sloupce", + required=True, + ), + ), + ( + "right_column_content", + wagtail.blocks.StreamBlock( + [ + ( + "text", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "card", + wagtail.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "elevation", + wagtail.blocks.IntegerBlock( + default=2, + help_text="0 = žádný stín, 21 = maximální stín", + label="Velikost stínu", + max_value=21, + min_value=0, + ), + ), + ( + "headline", + wagtail.blocks.TextBlock( + label="Titulek", + required=False, + ), + ), + ( + "hoveractive", + wagtail.blocks.BooleanBlock( + default=False, + help_text="Pokud je zapnuto, stín se zvýrazní, když na kartu uživatel najede myší.", + label="Zvýraznit stín na hover", + required=False, + ), + ), + ( + "content", + wagtail.blocks.StreamBlock( + [ + ( + "text", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "figure", + wagtail.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.blocks.StructBlock( + [ + ( + "poster_image", + wagtail.images.blocks.ImageChooserBlock( + help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", + label="Náhled videa (automatické pole)", + required=False, + ), + ), + ( + "video_url", + wagtail.blocks.URLBlock( + help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", + label="Odkaz na video", + required=False, + ), + ), + ( + "video_id", + wagtail.blocks.CharBlock( + help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", + label="ID videa (automatické pole)", + required=False, + ), + ), + ] + ), + ), + ( + "map_point", + wagtail.blocks.StructBlock( + [ + ( + "lat", + wagtail.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ), + ( + "stadia-osm-bright", + "Stadia OSM Bright", + ), + ( + "stadia-outdoors", + "Stadia Outdoors", + ), + ( + "mapbox-streets", + "Mapbox Streets", + ), + ( + "mapbox-outdoors", + "Mapbox Outdoors", + ), + ( + "mapbox-light", + "Mapbox Light", + ), + ( + "mapbox-dark", + "Mapbox Dark", + ), + ( + "mapbox-satellite", + "Mapbox Satellite", + ), + ( + "mapbox-pirate", + "Mapbox Pirate Theme", + ), + ], + label="Styl", + ), + ), + ( + "height", + wagtail.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.blocks.StructBlock( + [ + ( + "features", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva (HEX)", + ), + ), + ], + required=True, + ), + label="Součásti", + ), + ), + ( + "zoom", + wagtail.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ), + ( + "stadia-osm-bright", + "Stadia OSM Bright", + ), + ( + "stadia-outdoors", + "Stadia Outdoors", + ), + ( + "mapbox-streets", + "Mapbox Streets", + ), + ( + "mapbox-outdoors", + "Mapbox Outdoors", + ), + ( + "mapbox-light", + "Mapbox Light", + ), + ( + "mapbox-dark", + "Mapbox Dark", + ), + ( + "mapbox-satellite", + "Mapbox Satellite", + ), + ( + "mapbox-pirate", + "Mapbox Pirate Theme", + ), + ], + label="Styl", + ), + ), + ( + "height", + wagtail.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ], + label="Obsah", + required=False, + ), + ), + ( + "page", + wagtail.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + ), + ( + "figure", + wagtail.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.blocks.StructBlock( + [ + ( + "poster_image", + wagtail.images.blocks.ImageChooserBlock( + help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", + label="Náhled videa (automatické pole)", + required=False, + ), + ), + ( + "video_url", + wagtail.blocks.URLBlock( + help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", + label="Odkaz na video", + required=False, + ), + ), + ( + "video_id", + wagtail.blocks.CharBlock( + help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", + label="ID videa (automatické pole)", + required=False, + ), + ), + ] + ), + ), + ( + "map_point", + wagtail.blocks.StructBlock( + [ + ( + "lat", + wagtail.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ), + ( + "stadia-osm-bright", + "Stadia OSM Bright", + ), + ( + "stadia-outdoors", + "Stadia Outdoors", + ), + ( + "mapbox-streets", + "Mapbox Streets", + ), + ( + "mapbox-outdoors", + "Mapbox Outdoors", + ), + ( + "mapbox-light", + "Mapbox Light", + ), + ( + "mapbox-dark", + "Mapbox Dark", + ), + ( + "mapbox-satellite", + "Mapbox Satellite", + ), + ( + "mapbox-pirate", + "Mapbox Pirate Theme", + ), + ], + label="Styl", + ), + ), + ( + "height", + wagtail.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.blocks.StructBlock( + [ + ( + "features", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva (HEX)", + ), + ), + ], + required=True, + ), + label="Součásti", + ), + ), + ( + "zoom", + wagtail.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ), + ( + "stadia-osm-bright", + "Stadia OSM Bright", + ), + ( + "stadia-outdoors", + "Stadia Outdoors", + ), + ( + "mapbox-streets", + "Mapbox Streets", + ), + ( + "mapbox-outdoors", + "Mapbox Outdoors", + ), + ( + "mapbox-light", + "Mapbox Light", + ), + ( + "mapbox-dark", + "Mapbox Dark", + ), + ( + "mapbox-satellite", + "Mapbox Satellite", + ), + ( + "mapbox-pirate", + "Mapbox Pirate Theme", + ), + ], + label="Styl", + ), + ), + ( + "height", + wagtail.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ( + "button", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.blocks.ChoiceBlock( + choices=[ + ("sm", "Malá"), + ("base", "Střední"), + ("lg", "Velká"), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.blocks.ChoiceBlock( + choices=[ + ("black", "Černá"), + ("white", "Bílá"), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "mobile_fullwidth", + wagtail.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko se na mobilních zařízeních roztáhne na plnou šířku.", + label="Plná šířka na mobilních zařízeních", + required=False, + ), + ), + ( + "page", + wagtail.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "align", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "auto", + "Automaticky", + ), + ( + "center", + "Na střed", + ), + ], + label="Zarovnání", + ), + ), + ] + ), + ), + ( + "button_group", + wagtail.blocks.StructBlock( + [ + ( + "buttons", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "mobile_fullwidth", + wagtail.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko se na mobilních zařízeních roztáhne na plnou šířku.", + label="Plná šířka na mobilních zařízeních", + required=False, + ), + ), + ( + "page", + wagtail.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "align", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "auto", + "Automaticky", + ), + ( + "center", + "Na střed", + ), + ], + label="Zarovnání", + ), + ), + ] + ), + label="Tlačítka", + ), + ) + ] + ), + ), + ], + label="Obsah pravého sloupce", + required=True, + ), + ), + ] + ), + ), + ( + "three_columns", + wagtail.blocks.StructBlock( + [ + ( + "left_column_content", + wagtail.blocks.StreamBlock( + [ + ( + "text", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "card", + wagtail.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "elevation", + wagtail.blocks.IntegerBlock( + default=2, + help_text="0 = žádný stín, 21 = maximální stín", + label="Velikost stínu", + max_value=21, + min_value=0, + ), + ), + ( + "headline", + wagtail.blocks.TextBlock( + label="Titulek", + required=False, + ), + ), + ( + "hoveractive", + wagtail.blocks.BooleanBlock( + default=False, + help_text="Pokud je zapnuto, stín se zvýrazní, když na kartu uživatel najede myší.", + label="Zvýraznit stín na hover", + required=False, + ), + ), + ( + "content", + wagtail.blocks.StreamBlock( + [ + ( + "text", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "figure", + wagtail.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.blocks.StructBlock( + [ + ( + "poster_image", + wagtail.images.blocks.ImageChooserBlock( + help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", + label="Náhled videa (automatické pole)", + required=False, + ), + ), + ( + "video_url", + wagtail.blocks.URLBlock( + help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", + label="Odkaz na video", + required=False, + ), + ), + ( + "video_id", + wagtail.blocks.CharBlock( + help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", + label="ID videa (automatické pole)", + required=False, + ), + ), + ] + ), + ), + ( + "map_point", + wagtail.blocks.StructBlock( + [ + ( + "lat", + wagtail.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ), + ( + "stadia-osm-bright", + "Stadia OSM Bright", + ), + ( + "stadia-outdoors", + "Stadia Outdoors", + ), + ( + "mapbox-streets", + "Mapbox Streets", + ), + ( + "mapbox-outdoors", + "Mapbox Outdoors", + ), + ( + "mapbox-light", + "Mapbox Light", + ), + ( + "mapbox-dark", + "Mapbox Dark", + ), + ( + "mapbox-satellite", + "Mapbox Satellite", + ), + ( + "mapbox-pirate", + "Mapbox Pirate Theme", + ), + ], + label="Styl", + ), + ), + ( + "height", + wagtail.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.blocks.StructBlock( + [ + ( + "features", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva (HEX)", + ), + ), + ], + required=True, + ), + label="Součásti", + ), + ), + ( + "zoom", + wagtail.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ), + ( + "stadia-osm-bright", + "Stadia OSM Bright", + ), + ( + "stadia-outdoors", + "Stadia Outdoors", + ), + ( + "mapbox-streets", + "Mapbox Streets", + ), + ( + "mapbox-outdoors", + "Mapbox Outdoors", + ), + ( + "mapbox-light", + "Mapbox Light", + ), + ( + "mapbox-dark", + "Mapbox Dark", + ), + ( + "mapbox-satellite", + "Mapbox Satellite", + ), + ( + "mapbox-pirate", + "Mapbox Pirate Theme", + ), + ], + label="Styl", + ), + ), + ( + "height", + wagtail.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ], + label="Obsah", + required=False, + ), + ), + ( + "page", + wagtail.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + ), + ( + "figure", + wagtail.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.blocks.StructBlock( + [ + ( + "poster_image", + wagtail.images.blocks.ImageChooserBlock( + help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", + label="Náhled videa (automatické pole)", + required=False, + ), + ), + ( + "video_url", + wagtail.blocks.URLBlock( + help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", + label="Odkaz na video", + required=False, + ), + ), + ( + "video_id", + wagtail.blocks.CharBlock( + help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", + label="ID videa (automatické pole)", + required=False, + ), + ), + ] + ), + ), + ( + "map_point", + wagtail.blocks.StructBlock( + [ + ( + "lat", + wagtail.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ), + ( + "stadia-osm-bright", + "Stadia OSM Bright", + ), + ( + "stadia-outdoors", + "Stadia Outdoors", + ), + ( + "mapbox-streets", + "Mapbox Streets", + ), + ( + "mapbox-outdoors", + "Mapbox Outdoors", + ), + ( + "mapbox-light", + "Mapbox Light", + ), + ( + "mapbox-dark", + "Mapbox Dark", + ), + ( + "mapbox-satellite", + "Mapbox Satellite", + ), + ( + "mapbox-pirate", + "Mapbox Pirate Theme", + ), + ], + label="Styl", + ), + ), + ( + "height", + wagtail.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.blocks.StructBlock( + [ + ( + "features", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva (HEX)", + ), + ), + ], + required=True, + ), + label="Součásti", + ), + ), + ( + "zoom", + wagtail.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ), + ( + "stadia-osm-bright", + "Stadia OSM Bright", + ), + ( + "stadia-outdoors", + "Stadia Outdoors", + ), + ( + "mapbox-streets", + "Mapbox Streets", + ), + ( + "mapbox-outdoors", + "Mapbox Outdoors", + ), + ( + "mapbox-light", + "Mapbox Light", + ), + ( + "mapbox-dark", + "Mapbox Dark", + ), + ( + "mapbox-satellite", + "Mapbox Satellite", + ), + ( + "mapbox-pirate", + "Mapbox Pirate Theme", + ), + ], + label="Styl", + ), + ), + ( + "height", + wagtail.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ( + "button", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.blocks.ChoiceBlock( + choices=[ + ("sm", "Malá"), + ("base", "Střední"), + ("lg", "Velká"), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.blocks.ChoiceBlock( + choices=[ + ("black", "Černá"), + ("white", "Bílá"), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "mobile_fullwidth", + wagtail.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko se na mobilních zařízeních roztáhne na plnou šířku.", + label="Plná šířka na mobilních zařízeních", + required=False, + ), + ), + ( + "page", + wagtail.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "align", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "auto", + "Automaticky", + ), + ( + "center", + "Na střed", + ), + ], + label="Zarovnání", + ), + ), + ] + ), + ), + ( + "button_group", + wagtail.blocks.StructBlock( + [ + ( + "buttons", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "mobile_fullwidth", + wagtail.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko se na mobilních zařízeních roztáhne na plnou šířku.", + label="Plná šířka na mobilních zařízeních", + required=False, + ), + ), + ( + "page", + wagtail.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "align", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "auto", + "Automaticky", + ), + ( + "center", + "Na střed", + ), + ], + label="Zarovnání", + ), + ), + ] + ), + label="Tlačítka", + ), + ) + ] + ), + ), + ], + label="Obsah levého sloupce", + required=True, + ), + ), + ( + "middle_column_content", + wagtail.blocks.StreamBlock( + [ + ( + "text", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "card", + wagtail.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "elevation", + wagtail.blocks.IntegerBlock( + default=2, + help_text="0 = žádný stín, 21 = maximální stín", + label="Velikost stínu", + max_value=21, + min_value=0, + ), + ), + ( + "headline", + wagtail.blocks.TextBlock( + label="Titulek", + required=False, + ), + ), + ( + "hoveractive", + wagtail.blocks.BooleanBlock( + default=False, + help_text="Pokud je zapnuto, stín se zvýrazní, když na kartu uživatel najede myší.", + label="Zvýraznit stín na hover", + required=False, + ), + ), + ( + "content", + wagtail.blocks.StreamBlock( + [ + ( + "text", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "figure", + wagtail.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.blocks.StructBlock( + [ + ( + "poster_image", + wagtail.images.blocks.ImageChooserBlock( + help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", + label="Náhled videa (automatické pole)", + required=False, + ), + ), + ( + "video_url", + wagtail.blocks.URLBlock( + help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", + label="Odkaz na video", + required=False, + ), + ), + ( + "video_id", + wagtail.blocks.CharBlock( + help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", + label="ID videa (automatické pole)", + required=False, + ), + ), + ] + ), + ), + ( + "map_point", + wagtail.blocks.StructBlock( + [ + ( + "lat", + wagtail.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ), + ( + "stadia-osm-bright", + "Stadia OSM Bright", + ), + ( + "stadia-outdoors", + "Stadia Outdoors", + ), + ( + "mapbox-streets", + "Mapbox Streets", + ), + ( + "mapbox-outdoors", + "Mapbox Outdoors", + ), + ( + "mapbox-light", + "Mapbox Light", + ), + ( + "mapbox-dark", + "Mapbox Dark", + ), + ( + "mapbox-satellite", + "Mapbox Satellite", + ), + ( + "mapbox-pirate", + "Mapbox Pirate Theme", + ), + ], + label="Styl", + ), + ), + ( + "height", + wagtail.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.blocks.StructBlock( + [ + ( + "features", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva (HEX)", + ), + ), + ], + required=True, + ), + label="Součásti", + ), + ), + ( + "zoom", + wagtail.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ), + ( + "stadia-osm-bright", + "Stadia OSM Bright", + ), + ( + "stadia-outdoors", + "Stadia Outdoors", + ), + ( + "mapbox-streets", + "Mapbox Streets", + ), + ( + "mapbox-outdoors", + "Mapbox Outdoors", + ), + ( + "mapbox-light", + "Mapbox Light", + ), + ( + "mapbox-dark", + "Mapbox Dark", + ), + ( + "mapbox-satellite", + "Mapbox Satellite", + ), + ( + "mapbox-pirate", + "Mapbox Pirate Theme", + ), + ], + label="Styl", + ), + ), + ( + "height", + wagtail.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ], + label="Obsah", + required=False, + ), + ), + ( + "page", + wagtail.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + ), + ( + "figure", + wagtail.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.blocks.StructBlock( + [ + ( + "poster_image", + wagtail.images.blocks.ImageChooserBlock( + help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", + label="Náhled videa (automatické pole)", + required=False, + ), + ), + ( + "video_url", + wagtail.blocks.URLBlock( + help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", + label="Odkaz na video", + required=False, + ), + ), + ( + "video_id", + wagtail.blocks.CharBlock( + help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", + label="ID videa (automatické pole)", + required=False, + ), + ), + ] + ), + ), + ( + "map_point", + wagtail.blocks.StructBlock( + [ + ( + "lat", + wagtail.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ), + ( + "stadia-osm-bright", + "Stadia OSM Bright", + ), + ( + "stadia-outdoors", + "Stadia Outdoors", + ), + ( + "mapbox-streets", + "Mapbox Streets", + ), + ( + "mapbox-outdoors", + "Mapbox Outdoors", + ), + ( + "mapbox-light", + "Mapbox Light", + ), + ( + "mapbox-dark", + "Mapbox Dark", + ), + ( + "mapbox-satellite", + "Mapbox Satellite", + ), + ( + "mapbox-pirate", + "Mapbox Pirate Theme", + ), + ], + label="Styl", + ), + ), + ( + "height", + wagtail.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.blocks.StructBlock( + [ + ( + "features", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva (HEX)", + ), + ), + ], + required=True, + ), + label="Součásti", + ), + ), + ( + "zoom", + wagtail.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ), + ( + "stadia-osm-bright", + "Stadia OSM Bright", + ), + ( + "stadia-outdoors", + "Stadia Outdoors", + ), + ( + "mapbox-streets", + "Mapbox Streets", + ), + ( + "mapbox-outdoors", + "Mapbox Outdoors", + ), + ( + "mapbox-light", + "Mapbox Light", + ), + ( + "mapbox-dark", + "Mapbox Dark", + ), + ( + "mapbox-satellite", + "Mapbox Satellite", + ), + ( + "mapbox-pirate", + "Mapbox Pirate Theme", + ), + ], + label="Styl", + ), + ), + ( + "height", + wagtail.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ( + "button", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.blocks.ChoiceBlock( + choices=[ + ("sm", "Malá"), + ("base", "Střední"), + ("lg", "Velká"), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.blocks.ChoiceBlock( + choices=[ + ("black", "Černá"), + ("white", "Bílá"), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "mobile_fullwidth", + wagtail.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko se na mobilních zařízeních roztáhne na plnou šířku.", + label="Plná šířka na mobilních zařízeních", + required=False, + ), + ), + ( + "page", + wagtail.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "align", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "auto", + "Automaticky", + ), + ( + "center", + "Na střed", + ), + ], + label="Zarovnání", + ), + ), + ] + ), + ), + ( + "button_group", + wagtail.blocks.StructBlock( + [ + ( + "buttons", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "mobile_fullwidth", + wagtail.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko se na mobilních zařízeních roztáhne na plnou šířku.", + label="Plná šířka na mobilních zařízeních", + required=False, + ), + ), + ( + "page", + wagtail.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "align", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "auto", + "Automaticky", + ), + ( + "center", + "Na střed", + ), + ], + label="Zarovnání", + ), + ), + ] + ), + label="Tlačítka", + ), + ) + ] + ), + ), + ], + label="Obsah prostředního sloupce", + required=True, + ), + ), + ( + "right_column_content", + wagtail.blocks.StreamBlock( + [ + ( + "text", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "card", + wagtail.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "elevation", + wagtail.blocks.IntegerBlock( + default=2, + help_text="0 = žádný stín, 21 = maximální stín", + label="Velikost stínu", + max_value=21, + min_value=0, + ), + ), + ( + "headline", + wagtail.blocks.TextBlock( + label="Titulek", + required=False, + ), + ), + ( + "hoveractive", + wagtail.blocks.BooleanBlock( + default=False, + help_text="Pokud je zapnuto, stín se zvýrazní, když na kartu uživatel najede myší.", + label="Zvýraznit stín na hover", + required=False, + ), + ), + ( + "content", + wagtail.blocks.StreamBlock( + [ + ( + "text", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "figure", + wagtail.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.blocks.StructBlock( + [ + ( + "poster_image", + wagtail.images.blocks.ImageChooserBlock( + help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", + label="Náhled videa (automatické pole)", + required=False, + ), + ), + ( + "video_url", + wagtail.blocks.URLBlock( + help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", + label="Odkaz na video", + required=False, + ), + ), + ( + "video_id", + wagtail.blocks.CharBlock( + help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", + label="ID videa (automatické pole)", + required=False, + ), + ), + ] + ), + ), + ( + "map_point", + wagtail.blocks.StructBlock( + [ + ( + "lat", + wagtail.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ), + ( + "stadia-osm-bright", + "Stadia OSM Bright", + ), + ( + "stadia-outdoors", + "Stadia Outdoors", + ), + ( + "mapbox-streets", + "Mapbox Streets", + ), + ( + "mapbox-outdoors", + "Mapbox Outdoors", + ), + ( + "mapbox-light", + "Mapbox Light", + ), + ( + "mapbox-dark", + "Mapbox Dark", + ), + ( + "mapbox-satellite", + "Mapbox Satellite", + ), + ( + "mapbox-pirate", + "Mapbox Pirate Theme", + ), + ], + label="Styl", + ), + ), + ( + "height", + wagtail.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.blocks.StructBlock( + [ + ( + "features", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva (HEX)", + ), + ), + ], + required=True, + ), + label="Součásti", + ), + ), + ( + "zoom", + wagtail.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ), + ( + "stadia-osm-bright", + "Stadia OSM Bright", + ), + ( + "stadia-outdoors", + "Stadia Outdoors", + ), + ( + "mapbox-streets", + "Mapbox Streets", + ), + ( + "mapbox-outdoors", + "Mapbox Outdoors", + ), + ( + "mapbox-light", + "Mapbox Light", + ), + ( + "mapbox-dark", + "Mapbox Dark", + ), + ( + "mapbox-satellite", + "Mapbox Satellite", + ), + ( + "mapbox-pirate", + "Mapbox Pirate Theme", + ), + ], + label="Styl", + ), + ), + ( + "height", + wagtail.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ], + label="Obsah", + required=False, + ), + ), + ( + "page", + wagtail.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + ), + ( + "figure", + wagtail.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.blocks.StructBlock( + [ + ( + "poster_image", + wagtail.images.blocks.ImageChooserBlock( + help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", + label="Náhled videa (automatické pole)", + required=False, + ), + ), + ( + "video_url", + wagtail.blocks.URLBlock( + help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", + label="Odkaz na video", + required=False, + ), + ), + ( + "video_id", + wagtail.blocks.CharBlock( + help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", + label="ID videa (automatické pole)", + required=False, + ), + ), + ] + ), + ), + ( + "map_point", + wagtail.blocks.StructBlock( + [ + ( + "lat", + wagtail.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ), + ( + "stadia-osm-bright", + "Stadia OSM Bright", + ), + ( + "stadia-outdoors", + "Stadia Outdoors", + ), + ( + "mapbox-streets", + "Mapbox Streets", + ), + ( + "mapbox-outdoors", + "Mapbox Outdoors", + ), + ( + "mapbox-light", + "Mapbox Light", + ), + ( + "mapbox-dark", + "Mapbox Dark", + ), + ( + "mapbox-satellite", + "Mapbox Satellite", + ), + ( + "mapbox-pirate", + "Mapbox Pirate Theme", + ), + ], + label="Styl", + ), + ), + ( + "height", + wagtail.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.blocks.StructBlock( + [ + ( + "features", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva (HEX)", + ), + ), + ], + required=True, + ), + label="Součásti", + ), + ), + ( + "zoom", + wagtail.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ), + ( + "stadia-osm-bright", + "Stadia OSM Bright", + ), + ( + "stadia-outdoors", + "Stadia Outdoors", + ), + ( + "mapbox-streets", + "Mapbox Streets", + ), + ( + "mapbox-outdoors", + "Mapbox Outdoors", + ), + ( + "mapbox-light", + "Mapbox Light", + ), + ( + "mapbox-dark", + "Mapbox Dark", + ), + ( + "mapbox-satellite", + "Mapbox Satellite", + ), + ( + "mapbox-pirate", + "Mapbox Pirate Theme", + ), + ], + label="Styl", + ), + ), + ( + "height", + wagtail.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ( + "button", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.blocks.ChoiceBlock( + choices=[ + ("sm", "Malá"), + ("base", "Střední"), + ("lg", "Velká"), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.blocks.ChoiceBlock( + choices=[ + ("black", "Černá"), + ("white", "Bílá"), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "mobile_fullwidth", + wagtail.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko se na mobilních zařízeních roztáhne na plnou šířku.", + label="Plná šířka na mobilních zařízeních", + required=False, + ), + ), + ( + "page", + wagtail.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "align", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "auto", + "Automaticky", + ), + ( + "center", + "Na střed", + ), + ], + label="Zarovnání", + ), + ), + ] + ), + ), + ( + "button_group", + wagtail.blocks.StructBlock( + [ + ( + "buttons", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "mobile_fullwidth", + wagtail.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko se na mobilních zařízeních roztáhne na plnou šířku.", + label="Plná šířka na mobilních zařízeních", + required=False, + ), + ), + ( + "page", + wagtail.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "align", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "auto", + "Automaticky", + ), + ( + "center", + "Na střed", + ), + ], + label="Zarovnání", + ), + ), + ] + ), + label="Tlačítka", + ), + ) + ] + ), + ), + ], + label="Obsah pravého sloupce", + required=True, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.blocks.StructBlock( + [ + ( + "poster_image", + wagtail.images.blocks.ImageChooserBlock( + help_text="Není třeba vyplňovat, náhled bude dohledán automaticky.", + label="Náhled videa (automatické pole)", + required=False, + ), + ), + ( + "video_url", + wagtail.blocks.URLBlock( + help_text="Odkaz na YouTube video bude automaticky zkonvertován na ID videa a NEBUDE uložen.", + label="Odkaz na video", + required=False, + ), + ), + ( + "video_id", + wagtail.blocks.CharBlock( + help_text="Není třeba vyplňovat, bude automaticky načteno z odkazu.", + label="ID videa (automatické pole)", + required=False, + ), + ), + ], + label="YouTube video", + ), + ), + ( + "map_point", + wagtail.blocks.StructBlock( + [ + ( + "lat", + wagtail.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.blocks.ChoiceBlock( + choices=[ + ("osm-mapnik", "OSM Mapnik"), + ("stadia-osm-bright", "Stadia OSM Bright"), + ("stadia-outdoors", "Stadia Outdoors"), + ("mapbox-streets", "Mapbox Streets"), + ("mapbox-outdoors", "Mapbox Outdoors"), + ("mapbox-light", "Mapbox Light"), + ("mapbox-dark", "Mapbox Dark"), + ("mapbox-satellite", "Mapbox Satellite"), + ("mapbox-pirate", "Mapbox Pirate Theme"), + ], + label="Styl", + ), + ), + ( + "height", + wagtail.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.blocks.StructBlock( + [ + ( + "features", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek", required=True + ), + ), + ( + "description", + wagtail.blocks.TextBlock( + label="Popisek", required=False + ), + ), + ( + "geojson", + wagtail.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io. Pokud u objektu poskytnete properties 'title' a 'description', zobrazí se jak na mapě, tak i v detailu.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", required=False + ), + ), + ( + "link", + wagtail.blocks.URLBlock( + label="Odkaz", required=False + ), + ), + ( + "hex_color", + wagtail.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva (HEX)", + ), + ), + ], + required=True, + ), + label="Součásti", + ), + ), + ( + "zoom", + wagtail.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.blocks.ChoiceBlock( + choices=[ + ("osm-mapnik", "OSM Mapnik"), + ("stadia-osm-bright", "Stadia OSM Bright"), + ("stadia-outdoors", "Stadia Outdoors"), + ("mapbox-streets", "Mapbox Streets"), + ("mapbox-outdoors", "Mapbox Outdoors"), + ("mapbox-light", "Mapbox Light"), + ("mapbox-dark", "Mapbox Dark"), + ("mapbox-satellite", "Mapbox Satellite"), + ("mapbox-pirate", "Mapbox Pirate Theme"), + ], + label="Styl", + ), + ), + ( + "height", + wagtail.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ( + "button", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek", max_length=128, required=True + ), + ), + ( + "icon", + wagtail.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.blocks.ChoiceBlock( + choices=[ + ("sm", "Malá"), + ("base", "Střední"), + ("lg", "Velká"), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.blocks.ChoiceBlock( + choices=[ + ("black", "Černá"), + ("white", "Bílá"), + ("grey-125", "Světle šedá"), + ("blue-300", "Modrá"), + ("cyan-200", "Tyrkysová"), + ("green-400", "Zelené"), + ("violet-400", "Vínová"), + ("red-600", "Červená"), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "mobile_fullwidth", + wagtail.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko se na mobilních zařízeních roztáhne na plnou šířku.", + label="Plná šířka na mobilních zařízeních", + required=False, + ), + ), + ( + "page", + wagtail.blocks.PageChooserBlock( + label="Stránka", required=False + ), + ), + ( + "link", + wagtail.blocks.URLBlock( + label="Odkaz", required=False + ), + ), + ( + "align", + wagtail.blocks.ChoiceBlock( + choices=[ + ("auto", "Automaticky"), + ("center", "Na střed"), + ], + label="Zarovnání", + ), + ), + ] + ), + ), + ( + "button_group", + wagtail.blocks.StructBlock( + [ + ( + "buttons", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.blocks.ChoiceBlock( + choices=[ + ("sm", "Malá"), + ("base", "Střední"), + ("lg", "Velká"), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.blocks.ChoiceBlock( + choices=[ + ("black", "Černá"), + ("white", "Bílá"), + ("grey-125", "Světle šedá"), + ("blue-300", "Modrá"), + ("cyan-200", "Tyrkysová"), + ("green-400", "Zelené"), + ("violet-400", "Vínová"), + ("red-600", "Červená"), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "mobile_fullwidth", + wagtail.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko se na mobilních zařízeních roztáhne na plnou šířku.", + label="Plná šířka na mobilních zařízeních", + required=False, + ), + ), + ( + "page", + wagtail.blocks.PageChooserBlock( + label="Stránka", required=False + ), + ), + ( + "link", + wagtail.blocks.URLBlock( + label="Odkaz", required=False + ), + ), + ( + "align", + wagtail.blocks.ChoiceBlock( + choices=[ + ("auto", "Automaticky"), + ("center", "Na střed"), + ], + label="Zarovnání", + ), + ), + ] + ), + label="Tlačítka", + ), + ) + ] + ), + ), + ( + "image_banner", + wagtail.blocks.StructBlock( + [ + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", required=True + ), + ), + ( + "headline", + wagtail.blocks.CharBlock( + label="Headline", max_length=128, required=True + ), + ), + ( + "content", + wagtail.blocks.StreamBlock( + [ + ( + "text", + wagtail.blocks.RichTextBlock( + features=( + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ), + label="Textový editor", + ), + ), + ( + "button", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.blocks.ChoiceBlock( + choices=[ + ("sm", "Malá"), + ("base", "Střední"), + ("lg", "Velká"), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.blocks.ChoiceBlock( + choices=[ + ("black", "Černá"), + ("white", "Bílá"), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "mobile_fullwidth", + wagtail.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko se na mobilních zařízeních roztáhne na plnou šířku.", + label="Plná šířka na mobilních zařízeních", + required=False, + ), + ), + ( + "page", + wagtail.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "align", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "auto", + "Automaticky", + ), + ( + "center", + "Na střed", + ), + ], + label="Zarovnání", + ), + ), + ] + ), + ), + ( + "button_group", + wagtail.blocks.StructBlock( + [ + ( + "buttons", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "mobile_fullwidth", + wagtail.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko se na mobilních zařízeních roztáhne na plnou šířku.", + label="Plná šířka na mobilních zařízeních", + required=False, + ), + ), + ( + "page", + wagtail.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "align", + wagtail.blocks.ChoiceBlock( + choices=[ + ( + "auto", + "Automaticky", + ), + ( + "center", + "Na střed", + ), + ], + label="Zarovnání", + ), + ), + ] + ), + label="Tlačítka", + ), + ) + ] + ), + ), + ], + label="Obsah pravého sloupce", + required=False, + ), + ), + ] + ), + ), + ( + "chart", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Název", max_length=120 + ), + ), + ( + "chart_type", + wagtail.blocks.ChoiceBlock( + choices=[ + ("bar", "Graf se sloupci"), + ( + "horizontalBar", + "Graf s vodorovnými sloupci", + ), + ("pie", "Koláčový graf"), + ("doughnut", "Donutový graf"), + ("polarArea", "Graf polární oblasti"), + ("radar", "Radarový graf"), + ("line", "Graf s liniemi"), + ], + label="Typ", + ), + ), + ( + "hide_points", + wagtail.blocks.BooleanBlock( + help_text="Mění vzhled pouze u linových grafů.", + label="Schovat body", + required=False, + ), + ), + ( + "local_labels", + wagtail.blocks.ListBlock( + wagtail.blocks.CharBlock( + label="Skupina", max_length=40 + ), + blank=True, + collapsed=True, + default=[], + label="Místně definované skupiny", + required=False, + ), + ), + ( + "local_datasets", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "label", + wagtail.blocks.CharBlock( + label="Označení zdroje dat", + max_length=120, + ), + ), + ( + "data", + wagtail.blocks.ListBlock( + wagtail.blocks.IntegerBlock(), + default=[0], + label="Data", + ), + ), + ] + ), + blank=True, + collapsed=True, + default=[], + label="Místní zdroje dat", + required=False, + ), + ), + ( + "redmine_issue_datasets", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "projects", + wagtail.blocks.MultipleChoiceBlock( + choices=shared.blocks.get_redmine_projects, + label="Projekty", + ), + ), + ( + "is_open", + wagtail.blocks.BooleanBlock( + label="Jen otevřené", + required=False, + ), + ), + ( + "is_closed", + wagtail.blocks.BooleanBlock( + label="Jen uzavřené", + required=False, + ), + ), + ( + "created_on_min_date", + wagtail.blocks.DateBlock( + label="Min. datum vytvoření", + required=True, + ), + ), + ( + "created_on_max_date", + wagtail.blocks.DateBlock( + label="Max. datum vytvoření", + required=True, + ), + ), + ( + "updated_on", + wagtail.blocks.CharBlock( + help_text="Např. <=2023-01-01. Více informací na pi2.cz/redmine-api", + label="Filtr pro datum aktualizace", + max_length=128, + required=False, + ), + ), + ( + "issue_label", + wagtail.blocks.CharBlock( + label="Označení úkolů uvnitř grafu", + max_length=128, + required=True, + ), + ), + ( + "split_per_project", + wagtail.blocks.BooleanBlock( + label="Rozdělit podle projektu", + required=False, + ), + ), + ( + "only_grow", + wagtail.blocks.BooleanBlock( + label="Pouze růst nahoru", + required=False, + ), + ), + ], + label="Redmine úkoly", + ), + blank=True, + default=[], + help_text="Úkoly, podle doby vytvoření. Pokud definuješ více zdrojů, datumy v nich musí být stejné.", + label="Zdroje dat z Redmine (úkoly)", + required=False, + ), + ), + ], + template="district/blocks/chart.html", + ), + ), + ( + "related", + wagtail.blocks.StructBlock( + [ + ( + "articles", + wagtail.blocks.ListBlock( + wagtail.blocks.PageChooserBlock( + "district.DistrictArticlePage", + label="Aktualita", + required=True, + ), + label="Seznam aktualit", + required=True, + ), + ) + ] + ), + ), + ( + "related_links", + wagtail.blocks.StructBlock( + [ + ( + "articles", + wagtail.blocks.ListBlock( + wagtail.blocks.PageChooserBlock( + "district.DistrictArticlePage", + label="Aktualita", + required=True, + ), + label="Seznam aktualit", + required=True, + ), + ) + ] + ), + ), + ( + "badge", + wagtail.blocks.StructBlock( + [ + ( + "person", + wagtail.blocks.PageChooserBlock( + label="Osoba", + page_type=["district.DistrictPersonPage"], + required=True, + ), + ), + ( + "wrap_in_card", + wagtail.blocks.BooleanBlock( + default=False, + label="Zabalit do karty", + required=False, + ), + ), + ( + "caption", + wagtail.blocks.CharBlock( + help_text="Vlastní popisek na vizitce. Pokud není uvedeno, použije se výchozí profese osoby.", + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "people_group", + wagtail.blocks.StructBlock( + [ + ( + "group_title", + wagtail.blocks.CharBlock( + label="Titulek", required=True + ), + ), + ( + "person_list", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "position", + wagtail.blocks.CharBlock( + label="Název pozice", + required=False, + ), + ), + ( + "person", + wagtail.blocks.PageChooserBlock( + label="Osoba", + page_type=[ + "district.DistrictPersonPage" + ], + ), + ), + ] + ), + label="List osob", + ), + ), + ] + ), + ), + ( + "newsletter", + wagtail.blocks.StructBlock( + [ + ( + "design", + wagtail.blocks.StructBlock( + [ + ( + "icon", + wagtail.images.blocks.ImageChooserBlock( + help_text="Pokud žádnou nevyberete, zobrazí se ikonka pro lahev v moři", + label="Vyberte si ikonku k formuláři", + required=False, + ), + ), + ( + "title", + wagtail.blocks.CharBlock( + default="Odebírej náš newsletter", + label="Nadpis formuláře", + ), + ), + ( + "subtitle", + wagtail.blocks.CharBlock( + default="Fake news tam nenajdeš, ale dozvíš se, co chystáme doopravdy!", + label="Podnadpis formuláře", + ), + ), + ( + "consent", + wagtail.blocks.RichTextBlock( + default="Souhlasím se zpracováním osobních údajů", + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", + ], + label="Souhlas se zpracováním osobních údajů", + ), + ), + ( + "button", + wagtail.blocks.CharBlock( + default="Odebírat", + label="Tlačítko pro přihlášení k newsletteru", + ), + ), + ( + "require_confirmation", + wagtail.blocks.CharBlock( + default="Zkontroluj si prosím schránku, poslali jsme ti potvrzovací e-mail.", + label="Zpráva o úspěšném zaslání potvrzovacího emailu", + ), + ), + ( + "no_require_confirmation", + wagtail.blocks.CharBlock( + default="Jsi přihlášen/a k odběru našich novinek.", + help_text="Zobrazí se pouze pokud od uživatele nepožadujeme ověřovací email", + label="Zpráva o úspěšném zaregistrování k newsletteru", + ), + ), + ( + "labels", + wagtail.blocks.StructBlock( + [ + ( + "email", + wagtail.blocks.CharBlock( + default="Tvůj e-mail", + label="Popisek emailu", + ), + ), + ( + "first_name", + wagtail.blocks.CharBlock( + default="Tvoje křestní jméno", + help_text="Zobrazí se, pouze pokud umožníte zadat jméno v konfiguraci", + label="Popisek křestního jména", + ), + ), + ( + "last_name", + wagtail.blocks.CharBlock( + default="Tvoje příjmení", + help_text="Zobrazí se, pouze pokud umožníte zadat jméno v konfiguraci", + label="Popisek příjmení", + ), + ), + ], + label="popisky vstupů uživatele", + required=True, + ), + ), + ], + label="Design formuláře", + required=True, + ), + ), + ( + "config", + wagtail.blocks.StructBlock( + [ + ( + "show_name_input", + wagtail.blocks.BooleanBlock( + label="Umožnit uživateli přidat jméno a příjmení?", + required=False, + ), + ), + ( + "force_subscribe", + wagtail.blocks.BooleanBlock( + default=True, + label="Přihlásit uživatele, i když se v minulosti odhlásil?", + required=False, + ), + ), + ( + "send_timezone", + wagtail.blocks.BooleanBlock( + label="Zasílat timezone podle uživatelova prohlížeče?", + required=False, + ), + ), + ], + label="Konfigurace", + required=True, + ), + ), + ] + ), + ), + ], + blank=True, + use_json_field=True, + verbose_name="Obsah", + ), + ), + migrations.AlterField( + model_name="districthomepage", + name="content", + field=wagtail.fields.StreamField( + [ + ( + "text", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", + ], + label="Textový editor", + ), + ), + ( + "headline", + wagtail.blocks.StructBlock( + [ + ( + "headline", + wagtail.blocks.CharBlock( + label="Headline", max_length=300, required=True + ), + ), + ( + "style", + wagtail.blocks.ChoiceBlock( + choices=[ + ("head-alt-xl", "Bebas XL"), + ("head-alt-lg", "Bebas L"), + ("head-alt-md", "Bebas M"), + ("head-alt-base", "Bebas base"), + ("head-alt-sm", "Bebas SM"), + ("head-alt-xs", "Bebas XS"), + ("head-alt-2xs", "Bebas 2XS"), + ("head-heavy-base", "Roboto base"), + ("head-heavy-sm", "Roboto SM"), + ("head-heavy-xs", "Roboto XS"), + ("head-heavy-2xs", "Roboto 2XS"), + ("head-allcaps-2xs", "Allcaps 2XS"), + ("head-allcaps-3xs", "Allcaps 3XS"), + ("head-allcaps-4xs", "Allcaps 4XS"), + ( + "head-heavy-allcaps-2xs", + "Allcaps heavy 2XS", + ), + ( + "head-heavy-allcaps-3xs", + "Allcaps heavy 3XS", + ), + ( + "head-heavy-allcaps-4xs", + "Allcaps heavy 4XS", + ), + ], + help_text="Náhled si prohlédněte na https://styleguide.pir-test.eu/latest/?p=viewall-atoms-text.", + label="Styl", + ), + ), + ( + "tag", + wagtail.blocks.ChoiceBlock( + choices=[ + ("h1", "H1"), + ("h2", "H2"), + ("h3", "H3"), + ("h4", "H4"), + ("h5", "H5"), + ("h6", "H6"), + ], + help_text="Čím nižší číslo, tím vyšší úroveň.", + label="Úroveň nadpisu", + ), + ), + ( + "align", + wagtail.blocks.ChoiceBlock( + choices=[ + ("auto", "Automaticky"), + ("center", "Na střed"), + ], + label="Zarovnání", + ), + ), + ] + ), + ), + ( + "newsletter", + wagtail.blocks.StructBlock( + [ + ( + "design", + wagtail.blocks.StructBlock( + [ + ( + "icon", + wagtail.images.blocks.ImageChooserBlock( + help_text="Pokud žádnou nevyberete, zobrazí se ikonka pro lahev v moři", + label="Vyberte si ikonku k formuláři", + required=False, + ), + ), + ( + "title", + wagtail.blocks.CharBlock( + default="Odebírej náš newsletter", + label="Nadpis formuláře", + ), + ), + ( + "subtitle", + wagtail.blocks.CharBlock( + default="Fake news tam nenajdeš, ale dozvíš se, co chystáme doopravdy!", + label="Podnadpis formuláře", + ), + ), + ( + "consent", + wagtail.blocks.RichTextBlock( + default="Souhlasím se zpracováním osobních údajů", + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", + ], + label="Souhlas se zpracováním osobních údajů", + ), + ), + ( + "button", + wagtail.blocks.CharBlock( + default="Odebírat", + label="Tlačítko pro přihlášení k newsletteru", + ), + ), + ( + "require_confirmation", + wagtail.blocks.CharBlock( + default="Zkontroluj si prosím schránku, poslali jsme ti potvrzovací e-mail.", + label="Zpráva o úspěšném zaslání potvrzovacího emailu", + ), + ), + ( + "no_require_confirmation", + wagtail.blocks.CharBlock( + default="Jsi přihlášen/a k odběru našich novinek.", + help_text="Zobrazí se pouze pokud od uživatele nepožadujeme ověřovací email", + label="Zpráva o úspěšném zaregistrování k newsletteru", + ), + ), + ( + "labels", + wagtail.blocks.StructBlock( + [ + ( + "email", + wagtail.blocks.CharBlock( + default="Tvůj e-mail", + label="Popisek emailu", + ), + ), + ( + "first_name", + wagtail.blocks.CharBlock( + default="Tvoje křestní jméno", + help_text="Zobrazí se, pouze pokud umožníte zadat jméno v konfiguraci", + label="Popisek křestního jména", + ), + ), + ( + "last_name", + wagtail.blocks.CharBlock( + default="Tvoje příjmení", + help_text="Zobrazí se, pouze pokud umožníte zadat jméno v konfiguraci", + label="Popisek příjmení", + ), + ), + ], + label="popisky vstupů uživatele", + required=True, + ), + ), + ], + label="Design formuláře", + required=True, + ), + ), + ( + "config", + wagtail.blocks.StructBlock( + [ + ( + "show_name_input", + wagtail.blocks.BooleanBlock( + label="Umožnit uživateli přidat jméno a příjmení?", + required=False, + ), + ), + ( + "force_subscribe", + wagtail.blocks.BooleanBlock( + default=True, + label="Přihlásit uživatele, i když se v minulosti odhlásil?", + required=False, + ), + ), + ( + "send_timezone", + wagtail.blocks.BooleanBlock( + label="Zasílat timezone podle uživatelova prohlížeče?", + required=False, + ), + ), + ], + label="Konfigurace", + required=True, + ), + ), + ] + ), + ), + ], + blank=True, + use_json_field=True, + verbose_name="Obsah stránky", + ), + ), + ] diff --git a/shared/models.py b/shared/models.py index a5e326ed2ece9a5c76ac364e1a72b171c45c4110..79c6ad77b737dbfc5398761b530ba2fd659bbff6 100644 --- a/shared/models.py +++ b/shared/models.py @@ -1,3 +1,4 @@ +import json import logging from django.db import models @@ -48,12 +49,13 @@ class NewsletterFormMixin(models.Model): def newsletter_post(self, posted): client_response = HttpResponse() if posted.method == "POST": - mailtrain_request = {"EMAIL": posted.POST["email"]} - if "first_name" in posted.POST and "last_name" in posted.POST: + body = json.loads(posted.body) + mailtrain_request = {"EMAIL": body["email"]} + if "first_name" in body and "last_name" in body: mailtrain_request.update( { - "MERGE_FIRST_NAME": posted.POST["first_name"], - "MERGE_LAST_NAME": posted.POST["last_name"], + "MERGE_FIRST_NAME": body["first_name"], + "MERGE_LAST_NAME": body["last_name"], } ) if "force_subscribe" in posted.GET: @@ -62,15 +64,16 @@ class NewsletterFormMixin(models.Model): "FORCE_SUBSCRIBE": "yes", } ) - if "timezone" in posted.POST: - mailtrain_request.update({"TIMEZONE": posted.POST["timezone"]}) + if "timezone" in body: + mailtrain_request.update({"TIMEZONE": body["timezone"]}) if self.require_confirmation: mailtrain_request.update({"REQUIRE_CONFIRMATION": "yes"}) response = request( "POST", f"https://mailtrain.pirati.cz/api/subscribe/{self.subscription_id}?access_token={self.access_token}", - mailtrain_request, + json=mailtrain_request, ) + print(response.json()) if "error" in response.json(): client_response.status_code = 500 else: diff --git a/shared/static/shared/js/vue-formulate-helper.js b/shared/static/shared/js/vue-formulate-helper.js index 34e4e7504042a275b53b26a117682169c9d620a5..eb75d5cad66cb6361c313bf8d96d388c41a9e44a 100644 --- a/shared/static/shared/js/vue-formulate-helper.js +++ b/shared/static/shared/js/vue-formulate-helper.js @@ -5,18 +5,29 @@ Vue.use(VueFormulate, { locale: "cs", }); +const errorMessage = ["Vyskytla se chyba při zpracování požadavku, omlouváme se"]; + +Vue.options.data ||= {}; +Vue.options.data.mailtrainerrors ||= []; Vue.options.methods ||= {}; -Vue.options.methods.mailtrainsubmit = function (data) { +Vue.options.methods.mailtrainsubmit = async function (data) { const csrftoken = $("[name='csrfmiddlewaretoken']", this.$el).val(); const headers = new Headers(); headers.append('X-CSRFToken', csrftoken); - return fetch(this.$el.dataset.url, { - method: "POST", - body: JSON.stringify({ - ...data, - }), - headers: headers, - credentials: "include", - }); + try { + const response = await fetch(this.$el.dataset.url, { + method: "POST", + body: JSON.stringify({ + ...data, + }), + headers: headers, + credentials: "include", + }); + if (response.status >= 400) { + Vue.options.data.mailtrainerrors = errorMessage; + } + } catch { + Vue.options.data.mailtrainerrors = errorMessage; + } }; diff --git a/shared/templates/shared/blocks/newsletter_subscription_block.html b/shared/templates/shared/blocks/newsletter_subscription_block.html index 26092503f782604f36ba32e542fa728cc1363ca4..f06e924411c242bc2e23794ec1b286babff6b5b7 100644 --- a/shared/templates/shared/blocks/newsletter_subscription_block.html +++ b/shared/templates/shared/blocks/newsletter_subscription_block.html @@ -3,9 +3,9 @@ <div class="__js-root"> <ui-app inline-template> {% if page.has_newsletter_form %} - <div data-url="{{ request.scheme }}://{{ request.get_host }}{% pageurl page %}{% routablepageurl page 'newsletter' %}" class="flex flex-row flex-wrap xl:items-center mt-20 xl:mt-0"> + <div data-url="{% routablepageurl page 'newsletter' %}" class="flex flex-row flex-wrap xl:items-center mt-20 xl:mt-0"> {% else %} - <div data-url="{{ request.scheme }}://{{ request.get_host }}{% routablepageurl page.root_page 'newsletter' %}" class="flex flex-row flex-wrap xl:items-center mt-20 xl:mt-0"> + <div data-url="{% routablepageurl page.root_page 'newsletter' %}" class="flex flex-row flex-wrap xl:items-center mt-20 xl:mt-0"> {% endif %} <noscript> <ul class="flex flex-col w-full drop-shadow-lg"> @@ -34,7 +34,8 @@ {{ self.design.subtitle }} </span> <div class="flex flex-col items-start"> - <formulate-form @submit="mailtrainsubmit" #default="{ isLoading, hasErrors }"> + <formulate-form @submit="mailtrainsubmit" #default="{ isLoading }" :form-errors="mailtrainerrors"> + <formulate-errors></formulate-errors> {% csrf_token %} {% if self.config.send_timezone %} <formulate-input @@ -51,15 +52,15 @@ ></formulate-input> {% endif %} {% if self.config.show_name_input %} - <formulate-input type="text" name="first_name" :input-class="() => ['text-input', 'bg-white', 'form-field__control', 'mb-3', 'w-full']" label="{{ self.design.labels.first_name }}" + <formulate-input type="text" name="first_name" validation-name="Křestní jméno" :input-class="() => ['text-input', 'bg-white', 'form-field__control', 'mb-3', 'w-full']" label="{{ self.design.labels.first_name }}" placeholder="{{ self.design.labels.first_name }}" validation="required" error-behavior="blur" label-class="sr-only"></formulate-input> - <formulate-input type="text" name="last_name" :input-class="() => ['text-input', 'bg-white', 'form-field__control', 'mb-3', 'w-full']" label="{{ self.design.labels.last_name }}" + <formulate-input type="text" name="last_name" validation-name="Příjmení" :input-class="() => ['text-input', 'bg-white', 'form-field__control', 'mb-3', 'w-full']" label="{{ self.design.labels.last_name }}" placeholder="{{ self.design.labels.last_name }}" validation="required" error-behavior="blur" label-class="sr-only"></formulate-input> {% endif %} <formulate-input type="email" name="email" :input-class="() => ['text-input', 'bg-white', 'form-field__control', 'mb-3', 'w-full']" label="{{ self.design.labels.email }}" - placeholder="{{ self.design.labels.email }}" validation="^required|email" error-behavior="blur" + placeholder="{{ self.design.labels.email }}" validation-name="E-mail" validation="^required|email" error-behavior="blur" label-class="sr-only"></formulate-input> <formulate-input type="checkbox" name="consent" validation-name="souhlas s osobními údaji" :wrapper-class="() => []" :input-class="() => []" :element-class="() => ['checkbox', 'form-field__control', 'flex', 'items-center', 'mb-3']" validation="required" error-behavior="blur"> <template #suffix="{ id }"> diff --git a/uniweb/migrations/0044_uniwebflexiblepage_access_token_and_more.py b/uniweb/migrations/0044_uniwebflexiblepage_access_token_and_more.py new file mode 100644 index 0000000000000000000000000000000000000000..0f5950502626818f3daa2e3d21d518d185e654ce --- /dev/null +++ b/uniweb/migrations/0044_uniwebflexiblepage_access_token_and_more.py @@ -0,0 +1,1537 @@ +# Generated by Django 4.1.8 on 2023-05-12 22:44 + +import wagtail.blocks +import wagtail.blocks.static_block +import wagtail.contrib.table_block.blocks +import wagtail.fields +import wagtail.images.blocks +from django.db import migrations, models + +import shared.blocks + + +class Migration(migrations.Migration): + dependencies = [ + ("uniweb", "0043_merge_20230502_1854"), + ] + + operations = [ + migrations.AddField( + model_name="uniwebflexiblepage", + name="access_token", + field=models.CharField( + blank=True, max_length=512, null=True, verbose_name="Access token" + ), + ), + migrations.AddField( + model_name="uniwebflexiblepage", + name="require_confirmation", + field=models.BooleanField( + default=True, verbose_name="Požadovat zaslání ověřovacího e-mailu?" + ), + ), + migrations.AddField( + model_name="uniwebflexiblepage", + name="subscription_id", + field=models.CharField( + blank=True, max_length=512, null=True, verbose_name="ID newsletteru" + ), + ), + migrations.AddField( + model_name="uniwebhomepage", + name="access_token", + field=models.CharField( + blank=True, max_length=512, null=True, verbose_name="Access token" + ), + ), + migrations.AddField( + model_name="uniwebhomepage", + name="require_confirmation", + field=models.BooleanField( + default=True, verbose_name="Požadovat zaslání ověřovacího e-mailu?" + ), + ), + migrations.AddField( + model_name="uniwebhomepage", + name="subscription_id", + field=models.CharField( + blank=True, max_length=512, null=True, verbose_name="ID newsletteru" + ), + ), + migrations.AlterField( + model_name="uniwebflexiblepage", + name="content", + field=wagtail.fields.StreamField( + [ + ( + "title", + wagtail.blocks.CharBlock( + group="nadpisy", + icon="title", + label="nadpis", + template="uniweb/blocks/title.html", + ), + ), + ( + "advanced_title", + wagtail.blocks.StructBlock( + [ + ( + "align", + wagtail.blocks.ChoiceBlock( + choices=[ + ("left", "vlevo"), + ("center", "uprostřed"), + ("right", "vpravo"), + ], + label="zarovnání", + ), + ), + ( + "color", + wagtail.blocks.ChoiceBlock( + choices=[ + ("black_on_white", "černá na bílé"), + ("white_on_black", "bílá na černé"), + ("white_on_blue", "bílá na modré"), + ("white_on_cyan", "bílá na tyrkysové"), + ("white_on_violet", "bílá na fialové"), + ], + label="barva", + ), + ), + ("title", wagtail.blocks.CharBlock(label="nadpis")), + ] + ), + ), + ( + "picture_title", + wagtail.blocks.StructBlock( + [ + ( + "color", + wagtail.blocks.ChoiceBlock( + choices=[ + ("black_on_white", "černá na bílé"), + ("white_on_black", "bílá na černé"), + ("white_on_blue", "bílá na modré"), + ("white_on_cyan", "bílá na tyrkysové"), + ("white_on_violet", "bílá na fialové"), + ], + label="barva", + ), + ), + ("title", wagtail.blocks.CharBlock(label="nadpis")), + ( + "picture", + wagtail.images.blocks.ImageChooserBlock( + help_text="rozměr na výšku 75px nebo více (obrázek bude zmenšen na výšku 75px)", + label="obrázek", + ), + ), + ] + ), + ), + ( + "text", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", + ], + group="texty", + label="text", + template="uniweb/blocks/text.html", + ), + ), + ( + "advanced_text", + wagtail.blocks.StructBlock( + [ + ( + "align", + wagtail.blocks.ChoiceBlock( + choices=[ + ("left", "vlevo"), + ("center", "uprostřed"), + ("right", "vpravo"), + ], + label="zarovnání", + ), + ), + ( + "color", + wagtail.blocks.ChoiceBlock( + choices=[ + ("black_on_white", "černá na bílé"), + ("white_on_black", "bílá na černé"), + ("white_on_blue", "bílá na modré"), + ("white_on_cyan", "bílá na tyrkysové"), + ("white_on_violet", "bílá na fialové"), + ], + label="barva", + ), + ), + ( + "text", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", + ], + label="text", + ), + ), + ] + ), + ), + ( + "text_columns", + wagtail.blocks.StructBlock( + [ + ( + "left_text", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", + ], + label="levý sloupec", + ), + ), + ( + "right_text", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", + ], + label="pravý sloupec", + ), + ), + ] + ), + ), + ( + "advanced_text_columns", + wagtail.blocks.StructBlock( + [ + ( + "align", + wagtail.blocks.ChoiceBlock( + choices=[ + ("left", "vlevo"), + ("center", "uprostřed"), + ("right", "vpravo"), + ], + label="zarovnání", + ), + ), + ( + "color", + wagtail.blocks.ChoiceBlock( + choices=[ + ("black_on_white", "černá na bílé"), + ("white_on_black", "bílá na černé"), + ("white_on_blue", "bílá na modré"), + ("white_on_cyan", "bílá na tyrkysové"), + ("white_on_violet", "bílá na fialové"), + ], + label="barva", + ), + ), + ( + "left_text", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", + ], + label="levý sloupec", + ), + ), + ( + "right_text", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", + ], + label="pravý sloupec", + ), + ), + ] + ), + ), + ( + "gallery", + wagtail.blocks.ListBlock( + wagtail.images.blocks.ImageChooserBlock(label="obrázek"), + group="ostatní", + icon="image", + label="galerie", + template="uniweb/blocks/gallery.html", + ), + ), + ( + "picture_list", + wagtail.blocks.StructBlock( + [ + ( + "color", + wagtail.blocks.ChoiceBlock( + choices=[ + ("black_on_white", "černá na bílé"), + ("white_on_black", "bílá na černé"), + ("white_on_blue", "bílá na modré"), + ("white_on_cyan", "bílá na tyrkysové"), + ("white_on_violet", "bílá na fialové"), + ], + label="barva", + ), + ), + ( + "items", + wagtail.blocks.ListBlock( + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", + ], + label="odstavec", + ), + label="odstavce", + ), + ), + ( + "picture", + wagtail.images.blocks.ImageChooserBlock( + help_text="rozměr 25x25px nebo více (obrázek bude zmenšen na 25x25px)", + label="obrázek", + ), + ), + ] + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + group="ostatní", + label="tabulka", + template="uniweb/blocks/table.html", + ), + ), + ( + "articles", + wagtail.blocks.StructBlock( + [ + ( + "page", + wagtail.blocks.PageChooserBlock( + label="sekce článků", + page_type=["uniweb.UniwebArticlesIndexPage"], + ), + ), + ( + "lines", + wagtail.blocks.IntegerBlock( + default=1, + help_text="zobrazí se tři články na řádek", + label="počet řádků", + ), + ), + ] + ), + ), + ( + "calendar_agenda", + wagtail.blocks.StructBlock( + [ + ( + "info", + wagtail.blocks.static_block.StaticBlock( + admin_text="adresa kalendáře se zadává v nastavení hlavní stránky webu", + label="volba kalendáře", + ), + ), + ( + "count", + wagtail.blocks.IntegerBlock( + default=10, label="maximum událostí k zobrazení" + ), + ), + ( + "event_type", + wagtail.blocks.ChoiceBlock( + choices=[ + ("future", "budoucí"), + ("past", "proběhlé"), + ], + label="druh událostí", + ), + ), + ] + ), + ), + ( + "chart", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Název", max_length=120 + ), + ), + ( + "chart_type", + wagtail.blocks.ChoiceBlock( + choices=[ + ("bar", "Graf se sloupci"), + ( + "horizontalBar", + "Graf s vodorovnými sloupci", + ), + ("pie", "Koláčový graf"), + ("doughnut", "Donutový graf"), + ("polarArea", "Graf polární oblasti"), + ("radar", "Radarový graf"), + ("line", "Graf s liniemi"), + ], + label="Typ", + ), + ), + ( + "hide_points", + wagtail.blocks.BooleanBlock( + help_text="Mění vzhled pouze u linových grafů.", + label="Schovat body", + required=False, + ), + ), + ( + "local_labels", + wagtail.blocks.ListBlock( + wagtail.blocks.CharBlock( + label="Skupina", max_length=40 + ), + blank=True, + collapsed=True, + default=[], + label="Místně definované skupiny", + required=False, + ), + ), + ( + "local_datasets", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "label", + wagtail.blocks.CharBlock( + label="Označení zdroje dat", + max_length=120, + ), + ), + ( + "data", + wagtail.blocks.ListBlock( + wagtail.blocks.IntegerBlock(), + default=[0], + label="Data", + ), + ), + ] + ), + blank=True, + collapsed=True, + default=[], + label="Místní zdroje dat", + required=False, + ), + ), + ( + "redmine_issue_datasets", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "projects", + wagtail.blocks.MultipleChoiceBlock( + choices=shared.blocks.get_redmine_projects, + label="Projekty", + ), + ), + ( + "is_open", + wagtail.blocks.BooleanBlock( + label="Jen otevřené", + required=False, + ), + ), + ( + "is_closed", + wagtail.blocks.BooleanBlock( + label="Jen uzavřené", + required=False, + ), + ), + ( + "created_on_min_date", + wagtail.blocks.DateBlock( + label="Min. datum vytvoření", + required=True, + ), + ), + ( + "created_on_max_date", + wagtail.blocks.DateBlock( + label="Max. datum vytvoření", + required=True, + ), + ), + ( + "updated_on", + wagtail.blocks.CharBlock( + help_text="Např. <=2023-01-01. Více informací na pi2.cz/redmine-api", + label="Filtr pro datum aktualizace", + max_length=128, + required=False, + ), + ), + ( + "issue_label", + wagtail.blocks.CharBlock( + label="Označení úkolů uvnitř grafu", + max_length=128, + required=True, + ), + ), + ( + "split_per_project", + wagtail.blocks.BooleanBlock( + label="Rozdělit podle projektu", + required=False, + ), + ), + ( + "only_grow", + wagtail.blocks.BooleanBlock( + label="Pouze růst nahoru", + required=False, + ), + ), + ], + label="Redmine úkoly", + ), + blank=True, + default=[], + help_text="Úkoly, podle doby vytvoření. Pokud definuješ více zdrojů, datumy v nich musí být stejné.", + label="Zdroje dat z Redmine (úkoly)", + required=False, + ), + ), + ], + template="uniweb/blocks/chart.html", + ), + ), + ( + "newsletter", + wagtail.blocks.StructBlock( + [ + ( + "design", + wagtail.blocks.StructBlock( + [ + ( + "icon", + wagtail.images.blocks.ImageChooserBlock( + help_text="Pokud žádnou nevyberete, zobrazí se ikonka pro lahev v moři", + label="Vyberte si ikonku k formuláři", + required=False, + ), + ), + ( + "title", + wagtail.blocks.CharBlock( + default="Odebírej náš newsletter", + label="Nadpis formuláře", + ), + ), + ( + "subtitle", + wagtail.blocks.CharBlock( + default="Fake news tam nenajdeš, ale dozvíš se, co chystáme doopravdy!", + label="Podnadpis formuláře", + ), + ), + ( + "consent", + wagtail.blocks.RichTextBlock( + default="Souhlasím se zpracováním osobních údajů", + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", + ], + label="Souhlas se zpracováním osobních údajů", + ), + ), + ( + "button", + wagtail.blocks.CharBlock( + default="Odebírat", + label="Tlačítko pro přihlášení k newsletteru", + ), + ), + ( + "require_confirmation", + wagtail.blocks.CharBlock( + default="Zkontroluj si prosím schránku, poslali jsme ti potvrzovací e-mail.", + label="Zpráva o úspěšném zaslání potvrzovacího emailu", + ), + ), + ( + "no_require_confirmation", + wagtail.blocks.CharBlock( + default="Jsi přihlášen/a k odběru našich novinek.", + help_text="Zobrazí se pouze pokud od uživatele nepožadujeme ověřovací email", + label="Zpráva o úspěšném zaregistrování k newsletteru", + ), + ), + ( + "labels", + wagtail.blocks.StructBlock( + [ + ( + "email", + wagtail.blocks.CharBlock( + default="Tvůj e-mail", + label="Popisek emailu", + ), + ), + ( + "first_name", + wagtail.blocks.CharBlock( + default="Tvoje křestní jméno", + help_text="Zobrazí se, pouze pokud umožníte zadat jméno v konfiguraci", + label="Popisek křestního jména", + ), + ), + ( + "last_name", + wagtail.blocks.CharBlock( + default="Tvoje příjmení", + help_text="Zobrazí se, pouze pokud umožníte zadat jméno v konfiguraci", + label="Popisek příjmení", + ), + ), + ], + label="popisky vstupů uživatele", + required=True, + ), + ), + ], + label="Design formuláře", + required=True, + ), + ), + ( + "config", + wagtail.blocks.StructBlock( + [ + ( + "show_name_input", + wagtail.blocks.BooleanBlock( + label="Umožnit uživateli přidat jméno a příjmení?", + required=False, + ), + ), + ( + "force_subscribe", + wagtail.blocks.BooleanBlock( + default=True, + label="Přihlásit uživatele, i když se v minulosti odhlásil?", + required=False, + ), + ), + ( + "send_timezone", + wagtail.blocks.BooleanBlock( + label="Zasílat timezone podle uživatelova prohlížeče?", + required=False, + ), + ), + ], + label="Konfigurace", + required=True, + ), + ), + ] + ), + ), + ], + blank=True, + use_json_field=True, + verbose_name="obsah stránky", + ), + ), + migrations.AlterField( + model_name="uniwebhomepage", + name="content", + field=wagtail.fields.StreamField( + [ + ( + "title", + wagtail.blocks.CharBlock( + group="nadpisy", + icon="title", + label="nadpis", + template="uniweb/blocks/title.html", + ), + ), + ( + "advanced_title", + wagtail.blocks.StructBlock( + [ + ( + "align", + wagtail.blocks.ChoiceBlock( + choices=[ + ("left", "vlevo"), + ("center", "uprostřed"), + ("right", "vpravo"), + ], + label="zarovnání", + ), + ), + ( + "color", + wagtail.blocks.ChoiceBlock( + choices=[ + ("black_on_white", "černá na bílé"), + ("white_on_black", "bílá na černé"), + ("white_on_blue", "bílá na modré"), + ("white_on_cyan", "bílá na tyrkysové"), + ("white_on_violet", "bílá na fialové"), + ], + label="barva", + ), + ), + ("title", wagtail.blocks.CharBlock(label="nadpis")), + ] + ), + ), + ( + "picture_title", + wagtail.blocks.StructBlock( + [ + ( + "color", + wagtail.blocks.ChoiceBlock( + choices=[ + ("black_on_white", "černá na bílé"), + ("white_on_black", "bílá na černé"), + ("white_on_blue", "bílá na modré"), + ("white_on_cyan", "bílá na tyrkysové"), + ("white_on_violet", "bílá na fialové"), + ], + label="barva", + ), + ), + ("title", wagtail.blocks.CharBlock(label="nadpis")), + ( + "picture", + wagtail.images.blocks.ImageChooserBlock( + help_text="rozměr na výšku 75px nebo více (obrázek bude zmenšen na výšku 75px)", + label="obrázek", + ), + ), + ] + ), + ), + ( + "text", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", + ], + group="texty", + label="text", + template="uniweb/blocks/text.html", + ), + ), + ( + "advanced_text", + wagtail.blocks.StructBlock( + [ + ( + "align", + wagtail.blocks.ChoiceBlock( + choices=[ + ("left", "vlevo"), + ("center", "uprostřed"), + ("right", "vpravo"), + ], + label="zarovnání", + ), + ), + ( + "color", + wagtail.blocks.ChoiceBlock( + choices=[ + ("black_on_white", "černá na bílé"), + ("white_on_black", "bílá na černé"), + ("white_on_blue", "bílá na modré"), + ("white_on_cyan", "bílá na tyrkysové"), + ("white_on_violet", "bílá na fialové"), + ], + label="barva", + ), + ), + ( + "text", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", + ], + label="text", + ), + ), + ] + ), + ), + ( + "text_columns", + wagtail.blocks.StructBlock( + [ + ( + "left_text", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", + ], + label="levý sloupec", + ), + ), + ( + "right_text", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", + ], + label="pravý sloupec", + ), + ), + ] + ), + ), + ( + "advanced_text_columns", + wagtail.blocks.StructBlock( + [ + ( + "align", + wagtail.blocks.ChoiceBlock( + choices=[ + ("left", "vlevo"), + ("center", "uprostřed"), + ("right", "vpravo"), + ], + label="zarovnání", + ), + ), + ( + "color", + wagtail.blocks.ChoiceBlock( + choices=[ + ("black_on_white", "černá na bílé"), + ("white_on_black", "bílá na černé"), + ("white_on_blue", "bílá na modré"), + ("white_on_cyan", "bílá na tyrkysové"), + ("white_on_violet", "bílá na fialové"), + ], + label="barva", + ), + ), + ( + "left_text", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", + ], + label="levý sloupec", + ), + ), + ( + "right_text", + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", + ], + label="pravý sloupec", + ), + ), + ] + ), + ), + ( + "gallery", + wagtail.blocks.ListBlock( + wagtail.images.blocks.ImageChooserBlock(label="obrázek"), + group="ostatní", + icon="image", + label="galerie", + template="uniweb/blocks/gallery.html", + ), + ), + ( + "picture_list", + wagtail.blocks.StructBlock( + [ + ( + "color", + wagtail.blocks.ChoiceBlock( + choices=[ + ("black_on_white", "černá na bílé"), + ("white_on_black", "bílá na černé"), + ("white_on_blue", "bílá na modré"), + ("white_on_cyan", "bílá na tyrkysové"), + ("white_on_violet", "bílá na fialové"), + ], + label="barva", + ), + ), + ( + "items", + wagtail.blocks.ListBlock( + wagtail.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", + ], + label="odstavec", + ), + label="odstavce", + ), + ), + ( + "picture", + wagtail.images.blocks.ImageChooserBlock( + help_text="rozměr 25x25px nebo více (obrázek bude zmenšen na 25x25px)", + label="obrázek", + ), + ), + ] + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + group="ostatní", + label="tabulka", + template="uniweb/blocks/table.html", + ), + ), + ( + "articles", + wagtail.blocks.StructBlock( + [ + ( + "page", + wagtail.blocks.PageChooserBlock( + label="sekce článků", + page_type=["uniweb.UniwebArticlesIndexPage"], + ), + ), + ( + "lines", + wagtail.blocks.IntegerBlock( + default=1, + help_text="zobrazí se tři články na řádek", + label="počet řádků", + ), + ), + ] + ), + ), + ( + "calendar_agenda", + wagtail.blocks.StructBlock( + [ + ( + "info", + wagtail.blocks.static_block.StaticBlock( + admin_text="adresa kalendáře se zadává v nastavení hlavní stránky webu", + label="volba kalendáře", + ), + ), + ( + "count", + wagtail.blocks.IntegerBlock( + default=10, label="maximum událostí k zobrazení" + ), + ), + ( + "event_type", + wagtail.blocks.ChoiceBlock( + choices=[ + ("future", "budoucí"), + ("past", "proběhlé"), + ], + label="druh událostí", + ), + ), + ] + ), + ), + ( + "chart", + wagtail.blocks.StructBlock( + [ + ( + "title", + wagtail.blocks.CharBlock( + label="Název", max_length=120 + ), + ), + ( + "chart_type", + wagtail.blocks.ChoiceBlock( + choices=[ + ("bar", "Graf se sloupci"), + ( + "horizontalBar", + "Graf s vodorovnými sloupci", + ), + ("pie", "Koláčový graf"), + ("doughnut", "Donutový graf"), + ("polarArea", "Graf polární oblasti"), + ("radar", "Radarový graf"), + ("line", "Graf s liniemi"), + ], + label="Typ", + ), + ), + ( + "hide_points", + wagtail.blocks.BooleanBlock( + help_text="Mění vzhled pouze u linových grafů.", + label="Schovat body", + required=False, + ), + ), + ( + "local_labels", + wagtail.blocks.ListBlock( + wagtail.blocks.CharBlock( + label="Skupina", max_length=40 + ), + blank=True, + collapsed=True, + default=[], + label="Místně definované skupiny", + required=False, + ), + ), + ( + "local_datasets", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "label", + wagtail.blocks.CharBlock( + label="Označení zdroje dat", + max_length=120, + ), + ), + ( + "data", + wagtail.blocks.ListBlock( + wagtail.blocks.IntegerBlock(), + default=[0], + label="Data", + ), + ), + ] + ), + blank=True, + collapsed=True, + default=[], + label="Místní zdroje dat", + required=False, + ), + ), + ( + "redmine_issue_datasets", + wagtail.blocks.ListBlock( + wagtail.blocks.StructBlock( + [ + ( + "projects", + wagtail.blocks.MultipleChoiceBlock( + choices=shared.blocks.get_redmine_projects, + label="Projekty", + ), + ), + ( + "is_open", + wagtail.blocks.BooleanBlock( + label="Jen otevřené", + required=False, + ), + ), + ( + "is_closed", + wagtail.blocks.BooleanBlock( + label="Jen uzavřené", + required=False, + ), + ), + ( + "created_on_min_date", + wagtail.blocks.DateBlock( + label="Min. datum vytvoření", + required=True, + ), + ), + ( + "created_on_max_date", + wagtail.blocks.DateBlock( + label="Max. datum vytvoření", + required=True, + ), + ), + ( + "updated_on", + wagtail.blocks.CharBlock( + help_text="Např. <=2023-01-01. Více informací na pi2.cz/redmine-api", + label="Filtr pro datum aktualizace", + max_length=128, + required=False, + ), + ), + ( + "issue_label", + wagtail.blocks.CharBlock( + label="Označení úkolů uvnitř grafu", + max_length=128, + required=True, + ), + ), + ( + "split_per_project", + wagtail.blocks.BooleanBlock( + label="Rozdělit podle projektu", + required=False, + ), + ), + ( + "only_grow", + wagtail.blocks.BooleanBlock( + label="Pouze růst nahoru", + required=False, + ), + ), + ], + label="Redmine úkoly", + ), + blank=True, + default=[], + help_text="Úkoly, podle doby vytvoření. Pokud definuješ více zdrojů, datumy v nich musí být stejné.", + label="Zdroje dat z Redmine (úkoly)", + required=False, + ), + ), + ], + template="uniweb/blocks/chart.html", + ), + ), + ( + "newsletter", + wagtail.blocks.StructBlock( + [ + ( + "design", + wagtail.blocks.StructBlock( + [ + ( + "icon", + wagtail.images.blocks.ImageChooserBlock( + help_text="Pokud žádnou nevyberete, zobrazí se ikonka pro lahev v moři", + label="Vyberte si ikonku k formuláři", + required=False, + ), + ), + ( + "title", + wagtail.blocks.CharBlock( + default="Odebírej náš newsletter", + label="Nadpis formuláře", + ), + ), + ( + "subtitle", + wagtail.blocks.CharBlock( + default="Fake news tam nenajdeš, ale dozvíš se, co chystáme doopravdy!", + label="Podnadpis formuláře", + ), + ), + ( + "consent", + wagtail.blocks.RichTextBlock( + default="Souhlasím se zpracováním osobních údajů", + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + "embed", + ], + label="Souhlas se zpracováním osobních údajů", + ), + ), + ( + "button", + wagtail.blocks.CharBlock( + default="Odebírat", + label="Tlačítko pro přihlášení k newsletteru", + ), + ), + ( + "require_confirmation", + wagtail.blocks.CharBlock( + default="Zkontroluj si prosím schránku, poslali jsme ti potvrzovací e-mail.", + label="Zpráva o úspěšném zaslání potvrzovacího emailu", + ), + ), + ( + "no_require_confirmation", + wagtail.blocks.CharBlock( + default="Jsi přihlášen/a k odběru našich novinek.", + help_text="Zobrazí se pouze pokud od uživatele nepožadujeme ověřovací email", + label="Zpráva o úspěšném zaregistrování k newsletteru", + ), + ), + ( + "labels", + wagtail.blocks.StructBlock( + [ + ( + "email", + wagtail.blocks.CharBlock( + default="Tvůj e-mail", + label="Popisek emailu", + ), + ), + ( + "first_name", + wagtail.blocks.CharBlock( + default="Tvoje křestní jméno", + help_text="Zobrazí se, pouze pokud umožníte zadat jméno v konfiguraci", + label="Popisek křestního jména", + ), + ), + ( + "last_name", + wagtail.blocks.CharBlock( + default="Tvoje příjmení", + help_text="Zobrazí se, pouze pokud umožníte zadat jméno v konfiguraci", + label="Popisek příjmení", + ), + ), + ], + label="popisky vstupů uživatele", + required=True, + ), + ), + ], + label="Design formuláře", + required=True, + ), + ), + ( + "config", + wagtail.blocks.StructBlock( + [ + ( + "show_name_input", + wagtail.blocks.BooleanBlock( + label="Umožnit uživateli přidat jméno a příjmení?", + required=False, + ), + ), + ( + "force_subscribe", + wagtail.blocks.BooleanBlock( + default=True, + label="Přihlásit uživatele, i když se v minulosti odhlásil?", + required=False, + ), + ), + ( + "send_timezone", + wagtail.blocks.BooleanBlock( + label="Zasílat timezone podle uživatelova prohlížeče?", + required=False, + ), + ), + ], + label="Konfigurace", + required=True, + ), + ), + ] + ), + ), + ], + blank=True, + use_json_field=True, + verbose_name="obsah stránky", + ), + ), + ]