diff --git a/district/migrations/0238_alter_districtcustompage_content.py b/district/migrations/0238_alter_districtcustompage_content.py new file mode 100644 index 0000000000000000000000000000000000000000..cc44350809c7322fa537b8921534caf1ecef0da1 --- /dev/null +++ b/district/migrations/0238_alter_districtcustompage_content.py @@ -0,0 +1,23 @@ +# Generated by Django 5.0.6 on 2024-06-21 10:21 + +import shared.blocks.base +import wagtail.blocks +import wagtail.contrib.table_block.blocks +import wagtail.fields +import wagtail.images.blocks +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('district', '0237_auto_20240620_1443'), + ] + + operations = [ + 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', template='styleguide2/includes/atoms/text/prose_richtext.html')), ('headline', wagtail.blocks.StructBlock([('headline', wagtail.blocks.CharBlock(label='Nadpis', max_length=300, required=True)), ('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')), ('style', wagtail.blocks.ChoiceBlock(choices=[('head-alt-xl', 'Velký, Bebas Neue - 6XL'), ('head-alt-lg', 'Střední, Bebas Neue - 4XL'), ('head-alt-md', 'Základní velikost - Roboto - MD'), ('head-alt-sm', 'Malý - Roboto - SM'), ('head-alt-xs', 'Extra malý - Roboto - XS')], help_text='Náhled si prohlédněte na https://styleguide2.pirati.cz/pattern/patterns/atoms/text/headings.html.', label='Velikost')), ('align', wagtail.blocks.ChoiceBlock(choices=[('auto', 'Automaticky'), ('center', 'Na střed')], label='Zarovnání'))])), ('table', wagtail.contrib.table_block.blocks.TableBlock(label='Tabulka', template='styleguide2/includes/atoms/table/table.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)), ('headline', wagtail.blocks.TextBlock(label='Titulek', 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(label='Tabulka', template='styleguide2/includes/atoms/table/table.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(label='Tabulka', template='styleguide2/includes/atoms/table/table.html')), ('card', wagtail.blocks.StructBlock([('img', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=False)), ('headline', wagtail.blocks.TextBlock(label='Titulek', 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(label='Tabulka', template='styleguide2/includes/atoms/table/table.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)), ('color', wagtail.blocks.ChoiceBlock(choices=[('black', 'Černá'), ('white', 'Bílá'), ('pirati-yellow', 'Žlutá'), ('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 při najetí kurzorem ukáže žlutou šipku.', label='Animovat na hover', 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)), ('color', wagtail.blocks.ChoiceBlock(choices=[('black', 'Černá'), ('white', 'Bílá'), ('pirati-yellow', 'Žlutá'), ('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 při najetí kurzorem ukáže žlutou šipku.', label='Animovat na hover', 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(label='Tabulka', template='styleguide2/includes/atoms/table/table.html')), ('card', wagtail.blocks.StructBlock([('img', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=False)), ('headline', wagtail.blocks.TextBlock(label='Titulek', 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(label='Tabulka', template='styleguide2/includes/atoms/table/table.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)), ('color', wagtail.blocks.ChoiceBlock(choices=[('black', 'Černá'), ('white', 'Bílá'), ('pirati-yellow', 'Žlutá'), ('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 při najetí kurzorem ukáže žlutou šipku.', label='Animovat na hover', 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)), ('color', wagtail.blocks.ChoiceBlock(choices=[('black', 'Černá'), ('white', 'Bílá'), ('pirati-yellow', 'Žlutá'), ('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 při najetí kurzorem ukáže žlutou šipku.', label='Animovat na hover', 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(label='Tabulka', template='styleguide2/includes/atoms/table/table.html')), ('card', wagtail.blocks.StructBlock([('img', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=False)), ('headline', wagtail.blocks.TextBlock(label='Titulek', 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(label='Tabulka', template='styleguide2/includes/atoms/table/table.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)), ('color', wagtail.blocks.ChoiceBlock(choices=[('black', 'Černá'), ('white', 'Bílá'), ('pirati-yellow', 'Žlutá'), ('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 při najetí kurzorem ukáže žlutou šipku.', label='Animovat na hover', 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)), ('color', wagtail.blocks.ChoiceBlock(choices=[('black', 'Černá'), ('white', 'Bílá'), ('pirati-yellow', 'Žlutá'), ('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 při najetí kurzorem ukáže žlutou šipku.', label='Animovat na hover', 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(label='Tabulka', template='styleguide2/includes/atoms/table/table.html')), ('card', wagtail.blocks.StructBlock([('img', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=False)), ('headline', wagtail.blocks.TextBlock(label='Titulek', 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(label='Tabulka', template='styleguide2/includes/atoms/table/table.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)), ('color', wagtail.blocks.ChoiceBlock(choices=[('black', 'Černá'), ('white', 'Bílá'), ('pirati-yellow', 'Žlutá'), ('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 při najetí kurzorem ukáže žlutou šipku.', label='Animovat na hover', 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)), ('color', wagtail.blocks.ChoiceBlock(choices=[('black', 'Černá'), ('white', 'Bílá'), ('pirati-yellow', 'Žlutá'), ('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 při najetí kurzorem ukáže žlutou šipku.', label='Animovat na hover', 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(label='Tabulka', template='styleguide2/includes/atoms/table/table.html')), ('card', wagtail.blocks.StructBlock([('img', wagtail.images.blocks.ImageChooserBlock(label='Obrázek', required=False)), ('headline', wagtail.blocks.TextBlock(label='Titulek', 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(label='Tabulka', template='styleguide2/includes/atoms/table/table.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)), ('color', wagtail.blocks.ChoiceBlock(choices=[('black', 'Černá'), ('white', 'Bílá'), ('pirati-yellow', 'Žlutá'), ('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 při najetí kurzorem ukáže žlutou šipku.', label='Animovat na hover', 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)), ('color', wagtail.blocks.ChoiceBlock(choices=[('black', 'Černá'), ('white', 'Bílá'), ('pirati-yellow', 'Žlutá'), ('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 při najetí kurzorem ukáže žlutou šipku.', label='Animovat na hover', 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)), ('color', wagtail.blocks.ChoiceBlock(choices=[('black', 'Černá'), ('white', 'Bílá'), ('pirati-yellow', 'Žlutá'), ('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 při najetí kurzorem ukáže žlutou šipku.', label='Animovat na hover', 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)), ('color', wagtail.blocks.ChoiceBlock(choices=[('black', 'Černá'), ('white', 'Bílá'), ('pirati-yellow', 'Žlutá'), ('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 při najetí kurzorem ukáže žlutou šipku.', label='Animovat na hover', 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'))])), ('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.base.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)), ('caption', wagtail.blocks.CharBlock(help_text='Vlastní popisek na vizitce. Pokud není uvedeno, použije se výchozí profese osoby.', label='Popisek', required=False))])), ('new_people_group', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek')), ('slug', wagtail.blocks.CharBlock(help_text='Není třeba vyplňovat, bude automaticky vyplněno', label='Slug skupiny', required=False)), ('person_list_with_custom_positions', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('page', wagtail.blocks.PageChooserBlock(label='Detail osoby', page_type=['district.DistrictPersonPage'])), ('position', wagtail.blocks.CharBlock(help_text='Pokud není pozice vyplněná, použije se pozice ze stránky osoby.', label='Pozice', required=False))]), label='Skupina osob'))])), ('newsletter', wagtail.blocks.StructBlock([('list_id', wagtail.blocks.CharBlock(label='ID newsletteru', required=True)), ('title_line_1', wagtail.blocks.CharBlock(default='Odebírej náš', label='Nadpis bloku (1. řádek)', required=True)), ('title_line_2', wagtail.blocks.CharBlock(default='newsletter', label='Nadpis bloku (2. řádek)', required=True)), ('description', wagtail.blocks.CharBlock(default='Fake news tam nenajdeš, ale dozvíš se, co chystáme doopravdy!', label='Popis newsletteru', required=True))]))], blank=True, verbose_name='Obsah'), + ), + ] diff --git a/district/models.py b/district/models.py index 423ebcb54b771c75901df5ad2a30a3ff8d079f6d..83b4a157e1d65214e586a784b4488c3e6b22a392 100644 --- a/district/models.py +++ b/district/models.py @@ -1,11 +1,14 @@ import json +from functools import cached_property from django.core.cache import cache from django.core.exceptions import ValidationError from django.db import models +from django.conf import settings from django.http import HttpResponseRedirect from modelcluster.contrib.taggit import ClusterTaggableManager from modelcluster.fields import ParentalKey +from wagtail.contrib.routable_page.models import RoutablePageMixin from taggit.models import TaggedItemBase from wagtail.admin.panels import ( FieldPanel, @@ -21,6 +24,8 @@ from wagtailmetadata.models import MetadataPageMixin from calendar_utils.models import CalendarMixin from maps_utils.blocks import MapPointBlock +from shared.forms import SubscribeForm +from wagtail.contrib.routable_page.models import route from maps_utils.const import ( DEFAULT_MAP_STYLE, MAP_STYLES, @@ -55,7 +60,7 @@ from shared.models import ( SharedTaggedDistrictArticle, SubpageMixin, ) -from shared.utils import make_promote_panels, strip_all_html_tags, trim_to_length +from shared.utils import make_promote_panels, strip_all_html_tags, subscribe_to_newsletter, trim_to_length from . import blocks from .forms import JekyllImportForm @@ -636,7 +641,7 @@ class DistrictSearchPage(MainSearchPageMixin): parent_page_types = ["district.DistrictHomePage"] -class DistrictCustomPage(MainSimplePageMixin): +class DistrictCustomPage(RoutablePageMixin, MainSimplePageMixin): ### FIELDS main_image = models.ForeignKey( @@ -672,6 +677,63 @@ class DistrictCustomPage(MainSimplePageMixin): parent_page_types = ["district.DistrictHomePage", "district.DistrictCrossroadPage"] subpage_types = [] + ### OTHERS + + @cached_property + def newsletter_subscribe_url(self): + newsletter_subscribe = self.reverse_subpage("newsletter_subscribe") + + return ( + self.url + newsletter_subscribe + if self.url is not None + else newsletter_subscribe + ) # preview fix + + @route(r"^prihlaseni-k-newsletteru/$") + def newsletter_subscribe(self, request): + if request.method == "POST": + form = SubscribeForm(request.POST) + + if form.is_valid(): + subscribe_to_newsletter( + form.cleaned_data["email"], + ( + self.newsletter_list_id + if hasattr(self, "newsletter_list_id") and self.newsletter_list_id + else settings.PIRATICZ_NEWSLETTER_CID + ) + ) + + messages.success( + request, + "Zkontroluj si prosím schránku, poslali jsme ti potvrzovací email.", + ) + + try: + page = ( + Page.objects.filter(id=form.cleaned_data["return_page_id"]) + .live() + .first() + ) + return HttpResponseRedirect(page.full_url) + except Page.DoesNotExist: + return HttpResponseRedirect(self.url) + + messages.error( + request, + "Tvůj prohlížeč nám odeslal špatná data. Prosím, zkus to znovu.", + ) + + return HttpResponseRedirect(self.url) + + @property + def newsletter_list_id(self) -> str: + for block in self.content: + if block.block_type == "newsletter": + return block.value["list_id"] + + return self.root_page.newsletter_list_id + class DistrictGeoFeatureCollectionPage( ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page diff --git a/shared/blocks/base.py b/shared/blocks/base.py index 79b76079146300268ea063708a1a428bc06e76aa..623fb3d4967272bc14431b8edff22a919f6193ab 100644 --- a/shared/blocks/base.py +++ b/shared/blocks/base.py @@ -1086,6 +1086,19 @@ class FooterLinksBlock(blocks.StructBlock): class NewsletterSubscriptionBlock(blocks.StructBlock): list_id = blocks.CharBlock(label="ID newsletteru", required=True) + + title_line_1 = blocks.CharBlock( + label = "Nadpis bloku (1. řádek)", + required=True, + default="Odebírej náš" + ) + + title_line_2 = blocks.CharBlock( + label = "Nadpis bloku (2. řádek)", + required=True, + default="newsletter" + ) + description = blocks.CharBlock( label="Popis newsletteru", required=True, diff --git a/shared/models/main.py b/shared/models/main.py index 4da83ac7e1101d1c735237d4259b186a59569960..23d954267eee9b67f37165f30ca5677d1f8c79dc 100644 --- a/shared/models/main.py +++ b/shared/models/main.py @@ -29,7 +29,7 @@ from wagtail.blocks import PageChooserBlock, RichTextBlock from wagtail.contrib.routable_page.models import RoutablePageMixin, route from wagtail.documents.models import Document from wagtail.fields import RichTextField, StreamField -from wagtail.models import Page +from wagtail.models import Page, Site from wagtail.search import index from wagtailmetadata.models import MetadataPageMixin @@ -1160,9 +1160,15 @@ class MainHomePageMixin( def newsletter_subscribe(self, request): if request.method == "POST": form = SubscribeForm(request.POST) + if form.is_valid(): subscribe_to_newsletter( - form.cleaned_data["email"], settings.PIRATICZ_NEWSLETTER_CID + form.cleaned_data["email"], + ( + self.newsletter_list_id + if hasattr(self, "newsletter_list_id") and self.newsletter_list_id + else settings.PIRATICZ_NEWSLETTER_CID + ) ) messages.success( diff --git a/shared/templates/styleguide2/includes/organisms/main_section/newsletter_section.html b/shared/templates/styleguide2/includes/organisms/main_section/newsletter_section.html index 52628c76ee68a452c3e984c496073eb6734991f7..94599ca50c7c6d14eff075d6c2603fd6d485c805 100644 --- a/shared/templates/styleguide2/includes/organisms/main_section/newsletter_section.html +++ b/shared/templates/styleguide2/includes/organisms/main_section/newsletter_section.html @@ -6,11 +6,24 @@ > <div class="container--medium pt-32 pb-24"> <h2 class="head-14xl"> - Odebírej náš<br> - newsletter + {% if self.title_line_1 %} + {{ self.title_line_1 }} + {% else %} + Odebírej náš + {% endif %} + + <br> + + {% if self.title_line_2 %} + {{ self.title_line_2 }} + {% else %} + newsletter + {% endif %} </h2> <p class="xl:mt-[-1rem]"> - {% if page.newsletter_description %} + {% if self.description %} + {{ self.description }} + {% elif page.newsletter_description %} {{ page.newsletter_description }} {% else %} Fake news tam nenajdeš, ale dozvíš se, co chystáme doopravdy! @@ -20,13 +33,19 @@ <form class="flex flex-col gap-2 mt-12 items-start" method="post" - action="{{ page.root_page.newsletter_subscribe_url }}" + action=" + {% if page.newsletter_subscribe_url %} + {{ page.newsletter_subscribe_url }} + {% else %} + {{ page.root_page.newsletter_subscribe_url }} + {% endif %} + " > {% csrf_token %} <input type="hidden" name="return_page_id" value="{{ page.id }}"> - {% include 'styleguide2/includes/atoms/form_fields/form_input.html' with name="email" placeholder='Tvůj email' classes='mb-3 w-full md:w-96' %} + {% include 'styleguide2/includes/atoms/form_fields/form_input.html' with name="email" placeholder='Tvůj email' classes='mb-3 w-full md:w-96' value='' %} <div class="checkbox flex items-center mb-3"> <input type="checkbox" id="confirmed" name="confirmed" required> diff --git a/shared/templates/styleguide2/simple_page.html b/shared/templates/styleguide2/simple_page.html index cb8e38926010a3b5c87abbbd6a57da9f3fcd94d2..cadec5cd43a6a20c408bc9ece6ee14fd414a3bd8 100644 --- a/shared/templates/styleguide2/simple_page.html +++ b/shared/templates/styleguide2/simple_page.html @@ -10,11 +10,17 @@ {% include 'styleguide2/includes/organisms/header/simple_header.html' with title=page.title %} {% endblock %} - <main class="container--wide mb-2 lg:mb-12"> + <main class="mb-2 lg:mb-12"> {% block inner_content %} <div class="mt-8"> {% for block in page.content %} - {% include_block block %} + {% if block.block_type != "newsletter" %} + <div class="container--wide"> + {% include_block block %} + </div> + {% else %} + {% include_block block %} + {% endif %} {% endfor %} </div> {% endblock %}