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 %}