diff --git a/district/blocks.py b/district/blocks.py index 0a9ffca90dfe35e6e4f6d9c00824f0acd40f31d9..71b2ca895fea75cd82fef00c21b22795c47efe32 100644 --- a/district/blocks.py +++ b/district/blocks.py @@ -1,4 +1,5 @@ from django.forms.utils import ErrorList +from wagtail.core import blocks from wagtail.core.blocks import ( BooleanBlock, CharBlock, @@ -29,24 +30,10 @@ class AddressBlock(StructBlock): label = "Adresa" -class CallToActionButtonBlock(StructBlock): - button_link = URLBlock(label="Odkaz", max_length=64) - button_text = CharBlock(label="Text") - - class Meta: - template = "district/blocks/call_to_action_button_block.html" - icon = "link" - label = "Call-to-action tlačítko" - - class CandidateListBlock(StructBlock): - title = CharBlock(label="Titulek", required=True) - call_to_action_text = CharBlock(label="Text 'call-to-action' baneru") - call_to_action_link = URLBlock( - label="Odkaz 'call-to-action' baneru", required=False - ) - call_to_action_button_text = CharBlock( - label="Text tlačítka 'call-to-action' baneru", max_length=24, required=False + candidate_list = ListBlock( + PageChooserBlock(label="Osoba", page_type=["district.DistrictPersonPage"]), + label="Kandidáti", ) candidate_list_big_count = IntegerBlock( label="Počet kanditátů s velkým náhledem", default=7 @@ -56,9 +43,10 @@ class CandidateListBlock(StructBlock): default=16, ) - candidate_list = ListBlock( - PageChooserBlock(label="Osoba", page_type=["district.DistrictPersonPage"]), - label="Kandidáti", + cta_text = CharBlock(label="Text 'call-to-action' baneru", required=False) + cta_link = URLBlock(label="Odkaz 'call-to-action' baneru", required=False) + cta_button_text = CharBlock( + label="Text tlačítka 'call-to-action' baneru", max_length=24, required=False ) class Meta: @@ -75,17 +63,18 @@ class CardLinkBlock(StructBlock): page = PageChooserBlock( label="Stránka", page_type=[ - "district.DistrictAfterElectionPage", "district.DistrictArticlePage", "district.DistrictArticlesPage", "district.DistrictCenterPage", "district.DistrictContactPage", "district.DistrictCrossroadPage", "district.DistrictCustomPage", - "district.DistrictElectionPage", - "district.DistrictElectionPointPage", + "district.DistrictElectionCampaignPage", + "district.DistrictElectionProgramPage", + "district.DistrictElectionRootPage", "district.DistrictPeoplePage", "district.DistrictPersonPage", + "district.DistrictPostElectionStrategyPage", "district.DistrictProgramPage", "district.DistrictTagsPage", ], @@ -153,22 +142,6 @@ class ContactItemBlock(StructBlock): label = "Kontakt" -class ElectionHeaderBlock(StructBlock): - flag_text = CharBlock(label="Text ve 'vlajce'", max_length=32, required=False) - motto = CharBlock(label="Motto (podnadpis)", max_length=128, required=False) - image = ImageChooserBlock(label="Obrázek (kandidátů)", required=False) - background_image = ImageChooserBlock(label="Obrázek na pozadí", required=True) - button_list = ListBlock( - CallToActionButtonBlock(), - label="Call to action tlačítka", - ) - - class Meta: - template = "district/blocks/election_header_block.html" - icon = "mail" - label = "Header pro volební rozcestník" - - class HomepageHeaderBlock(StructBlock): title = CharBlock(label="Titulek", required=False, help_text="Nap") image = ImageChooserBlock() diff --git a/district/migrations/0053_alter_districtcrossroadpage_cards_content.py b/district/migrations/0053_alter_districtcrossroadpage_cards_content.py index ecccc31cbf27c27a3955412e7dd2a3c4cfd7f3db..48ce52621d3d959f967725dc759613b58d4e30ab 100644 --- a/district/migrations/0053_alter_districtcrossroadpage_cards_content.py +++ b/district/migrations/0053_alter_districtcrossroadpage_cards_content.py @@ -57,15 +57,15 @@ class Migration(migrations.Migration): wagtail.core.blocks.PageChooserBlock( label="Stránka", page_type=[ - "district.DistrictAfterElectionPage", + # "district.DistrictAfterElectionPage", "district.DistrictArticlePage", "district.DistrictArticlesPage", "district.DistrictCenterPage", "district.DistrictContactPage", "district.DistrictCrossroadPage", "district.DistrictCustomPage", - "district.DistrictElectionPage", - "district.DistrictElectionPointPage", + # "district.DistrictElectionPage", + # "district.DistrictElectionPointPage", "district.DistrictPeoplePage", "district.DistrictPersonPage", "district.DistrictProgramPage", diff --git a/district/migrations/0067_delete_all_superseded_pages.py b/district/migrations/0067_delete_all_superseded_pages.py new file mode 100644 index 0000000000000000000000000000000000000000..7fd29302a047c6a6d5e6f6c4bf76f521318377d8 --- /dev/null +++ b/district/migrations/0067_delete_all_superseded_pages.py @@ -0,0 +1,27 @@ +# Generated by Django 4.0.3 on 2022-05-06 08:49 + +from django.db import migrations + + +def delete_all_superseded_page_types(apps, schema_editor): + Page = apps.get_model("wagtailcore", "Page") + ContentType = apps.get_model("contenttypes", "ContentType") + + for model in ( + "districtafterelectionpage", + "districtelectionpage", + "districtelectionpointpage", + ): + ct = ContentType.objects.get(app_label="district", model=model) + Page.objects.filter(content_type=ct).delete() + + +class Migration(migrations.Migration): + + dependencies = [ + ("district", "0066_alter_districtarticlepage_content_and_more"), + ] + + operations = [ + migrations.RunPython(delete_all_superseded_page_types), + ] diff --git a/district/migrations/0068_districtelectioncampaignpage_and_more.py b/district/migrations/0068_districtelectioncampaignpage_and_more.py new file mode 100644 index 0000000000000000000000000000000000000000..bff113fbd5b60d7459a5c693b27ac739d88a2a12 --- /dev/null +++ b/district/migrations/0068_districtelectioncampaignpage_and_more.py @@ -0,0 +1,15010 @@ +# Generated by Django 4.0.3 on 2022-05-06 09:05 + +import django.db.models.deletion +import wagtail.contrib.routable_page.models +import wagtail.contrib.table_block.blocks +import wagtail.core.blocks +import wagtail.core.fields +import wagtail.images.blocks +import wagtailmetadata.models +from django.db import migrations, models + +import district.models +import shared.models + + +class Migration(migrations.Migration): + + dependencies = [ + ("wagtailimages", "0023_add_choose_permissions"), + ("wagtailcore", "0066_collection_management_permissions"), + ("district", "0067_delete_all_superseded_pages"), + ] + + operations = [ + migrations.CreateModel( + name="DistrictElectionCampaignPage", + fields=[ + ( + "page_ptr", + models.OneToOneField( + auto_created=True, + on_delete=django.db.models.deletion.CASCADE, + parent_link=True, + primary_key=True, + serialize=False, + to="wagtailcore.page", + ), + ), + ( + "content", + wagtail.core.fields.StreamField( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "gallery", + wagtail.core.blocks.StructBlock( + [ + ( + "gallery_items", + wagtail.core.blocks.ListBlock( + wagtail.images.blocks.ImageChooserBlock( + label="obrázek", required=True + ), + group="ostatní", + icon="image", + label="Galerie", + ), + ) + ], + label="Galerie", + ), + ), + ( + "figure", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", required=True + ), + ), + ( + "caption", + wagtail.core.blocks.TextBlock( + label="Popisek", required=False + ), + ), + ] + ), + ), + ( + "card", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", required=False + ), + ), + ( + "elevation", + wagtail.core.blocks.IntegerBlock( + default=2, + help_text="0 = žádný stín, 21 = maximální stín", + label="Velikost stínu", + max_value=21, + min_value=0, + ), + ), + ( + "headline", + wagtail.core.blocks.TextBlock( + label="Titulek", required=False + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=False, + help_text="Pokud je zapnuto, stín se zvýrazní, když na kartu uživatel najede myší.", + label="Zvýraznit stín na hover", + required=False, + ), + ), + ( + "content", + wagtail.core.blocks.StreamBlock( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "figure", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.core.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.core.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.core.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.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.core.blocks.StructBlock( + [ + ( + "features", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.core.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.core.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.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ], + label="Obsah", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", required=False + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", required=False + ), + ), + ] + ), + ), + ( + "two_columns", + wagtail.core.blocks.StructBlock( + [ + ( + "left_column_content", + wagtail.core.blocks.StreamBlock( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "card", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "elevation", + wagtail.core.blocks.IntegerBlock( + default=2, + help_text="0 = žádný stín, 21 = maximální stín", + label="Velikost stínu", + max_value=21, + min_value=0, + ), + ), + ( + "headline", + wagtail.core.blocks.TextBlock( + label="Titulek", + required=False, + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=False, + help_text="Pokud je zapnuto, stín se zvýrazní, když na kartu uživatel najede myší.", + label="Zvýraznit stín na hover", + required=False, + ), + ), + ( + "content", + wagtail.core.blocks.StreamBlock( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "figure", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.core.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.core.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.core.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.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.core.blocks.StructBlock( + [ + ( + "features", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.core.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.core.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.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ], + label="Obsah", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + ), + ( + "figure", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.core.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.core.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.core.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.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.core.blocks.StructBlock( + [ + ( + "features", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.core.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.core.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.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ( + "button", + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + ), + ( + "button_group", + wagtail.core.blocks.StructBlock( + [ + ( + "buttons", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + label="Tlačítka", + ), + ) + ] + ), + ), + ], + label="Obsah levého sloupce", + required=True, + ), + ), + ( + "right_column_content", + wagtail.core.blocks.StreamBlock( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "card", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "elevation", + wagtail.core.blocks.IntegerBlock( + default=2, + help_text="0 = žádný stín, 21 = maximální stín", + label="Velikost stínu", + max_value=21, + min_value=0, + ), + ), + ( + "headline", + wagtail.core.blocks.TextBlock( + label="Titulek", + required=False, + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=False, + help_text="Pokud je zapnuto, stín se zvýrazní, když na kartu uživatel najede myší.", + label="Zvýraznit stín na hover", + required=False, + ), + ), + ( + "content", + wagtail.core.blocks.StreamBlock( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "figure", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.core.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.core.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.core.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.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.core.blocks.StructBlock( + [ + ( + "features", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.core.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.core.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.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ], + label="Obsah", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + ), + ( + "figure", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.core.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.core.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.core.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.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.core.blocks.StructBlock( + [ + ( + "features", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.core.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.core.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.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ( + "button", + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + ), + ( + "button_group", + wagtail.core.blocks.StructBlock( + [ + ( + "buttons", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + label="Tlačítka", + ), + ) + ] + ), + ), + ], + label="Obsah pravého sloupce", + required=True, + ), + ), + ] + ), + ), + ( + "three_columns", + wagtail.core.blocks.StructBlock( + [ + ( + "left_column_content", + wagtail.core.blocks.StreamBlock( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "card", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "elevation", + wagtail.core.blocks.IntegerBlock( + default=2, + help_text="0 = žádný stín, 21 = maximální stín", + label="Velikost stínu", + max_value=21, + min_value=0, + ), + ), + ( + "headline", + wagtail.core.blocks.TextBlock( + label="Titulek", + required=False, + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=False, + help_text="Pokud je zapnuto, stín se zvýrazní, když na kartu uživatel najede myší.", + label="Zvýraznit stín na hover", + required=False, + ), + ), + ( + "content", + wagtail.core.blocks.StreamBlock( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "figure", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.core.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.core.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.core.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.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.core.blocks.StructBlock( + [ + ( + "features", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.core.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.core.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.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ], + label="Obsah", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + ), + ( + "figure", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.core.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.core.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.core.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.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.core.blocks.StructBlock( + [ + ( + "features", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.core.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.core.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.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ( + "button", + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + ), + ( + "button_group", + wagtail.core.blocks.StructBlock( + [ + ( + "buttons", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + label="Tlačítka", + ), + ) + ] + ), + ), + ], + label="Obsah levého sloupce", + required=True, + ), + ), + ( + "middle_column_content", + wagtail.core.blocks.StreamBlock( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "card", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "elevation", + wagtail.core.blocks.IntegerBlock( + default=2, + help_text="0 = žádný stín, 21 = maximální stín", + label="Velikost stínu", + max_value=21, + min_value=0, + ), + ), + ( + "headline", + wagtail.core.blocks.TextBlock( + label="Titulek", + required=False, + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=False, + help_text="Pokud je zapnuto, stín se zvýrazní, když na kartu uživatel najede myší.", + label="Zvýraznit stín na hover", + required=False, + ), + ), + ( + "content", + wagtail.core.blocks.StreamBlock( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "figure", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.core.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.core.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.core.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.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.core.blocks.StructBlock( + [ + ( + "features", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.core.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.core.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.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ], + label="Obsah", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + ), + ( + "figure", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.core.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.core.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.core.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.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.core.blocks.StructBlock( + [ + ( + "features", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.core.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.core.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.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ( + "button", + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + ), + ( + "button_group", + wagtail.core.blocks.StructBlock( + [ + ( + "buttons", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + label="Tlačítka", + ), + ) + ] + ), + ), + ], + label="Obsah prostředního sloupce", + required=True, + ), + ), + ( + "right_column_content", + wagtail.core.blocks.StreamBlock( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "card", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "elevation", + wagtail.core.blocks.IntegerBlock( + default=2, + help_text="0 = žádný stín, 21 = maximální stín", + label="Velikost stínu", + max_value=21, + min_value=0, + ), + ), + ( + "headline", + wagtail.core.blocks.TextBlock( + label="Titulek", + required=False, + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=False, + help_text="Pokud je zapnuto, stín se zvýrazní, když na kartu uživatel najede myší.", + label="Zvýraznit stín na hover", + required=False, + ), + ), + ( + "content", + wagtail.core.blocks.StreamBlock( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "figure", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.core.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.core.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.core.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.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.core.blocks.StructBlock( + [ + ( + "features", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.core.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.core.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.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ], + label="Obsah", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + ), + ( + "figure", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.core.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.core.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.core.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.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.core.blocks.StructBlock( + [ + ( + "features", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.core.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.core.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.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ( + "button", + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + ), + ( + "button_group", + wagtail.core.blocks.StructBlock( + [ + ( + "buttons", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + label="Tlačítka", + ), + ) + ] + ), + ), + ], + label="Obsah pravého sloupce", + required=True, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.core.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.core.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.core.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.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[("osm-mapnik", "OSM Mapnik")], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[("osm-mapnik", "OSM Mapnik")], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ( + "button", + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ("sm", "Malá"), + ("base", "Střední"), + ("lg", "Velká"), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ("black", "Černá"), + ("white", "Bílá"), + ("grey-125", "Světle šedá"), + ("blue-300", "Modrá"), + ("cyan-200", "Tyrkysová"), + ("green-400", "Zelené"), + ("violet-400", "Vínová"), + ("red-600", "Červená"), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", required=False + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", required=False + ), + ), + ] + ), + ), + ( + "button_group", + wagtail.core.blocks.StructBlock( + [ + ( + "buttons", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ("sm", "Malá"), + ("base", "Střední"), + ("lg", "Velká"), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ("black", "Černá"), + ("white", "Bílá"), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + label="Tlačítka", + ), + ) + ] + ), + ), + ( + "image_banner", + wagtail.core.blocks.StructBlock( + [ + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", required=True + ), + ), + ( + "headline", + wagtail.core.blocks.CharBlock( + label="Headline", + max_length=128, + required=True, + ), + ), + ( + "content", + wagtail.core.blocks.StreamBlock( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=( + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ), + label="Textový editor", + ), + ), + ( + "button", + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + ), + ( + "button_group", + wagtail.core.blocks.StructBlock( + [ + ( + "buttons", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + label="Tlačítka", + ), + ) + ] + ), + ), + ], + label="Obsah pravého sloupce", + required=False, + ), + ), + ] + ), + ), + ( + "badge", + wagtail.core.blocks.StructBlock( + [ + ( + "person", + wagtail.core.blocks.PageChooserBlock( + label="Osoba", + page_type=[ + "district.DistrictPersonPage" + ], + required=True, + ), + ), + ( + "wrap_in_card", + wagtail.core.blocks.BooleanBlock( + default=False, + label="Zabalit do karty", + required=False, + ), + ), + ( + "caption", + wagtail.core.blocks.CharBlock( + help_text="Vlastní popisek na vizitce. Pokud není uvedeno, použije se výchozí profese osoby.", + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ], + blank=True, + verbose_name="Obsah", + ), + ), + ( + "number", + models.CharField( + blank=True, + max_length=4, + null=True, + verbose_name="Zvolené číslo kandidátní listiny", + ), + ), + ( + "candidates", + wagtail.core.fields.StreamField( + [ + ( + "candidates", + wagtail.core.blocks.StructBlock( + [ + ( + "candidate_list", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.PageChooserBlock( + label="Osoba", + page_type=[ + "district.DistrictPersonPage" + ], + ), + label="Kandidáti", + ), + ), + ( + "candidate_list_big_count", + wagtail.core.blocks.IntegerBlock( + default=7, + label="Počet kanditátů s velkým náhledem", + ), + ), + ( + "candidate_list_shown_count", + wagtail.core.blocks.IntegerBlock( + default=16, + label="Počet zobrazených kandidátů při načtení stránky (včetně velkých náhledů)", + ), + ), + ( + "cta_text", + wagtail.core.blocks.CharBlock( + label="Text 'call-to-action' baneru", + required=False, + ), + ), + ( + "cta_link", + wagtail.core.blocks.URLBlock( + label="Odkaz 'call-to-action' baneru", + required=False, + ), + ), + ( + "cta_button_text", + wagtail.core.blocks.CharBlock( + label="Text tlačítka 'call-to-action' baneru", + max_length=24, + required=False, + ), + ), + ] + ), + ) + ], + blank=True, + verbose_name="Kandidátní listina", + ), + ), + ( + "candidate_list_title", + models.CharField( + blank=True, + help_text="Např. Kandidátní listina pro magistrát.", + max_length=128, + null=True, + verbose_name="Titulek kandidátní listiny", + ), + ), + ( + "program_point_list_title", + models.CharField( + blank=True, + help_text="Např. Program pro magistrát.", + max_length=128, + null=True, + verbose_name="Titulek programové sekce", + ), + ), + ( + "hero_headline", + models.CharField( + blank=True, + help_text="Použije se v hlavním banneru. Pokud je toto hlavní kampaň voleb, nebo ve vaší obci je jen jedna jediná kandidátní listina, můžete ponechat prázdné a pro titulek se pak použije titulek root volební stránky.", + max_length=128, + null=True, + verbose_name="Banner headline", + ), + ), + ( + "hero_motto", + models.CharField( + blank=True, + help_text="Použije se v hlavním banneru.", + max_length=128, + null=True, + verbose_name="Motto/claim pro banner", + ), + ), + ( + "hero_cta_buttons", + wagtail.core.fields.StreamField( + [ + ( + "button_group", + wagtail.core.blocks.StructBlock( + [ + ( + "buttons", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ("sm", "Malá"), + ("base", "Střední"), + ("lg", "Velká"), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ("black", "Černá"), + ("white", "Bílá"), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + label="Tlačítka", + ), + ) + ] + ), + ) + ], + blank=True, + help_text="Použije se v hlavním banneru.", + null=True, + verbose_name="CTAs pro banner", + ), + ), + ( + "order", + models.SmallIntegerField( + default=0, + help_text="Čím nižší pořadí, tím důležitější kampaň je. Bude použito při řazených výpisech a nejdůležitější kampaň bude automaticky routovaná pokud někdo přistoupí na volební rozcestník.", + verbose_name="Pořadí", + ), + ), + ( + "hero_candidates_image", + models.ForeignKey( + blank=True, + help_text="Použije se jako overlay v hlavním banneru a proto by fotka měla mít průhlednost aby to nevypadalo divně.", + null=True, + on_delete=django.db.models.deletion.PROTECT, + related_name="+", + to="wagtailimages.image", + verbose_name="Obrázek s kandidáty pro banner", + ), + ), + ( + "hero_image", + models.ForeignKey( + blank=True, + help_text="Pokud ponecháte prázdné, použije se výchozí obrázek stránek.", + null=True, + on_delete=django.db.models.deletion.PROTECT, + related_name="+", + to="wagtailimages.image", + verbose_name="Ilustrační obrázek pro banner", + ), + ), + ( + "search_image", + models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + related_name="+", + to="wagtailimages.image", + verbose_name="Search image", + ), + ), + ], + options={ + "verbose_name": "Kandidatura", + }, + bases=( + shared.models.SubpageMixin, + wagtailmetadata.models.WagtailImageMetadataMixin, + "wagtailcore.page", + models.Model, + ), + ), + migrations.CreateModel( + name="DistrictElectionProgramPage", + fields=[ + ( + "page_ptr", + models.OneToOneField( + auto_created=True, + on_delete=django.db.models.deletion.CASCADE, + parent_link=True, + primary_key=True, + serialize=False, + to="wagtailcore.page", + ), + ), + ( + "content", + wagtail.core.fields.StreamField( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "gallery", + wagtail.core.blocks.StructBlock( + [ + ( + "gallery_items", + wagtail.core.blocks.ListBlock( + wagtail.images.blocks.ImageChooserBlock( + label="obrázek", required=True + ), + group="ostatní", + icon="image", + label="Galerie", + ), + ) + ], + label="Galerie", + ), + ), + ( + "figure", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", required=True + ), + ), + ( + "caption", + wagtail.core.blocks.TextBlock( + label="Popisek", required=False + ), + ), + ] + ), + ), + ( + "card", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", required=False + ), + ), + ( + "elevation", + wagtail.core.blocks.IntegerBlock( + default=2, + help_text="0 = žádný stín, 21 = maximální stín", + label="Velikost stínu", + max_value=21, + min_value=0, + ), + ), + ( + "headline", + wagtail.core.blocks.TextBlock( + label="Titulek", required=False + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=False, + help_text="Pokud je zapnuto, stín se zvýrazní, když na kartu uživatel najede myší.", + label="Zvýraznit stín na hover", + required=False, + ), + ), + ( + "content", + wagtail.core.blocks.StreamBlock( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "figure", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.core.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.core.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.core.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.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.core.blocks.StructBlock( + [ + ( + "features", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.core.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.core.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.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ], + label="Obsah", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", required=False + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", required=False + ), + ), + ] + ), + ), + ( + "two_columns", + wagtail.core.blocks.StructBlock( + [ + ( + "left_column_content", + wagtail.core.blocks.StreamBlock( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "card", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "elevation", + wagtail.core.blocks.IntegerBlock( + default=2, + help_text="0 = žádný stín, 21 = maximální stín", + label="Velikost stínu", + max_value=21, + min_value=0, + ), + ), + ( + "headline", + wagtail.core.blocks.TextBlock( + label="Titulek", + required=False, + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=False, + help_text="Pokud je zapnuto, stín se zvýrazní, když na kartu uživatel najede myší.", + label="Zvýraznit stín na hover", + required=False, + ), + ), + ( + "content", + wagtail.core.blocks.StreamBlock( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "figure", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.core.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.core.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.core.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.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.core.blocks.StructBlock( + [ + ( + "features", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.core.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.core.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.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ], + label="Obsah", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + ), + ( + "figure", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.core.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.core.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.core.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.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.core.blocks.StructBlock( + [ + ( + "features", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.core.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.core.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.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ( + "button", + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + ), + ( + "button_group", + wagtail.core.blocks.StructBlock( + [ + ( + "buttons", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + label="Tlačítka", + ), + ) + ] + ), + ), + ], + label="Obsah levého sloupce", + required=True, + ), + ), + ( + "right_column_content", + wagtail.core.blocks.StreamBlock( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "card", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "elevation", + wagtail.core.blocks.IntegerBlock( + default=2, + help_text="0 = žádný stín, 21 = maximální stín", + label="Velikost stínu", + max_value=21, + min_value=0, + ), + ), + ( + "headline", + wagtail.core.blocks.TextBlock( + label="Titulek", + required=False, + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=False, + help_text="Pokud je zapnuto, stín se zvýrazní, když na kartu uživatel najede myší.", + label="Zvýraznit stín na hover", + required=False, + ), + ), + ( + "content", + wagtail.core.blocks.StreamBlock( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "figure", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.core.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.core.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.core.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.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.core.blocks.StructBlock( + [ + ( + "features", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.core.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.core.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.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ], + label="Obsah", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + ), + ( + "figure", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.core.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.core.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.core.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.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.core.blocks.StructBlock( + [ + ( + "features", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.core.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.core.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.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ( + "button", + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + ), + ( + "button_group", + wagtail.core.blocks.StructBlock( + [ + ( + "buttons", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + label="Tlačítka", + ), + ) + ] + ), + ), + ], + label="Obsah pravého sloupce", + required=True, + ), + ), + ] + ), + ), + ( + "three_columns", + wagtail.core.blocks.StructBlock( + [ + ( + "left_column_content", + wagtail.core.blocks.StreamBlock( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "card", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "elevation", + wagtail.core.blocks.IntegerBlock( + default=2, + help_text="0 = žádný stín, 21 = maximální stín", + label="Velikost stínu", + max_value=21, + min_value=0, + ), + ), + ( + "headline", + wagtail.core.blocks.TextBlock( + label="Titulek", + required=False, + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=False, + help_text="Pokud je zapnuto, stín se zvýrazní, když na kartu uživatel najede myší.", + label="Zvýraznit stín na hover", + required=False, + ), + ), + ( + "content", + wagtail.core.blocks.StreamBlock( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "figure", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.core.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.core.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.core.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.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.core.blocks.StructBlock( + [ + ( + "features", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.core.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.core.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.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ], + label="Obsah", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + ), + ( + "figure", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.core.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.core.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.core.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.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.core.blocks.StructBlock( + [ + ( + "features", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.core.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.core.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.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ( + "button", + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + ), + ( + "button_group", + wagtail.core.blocks.StructBlock( + [ + ( + "buttons", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + label="Tlačítka", + ), + ) + ] + ), + ), + ], + label="Obsah levého sloupce", + required=True, + ), + ), + ( + "middle_column_content", + wagtail.core.blocks.StreamBlock( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "card", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "elevation", + wagtail.core.blocks.IntegerBlock( + default=2, + help_text="0 = žádný stín, 21 = maximální stín", + label="Velikost stínu", + max_value=21, + min_value=0, + ), + ), + ( + "headline", + wagtail.core.blocks.TextBlock( + label="Titulek", + required=False, + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=False, + help_text="Pokud je zapnuto, stín se zvýrazní, když na kartu uživatel najede myší.", + label="Zvýraznit stín na hover", + required=False, + ), + ), + ( + "content", + wagtail.core.blocks.StreamBlock( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "figure", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.core.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.core.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.core.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.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.core.blocks.StructBlock( + [ + ( + "features", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.core.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.core.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.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ], + label="Obsah", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + ), + ( + "figure", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.core.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.core.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.core.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.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.core.blocks.StructBlock( + [ + ( + "features", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.core.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.core.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.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ( + "button", + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + ), + ( + "button_group", + wagtail.core.blocks.StructBlock( + [ + ( + "buttons", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + label="Tlačítka", + ), + ) + ] + ), + ), + ], + label="Obsah prostředního sloupce", + required=True, + ), + ), + ( + "right_column_content", + wagtail.core.blocks.StreamBlock( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "card", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "elevation", + wagtail.core.blocks.IntegerBlock( + default=2, + help_text="0 = žádný stín, 21 = maximální stín", + label="Velikost stínu", + max_value=21, + min_value=0, + ), + ), + ( + "headline", + wagtail.core.blocks.TextBlock( + label="Titulek", + required=False, + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=False, + help_text="Pokud je zapnuto, stín se zvýrazní, když na kartu uživatel najede myší.", + label="Zvýraznit stín na hover", + required=False, + ), + ), + ( + "content", + wagtail.core.blocks.StreamBlock( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "figure", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.core.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.core.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.core.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.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.core.blocks.StructBlock( + [ + ( + "features", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.core.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.core.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.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ], + label="Obsah", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + ), + ( + "figure", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.core.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.core.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.core.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.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.core.blocks.StructBlock( + [ + ( + "features", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.core.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.core.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.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ( + "button", + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + ), + ( + "button_group", + wagtail.core.blocks.StructBlock( + [ + ( + "buttons", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + label="Tlačítka", + ), + ) + ] + ), + ), + ], + label="Obsah pravého sloupce", + required=True, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.core.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.core.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.core.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.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[("osm-mapnik", "OSM Mapnik")], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[("osm-mapnik", "OSM Mapnik")], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ( + "button", + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ("sm", "Malá"), + ("base", "Střední"), + ("lg", "Velká"), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ("black", "Černá"), + ("white", "Bílá"), + ("grey-125", "Světle šedá"), + ("blue-300", "Modrá"), + ("cyan-200", "Tyrkysová"), + ("green-400", "Zelené"), + ("violet-400", "Vínová"), + ("red-600", "Červená"), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", required=False + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", required=False + ), + ), + ] + ), + ), + ( + "button_group", + wagtail.core.blocks.StructBlock( + [ + ( + "buttons", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ("sm", "Malá"), + ("base", "Střední"), + ("lg", "Velká"), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ("black", "Černá"), + ("white", "Bílá"), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + label="Tlačítka", + ), + ) + ] + ), + ), + ( + "image_banner", + wagtail.core.blocks.StructBlock( + [ + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", required=True + ), + ), + ( + "headline", + wagtail.core.blocks.CharBlock( + label="Headline", + max_length=128, + required=True, + ), + ), + ( + "content", + wagtail.core.blocks.StreamBlock( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=( + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ), + label="Textový editor", + ), + ), + ( + "button", + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + ), + ( + "button_group", + wagtail.core.blocks.StructBlock( + [ + ( + "buttons", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + label="Tlačítka", + ), + ) + ] + ), + ), + ], + label="Obsah pravého sloupce", + required=False, + ), + ), + ] + ), + ), + ( + "badge", + wagtail.core.blocks.StructBlock( + [ + ( + "person", + wagtail.core.blocks.PageChooserBlock( + label="Osoba", + page_type=[ + "district.DistrictPersonPage" + ], + required=True, + ), + ), + ( + "wrap_in_card", + wagtail.core.blocks.BooleanBlock( + default=False, + label="Zabalit do karty", + required=False, + ), + ), + ( + "caption", + wagtail.core.blocks.CharBlock( + help_text="Vlastní popisek na vizitce. Pokud není uvedeno, použije se výchozí profese osoby.", + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ], + blank=True, + verbose_name="Obsah", + ), + ), + ( + "perex", + models.TextField( + help_text="Pro přehled volebního programu", verbose_name="Perex" + ), + ), + ( + "guarantor", + models.ForeignKey( + on_delete=django.db.models.deletion.PROTECT, + to="district.districtpersonpage", + verbose_name="Garant", + ), + ), + ( + "image", + models.ForeignKey( + on_delete=django.db.models.deletion.PROTECT, + related_name="+", + to="wagtailimages.image", + verbose_name="Ilustrační obrázek", + ), + ), + ( + "search_image", + models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + related_name="+", + to="wagtailimages.image", + verbose_name="Search image", + ), + ), + ], + options={ + "verbose_name": "Bod programu voleb", + }, + bases=( + district.models.DistrictElectionSubCampaignPageMixin, + shared.models.SubpageMixin, + wagtailmetadata.models.WagtailImageMetadataMixin, + "wagtailcore.page", + models.Model, + ), + ), + migrations.CreateModel( + name="DistrictElectionRootPage", + fields=[ + ( + "page_ptr", + models.OneToOneField( + auto_created=True, + on_delete=django.db.models.deletion.CASCADE, + parent_link=True, + primary_key=True, + serialize=False, + to="wagtailcore.page", + ), + ), + ], + options={ + "verbose_name": "Volební rozcestník", + }, + bases=( + wagtail.contrib.routable_page.models.RoutablePageMixin, + "wagtailcore.page", + ), + ), + migrations.CreateModel( + name="DistrictPostElectionStrategyPage", + fields=[ + ( + "page_ptr", + models.OneToOneField( + auto_created=True, + on_delete=django.db.models.deletion.CASCADE, + parent_link=True, + primary_key=True, + serialize=False, + to="wagtailcore.page", + ), + ), + ( + "content", + wagtail.core.fields.StreamField( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "gallery", + wagtail.core.blocks.StructBlock( + [ + ( + "gallery_items", + wagtail.core.blocks.ListBlock( + wagtail.images.blocks.ImageChooserBlock( + label="obrázek", required=True + ), + group="ostatní", + icon="image", + label="Galerie", + ), + ) + ], + label="Galerie", + ), + ), + ( + "figure", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", required=True + ), + ), + ( + "caption", + wagtail.core.blocks.TextBlock( + label="Popisek", required=False + ), + ), + ] + ), + ), + ( + "card", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", required=False + ), + ), + ( + "elevation", + wagtail.core.blocks.IntegerBlock( + default=2, + help_text="0 = žádný stín, 21 = maximální stín", + label="Velikost stínu", + max_value=21, + min_value=0, + ), + ), + ( + "headline", + wagtail.core.blocks.TextBlock( + label="Titulek", required=False + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=False, + help_text="Pokud je zapnuto, stín se zvýrazní, když na kartu uživatel najede myší.", + label="Zvýraznit stín na hover", + required=False, + ), + ), + ( + "content", + wagtail.core.blocks.StreamBlock( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "figure", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.core.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.core.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.core.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.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.core.blocks.StructBlock( + [ + ( + "features", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.core.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.core.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.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ], + label="Obsah", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", required=False + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", required=False + ), + ), + ] + ), + ), + ( + "two_columns", + wagtail.core.blocks.StructBlock( + [ + ( + "left_column_content", + wagtail.core.blocks.StreamBlock( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "card", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "elevation", + wagtail.core.blocks.IntegerBlock( + default=2, + help_text="0 = žádný stín, 21 = maximální stín", + label="Velikost stínu", + max_value=21, + min_value=0, + ), + ), + ( + "headline", + wagtail.core.blocks.TextBlock( + label="Titulek", + required=False, + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=False, + help_text="Pokud je zapnuto, stín se zvýrazní, když na kartu uživatel najede myší.", + label="Zvýraznit stín na hover", + required=False, + ), + ), + ( + "content", + wagtail.core.blocks.StreamBlock( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "figure", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.core.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.core.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.core.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.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.core.blocks.StructBlock( + [ + ( + "features", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.core.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.core.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.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ], + label="Obsah", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + ), + ( + "figure", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.core.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.core.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.core.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.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.core.blocks.StructBlock( + [ + ( + "features", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.core.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.core.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.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ( + "button", + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + ), + ( + "button_group", + wagtail.core.blocks.StructBlock( + [ + ( + "buttons", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + label="Tlačítka", + ), + ) + ] + ), + ), + ], + label="Obsah levého sloupce", + required=True, + ), + ), + ( + "right_column_content", + wagtail.core.blocks.StreamBlock( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "card", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "elevation", + wagtail.core.blocks.IntegerBlock( + default=2, + help_text="0 = žádný stín, 21 = maximální stín", + label="Velikost stínu", + max_value=21, + min_value=0, + ), + ), + ( + "headline", + wagtail.core.blocks.TextBlock( + label="Titulek", + required=False, + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=False, + help_text="Pokud je zapnuto, stín se zvýrazní, když na kartu uživatel najede myší.", + label="Zvýraznit stín na hover", + required=False, + ), + ), + ( + "content", + wagtail.core.blocks.StreamBlock( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "figure", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.core.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.core.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.core.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.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.core.blocks.StructBlock( + [ + ( + "features", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.core.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.core.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.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ], + label="Obsah", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + ), + ( + "figure", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.core.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.core.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.core.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.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.core.blocks.StructBlock( + [ + ( + "features", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.core.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.core.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.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ( + "button", + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + ), + ( + "button_group", + wagtail.core.blocks.StructBlock( + [ + ( + "buttons", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + label="Tlačítka", + ), + ) + ] + ), + ), + ], + label="Obsah pravého sloupce", + required=True, + ), + ), + ] + ), + ), + ( + "three_columns", + wagtail.core.blocks.StructBlock( + [ + ( + "left_column_content", + wagtail.core.blocks.StreamBlock( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "card", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "elevation", + wagtail.core.blocks.IntegerBlock( + default=2, + help_text="0 = žádný stín, 21 = maximální stín", + label="Velikost stínu", + max_value=21, + min_value=0, + ), + ), + ( + "headline", + wagtail.core.blocks.TextBlock( + label="Titulek", + required=False, + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=False, + help_text="Pokud je zapnuto, stín se zvýrazní, když na kartu uživatel najede myší.", + label="Zvýraznit stín na hover", + required=False, + ), + ), + ( + "content", + wagtail.core.blocks.StreamBlock( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "figure", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.core.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.core.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.core.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.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.core.blocks.StructBlock( + [ + ( + "features", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.core.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.core.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.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ], + label="Obsah", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + ), + ( + "figure", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.core.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.core.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.core.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.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.core.blocks.StructBlock( + [ + ( + "features", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.core.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.core.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.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ( + "button", + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + ), + ( + "button_group", + wagtail.core.blocks.StructBlock( + [ + ( + "buttons", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + label="Tlačítka", + ), + ) + ] + ), + ), + ], + label="Obsah levého sloupce", + required=True, + ), + ), + ( + "middle_column_content", + wagtail.core.blocks.StreamBlock( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "card", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "elevation", + wagtail.core.blocks.IntegerBlock( + default=2, + help_text="0 = žádný stín, 21 = maximální stín", + label="Velikost stínu", + max_value=21, + min_value=0, + ), + ), + ( + "headline", + wagtail.core.blocks.TextBlock( + label="Titulek", + required=False, + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=False, + help_text="Pokud je zapnuto, stín se zvýrazní, když na kartu uživatel najede myší.", + label="Zvýraznit stín na hover", + required=False, + ), + ), + ( + "content", + wagtail.core.blocks.StreamBlock( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "figure", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.core.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.core.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.core.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.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.core.blocks.StructBlock( + [ + ( + "features", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.core.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.core.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.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ], + label="Obsah", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + ), + ( + "figure", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.core.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.core.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.core.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.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.core.blocks.StructBlock( + [ + ( + "features", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.core.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.core.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.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ( + "button", + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + ), + ( + "button_group", + wagtail.core.blocks.StructBlock( + [ + ( + "buttons", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + label="Tlačítka", + ), + ) + ] + ), + ), + ], + label="Obsah prostředního sloupce", + required=True, + ), + ), + ( + "right_column_content", + wagtail.core.blocks.StreamBlock( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "card", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "elevation", + wagtail.core.blocks.IntegerBlock( + default=2, + help_text="0 = žádný stín, 21 = maximální stín", + label="Velikost stínu", + max_value=21, + min_value=0, + ), + ), + ( + "headline", + wagtail.core.blocks.TextBlock( + label="Titulek", + required=False, + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=False, + help_text="Pokud je zapnuto, stín se zvýrazní, když na kartu uživatel najede myší.", + label="Zvýraznit stín na hover", + required=False, + ), + ), + ( + "content", + wagtail.core.blocks.StreamBlock( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=[ + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "image", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ], + label="Textový editor", + ), + ), + ( + "table", + wagtail.contrib.table_block.blocks.TableBlock( + template="shared/blocks/table_block.html" + ), + ), + ( + "figure", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.core.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.core.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.core.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.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.core.blocks.StructBlock( + [ + ( + "features", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.core.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.core.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.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ], + label="Obsah", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + ), + ( + "figure", + wagtail.core.blocks.StructBlock( + [ + ( + "img", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=True, + ), + ), + ( + "caption", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.core.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.core.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.core.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.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.core.blocks.StructBlock( + [ + ( + "features", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + required=True, + ), + ), + ( + "description", + wagtail.core.blocks.TextBlock( + label="Popisek", + required=False, + ), + ), + ( + "geojson", + wagtail.core.blocks.TextBlock( + help_text="Vložte surový GeoJSON objekt typu 'Feature'. Vyrobit jej můžete např. pomocí online služby geojson.io.", + label="Geodata", + required=True, + ), + ), + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ( + "hex_color", + wagtail.core.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.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "osm-mapnik", + "OSM Mapnik", + ) + ], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ( + "button", + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + ), + ( + "button_group", + wagtail.core.blocks.StructBlock( + [ + ( + "buttons", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + label="Tlačítka", + ), + ) + ] + ), + ), + ], + label="Obsah pravého sloupce", + required=True, + ), + ), + ] + ), + ), + ( + "youtube", + wagtail.core.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.core.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.core.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.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[("osm-mapnik", "OSM Mapnik")], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Špendlík na mapě", + ), + ), + ( + "map_collection", + wagtail.core.blocks.StructBlock( + [ + ( + "lat", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 50.04075", + label="Zeměpisná šířka", + ), + ), + ( + "lon", + wagtail.core.blocks.DecimalBlock( + help_text="Např. 15.77659", + label="Zeměpisná délka", + ), + ), + ( + "hex_color", + wagtail.core.blocks.CharBlock( + default="000000", + help_text="Zadejte barvu pomocí HEX notace (bez # na začátku).", + label="Barva špendlíku (HEX)", + ), + ), + ( + "zoom", + wagtail.core.blocks.IntegerBlock( + default=15, + label="Výchozí zoom", + max_value=18, + min_value=1, + ), + ), + ( + "style", + wagtail.core.blocks.ChoiceBlock( + choices=[("osm-mapnik", "OSM Mapnik")], + label="Styl", + ), + ), + ( + "height", + wagtail.core.blocks.IntegerBlock( + label="Výška v px", + max_value=1000, + min_value=100, + ), + ), + ], + label="Mapová kolekce", + ), + ), + ( + "button", + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ("sm", "Malá"), + ("base", "Střední"), + ("lg", "Velká"), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ("black", "Černá"), + ("white", "Bílá"), + ("grey-125", "Světle šedá"), + ("blue-300", "Modrá"), + ("cyan-200", "Tyrkysová"), + ("green-400", "Zelené"), + ("violet-400", "Vínová"), + ("red-600", "Červená"), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", required=False + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", required=False + ), + ), + ] + ), + ), + ( + "button_group", + wagtail.core.blocks.StructBlock( + [ + ( + "buttons", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ("sm", "Malá"), + ("base", "Střední"), + ("lg", "Velká"), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ("black", "Černá"), + ("white", "Bílá"), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + label="Tlačítka", + ), + ) + ] + ), + ), + ( + "image_banner", + wagtail.core.blocks.StructBlock( + [ + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek", required=True + ), + ), + ( + "headline", + wagtail.core.blocks.CharBlock( + label="Headline", + max_length=128, + required=True, + ), + ), + ( + "content", + wagtail.core.blocks.StreamBlock( + [ + ( + "text", + wagtail.core.blocks.RichTextBlock( + features=( + "h2", + "h3", + "h4", + "h5", + "bold", + "italic", + "ol", + "ul", + "hr", + "link", + "document-link", + "superscript", + "subscript", + "strikethrough", + "blockquote", + ), + label="Textový editor", + ), + ), + ( + "button", + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + ), + ( + "button_group", + wagtail.core.blocks.StructBlock( + [ + ( + "buttons", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", + max_length=128, + required=True, + ), + ), + ( + "icon", + wagtail.core.blocks.CharBlock( + help_text="Identifikátor ikonky ze styleguide (https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons), např. ico--key.", + label="Ikonka", + max_length=128, + required=False, + ), + ), + ( + "size", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "sm", + "Malá", + ), + ( + "base", + "Střední", + ), + ( + "lg", + "Velká", + ), + ], + label="Velikost", + ), + ), + ( + "color", + wagtail.core.blocks.ChoiceBlock( + choices=[ + ( + "black", + "Černá", + ), + ( + "white", + "Bílá", + ), + ( + "grey-125", + "Světle šedá", + ), + ( + "blue-300", + "Modrá", + ), + ( + "cyan-200", + "Tyrkysová", + ), + ( + "green-400", + "Zelené", + ), + ( + "violet-400", + "Vínová", + ), + ( + "red-600", + "Červená", + ), + ], + label="Barva", + ), + ), + ( + "hoveractive", + wagtail.core.blocks.BooleanBlock( + default=True, + help_text="Pokud je zapnuto, tlačítko mění barvu, když na něj uživatel najede myší.", + label="Animovat na hover", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", + required=False, + ), + ), + ] + ), + label="Tlačítka", + ), + ) + ] + ), + ), + ], + label="Obsah pravého sloupce", + required=False, + ), + ), + ] + ), + ), + ( + "badge", + wagtail.core.blocks.StructBlock( + [ + ( + "person", + wagtail.core.blocks.PageChooserBlock( + label="Osoba", + page_type=[ + "district.DistrictPersonPage" + ], + required=True, + ), + ), + ( + "wrap_in_card", + wagtail.core.blocks.BooleanBlock( + default=False, + label="Zabalit do karty", + required=False, + ), + ), + ( + "caption", + wagtail.core.blocks.CharBlock( + help_text="Vlastní popisek na vizitce. Pokud není uvedeno, použije se výchozí profese osoby.", + label="Popisek", + required=False, + ), + ), + ] + ), + ), + ], + blank=True, + verbose_name="Obsah", + ), + ), + ( + "perex", + models.TextField( + help_text="Pro přehled volebního programu", verbose_name="Perex" + ), + ), + ( + "search_image", + models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.SET_NULL, + related_name="+", + to="wagtailimages.image", + verbose_name="Search image", + ), + ), + ], + options={ + "verbose_name": "Povolební strategie", + }, + bases=( + district.models.DistrictElectionSubCampaignPageMixin, + shared.models.SubpageMixin, + wagtailmetadata.models.WagtailImageMetadataMixin, + "wagtailcore.page", + models.Model, + ), + ), + migrations.RemoveField( + model_name="districtelectionpage", + name="page_ptr", + ), + migrations.RemoveField( + model_name="districtelectionpage", + name="search_image", + ), + migrations.RemoveField( + model_name="districtelectionpointpage", + name="guarantor", + ), + migrations.RemoveField( + model_name="districtelectionpointpage", + name="list_image", + ), + migrations.RemoveField( + model_name="districtelectionpointpage", + name="page_ptr", + ), + migrations.RemoveField( + model_name="districtelectionpointpage", + name="search_image", + ), + migrations.AlterField( + model_name="districtcrossroadpage", + name="cards_content", + field=wagtail.core.fields.StreamField( + [ + ( + "cards", + wagtail.core.blocks.StructBlock( + [ + ( + "headline", + wagtail.core.blocks.CharBlock( + label="Titulek bloku", required=False + ), + ), + ( + "card_items", + wagtail.core.blocks.ListBlock( + wagtail.core.blocks.StructBlock( + [ + ( + "image", + wagtail.images.blocks.ImageChooserBlock( + label="Obrázek" + ), + ), + ( + "title", + wagtail.core.blocks.CharBlock( + label="Titulek", required=True + ), + ), + ( + "text", + wagtail.core.blocks.RichTextBlock( + label="Krátký text pod nadpisem", + required=False, + ), + ), + ( + "page", + wagtail.core.blocks.PageChooserBlock( + label="Stránka", + page_type=[ + "district.DistrictArticlePage", + "district.DistrictArticlesPage", + "district.DistrictCenterPage", + "district.DistrictContactPage", + "district.DistrictCrossroadPage", + "district.DistrictCustomPage", + "district.DistrictElectionCampaignPage", + "district.DistrictElectionProgramPage", + "district.DistrictElectionRootPage", + "district.DistrictPeoplePage", + "district.DistrictPersonPage", + "district.DistrictPostElectionStrategyPage", + "district.DistrictProgramPage", + "district.DistrictTagsPage", + ], + required=False, + ), + ), + ( + "link", + wagtail.core.blocks.URLBlock( + label="Odkaz", required=False + ), + ), + ] + ), + label="Karty odkazu", + ), + ), + ] + ), + ) + ], + blank=True, + verbose_name="Karty rozcestníku", + ), + ), + migrations.DeleteModel( + name="DistrictAfterElectionPage", + ), + migrations.DeleteModel( + name="DistrictElectionPage", + ), + migrations.DeleteModel( + name="DistrictElectionPointPage", + ), + ] diff --git a/district/models.py b/district/models.py index d47c3d547f218eb770a1255eb50cab66b62c1211..980ae72789d8d03731d7dae7741d331738da8493 100644 --- a/district/models.py +++ b/district/models.py @@ -1,10 +1,12 @@ import json import random +from functools import cached_property from django.core.cache import cache from django.core.exceptions import ValidationError from django.core.paginator import Paginator from django.db import models +from django.http import HttpResponseNotFound, HttpResponseRedirect from django.shortcuts import render from django.utils.translation import gettext_lazy from modelcluster.contrib.taggit import ClusterTaggableManager @@ -21,8 +23,7 @@ from wagtail.admin.edit_handlers import ( TabbedInterface, ) from wagtail.admin.forms import WagtailAdminPageForm -from wagtail.contrib.table_block.blocks import TableBlock -from wagtail.core.blocks import RichTextBlock +from wagtail.contrib.routable_page.models import RoutablePageMixin, route from wagtail.core.fields import RichTextField, StreamField from wagtail.core.models import Orderable, Page from wagtail.images.edit_handlers import ImageChooserPanel @@ -32,7 +33,13 @@ from calendar_utils.models import CalendarMixin from maps_utils.blocks import MapPointBlock from maps_utils.const import DEFAULT_MAP_STYLE, MAP_STYLES, SUPPORTED_FEATURE_TYPES from maps_utils.validation import validators as maps_validators -from shared.blocks import DEFAULT_CONTENT_BLOCKS, FigureBlock, YouTubeVideoBlock +from shared.blocks import ( + DEFAULT_CONTENT_BLOCKS, + ButtonBlock, + ButtonGroupBlock, + FigureBlock, + YouTubeVideoBlock, +) from shared.const import RICH_TEXT_DEFAULT_FEATURES from shared.models import ( ArticleMixin, @@ -284,7 +291,7 @@ class DistrictHomePage( "district.DistrictContactPage", "district.DistrictCrossroadPage", "district.DistrictCustomPage", - "district.DistrictElectionPage", + "district.DistrictElectionRootPage", "district.DistrictPeoplePage", "district.DistrictProgramPage", "district.DistrictTagsPage", @@ -326,7 +333,7 @@ class DistrictHomePage( @property def election_page(self): - return self._first_subpage_of_type(DistrictElectionPage) + return self._first_subpage_of_type(DistrictElectionRootPage) @staticmethod def get_404_response(request): @@ -778,45 +785,84 @@ class DistrictElectionBasePage( ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page ): ### FIELDS - text = RichTextField("text", blank=True, features=RICH_TEXT_DEFAULT_FEATURES) + + content = StreamField( + DEFAULT_CONTENT_BLOCKS + + [ + ("badge", blocks.PersonBadgeBlock()), + ], + verbose_name="Obsah", + blank=True, + ) ### PANELS - content_panels = Page.content_panels + [FieldPanel("text")] + content_panels = Page.content_panels + [StreamFieldPanel("content")] promote_panels = make_promote_panels() settings_panels = [] - ### RELATIONS + class Meta: + abstract = True - parent_page_types = ["district.DistrictElectionPage"] - subpage_types = [] + @cached_property + def root_election_page(self): + if isinstance(self, DistrictElectionRootPage): + return self - def get_context(self, request, *args, **kwargs): - context = super().get_context(request, *args, **kwargs) - context["election_points"] = ( - self.get_siblings().type(DistrictElectionPointPage).live().specific() + return ( + self.get_ancestors() + .type(DistrictElectionRootPage) + .live() + .specific() + .first() ) - context["strategy_page"] = self.get_parent().specific.strategy_page - return context - class Meta: - abstract = True +class DistrictElectionSubCampaignPageMixin: + @cached_property + def campaign_page(self): + return ( + self.get_ancestors() + .type(DistrictElectionCampaignPage) + .live() + .specific() + .first() + ) + + +class DistrictPostElectionStrategyPage( + DistrictElectionSubCampaignPageMixin, DistrictElectionBasePage +): + ### FIELDS + + perex = models.TextField("Perex", help_text="Pro přehled volebního programu") + + content_panels = DistrictElectionBasePage.content_panels + [ + FieldPanel("perex"), + ] + + ### RELATIONS + + parent_page_types = ["district.DistrictElectionCampaignPage"] + subpage_types = [] -class DistrictAfterElectionPage(DistrictElectionBasePage): class Meta: verbose_name = "Povolební strategie" -class DistrictElectionPointPage(DistrictElectionBasePage): +class DistrictElectionProgramPage( + DistrictElectionSubCampaignPageMixin, DistrictElectionBasePage +): ### FIELDS + guarantor = models.ForeignKey( - "district.DistrictPersonPage", on_delete=models.PROTECT + "district.DistrictPersonPage", verbose_name="Garant", on_delete=models.PROTECT ) - list_image = models.ForeignKey( + image = models.ForeignKey( "wagtailimages.Image", + verbose_name="Ilustrační obrázek", on_delete=models.PROTECT, related_name="+", ) @@ -826,74 +872,178 @@ class DistrictElectionPointPage(DistrictElectionBasePage): content_panels = DistrictElectionBasePage.content_panels + [ PageChooserPanel("guarantor"), - ImageChooserPanel("list_image"), + ImageChooserPanel("image"), FieldPanel("perex"), ] - ### OTHERS + ### RELATIONS + + parent_page_types = ["district.DistrictElectionCampaignPage"] + subpage_types = [] class Meta: verbose_name = "Bod programu voleb" -class DistrictElectionPage( - ExtendedMetadataPageMixin, SubpageMixin, MetadataPageMixin, Page -): +class DistrictElectionCampaignPage(DistrictElectionBasePage): ### FIELDS - header = StreamField( - [("election_header_block", blocks.ElectionHeaderBlock())], - verbose_name="Obsah headeru", + number = models.CharField( + "Zvolené číslo kandidátní listiny", blank=True, null=True, max_length=4 + ) + candidates = StreamField( + [ + ("candidates", blocks.CandidateListBlock()), + ], + verbose_name="Kandidátní listina", blank=True, ) - - content = StreamField( - DEFAULT_CONTENT_BLOCKS - + [ - ("candidate_list", blocks.CandidateListBlock()), + candidate_list_title = models.CharField( + "Titulek kandidátní listiny", + blank=True, + null=True, + max_length=128, + help_text="Např. Kandidátní listina pro magistrát.", + ) + program_point_list_title = models.CharField( + "Titulek programové sekce", + blank=True, + null=True, + max_length=128, + help_text="Např. Program pro magistrát.", + ) + hero_headline = models.CharField( + "Banner headline", + max_length=128, + blank=True, + null=True, + help_text="Použije se v hlavním banneru. Pokud je toto hlavní kampaň voleb, nebo ve vaší obci je jen jedna jediná kandidátní listina, můžete ponechat prázdné a pro titulek se pak použije titulek root volební stránky.", + ) + hero_motto = models.CharField( + "Motto/claim pro banner", + max_length=128, + blank=True, + null=True, + help_text="Použije se v hlavním banneru.", + ) + hero_cta_buttons = StreamField( + [ + ("button_group", ButtonGroupBlock()), ], - verbose_name="Obsah stránky", + verbose_name="CTAs pro banner", blank=True, + null=True, + help_text="Použije se v hlavním banneru.", + ) + hero_image = models.ForeignKey( + "wagtailimages.Image", + on_delete=models.PROTECT, + related_name="+", + verbose_name="Ilustrační obrázek pro banner", + help_text="Pokud ponecháte prázdné, použije se výchozí obrázek stránek.", + null=True, + blank=True, + ) + hero_candidates_image = models.ForeignKey( + "wagtailimages.Image", + on_delete=models.PROTECT, + related_name="+", + verbose_name="Obrázek s kandidáty pro banner", + help_text="Použije se jako overlay v hlavním banneru a proto by fotka měla mít průhlednost aby to nevypadalo divně.", + null=True, + blank=True, + ) + order = models.SmallIntegerField( + "Pořadí", + default=0, + help_text="Čím nižší pořadí, tím důležitější kampaň je. Bude použito při řazených výpisech a nejdůležitější kampaň bude automaticky routovaná pokud někdo přistoupí na volební rozcestník.", ) ### PANELS content_panels = Page.content_panels + [ - StreamFieldPanel("header"), - StreamFieldPanel("content"), + StreamFieldPanel("candidates"), + MultiFieldPanel( + [ + FieldPanel("number"), + FieldPanel("candidate_list_title"), + FieldPanel("program_point_list_title"), + StreamFieldPanel("content"), + ], + "Personalizace", + ), + MultiFieldPanel( + [ + FieldPanel("hero_headline"), + FieldPanel("hero_motto"), + ImageChooserPanel("hero_image"), + ImageChooserPanel("hero_candidates_image"), + StreamFieldPanel("hero_cta_buttons"), + ], + "Hero banner", + ), + StreamFieldPanel("order"), ] ### RELATIONS + parent_page_types = ["district.DistrictElectionRootPage"] + + class Meta: + verbose_name = "Kandidatura" + + @cached_property + def post_election_strategy(self): + return ( + self.get_children() + .type(DistrictPostElectionStrategyPage) + .live() + .specific() + .first() + ) + + @cached_property + def program_points(self): + return self.get_children().type(DistrictElectionProgramPage).live().specific() + + +class DistrictElectionRootPage(RoutablePageMixin, Page): + """The election root page only serves as a wrapper for sharing stuff among campaign pages. + + It is never rendered on its own. When accessed, it will automatically redirect to the first campaign page. + """ + + ### PANELS + + ### RELATIONS + parent_page_types = ["district.DistrictHomePage"] - subpage_types = [ - "district.DistrictElectionPointPage", - "district.DistrictAfterElectionPage", - "district.DistrictGeoFeatureCollectionPage", - ] + subpage_types = ["district.DistrictElectionCampaignPage"] ### OTHERS class Meta: verbose_name = "Volební rozcestník" - def get_context(self, request, *args, **kwargs): - context = super().get_context(request, *args, **kwargs) - context["election_points"] = ( - self.get_children().live().type(DistrictElectionPointPage).specific() + @cached_property + def campaigns(self): + return ( + self.get_children() + .type(DistrictElectionCampaignPage) + .live() + .order_by("districtelectioncampaignpage__order") ) - return context - @property - def strategy_page(self): - try: - return ( - self.get_descendants() - .type(DistrictAfterElectionPage) - .live() - .specific()[0] - ) - except IndexError: - return None + @cached_property + def primary_campaign(self): + return self.campaigns.first() + + @route(r"^$") + def index(self, request): + """When accessed, redirect to first campaign page available or trigger 404.""" + if not self.primary_campaign: + return HttpResponseNotFound() + + return HttpResponseRedirect(self.primary_campaign.get_url()) class DistrictProgramPage( @@ -1052,20 +1202,18 @@ class DistrictCrossroadPage( parent_page_types = ["district.DistrictHomePage"] subpage_types = [ - "district.DistrictAfterElectionPage", "district.DistrictArticlePage", "district.DistrictArticlesPage", "district.DistrictCenterPage", "district.DistrictContactPage", "district.DistrictCrossroadPage", "district.DistrictCustomPage", - "district.DistrictElectionPage", - "district.DistrictElectionPointPage", + "district.DistrictElectionRootPage", + "district.DistrictGeoFeatureCollectionPage", "district.DistrictPeoplePage", "district.DistrictPersonPage", "district.DistrictProgramPage", "district.DistrictTagsPage", - "district.DistrictGeoFeatureCollectionPage", ] ### OTHERS diff --git a/district/templates/district/base.html b/district/templates/district/base.html index ce022f9a2da08c3ec4271213eddfe27519ad6dbc..abf9e3ad82088ab748dd3e6e2463af6f8488fc0d 100644 --- a/district/templates/district/base.html +++ b/district/templates/district/base.html @@ -16,7 +16,7 @@ <!-- Bootstrap CSS --> <!-- Styles --> - <link rel="stylesheet" href="{% static "styleguide291/assets/css/styles.css" %}"> + <link rel="stylesheet" href="https://styleguide.pirati.cz/2.10.x/css/styles.css"> <link href="{% static "shared/vendor/fancybox/jquery.fancybox.min.css" %}" rel="stylesheet"> <link rel="stylesheet" href="{% static "shared/css/helpers.css" %}"> @@ -314,7 +314,7 @@ </footer> <script src="{% static "styleguide291/assets/js/vue.2.6.11.js" %}"></script> - <script src="{% static "styleguide291/assets/js/main.bundle.js" %}"></script> + <script src="https://styleguide.pirati.cz/2.10.x/js/main.bundle.js"></script> <script src="{% static "shared/vendor/jquery/jquery-3.4.1.min.js" %}"></script> <script src="{% static "shared/vendor/lazysizes/lazysizes.min.js" %}"></script> <script src="{% static "shared/vendor/fancybox/jquery.fancybox.min.js" %}"></script> diff --git a/district/templates/district/blocks/call_to_action_button_block.html b/district/templates/district/blocks/call_to_action_button_block.html deleted file mode 100644 index e5cdc9ac7389fa26175b5217097bc6534e6db57e..0000000000000000000000000000000000000000 --- a/district/templates/district/blocks/call_to_action_button_block.html +++ /dev/null @@ -1,6 +0,0 @@ -<a - href="{{ self.button_link }}" - class="btn btn--white btn--hoveractive btn--fullwidth md:btn--autowidth text-lg" -> - <div class="btn__body ">{{ self.button_text }}</div> -</a> diff --git a/district/templates/district/blocks/candidate_list_block.html b/district/templates/district/blocks/candidate_list_block.html index 1d9702be7020e6e46ea9970e40f3f81bb83954a7..ecc98ee486923b12cc1ac14e9cc69d277a8326ed 100644 --- a/district/templates/district/blocks/candidate_list_block.html +++ b/district/templates/district/blocks/candidate_list_block.html @@ -1,29 +1,29 @@ -<h1 class="head-alt-md text-center py-8 lg:pt-24 lg:pb-8"> - {{ self.title }} -</h1> - <div class="candidate-card-list grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4"> {% for person_page in self.candidate_list %} {% if forloop.counter <= self.candidate_list_big_count %} {% include "shared/full_candidate_snippet.html" %} {% endif %} {% endfor %} - <aside class="banner bg-black text-white container-padding--zero sm:container-padding--auto"> - <i class="ico--pirati banner__icon"></i> - <div class="banner__body"> - <h1 class="head-alt-lg banner__cta"> - {{ self.call_to_action_text }} - </h1> - {% if self.call_to_action_button_text %} - <a href="{{ self.call_to_action_link }}" class="btn btn--white btn--fullwidth mt-8"> - <div class="btn__body "> - {{ self.call_to_action_button_text}} - </div> - </a> - {% endif %} - </div> - </aside> + + {% if self.cta_text%} + <aside class="banner bg-black text-white container-padding--zero sm:container-padding--auto"> + <i class="ico--pirati banner__icon"></i> + <div class="banner__body"> + <h1 class="head-alt-lg banner__cta"> + {{ self.cta_text }} + </h1> + {% if self.cta_button_text and self.cta_link %} + <a href="{{ self.cta_link }}" class="btn btn--white btn--fullwidth mt-8"> + <div class="btn__body "> + {{ self.cta_button_text}} + </div> + </a> + {% endif %} + </div> + </aside> + {% endif %} </div> + <div> <ui-view-provider :initial="{fullCandidateTable: false}" v-slot="{ isCurrentView, setView }"> <div class="candidate-table pt-8 container-padding--zero lg:container-padding--auto" diff --git a/district/templates/district/blocks/election_header_block.html b/district/templates/district/blocks/election_header_block.html deleted file mode 100644 index 5d82240bafd1a69cdeb185daad0fe87f65f08f91..0000000000000000000000000000000000000000 --- a/district/templates/district/blocks/election_header_block.html +++ /dev/null @@ -1,35 +0,0 @@ -{% load wagtailcore_tags wagtailimages_tags %} - -{% image self.background_image width-1920 as bg_img %} -<header class="hero hero--image py-16 " style="--image-url: url({{ bg_img.url }})"> - <div class="container container--default grid lg:grid-rows-3 lg:grid-cols-7 gap-2 items-center"> - <div class="lg:row-span-2 lg:col-span-3 order-1"> - {% if self.flag_text %} - <div class="flag bg-violet-400 text-white head-alt-base mb-6"> - {{ self.flag_text }} - </div> - {% endif %} - <h1 class="head-alt-md md:head-alt-xl"> - {{ page.title }} - </h1> - {% if self.motto %} - <h2 class="head-xs md:head-base mt-2"> - {{ self.motto }} - </h2> - {% endif %} - </div> - <div class="lg:row-span-1 lg:col-span-3 order-3"> - <div class="mt-4 md:mt-8 space-y-4"> - {% for button_block in self.button_list %} - {% include_block button_block %} - {% endfor %} - </div> - </div> - <div class="lg:row-span-3 lg:col-span-4 order-2"> - {% if self.image %} - {% image self.image width-490 as img %} - <img src="{{ img.url }}" class="h-32 lg:h-80 lg:m-auto hidden md:block object-contain" alt=""> - {% endif %} - </div> - </div> -</header> diff --git a/district/templates/district/blocks/homepage_header_block.html b/district/templates/district/blocks/homepage_header_block.html index c759dfd0afa5059d37e1e20312ec9fbd5b54150d..ea190dbd9b4fb1ab764c8f22365a5007edd59e55 100644 --- a/district/templates/district/blocks/homepage_header_block.html +++ b/district/templates/district/blocks/homepage_header_block.html @@ -3,14 +3,13 @@ <header class="hero py-8 lg:py-16"> <div class="container container--default grid lg:grid-cols-7 lg:grid-rows-3 gap-2 items-center"> <div class="lg:col-span-3 lg:row-span-2 order-1"> - <h1 class="head-alt-md md:head-alt-xl">{% firstof self.title page.title %}</h1> + <h1 class="head-alt-lg md:head-alt-xl text-shadow-lg">{% firstof self.title page.title %}</h1> </div> <div class="lg:row-span-1 lg:col-span-3 order-3"> <div class="mt-4 md:mt-8 space-y-4 "> {% if self.button_link and self.button_text %} - <a href="{{ self.button_link }}" - class="btn btn--icon btn--hoveractive btn--fullwidth md:btn--autowidth text-lg"> + <a href="{{ self.button_link }}" class="btn btn--icon btn--hoveractive btn--fullwidth md:btn--autowidth text-lg"> <div class="btn__body-wrap"> <div class="btn__body ">{{ self.button_text }}</div> <div class="btn__icon "> diff --git a/district/templates/district/blocks/homepage_simple_header_block.html b/district/templates/district/blocks/homepage_simple_header_block.html index c6aed45f38f5b3ea728101a0f30f0c378972a8dc..422ee37a935917b5aff48fb1bccced3fab81db48 100644 --- a/district/templates/district/blocks/homepage_simple_header_block.html +++ b/district/templates/district/blocks/homepage_simple_header_block.html @@ -1,15 +1,13 @@ {% load wagtailimages_tags %} {% image self.image width-1920 as img %} -<header - class="hero hero--image py-16 " - style="--image-url: url({{ img.url }})" +<header class="hero hero--image hero--condensed" style="--image-url: url({{ img.full_url }})" > <div class="container container--default"> - <h1 class="head-alt-md md:head-alt-lg max-w-2xl "> + <h1 class="head-alt-lg md:head-alt-xl text-shadow-lg max-w-2xl "> {{ self.title }} </h1> - <h2 class="head-xs mt-2 "> + <h2 class="head-xs mt-2 text-shadow-lg"> {{ self.subtitle }} </h2> </div> diff --git a/district/templates/district/district_after_election_page.html b/district/templates/district/district_after_election_page.html deleted file mode 100644 index 14b8b6f1941983df0392ef8c85e1b27246f1d2bb..0000000000000000000000000000000000000000 --- a/district/templates/district/district_after_election_page.html +++ /dev/null @@ -1,54 +0,0 @@ -{% extends "district/base.html" %} -{% load wagtailcore_tags wagtailimages_tags shared_filters %} - -{% block content %} - <main> - <div class="lg:flex lg:space-x-8 xl:space-x-16"> - <section class="lg:w-3/5 xl:w-2/3"> - <h1 class="head-alt-md md:head-alt-lg max-w-5xl mb-4"> - {{ page.title }} - </h1> - <div class="content-block w-full"> - {{ page.text | richtext }} - </div> - </section> - <section class="pt-8 lg:w-2/5 xl:w-1/3 lg:pt-0"> - <div class="lg:card lg:elevation-10"> - <div class="lg:card__body"> - <div class="content-block"> - <h2>Volby</h2> - <h3>Program</h3> - <ul class="unordered-list unordered-list--linked "> - {% for point_page in election_points %} - <li> - <a - href="{{ point_page.url }}" - class="{% if point_page.id == page.id %}font-bold {% endif %}content-block--nostyle" - > - {{ point_page.title }} - </a> - </li> - {% endfor %} - </ul> - <hr> - <h3>Financování kampaně</h3> - <p>Transparentní financování kampaně je pro nás samozřejmost.</p> - <a - href="https://wiki.pirati.cz/ft/start" - class="btn btn--icon btn--black btn--hoveractive btn--fullwidth md:btn--autowidth" - > - <div class="btn__body-wrap"> - <div class="btn__body ">Zjistit víc</div> - <div class="btn__icon "> - <i class="ico--chevron-right"></i> - </div> - </div> - </a> - </div> - </div> - </div> - </section> - </div> - </main> - -{% endblock content %} diff --git a/district/templates/district/district_center_page.html b/district/templates/district/district_center_page.html index 703493032ab0aa4b7d5ee3043e8e65f52aa58c4e..a19090111a4c8c6f8534b8cb9425a42319d87bc5 100644 --- a/district/templates/district/district_center_page.html +++ b/district/templates/district/district_center_page.html @@ -3,12 +3,12 @@ {% block subheader %} {% image page.get_background_photo width-1920 as bg_img %} - <header class="hero hero--image py-16 " style="--image-url: url({{ bg_img.url }})"> + <header class="hero hero--image hero--condensed" style="--image-url: url({{ bg_img.full_url }})"> <div class="container container--default"> - <h1 class="head-alt-md md:head-alt-lg max-w-2xl"> + <h1 class="head-alt-lg md:head-alt-xl text-shadow-lg max-w-2xl"> {{ page.title }} </h1> - <h2 class="head-xs mt-2"> + <h2 class="head-xs text-shadow-lg mt-2"> {{ page.perex }} </h2> </div> diff --git a/district/templates/district/district_election_campaign_page.html b/district/templates/district/district_election_campaign_page.html new file mode 100644 index 0000000000000000000000000000000000000000..0095f506ae0bcad06baf0fe997594ba83b17d2fc --- /dev/null +++ b/district/templates/district/district_election_campaign_page.html @@ -0,0 +1,158 @@ +{% extends "district/base.html" %} +{% load wagtailcore_tags wagtailimages_tags shared_filters %} + +{% block subheader %} + {% if page.hero_image %} + {% image page.hero_image width-1920 as bg_img %} + {% else %} + {% image page.root_page.fallback_image width-1920 as bg_img %} + {% endif %} + + <header class="hero hero--image text-center md:text-left {% if page.root_election_page.campaigns|length > 1 %}pb-0 pt-16{% else %}py-16{% endif %}" style="--image-url: url({{ bg_img.full_url }})"> + <div class="container container--default grid lg:grid-rows-3 lg:grid-cols-7 gap-2 items-center"> + <div class="lg:row-span-2 lg:col-span-3 order-1"> + {% if page.number %} + <div class="flag bg-violet-400 text-white head-alt-base mb-6"> + Volte č. {{ page.number }} + </div> + {% endif %} + {% if page.hero_headline %} + <h2 class="head-xs md:head-base text-shadow-lg mb-2"> + {{ page.root_election_page.title }} + </h2> + <h1 class="head-alt-lg md:head-alt-xl text-shadow-lg"> + {{ page.hero_headline|default:page.title }} + </h1> + {% else %} + <h1 class="head-alt-lg md:head-alt-xl text-shadow-lg"> + {{ page.root_election_page.title }} + </h1> + {% endif %} + {% if page.hero_motto %} + <h2 class="head-xs md:head-base text-shadow-lg mt-2"> + {{ page.hero_motto }} + </h2> + {% endif %} + </div> + <div class="lg:row-span-1 lg:col-span-3 order-3"> + <div class="mt-4 md:mt-8 space-y-4"> + {% for block in page.hero_cta_buttons%} + {% include_block block %} + {% endfor %} + </div> + </div> + <div class="lg:row-span-3 lg:col-span-4 order-2"> + {% if page.hero_candidates_image %} + {% image page.hero_candidates_image width-490 as candidates_img %} + <img src="{{ candidates_img.url }}" class="h-32 lg:h-80 lg:m-auto hidden md:block object-contain" alt="Kandidáti"> + {% endif %} + </div> + </div> + {% if page.root_election_page.campaigns|length > 1 %} + <div class="container container--default text-white pb-16"> + <hr class="hr--big opacity-25" /> + <div class="leading-loose grid grid-cols-1 md:grid-cols-3 lg:grid-cols-4 text-shadow-lg text-base md:text-sm"> + {% for campaign in page.root_election_page.campaigns %} + <span><a href="{% pageurl campaign %}" class="{% if campaign.pk == page.pk %}font-bold{% endif %}">{{ campaign.title }}</a></span> + {% endfor %} + </div> + </div> + {% endif %} + </header> +{% endblock subheader %} + +{% block container %} + <div class="__js-root"> + <ui-view-provider + :initial="{candidates: true, program: false}" :sync-location="true" v-slot="{ isCurrentView, toggleView }" + > + <div class="container container--default pt-8 lg:py-24 space-y-8 lg:space-y-16"> + {% if page.content %} + <section class="space-y-8"> + {% for block in page.content %} + {% include_block block %} + {% endfor %} + </section> + {% endif %} + + <section> + {% if page.program_points %} + <div class="text-center"> + <div class="switch"> + <a + @click="toggleView('candidates')" + class="switch__item" + :class="{'switch__item--active': isCurrentView('candidates')}" + > + Kandidáti + </a> + <a + @click="toggleView('program')" + class="switch__item" + :class="{'switch__item--active': isCurrentView('program')}" + > + Program + </a> + </div> + </div> + {% endif %} + + <template v-if="isCurrentView('candidates')"> + <h1 class="head-alt-md text-center py-8 lg:pt-24 lg:pb-8">{{ page.candidate_list_title|default:"Kandidátní listina" }}</h1> + + {% for block in self.candidates %} + {% include_block block %} + {% endfor %} + </template> + + {% if page.program_points %} + <template v-if="isCurrentView('program')"> + <h1 class="head-alt-md text-center py-8 lg:pt-24 lg:pb-8">{{ page.program_point_list_title|default:"Volební program" }}</h1> + + <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8"> + {% for program_point in page.program_points %} + <div class="card card--hoveractive"> + <a href="{% pageurl program_point %}"> + {% image program_point.image width-192 as list_image %} + <img src="{{ list_image.url }}" alt="{{ program_point.title }}" class="w-full h-48 object-fit"> + </a> + <div class="card__body p-4"> + <h1 class="card-headline mb-2"> + <a href="{% pageurl program_point %}"> + {{ program_point.title }} + </a> + </h1> + <p class="card-body-text"> + {{ program_point.perex }} + </p> + </div> + </div> + {% endfor %} + </div> + </template> + {% endif %} + </section> + + <section class="flex flex-col lg:flex-row lg:space-x-8"> + {% if page.post_election_strategy %} + <a + href="{{ page.post_election_strategy.url }}" + class="super-button bg-grey-125 text-black lg:w-full container-padding--zero lg:container-padding--auto" + > + <span class="super-button__body">Povolební strategie</span> + <i class="super-button__icon ico--strategy"></i> + </a> + {% endif %} + <a + href="https://wiki.pirati.cz/ft/start" + class="super-button bg-black text-white lg:w-full container-padding--zero lg:container-padding--auto" + > + <span class="super-button__body">Financování kampaně</span> + <i class="super-button__icon ico--calculator"></i> + </a> + </section> + </div> + </ui-view-provider> + </div> + +{% endblock %} diff --git a/district/templates/district/district_election_page.html b/district/templates/district/district_election_page.html deleted file mode 100644 index f93c4ba9ef465edac16a24588e1620e9247cd11a..0000000000000000000000000000000000000000 --- a/district/templates/district/district_election_page.html +++ /dev/null @@ -1,75 +0,0 @@ -{% extends "district/base.html" %} -{% load wagtailcore_tags wagtailimages_tags shared_filters %} - -{% block subheader %} - {% for block in self.header %} - {% include_block block %} - {% endfor %} -{% endblock subheader %} - -{% block container %} - <div class="__js-root"> - <ui-view-provider - :initial="{candidates: true, program: false}" :sync-location="true" v-slot="{ isCurrentView, toggleView }" - > - <div class="container container--default pt-8 lg:py-24"> - <div class="text-center"> - <div class="switch"> - <a - @click="toggleView('candidates')" - class="switch__item" - :class="{'switch__item--active': isCurrentView('candidates')}" - > - Kandidáti - </a> - <a - @click="toggleView('program')" - class="switch__item" - :class="{'switch__item--active': isCurrentView('program')}" - > - Program - </a> - </div> - </div> - - <template v-if="isCurrentView('candidates')"> - {% for block in self.content %} - {% include_block block %} - {% endfor %} - </template> - - <template v-if="isCurrentView('program')"> - <h1 class="head-alt-md text-center py-8 lg:pt-24 lg:pb-8"> - Volební program - </h1> - - <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8"> - {% for election_point_page in election_points %} - {% include "shared/election_point_card_snippet.html" %} - {% endfor %} - </div> - </template> - - <div class="flex flex-col pt-8 lg:pt-16 lg:flex-row lg:space-x-8"> - {% if page.strategy_page %} - <a - href="{{ page.strategy_page.url }}" - class="super-button bg-grey-125 text-black lg:w-full container-padding--zero lg:container-padding--auto" - > - <span class="super-button__body">Povolební strategie</span> - <i class="super-button__icon ico--strategy"></i> - </a> - {% endif %} - <a - href="https://wiki.pirati.cz/ft/start" - class="super-button bg-black text-white lg:w-full container-padding--zero lg:container-padding--auto" - > - <span class="super-button__body">Financování kampaně</span> - <i class="super-button__icon ico--calculator"></i> - </a> - </div> - </div> - </ui-view-provider> - </div> - -{% endblock %} diff --git a/district/templates/district/district_election_point_page.html b/district/templates/district/district_election_point_page.html deleted file mode 100644 index 023be11cee4bfb589aa5781ddd2f406a68b9cbcb..0000000000000000000000000000000000000000 --- a/district/templates/district/district_election_point_page.html +++ /dev/null @@ -1,79 +0,0 @@ -{% extends "district/base.html" %} -{% load wagtailcore_tags wagtailimages_tags shared_filters %} - -{% block content %} - <main> - <div class="lg:flex lg:space-x-8 xl:space-x-16"> - <section class="lg:w-3/5 xl:w-2/3"> - <h1 class="head-alt-md md:head-alt-lg max-w-5xl mb-4"> - {{ page.title }} - </h1> - <p class="font-bold text-lg leading-normal mb-8"> - {{ page.perex }} - </p> - <div class="content-block w-full"> - {{ page.text | richtext }} - - {% include "shared/person_badge_wide_snippet.html" with person_page=page.guarantor title="Garant" %} - </div> - - </section> - <section class="pt-8 lg:w-2/5 xl:w-1/3 lg:pt-0"> - <div class="lg:card lg:elevation-10"> - <div class="lg:card__body"> - {% include "shared/person_badge_snippet.html" with person_page=page.guarantor title="Garant" %} - - <hr> - <div class="content-block"> - <h2>Volby</h2> - <h3>Program</h3> - <ul class="unordered-list unordered-list--linked "> - {% for point_page in election_points %} - <li> - <a - href="{{ point_page.url }}" - class="{% if point_page.id == page.id %}font-bold {% endif %}content-block--nostyle" - > - {{ point_page.title }} - </a> - </li> - {% endfor %} - </ul> - - <hr> - <h3>Povolební strategie</h3> - <p>Přečtěte si, jak se zachováme po volbách. Nemusíte volit zajíce v pytli.</p> - <a - href="{{ strategy_page.url }}" - class="btn btn--icon btn--black btn--hoveractive btn--fullwidth md:btn--autowidth" - > - <div class="btn__body-wrap"> - <div class="btn__body ">Zjistit víc</div> - <div class="btn__icon "> - <i class="ico--chevron-right"></i> - </div> - </div> - </a> - - <hr> - <h3>Financování kampaně</h3> - <p>Transparentní financování kampaně je pro nás samozřejmost.</p> - <a - href="https://wiki.pirati.cz/ft/start" - class="btn btn--icon btn--black btn--hoveractive btn--fullwidth md:btn--autowidth" - > - <div class="btn__body-wrap"> - <div class="btn__body ">Zjistit víc</div> - <div class="btn__icon "> - <i class="ico--chevron-right"></i> - </div> - </div> - </a> - </div> - </div> - </div> - </section> - </div> - </main> - -{% endblock content %} diff --git a/district/templates/district/district_election_program_page.html b/district/templates/district/district_election_program_page.html new file mode 100644 index 0000000000000000000000000000000000000000..92306473114ad882cc2a734f7ba09d1d67857644 --- /dev/null +++ b/district/templates/district/district_election_program_page.html @@ -0,0 +1,32 @@ +{% extends "district/base.html" %} +{% load wagtailcore_tags wagtailimages_tags shared_filters %} + +{% block content %} + <div class="lg:flex lg:space-x-8 xl:space-x-16"> + <section class="lg:w-3/5 xl:w-2/3"> + <h1 class="head-alt-md md:head-alt-lg max-w-5xl mb-4"> + {{ page.title }} + </h1> + <p class="font-bold text-lg leading-normal mb-8"> + {{ page.perex }} + </p> + + {% for block in page.content %} + {% include_block block %} + {% endfor %} + </section> + + <section class="pt-8 lg:w-2/5 xl:w-1/3 lg:pt-0"> + <div class="lg:card lg:elevation-10"> + <div class="lg:card__body"> + <h2 class="head-heavy-sm mb-4"><a href="{% pageurl page.root_election_page %}">{{ page.root_election_page.title }}</a></h2> + + {% include "shared/person_badge_snippet.html" with person_page=page.guarantor title="Garant bodu" %} + <hr /> + + {% include "district/includes/election_subpage_sidebar_content.html" %} + </div> + </div> + </section> + </div> +{% endblock content %} diff --git a/district/templates/district/district_geo_feature_collection_page.html b/district/templates/district/district_geo_feature_collection_page.html index 90b480d4bb9c687f20907b1c3296c9a8bc8d83c2..abc3513a709a1297b4e53d5b1f1abfad4d3f2c96 100644 --- a/district/templates/district/district_geo_feature_collection_page.html +++ b/district/templates/district/district_geo_feature_collection_page.html @@ -4,7 +4,7 @@ {% block subheader %} {% image page.image width-1920 as bg_img %} - <header class="hero hero--image pt-16 pb-24 lg:pt-32 pb-24" style="--image-url: url({{ bg_img.url }})"> + <header class="hero hero--image pt-16 pb-24 lg:pt-32 pb-24" style="--image-url: url({{ bg_img.full_url }})"> <div class="container container--default text-center lg:text-left"> {% comment %} Page index for screens up to md {% endcomment %} {% if page.index %} @@ -13,12 +13,11 @@ </div> {% endif %} - - <h1 class="head-alt-md md:head-alt-xl max-w-2xl mx-auto lg:mx-0"> + <h1 class="head-alt-lg md:head-alt-xl text-shadow-lg max-w-2xl mx-auto lg:mx-0"> {{ page.title }} </h1> - <h2 class="head-xs max-w-xl mb-2 mx-auto lg:mx-0"> + <h2 class="head-xs text-shadow-lg max-w-xl mb-2 mx-auto lg:mx-0"> {{ page.perex }} </h2> </div> diff --git a/district/templates/district/district_geo_feature_detail_page.html b/district/templates/district/district_geo_feature_detail_page.html index b6db41f287e42133fb9abdb17505118968a2f294..342af02256b75d5841a11552a7ce6937a969f8d5 100644 --- a/district/templates/district/district_geo_feature_detail_page.html +++ b/district/templates/district/district_geo_feature_detail_page.html @@ -3,7 +3,7 @@ {% block subheader %} {% image page.image width-1920 as bg_img %} - <header class="hero hero--image pt-16 pb-24 lg:pt-32 pb-24" style="--image-url: url({{ bg_img.url }})"> + <header class="hero hero--image pt-16 pb-24 lg:pt-32 pb-24" style="--image-url: url({{ bg_img.full_url }})"> <div class="container container--default text-center lg:text-left"> {% comment %} Page index for screens up to md {% endcomment %} {% if page.index %} @@ -12,11 +12,11 @@ </div> {% endif %} - <h2 class="head-xs max-w-xl mb-2 mx-auto lg:mx-0"> + <h2 class="head-xs text-shadow-lg max-w-xl mb-2 mx-auto lg:mx-0"> <a href="{% pageurl page.get_parent %}">{{ page.get_parent.title }}</a> </h2> - <h1 class="head-alt-md md:head-alt-xl max-w-2xl mx-auto lg:mx-0"> + <h1 class="head-alt-lg md:head-alt-xl text-shadow-lg max-w-2xl mx-auto lg:mx-0"> {{ page.title }} </h1> </div> diff --git a/district/templates/district/district_person_page.html b/district/templates/district/district_person_page.html index 9ae41e4f1a9b96afe19c21ce70ce5b7a81bcf8e6..ce271ea067b49b8ff808438fe49cb74e0b35e1dc 100644 --- a/district/templates/district/district_person_page.html +++ b/district/templates/district/district_person_page.html @@ -3,14 +3,12 @@ {% block subheader %} {% image page.get_background_photo width-1920 as bg_img %} - <header class="hero hero--image pt-16 pb-24 lg:pt-32 pb-24" - style="--image-url: url({{ bg_img.url }})" - > + <header class="hero hero--image pt-16 pb-24 lg:pt-32 pb-24" style="--image-url: url({{ bg_img.full_url }})"> <div class="container container--default text-center lg:text-left"> - <h1 class="head-alt-md md:head-alt-xl max-w-2xl"> + <h1 class="head-alt-lg md:head-alt-xl text-shadow-lg max-w-2xl"> {{ page.title }} </h1> - <h2 class="head-xs mt-2 max-w-xl"> + <h2 class="head-xs text-shadow-lg mt-2 max-w-xl"> {{ page.job | default_if_none:"" }} </h2> </div> diff --git a/district/templates/district/district_post_election_strategy_page.html b/district/templates/district/district_post_election_strategy_page.html new file mode 100644 index 0000000000000000000000000000000000000000..30e7f09defecedf627b6d0943639b47cd75a70da --- /dev/null +++ b/district/templates/district/district_post_election_strategy_page.html @@ -0,0 +1,28 @@ +{% extends "district/base.html" %} +{% load wagtailcore_tags wagtailimages_tags shared_filters %} + +{% block content %} + <div class="lg:flex lg:space-x-8 xl:space-x-16"> + <section class="lg:w-3/5 xl:w-2/3"> + <h1 class="head-alt-md md:head-alt-lg max-w-5xl mb-4"> + {{ page.title }} + </h1> + <p class="font-bold text-lg leading-normal mb-8"> + {{ page.perex }} + </p> + + {% for block in page.content %} + {% include_block block %} + {% endfor %} + </section> + + <section class="pt-8 lg:w-2/5 xl:w-1/3 lg:pt-0"> + <div class="lg:card lg:elevation-10"> + <div class="lg:card__body"> + <h2 class="head-heavy-sm mb-4"><a href="{% pageurl page.root_election_page %}">{{ page.root_election_page.title }}</a></h2> + {% include "district/includes/election_subpage_sidebar_content.html" %} + </div> + </div> + </section> + </div> +{% endblock content %} diff --git a/district/templates/district/includes/election_subpage_sidebar_content.html b/district/templates/district/includes/election_subpage_sidebar_content.html new file mode 100644 index 0000000000000000000000000000000000000000..31a6c6e2a8ea6f06ae31ae5923f9e0c17193e6f2 --- /dev/null +++ b/district/templates/district/includes/election_subpage_sidebar_content.html @@ -0,0 +1,69 @@ +{% load wagtailcore_tags %} + +<div class="content-block"> + {% if page.root_election_page.campaigns|length > 1 %} + <h3>{{ page.campaign_page.title }}</h3> + {% endif %} + + <ul class="unordered-list unordered-list--linked"> + {% for program_page in page.campaign_page.program_points %} + <li> + <a href="{% pageurl program_page %}" class="{% if program_page.id == page.id %}font-bold {% endif %}content-block--nostyle"> + {{ program_page.title }} + </a> + </li> + {% endfor %} + </ul> + + <a href="{% pageurl page.campaign_page %}?view=candidates" class="btn btn--icon btn--grey-125 text-sm btn--hoveractive btn--fullwidth md:btn--autowidth content-block--nostyle"> + <div class="btn__body-wrap"> + <div class="btn__body ">Kandidátní listina</div> + <div class="btn__icon "> + <i class="ico--chevron-right"></i> + </div> + </div> + </a> + + {% if page.campaign_page.post_election_strategy %} + <hr> + <h3>{{ page.campaign_page.post_election_strategy.title }}</h3> + <p>Přečtěte si, jak se zachováme po volbách. Nemusíte volit zajíce v pytli.</p> + <a href="{% pageurl page.campaign_page.post_election_strategy %}" class="btn btn--icon btn--grey-125 text-sm btn--hoveractive btn--fullwidth md:btn--autowidth content-block--nostyle"> + <div class="btn__body-wrap"> + <div class="btn__body ">Zjistit víc</div> + <div class="btn__icon "> + <i class="ico--chevron-right"></i> + </div> + </div> + </a> + {% endif %} + + {% if page.root_election_page.campaigns|length > 1 %} + <hr /> + <h3>Další</h3> + <ul class="unordered-list unordered-list--linked"> + {% for campaign in page.root_election_page.campaigns %} + {% if campaign.id != page.campaign_page.id %} + <li> + <a href="{% pageurl campaign %}" class="content-block--nostyle"> + {{ campaign.title }} + </a> + </li> + {% endif %} + {% endfor %} + </ul> + + {% endif %} + + <hr> + <h3>Financování kampaně</h3> + <p>Transparentní financování kampaně je pro nás samozřejmost.</p> + <a href="https://wiki.pirati.cz/ft/start" class="btn btn--icon btn--grey-125 text-sm btn--hoveractive btn--fullwidth md:btn--autowidth content-block--nostyle"> + <div class="btn__body-wrap"> + <div class="btn__body ">Zjistit víc</div> + <div class="btn__icon "> + <i class="ico--chevron-right"></i> + </div> + </div> + </a> +</div>