diff --git a/district/migrations/0220_alter_districthomepage_content.py b/district/migrations/0220_alter_districthomepage_content.py
index e9d9f14524806a06337aa5bc539b7a9ef79c7965..525c87e8218582f6c02c2658a384f6fcabe78e3c 100644
--- a/district/migrations/0220_alter_districthomepage_content.py
+++ b/district/migrations/0220_alter_districthomepage_content.py
@@ -1,22 +1,233 @@
 # Generated by Django 5.0.6 on 2024-06-11 08:39
 
-import shared.blocks.main
 import wagtail.blocks
 import wagtail.fields
 import wagtail.images.blocks
 from django.db import migrations
 
+import shared.blocks.main
+
 
 class Migration(migrations.Migration):
-
     dependencies = [
-        ('district', '0219_alter_districtelectioncampaignpage_options_and_more'),
+        ("district", "0219_alter_districtelectioncampaignpage_options_and_more"),
     ]
 
     operations = [
         migrations.AlterField(
-            model_name='districthomepage',
-            name='content',
-            field=wagtail.fields.StreamField([('fullscreen_header_block', wagtail.blocks.StructBlock([('desktop_image', wagtail.images.blocks.ImageChooserBlock(help_text='Pokud není vybráno video, ukáže se na desktopu.', label='Obrázek na pozadí (desktop)', required=False)), ('mobile_image', wagtail.images.blocks.ImageChooserBlock(help_text='Pokud není vybráno video, ukáže se na mobilu.', label='Obrázek na pozadí (mobil)', required=False)), ('desktop_video_url', wagtail.blocks.URLBlock(help_text='Pokud je vybráno, ukáže se na desktopech s povoleným autoplayem místo obrázku.', label='Video (desktop)', required=False)), ('mobile_video_url', wagtail.blocks.URLBlock(help_text='Pokud je vybráno, ukáže se na mobilech s povoleným autoplayem místo obrázku.', label='Video (mobil)', required=False)), ('desktop_line_1', wagtail.blocks.TextBlock(label='Desktop první řádek')), ('desktop_line_2', wagtail.blocks.TextBlock(label='Desktop druhý řádek', required=False)), ('mobile_line_1', wagtail.blocks.TextBlock(label='První mobilní řádek')), ('mobile_line_2', wagtail.blocks.TextBlock(label='Druhý mobilní řádek', required=False)), ('mobile_line_3', wagtail.blocks.TextBlock(label='Třetí mobilní řádek', required=False)), ('button_url', wagtail.blocks.URLBlock(help_text='Bez odkazu tlačítko nebude viditelné.', label='Odkaz tlačítka', required=False)), ('button_text', wagtail.blocks.CharBlock(label='Text tlačítka', required=False))])), ('news_block', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text='Nejnovější články se načtou automaticky', label='Titulek')), ('description', wagtail.blocks.TextBlock(label='Popis', required=False))], template='styleguide2/includes/organisms/articles/district/articles_section.html')), ('elections_block', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek', required=True)), ('text_before_countdown', wagtail.blocks.CharBlock(default='Aktuálně zbývá', label='Text před odpočtem', required=True)), ('countdown_timestamp', wagtail.blocks.DateTimeBlock(label='Datum & čas voleb', required=True)), ('buttons', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek', max_length=128, required=True)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False))]), label='Tlačítka', required=False))])), ('people_block', wagtail.blocks.StructBlock([('title_line_1', wagtail.blocks.CharBlock(label='První řádek titulku')), ('title_line_2', wagtail.blocks.CharBlock(label='Druhý řádek titulku')), ('description', wagtail.blocks.TextBlock(label='Popis')), ('list', wagtail.blocks.ListBlock(shared.blocks.main.BoxBlock, label='Boxíky'))], template='styleguide2/includes/organisms/main_section/district/representatives_section.html')), ('calendar_block', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek', required=False))])), ('newsletter_block', wagtail.blocks.StructBlock([]))], blank=True, verbose_name='Obsah'),
+            model_name="districthomepage",
+            name="content",
+            field=wagtail.fields.StreamField(
+                [
+                    (
+                        "fullscreen_header_block",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "desktop_image",
+                                    wagtail.images.blocks.ImageChooserBlock(
+                                        help_text="Pokud není vybráno video, ukáže se na desktopu.",
+                                        label="Obrázek na pozadí (desktop)",
+                                        required=False,
+                                    ),
+                                ),
+                                (
+                                    "mobile_image",
+                                    wagtail.images.blocks.ImageChooserBlock(
+                                        help_text="Pokud není vybráno video, ukáže se na mobilu.",
+                                        label="Obrázek na pozadí (mobil)",
+                                        required=False,
+                                    ),
+                                ),
+                                (
+                                    "desktop_video_url",
+                                    wagtail.blocks.URLBlock(
+                                        help_text="Pokud je vybráno, ukáže se na desktopech s povoleným autoplayem místo obrázku.",
+                                        label="Video (desktop)",
+                                        required=False,
+                                    ),
+                                ),
+                                (
+                                    "mobile_video_url",
+                                    wagtail.blocks.URLBlock(
+                                        help_text="Pokud je vybráno, ukáže se na mobilech s povoleným autoplayem místo obrázku.",
+                                        label="Video (mobil)",
+                                        required=False,
+                                    ),
+                                ),
+                                (
+                                    "desktop_line_1",
+                                    wagtail.blocks.TextBlock(
+                                        label="Desktop první řádek"
+                                    ),
+                                ),
+                                (
+                                    "desktop_line_2",
+                                    wagtail.blocks.TextBlock(
+                                        label="Desktop druhý řádek", required=False
+                                    ),
+                                ),
+                                (
+                                    "mobile_line_1",
+                                    wagtail.blocks.TextBlock(
+                                        label="První mobilní řádek"
+                                    ),
+                                ),
+                                (
+                                    "mobile_line_2",
+                                    wagtail.blocks.TextBlock(
+                                        label="Druhý mobilní řádek", required=False
+                                    ),
+                                ),
+                                (
+                                    "mobile_line_3",
+                                    wagtail.blocks.TextBlock(
+                                        label="Třetí mobilní řádek", required=False
+                                    ),
+                                ),
+                                (
+                                    "button_url",
+                                    wagtail.blocks.URLBlock(
+                                        help_text="Bez odkazu tlačítko nebude viditelné.",
+                                        label="Odkaz tlačítka",
+                                        required=False,
+                                    ),
+                                ),
+                                (
+                                    "button_text",
+                                    wagtail.blocks.CharBlock(
+                                        label="Text tlačítka", required=False
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "news_block",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "title",
+                                    wagtail.blocks.CharBlock(
+                                        help_text="Nejnovější články se načtou automaticky",
+                                        label="Titulek",
+                                    ),
+                                ),
+                                (
+                                    "description",
+                                    wagtail.blocks.TextBlock(
+                                        label="Popis", required=False
+                                    ),
+                                ),
+                            ],
+                            template="styleguide2/includes/organisms/articles/district/articles_section.html",
+                        ),
+                    ),
+                    (
+                        "elections_block",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "title",
+                                    wagtail.blocks.CharBlock(
+                                        label="Titulek", required=True
+                                    ),
+                                ),
+                                (
+                                    "text_before_countdown",
+                                    wagtail.blocks.CharBlock(
+                                        default="Aktuálně zbývá",
+                                        label="Text před odpočtem",
+                                        required=True,
+                                    ),
+                                ),
+                                (
+                                    "countdown_timestamp",
+                                    wagtail.blocks.DateTimeBlock(
+                                        label="Datum & čas voleb", required=True
+                                    ),
+                                ),
+                                (
+                                    "buttons",
+                                    wagtail.blocks.ListBlock(
+                                        wagtail.blocks.StructBlock(
+                                            [
+                                                (
+                                                    "title",
+                                                    wagtail.blocks.CharBlock(
+                                                        label="Titulek",
+                                                        max_length=128,
+                                                        required=True,
+                                                    ),
+                                                ),
+                                                (
+                                                    "page",
+                                                    wagtail.blocks.PageChooserBlock(
+                                                        label="Stránka", required=False
+                                                    ),
+                                                ),
+                                                (
+                                                    "link",
+                                                    wagtail.blocks.URLBlock(
+                                                        label="Odkaz", required=False
+                                                    ),
+                                                ),
+                                            ]
+                                        ),
+                                        label="Tlačítka",
+                                        required=False,
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "people_block",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "title_line_1",
+                                    wagtail.blocks.CharBlock(
+                                        label="První řádek titulku"
+                                    ),
+                                ),
+                                (
+                                    "title_line_2",
+                                    wagtail.blocks.CharBlock(
+                                        label="Druhý řádek titulku"
+                                    ),
+                                ),
+                                (
+                                    "description",
+                                    wagtail.blocks.TextBlock(label="Popis"),
+                                ),
+                                (
+                                    "list",
+                                    wagtail.blocks.ListBlock(
+                                        shared.blocks.main.BoxBlock, label="Boxíky"
+                                    ),
+                                ),
+                            ],
+                            template="styleguide2/includes/organisms/main_section/district/representatives_section.html",
+                        ),
+                    ),
+                    (
+                        "calendar_block",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "title",
+                                    wagtail.blocks.CharBlock(
+                                        label="Titulek", required=False
+                                    ),
+                                )
+                            ]
+                        ),
+                    ),
+                    ("newsletter_block", wagtail.blocks.StructBlock([])),
+                ],
+                blank=True,
+                verbose_name="Obsah",
+            ),
         ),
     ]
diff --git a/district/migrations/0221_alter_districthomepage_content_and_more.py b/district/migrations/0221_alter_districthomepage_content_and_more.py
index c41dbae51b2b16b28c899004635b3307eb27ac03..238c365b3b90e1dbf53a0f3bbe39be742a2dd872 100644
--- a/district/migrations/0221_alter_districthomepage_content_and_more.py
+++ b/district/migrations/0221_alter_districthomepage_content_and_more.py
@@ -1,27 +1,963 @@
 # Generated by Django 5.0.6 on 2024-06-11 08:50
 
-import shared.blocks.main
 import wagtail.blocks
 import wagtail.fields
 import wagtail.images.blocks
 from django.db import migrations
 
+import shared.blocks.main
+
 
 class Migration(migrations.Migration):
-
     dependencies = [
-        ('district', '0220_alter_districthomepage_content'),
+        ("district", "0220_alter_districthomepage_content"),
     ]
 
     operations = [
         migrations.AlterField(
-            model_name='districthomepage',
-            name='content',
-            field=wagtail.fields.StreamField([('fullscreen_header_block', wagtail.blocks.StructBlock([('desktop_image', wagtail.images.blocks.ImageChooserBlock(help_text='Pokud není vybráno video, ukáže se na desktopu.', label='Obrázek na pozadí (desktop)', required=False)), ('mobile_image', wagtail.images.blocks.ImageChooserBlock(help_text='Pokud není vybráno video, ukáže se na mobilu.', label='Obrázek na pozadí (mobil)', required=False)), ('desktop_video_url', wagtail.blocks.URLBlock(help_text='Pokud je vybráno, ukáže se na desktopech s povoleným autoplayem místo obrázku.', label='Video (desktop)', required=False)), ('mobile_video_url', wagtail.blocks.URLBlock(help_text='Pokud je vybráno, ukáže se na mobilech s povoleným autoplayem místo obrázku.', label='Video (mobil)', required=False)), ('desktop_line_1', wagtail.blocks.TextBlock(label='Desktop první řádek')), ('desktop_line_2', wagtail.blocks.TextBlock(label='Desktop druhý řádek', required=False)), ('mobile_line_1', wagtail.blocks.TextBlock(label='První mobilní řádek')), ('mobile_line_2', wagtail.blocks.TextBlock(label='Druhý mobilní řádek', required=False)), ('mobile_line_3', wagtail.blocks.TextBlock(label='Třetí mobilní řádek', required=False)), ('button_url', wagtail.blocks.URLBlock(help_text='Bez odkazu tlačítko nebude viditelné.', label='Odkaz tlačítka', required=False)), ('button_text', wagtail.blocks.CharBlock(label='Text tlačítka', required=False))])), ('news_block', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text='Nejnovější články se načtou automaticky', label='Titulek')), ('description', wagtail.blocks.TextBlock(label='Popis', required=False))], template='styleguide2/includes/organisms/articles/district/articles_section.html')), ('elections_block', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek', required=True)), ('text_before_countdown', wagtail.blocks.CharBlock(default='Aktuálně zbývá', label='Text před odpočtem', required=True)), ('countdown_timestamp', wagtail.blocks.DateTimeBlock(label='Datum & čas voleb', required=True)), ('buttons', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek', max_length=128, required=True)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False))]), label='Tlačítka', required=False))])), ('people_block', wagtail.blocks.StructBlock([('title_line_1', wagtail.blocks.CharBlock(label='První řádek titulku')), ('title_line_2', wagtail.blocks.CharBlock(label='Druhý řádek titulku')), ('description', wagtail.blocks.TextBlock(label='Popis')), ('list', wagtail.blocks.ListBlock(shared.blocks.main.BoxBlock, label='Boxíky'))], template='styleguide2/includes/organisms/main_section/district/representatives_section.html')), ('calendar_block', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek', required=False))])), ('carousel_program', wagtail.blocks.StructBlock([('label', wagtail.blocks.CharBlock(default='Program', help_text="Např. 'Program'", label='Nadpis')), ('categories', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('number', wagtail.blocks.IntegerBlock(label='Číslo')), ('name', wagtail.blocks.CharBlock(label='Název')), ('points', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('content', wagtail.blocks.TextBlock(label='Obsah'))]), label='Body'))]), label='Kategorie')), ('long_version_url', wagtail.blocks.URLBlock(help_text='Pro zobrazení odkazu na celou verzi programu musí být obě následující pole vyplněná.', label='Odkaz na celou verzi programu', required=False)), ('long_version_text', wagtail.blocks.CharBlock(label='Nadpis odkazu na celou verzi programu', required=False))])), ('newsletter_block', wagtail.blocks.StructBlock([]))], blank=True, verbose_name='Obsah'),
+            model_name="districthomepage",
+            name="content",
+            field=wagtail.fields.StreamField(
+                [
+                    (
+                        "fullscreen_header_block",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "desktop_image",
+                                    wagtail.images.blocks.ImageChooserBlock(
+                                        help_text="Pokud není vybráno video, ukáže se na desktopu.",
+                                        label="Obrázek na pozadí (desktop)",
+                                        required=False,
+                                    ),
+                                ),
+                                (
+                                    "mobile_image",
+                                    wagtail.images.blocks.ImageChooserBlock(
+                                        help_text="Pokud není vybráno video, ukáže se na mobilu.",
+                                        label="Obrázek na pozadí (mobil)",
+                                        required=False,
+                                    ),
+                                ),
+                                (
+                                    "desktop_video_url",
+                                    wagtail.blocks.URLBlock(
+                                        help_text="Pokud je vybráno, ukáže se na desktopech s povoleným autoplayem místo obrázku.",
+                                        label="Video (desktop)",
+                                        required=False,
+                                    ),
+                                ),
+                                (
+                                    "mobile_video_url",
+                                    wagtail.blocks.URLBlock(
+                                        help_text="Pokud je vybráno, ukáže se na mobilech s povoleným autoplayem místo obrázku.",
+                                        label="Video (mobil)",
+                                        required=False,
+                                    ),
+                                ),
+                                (
+                                    "desktop_line_1",
+                                    wagtail.blocks.TextBlock(
+                                        label="Desktop první řádek"
+                                    ),
+                                ),
+                                (
+                                    "desktop_line_2",
+                                    wagtail.blocks.TextBlock(
+                                        label="Desktop druhý řádek", required=False
+                                    ),
+                                ),
+                                (
+                                    "mobile_line_1",
+                                    wagtail.blocks.TextBlock(
+                                        label="První mobilní řádek"
+                                    ),
+                                ),
+                                (
+                                    "mobile_line_2",
+                                    wagtail.blocks.TextBlock(
+                                        label="Druhý mobilní řádek", required=False
+                                    ),
+                                ),
+                                (
+                                    "mobile_line_3",
+                                    wagtail.blocks.TextBlock(
+                                        label="Třetí mobilní řádek", required=False
+                                    ),
+                                ),
+                                (
+                                    "button_url",
+                                    wagtail.blocks.URLBlock(
+                                        help_text="Bez odkazu tlačítko nebude viditelné.",
+                                        label="Odkaz tlačítka",
+                                        required=False,
+                                    ),
+                                ),
+                                (
+                                    "button_text",
+                                    wagtail.blocks.CharBlock(
+                                        label="Text tlačítka", required=False
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "news_block",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "title",
+                                    wagtail.blocks.CharBlock(
+                                        help_text="Nejnovější články se načtou automaticky",
+                                        label="Titulek",
+                                    ),
+                                ),
+                                (
+                                    "description",
+                                    wagtail.blocks.TextBlock(
+                                        label="Popis", required=False
+                                    ),
+                                ),
+                            ],
+                            template="styleguide2/includes/organisms/articles/district/articles_section.html",
+                        ),
+                    ),
+                    (
+                        "elections_block",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "title",
+                                    wagtail.blocks.CharBlock(
+                                        label="Titulek", required=True
+                                    ),
+                                ),
+                                (
+                                    "text_before_countdown",
+                                    wagtail.blocks.CharBlock(
+                                        default="Aktuálně zbývá",
+                                        label="Text před odpočtem",
+                                        required=True,
+                                    ),
+                                ),
+                                (
+                                    "countdown_timestamp",
+                                    wagtail.blocks.DateTimeBlock(
+                                        label="Datum & čas voleb", required=True
+                                    ),
+                                ),
+                                (
+                                    "buttons",
+                                    wagtail.blocks.ListBlock(
+                                        wagtail.blocks.StructBlock(
+                                            [
+                                                (
+                                                    "title",
+                                                    wagtail.blocks.CharBlock(
+                                                        label="Titulek",
+                                                        max_length=128,
+                                                        required=True,
+                                                    ),
+                                                ),
+                                                (
+                                                    "page",
+                                                    wagtail.blocks.PageChooserBlock(
+                                                        label="Stránka", required=False
+                                                    ),
+                                                ),
+                                                (
+                                                    "link",
+                                                    wagtail.blocks.URLBlock(
+                                                        label="Odkaz", required=False
+                                                    ),
+                                                ),
+                                            ]
+                                        ),
+                                        label="Tlačítka",
+                                        required=False,
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "people_block",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "title_line_1",
+                                    wagtail.blocks.CharBlock(
+                                        label="První řádek titulku"
+                                    ),
+                                ),
+                                (
+                                    "title_line_2",
+                                    wagtail.blocks.CharBlock(
+                                        label="Druhý řádek titulku"
+                                    ),
+                                ),
+                                (
+                                    "description",
+                                    wagtail.blocks.TextBlock(label="Popis"),
+                                ),
+                                (
+                                    "list",
+                                    wagtail.blocks.ListBlock(
+                                        shared.blocks.main.BoxBlock, label="Boxíky"
+                                    ),
+                                ),
+                            ],
+                            template="styleguide2/includes/organisms/main_section/district/representatives_section.html",
+                        ),
+                    ),
+                    (
+                        "calendar_block",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "title",
+                                    wagtail.blocks.CharBlock(
+                                        label="Titulek", required=False
+                                    ),
+                                )
+                            ]
+                        ),
+                    ),
+                    (
+                        "carousel_program",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "label",
+                                    wagtail.blocks.CharBlock(
+                                        default="Program",
+                                        help_text="Např. 'Program'",
+                                        label="Nadpis",
+                                    ),
+                                ),
+                                (
+                                    "categories",
+                                    wagtail.blocks.ListBlock(
+                                        wagtail.blocks.StructBlock(
+                                            [
+                                                (
+                                                    "number",
+                                                    wagtail.blocks.IntegerBlock(
+                                                        label="Číslo"
+                                                    ),
+                                                ),
+                                                (
+                                                    "name",
+                                                    wagtail.blocks.CharBlock(
+                                                        label="Název"
+                                                    ),
+                                                ),
+                                                (
+                                                    "points",
+                                                    wagtail.blocks.ListBlock(
+                                                        wagtail.blocks.StructBlock(
+                                                            [
+                                                                (
+                                                                    "content",
+                                                                    wagtail.blocks.TextBlock(
+                                                                        label="Obsah"
+                                                                    ),
+                                                                )
+                                                            ]
+                                                        ),
+                                                        label="Body",
+                                                    ),
+                                                ),
+                                            ]
+                                        ),
+                                        label="Kategorie",
+                                    ),
+                                ),
+                                (
+                                    "long_version_url",
+                                    wagtail.blocks.URLBlock(
+                                        help_text="Pro zobrazení odkazu na celou verzi programu musí být obě následující pole vyplněná.",
+                                        label="Odkaz na celou verzi programu",
+                                        required=False,
+                                    ),
+                                ),
+                                (
+                                    "long_version_text",
+                                    wagtail.blocks.CharBlock(
+                                        label="Nadpis odkazu na celou verzi programu",
+                                        required=False,
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    ("newsletter_block", wagtail.blocks.StructBlock([])),
+                ],
+                blank=True,
+                verbose_name="Obsah",
+            ),
         ),
         migrations.AlterField(
-            model_name='districtnewprogrampage',
-            name='program',
-            field=wagtail.fields.StreamField([('program_group', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...", label='Název programu')), ('point_list', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('url', wagtail.blocks.URLBlock(label='Odkaz pokrývající celou tuto část', required=False)), ('icon', wagtail.images.blocks.ImageChooserBlock(label='Ikona', required=False)), ('title', wagtail.blocks.CharBlock(label='Titulek článku programu')), ('text', wagtail.blocks.RichTextBlock(features=['h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='Obsah'))]), label='Jednotlivé články programu'))])), ('program_group_crossroad', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...", label='Název programu')), ('point_list', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek')), ('title', wagtail.blocks.CharBlock(label='Titulek', required=True)), ('text', wagtail.blocks.RichTextBlock(label='Krátký text pod nadpisem', required=False)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', page_type=['district.DistrictArticlePage', 'district.DistrictArticlesPage', 'district.DistrictCenterPage', 'district.DistrictContactPage', 'district.DistrictCrossroadPage', 'district.DistrictCustomPage', 'district.DistrictElectionCampaignPage', 'district.DistrictElectionProgramPage', 'district.DistrictPeoplePage', 'district.DistrictPersonPage', 'district.DistrictPostElectionStrategyPage', 'district.DistrictProgramPage'], required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False))]), label='Karty programu'))])), ('program_group_popout', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...", label='Název programu')), ('categories', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('name', wagtail.blocks.CharBlock(label='Název')), ('icon', wagtail.images.blocks.ImageChooserBlock(label='Ikona', required=False)), ('description', wagtail.blocks.RichTextBlock(label='Popis', required=False)), ('point_list', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek vyskakovacího bloku')), ('content', wagtail.blocks.RichTextBlock(features=['h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='Obsah')), ('guarantor', wagtail.blocks.PageChooserBlock(label='Garant', page_type=['district.DistrictPersonPage'], required=False))]), label='Jednotlivé bloky programu'))]), label='Kategorie programu'))])), ('program_group_with_candidates', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...", label='Název programu')), ('preamble_content', wagtail.blocks.RichTextBlock(help_text='Text, který se zobrazí před přepínačem mezi kandidáty a programem.', label='Preambule', required=False)), ('primary_candidates', wagtail.blocks.StructBlock([('candidates', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('page', wagtail.blocks.PageChooserBlock(label='Stránka', page_type=['district.DistrictPersonPage'])), ('image', wagtail.images.blocks.ImageChooserBlock(help_text='Pokud není vybrán, použije se obrázek ze stránky kandidáta', label='Obrázek', required=False)), ('description', wagtail.blocks.TextBlock(label='Popis'))]), label=' '))], help_text='Zobrazí se ve velkých blocích na začátku stránky.', label='Osoby na čele kandidátky')), ('secondary_candidates', wagtail.blocks.StructBlock([('heading', wagtail.blocks.CharBlock(default='Ostatní kandidátky', label='Nadpis zbytku kandidátky')), ('candidates', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('number', wagtail.blocks.CharBlock(label='Číslo')), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', page_type=['district.DistrictPersonPage'])), ('image', wagtail.images.blocks.ImageChooserBlock(help_text='Pokud není vybrán, použije se obrázek ze stránky kandidáta', label='Obrázek', required=False))]), label='Zbylí kandidáti na listině'))], help_text='Zobrazí se v kompaktním seznamu pod čelem kandidátky.', label='Ostatní osoby na kandidátce')), ('program', wagtail.blocks.StreamBlock([('program_group', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...", label='Název programu')), ('point_list', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('url', wagtail.blocks.URLBlock(label='Odkaz pokrývající celou tuto část', required=False)), ('icon', wagtail.images.blocks.ImageChooserBlock(label='Ikona', required=False)), ('title', wagtail.blocks.CharBlock(label='Titulek článku programu')), ('text', wagtail.blocks.RichTextBlock(features=['h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='Obsah'))]), label='Jednotlivé články programu'))])), ('program_group_crossroad', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...", label='Název programu')), ('point_list', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek')), ('title', wagtail.blocks.CharBlock(label='Titulek', required=True)), ('text', wagtail.blocks.RichTextBlock(label='Krátký text pod nadpisem', required=False)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', page_type=['district.DistrictArticlePage', 'district.DistrictArticlesPage', 'district.DistrictCenterPage', 'district.DistrictContactPage', 'district.DistrictCrossroadPage', 'district.DistrictCustomPage', 'district.DistrictElectionCampaignPage', 'district.DistrictElectionProgramPage', 'district.DistrictPeoplePage', 'district.DistrictPersonPage', 'district.DistrictPostElectionStrategyPage', 'district.DistrictProgramPage'], required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False))]), label='Karty programu'))])), ('program_group_popout', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...", label='Název programu')), ('categories', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('name', wagtail.blocks.CharBlock(label='Název')), ('icon', wagtail.images.blocks.ImageChooserBlock(label='Ikona', required=False)), ('description', wagtail.blocks.RichTextBlock(label='Popis', required=False)), ('point_list', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek vyskakovacího bloku')), ('content', wagtail.blocks.RichTextBlock(features=['h3', 'h4', 'h5', 'bold', 'italic', 'ol', 'ul', 'hr', 'link', 'document-link', 'image', 'superscript', 'subscript', 'strikethrough', 'blockquote', 'embed'], label='Obsah')), ('guarantor', wagtail.blocks.PageChooserBlock(label='Garant', page_type=['district.DistrictPersonPage'], required=False))]), label='Jednotlivé bloky programu'))]), label='Kategorie programu'))])), ('carousel_program', wagtail.blocks.StructBlock([('label', wagtail.blocks.CharBlock(default='Program', help_text="Např. 'Program'", label='Nadpis')), ('categories', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('number', wagtail.blocks.IntegerBlock(label='Číslo')), ('name', wagtail.blocks.CharBlock(label='Název')), ('points', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('content', wagtail.blocks.TextBlock(label='Obsah'))]), label='Body'))]), label='Kategorie')), ('long_version_url', wagtail.blocks.URLBlock(help_text='Pro zobrazení odkazu na celou verzi programu musí být obě následující pole vyplněná.', label='Odkaz na celou verzi programu', required=False)), ('long_version_text', wagtail.blocks.CharBlock(label='Nadpis odkazu na celou verzi programu', required=False))], template='styleguide2/includes/molecules/program/program_block.html'))]))]))], blank=True, verbose_name='Programy'),
+            model_name="districtnewprogrampage",
+            name="program",
+            field=wagtail.fields.StreamField(
+                [
+                    (
+                        "program_group",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "title",
+                                    wagtail.blocks.CharBlock(
+                                        help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...",
+                                        label="Název programu",
+                                    ),
+                                ),
+                                (
+                                    "point_list",
+                                    wagtail.blocks.ListBlock(
+                                        wagtail.blocks.StructBlock(
+                                            [
+                                                (
+                                                    "url",
+                                                    wagtail.blocks.URLBlock(
+                                                        label="Odkaz pokrývající celou tuto část",
+                                                        required=False,
+                                                    ),
+                                                ),
+                                                (
+                                                    "icon",
+                                                    wagtail.images.blocks.ImageChooserBlock(
+                                                        label="Ikona", required=False
+                                                    ),
+                                                ),
+                                                (
+                                                    "title",
+                                                    wagtail.blocks.CharBlock(
+                                                        label="Titulek článku programu"
+                                                    ),
+                                                ),
+                                                (
+                                                    "text",
+                                                    wagtail.blocks.RichTextBlock(
+                                                        features=[
+                                                            "h3",
+                                                            "h4",
+                                                            "h5",
+                                                            "bold",
+                                                            "italic",
+                                                            "ol",
+                                                            "ul",
+                                                            "hr",
+                                                            "link",
+                                                            "document-link",
+                                                            "image",
+                                                            "superscript",
+                                                            "subscript",
+                                                            "strikethrough",
+                                                            "blockquote",
+                                                            "embed",
+                                                        ],
+                                                        label="Obsah",
+                                                    ),
+                                                ),
+                                            ]
+                                        ),
+                                        label="Jednotlivé články programu",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "program_group_crossroad",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "title",
+                                    wagtail.blocks.CharBlock(
+                                        help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...",
+                                        label="Název programu",
+                                    ),
+                                ),
+                                (
+                                    "point_list",
+                                    wagtail.blocks.ListBlock(
+                                        wagtail.blocks.StructBlock(
+                                            [
+                                                (
+                                                    "image",
+                                                    wagtail.images.blocks.ImageChooserBlock(
+                                                        label="Obrázek"
+                                                    ),
+                                                ),
+                                                (
+                                                    "title",
+                                                    wagtail.blocks.CharBlock(
+                                                        label="Titulek", required=True
+                                                    ),
+                                                ),
+                                                (
+                                                    "text",
+                                                    wagtail.blocks.RichTextBlock(
+                                                        label="Krátký text pod nadpisem",
+                                                        required=False,
+                                                    ),
+                                                ),
+                                                (
+                                                    "page",
+                                                    wagtail.blocks.PageChooserBlock(
+                                                        label="Stránka",
+                                                        page_type=[
+                                                            "district.DistrictArticlePage",
+                                                            "district.DistrictArticlesPage",
+                                                            "district.DistrictCenterPage",
+                                                            "district.DistrictContactPage",
+                                                            "district.DistrictCrossroadPage",
+                                                            "district.DistrictCustomPage",
+                                                            "district.DistrictElectionCampaignPage",
+                                                            "district.DistrictElectionProgramPage",
+                                                            "district.DistrictPeoplePage",
+                                                            "district.DistrictPersonPage",
+                                                            "district.DistrictPostElectionStrategyPage",
+                                                            "district.DistrictProgramPage",
+                                                        ],
+                                                        required=False,
+                                                    ),
+                                                ),
+                                                (
+                                                    "link",
+                                                    wagtail.blocks.URLBlock(
+                                                        label="Odkaz", required=False
+                                                    ),
+                                                ),
+                                            ]
+                                        ),
+                                        label="Karty programu",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "program_group_popout",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "title",
+                                    wagtail.blocks.CharBlock(
+                                        help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...",
+                                        label="Název programu",
+                                    ),
+                                ),
+                                (
+                                    "categories",
+                                    wagtail.blocks.ListBlock(
+                                        wagtail.blocks.StructBlock(
+                                            [
+                                                (
+                                                    "name",
+                                                    wagtail.blocks.CharBlock(
+                                                        label="Název"
+                                                    ),
+                                                ),
+                                                (
+                                                    "icon",
+                                                    wagtail.images.blocks.ImageChooserBlock(
+                                                        label="Ikona", required=False
+                                                    ),
+                                                ),
+                                                (
+                                                    "description",
+                                                    wagtail.blocks.RichTextBlock(
+                                                        label="Popis", required=False
+                                                    ),
+                                                ),
+                                                (
+                                                    "point_list",
+                                                    wagtail.blocks.ListBlock(
+                                                        wagtail.blocks.StructBlock(
+                                                            [
+                                                                (
+                                                                    "title",
+                                                                    wagtail.blocks.CharBlock(
+                                                                        label="Titulek vyskakovacího bloku"
+                                                                    ),
+                                                                ),
+                                                                (
+                                                                    "content",
+                                                                    wagtail.blocks.RichTextBlock(
+                                                                        features=[
+                                                                            "h3",
+                                                                            "h4",
+                                                                            "h5",
+                                                                            "bold",
+                                                                            "italic",
+                                                                            "ol",
+                                                                            "ul",
+                                                                            "hr",
+                                                                            "link",
+                                                                            "document-link",
+                                                                            "image",
+                                                                            "superscript",
+                                                                            "subscript",
+                                                                            "strikethrough",
+                                                                            "blockquote",
+                                                                            "embed",
+                                                                        ],
+                                                                        label="Obsah",
+                                                                    ),
+                                                                ),
+                                                                (
+                                                                    "guarantor",
+                                                                    wagtail.blocks.PageChooserBlock(
+                                                                        label="Garant",
+                                                                        page_type=[
+                                                                            "district.DistrictPersonPage"
+                                                                        ],
+                                                                        required=False,
+                                                                    ),
+                                                                ),
+                                                            ]
+                                                        ),
+                                                        label="Jednotlivé bloky programu",
+                                                    ),
+                                                ),
+                                            ]
+                                        ),
+                                        label="Kategorie programu",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "program_group_with_candidates",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "title",
+                                    wagtail.blocks.CharBlock(
+                                        help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...",
+                                        label="Název programu",
+                                    ),
+                                ),
+                                (
+                                    "preamble_content",
+                                    wagtail.blocks.RichTextBlock(
+                                        help_text="Text, který se zobrazí před přepínačem mezi kandidáty a programem.",
+                                        label="Preambule",
+                                        required=False,
+                                    ),
+                                ),
+                                (
+                                    "primary_candidates",
+                                    wagtail.blocks.StructBlock(
+                                        [
+                                            (
+                                                "candidates",
+                                                wagtail.blocks.ListBlock(
+                                                    wagtail.blocks.StructBlock(
+                                                        [
+                                                            (
+                                                                "page",
+                                                                wagtail.blocks.PageChooserBlock(
+                                                                    label="Stránka",
+                                                                    page_type=[
+                                                                        "district.DistrictPersonPage"
+                                                                    ],
+                                                                ),
+                                                            ),
+                                                            (
+                                                                "image",
+                                                                wagtail.images.blocks.ImageChooserBlock(
+                                                                    help_text="Pokud není vybrán, použije se obrázek ze stránky kandidáta",
+                                                                    label="Obrázek",
+                                                                    required=False,
+                                                                ),
+                                                            ),
+                                                            (
+                                                                "description",
+                                                                wagtail.blocks.TextBlock(
+                                                                    label="Popis"
+                                                                ),
+                                                            ),
+                                                        ]
+                                                    ),
+                                                    label=" ",
+                                                ),
+                                            )
+                                        ],
+                                        help_text="Zobrazí se ve velkých blocích na začátku stránky.",
+                                        label="Osoby na čele kandidátky",
+                                    ),
+                                ),
+                                (
+                                    "secondary_candidates",
+                                    wagtail.blocks.StructBlock(
+                                        [
+                                            (
+                                                "heading",
+                                                wagtail.blocks.CharBlock(
+                                                    default="Ostatní kandidátky",
+                                                    label="Nadpis zbytku kandidátky",
+                                                ),
+                                            ),
+                                            (
+                                                "candidates",
+                                                wagtail.blocks.ListBlock(
+                                                    wagtail.blocks.StructBlock(
+                                                        [
+                                                            (
+                                                                "number",
+                                                                wagtail.blocks.CharBlock(
+                                                                    label="Číslo"
+                                                                ),
+                                                            ),
+                                                            (
+                                                                "page",
+                                                                wagtail.blocks.PageChooserBlock(
+                                                                    label="Stránka",
+                                                                    page_type=[
+                                                                        "district.DistrictPersonPage"
+                                                                    ],
+                                                                ),
+                                                            ),
+                                                            (
+                                                                "image",
+                                                                wagtail.images.blocks.ImageChooserBlock(
+                                                                    help_text="Pokud není vybrán, použije se obrázek ze stránky kandidáta",
+                                                                    label="Obrázek",
+                                                                    required=False,
+                                                                ),
+                                                            ),
+                                                        ]
+                                                    ),
+                                                    label="Zbylí kandidáti na listině",
+                                                ),
+                                            ),
+                                        ],
+                                        help_text="Zobrazí se v kompaktním seznamu pod čelem kandidátky.",
+                                        label="Ostatní osoby na kandidátce",
+                                    ),
+                                ),
+                                (
+                                    "program",
+                                    wagtail.blocks.StreamBlock(
+                                        [
+                                            (
+                                                "program_group",
+                                                wagtail.blocks.StructBlock(
+                                                    [
+                                                        (
+                                                            "title",
+                                                            wagtail.blocks.CharBlock(
+                                                                help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...",
+                                                                label="Název programu",
+                                                            ),
+                                                        ),
+                                                        (
+                                                            "point_list",
+                                                            wagtail.blocks.ListBlock(
+                                                                wagtail.blocks.StructBlock(
+                                                                    [
+                                                                        (
+                                                                            "url",
+                                                                            wagtail.blocks.URLBlock(
+                                                                                label="Odkaz pokrývající celou tuto část",
+                                                                                required=False,
+                                                                            ),
+                                                                        ),
+                                                                        (
+                                                                            "icon",
+                                                                            wagtail.images.blocks.ImageChooserBlock(
+                                                                                label="Ikona",
+                                                                                required=False,
+                                                                            ),
+                                                                        ),
+                                                                        (
+                                                                            "title",
+                                                                            wagtail.blocks.CharBlock(
+                                                                                label="Titulek článku programu"
+                                                                            ),
+                                                                        ),
+                                                                        (
+                                                                            "text",
+                                                                            wagtail.blocks.RichTextBlock(
+                                                                                features=[
+                                                                                    "h3",
+                                                                                    "h4",
+                                                                                    "h5",
+                                                                                    "bold",
+                                                                                    "italic",
+                                                                                    "ol",
+                                                                                    "ul",
+                                                                                    "hr",
+                                                                                    "link",
+                                                                                    "document-link",
+                                                                                    "image",
+                                                                                    "superscript",
+                                                                                    "subscript",
+                                                                                    "strikethrough",
+                                                                                    "blockquote",
+                                                                                    "embed",
+                                                                                ],
+                                                                                label="Obsah",
+                                                                            ),
+                                                                        ),
+                                                                    ]
+                                                                ),
+                                                                label="Jednotlivé články programu",
+                                                            ),
+                                                        ),
+                                                    ]
+                                                ),
+                                            ),
+                                            (
+                                                "program_group_crossroad",
+                                                wagtail.blocks.StructBlock(
+                                                    [
+                                                        (
+                                                            "title",
+                                                            wagtail.blocks.CharBlock(
+                                                                help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...",
+                                                                label="Název programu",
+                                                            ),
+                                                        ),
+                                                        (
+                                                            "point_list",
+                                                            wagtail.blocks.ListBlock(
+                                                                wagtail.blocks.StructBlock(
+                                                                    [
+                                                                        (
+                                                                            "image",
+                                                                            wagtail.images.blocks.ImageChooserBlock(
+                                                                                label="Obrázek"
+                                                                            ),
+                                                                        ),
+                                                                        (
+                                                                            "title",
+                                                                            wagtail.blocks.CharBlock(
+                                                                                label="Titulek",
+                                                                                required=True,
+                                                                            ),
+                                                                        ),
+                                                                        (
+                                                                            "text",
+                                                                            wagtail.blocks.RichTextBlock(
+                                                                                label="Krátký text pod nadpisem",
+                                                                                required=False,
+                                                                            ),
+                                                                        ),
+                                                                        (
+                                                                            "page",
+                                                                            wagtail.blocks.PageChooserBlock(
+                                                                                label="Stránka",
+                                                                                page_type=[
+                                                                                    "district.DistrictArticlePage",
+                                                                                    "district.DistrictArticlesPage",
+                                                                                    "district.DistrictCenterPage",
+                                                                                    "district.DistrictContactPage",
+                                                                                    "district.DistrictCrossroadPage",
+                                                                                    "district.DistrictCustomPage",
+                                                                                    "district.DistrictElectionCampaignPage",
+                                                                                    "district.DistrictElectionProgramPage",
+                                                                                    "district.DistrictPeoplePage",
+                                                                                    "district.DistrictPersonPage",
+                                                                                    "district.DistrictPostElectionStrategyPage",
+                                                                                    "district.DistrictProgramPage",
+                                                                                ],
+                                                                                required=False,
+                                                                            ),
+                                                                        ),
+                                                                        (
+                                                                            "link",
+                                                                            wagtail.blocks.URLBlock(
+                                                                                label="Odkaz",
+                                                                                required=False,
+                                                                            ),
+                                                                        ),
+                                                                    ]
+                                                                ),
+                                                                label="Karty programu",
+                                                            ),
+                                                        ),
+                                                    ]
+                                                ),
+                                            ),
+                                            (
+                                                "program_group_popout",
+                                                wagtail.blocks.StructBlock(
+                                                    [
+                                                        (
+                                                            "title",
+                                                            wagtail.blocks.CharBlock(
+                                                                help_text="Např. 'Krajské volby 2024', 'Evropské volby 2024', ...",
+                                                                label="Název programu",
+                                                            ),
+                                                        ),
+                                                        (
+                                                            "categories",
+                                                            wagtail.blocks.ListBlock(
+                                                                wagtail.blocks.StructBlock(
+                                                                    [
+                                                                        (
+                                                                            "name",
+                                                                            wagtail.blocks.CharBlock(
+                                                                                label="Název"
+                                                                            ),
+                                                                        ),
+                                                                        (
+                                                                            "icon",
+                                                                            wagtail.images.blocks.ImageChooserBlock(
+                                                                                label="Ikona",
+                                                                                required=False,
+                                                                            ),
+                                                                        ),
+                                                                        (
+                                                                            "description",
+                                                                            wagtail.blocks.RichTextBlock(
+                                                                                label="Popis",
+                                                                                required=False,
+                                                                            ),
+                                                                        ),
+                                                                        (
+                                                                            "point_list",
+                                                                            wagtail.blocks.ListBlock(
+                                                                                wagtail.blocks.StructBlock(
+                                                                                    [
+                                                                                        (
+                                                                                            "title",
+                                                                                            wagtail.blocks.CharBlock(
+                                                                                                label="Titulek vyskakovacího bloku"
+                                                                                            ),
+                                                                                        ),
+                                                                                        (
+                                                                                            "content",
+                                                                                            wagtail.blocks.RichTextBlock(
+                                                                                                features=[
+                                                                                                    "h3",
+                                                                                                    "h4",
+                                                                                                    "h5",
+                                                                                                    "bold",
+                                                                                                    "italic",
+                                                                                                    "ol",
+                                                                                                    "ul",
+                                                                                                    "hr",
+                                                                                                    "link",
+                                                                                                    "document-link",
+                                                                                                    "image",
+                                                                                                    "superscript",
+                                                                                                    "subscript",
+                                                                                                    "strikethrough",
+                                                                                                    "blockquote",
+                                                                                                    "embed",
+                                                                                                ],
+                                                                                                label="Obsah",
+                                                                                            ),
+                                                                                        ),
+                                                                                        (
+                                                                                            "guarantor",
+                                                                                            wagtail.blocks.PageChooserBlock(
+                                                                                                label="Garant",
+                                                                                                page_type=[
+                                                                                                    "district.DistrictPersonPage"
+                                                                                                ],
+                                                                                                required=False,
+                                                                                            ),
+                                                                                        ),
+                                                                                    ]
+                                                                                ),
+                                                                                label="Jednotlivé bloky programu",
+                                                                            ),
+                                                                        ),
+                                                                    ]
+                                                                ),
+                                                                label="Kategorie programu",
+                                                            ),
+                                                        ),
+                                                    ]
+                                                ),
+                                            ),
+                                            (
+                                                "carousel_program",
+                                                wagtail.blocks.StructBlock(
+                                                    [
+                                                        (
+                                                            "label",
+                                                            wagtail.blocks.CharBlock(
+                                                                default="Program",
+                                                                help_text="Např. 'Program'",
+                                                                label="Nadpis",
+                                                            ),
+                                                        ),
+                                                        (
+                                                            "categories",
+                                                            wagtail.blocks.ListBlock(
+                                                                wagtail.blocks.StructBlock(
+                                                                    [
+                                                                        (
+                                                                            "number",
+                                                                            wagtail.blocks.IntegerBlock(
+                                                                                label="Číslo"
+                                                                            ),
+                                                                        ),
+                                                                        (
+                                                                            "name",
+                                                                            wagtail.blocks.CharBlock(
+                                                                                label="Název"
+                                                                            ),
+                                                                        ),
+                                                                        (
+                                                                            "points",
+                                                                            wagtail.blocks.ListBlock(
+                                                                                wagtail.blocks.StructBlock(
+                                                                                    [
+                                                                                        (
+                                                                                            "content",
+                                                                                            wagtail.blocks.TextBlock(
+                                                                                                label="Obsah"
+                                                                                            ),
+                                                                                        )
+                                                                                    ]
+                                                                                ),
+                                                                                label="Body",
+                                                                            ),
+                                                                        ),
+                                                                    ]
+                                                                ),
+                                                                label="Kategorie",
+                                                            ),
+                                                        ),
+                                                        (
+                                                            "long_version_url",
+                                                            wagtail.blocks.URLBlock(
+                                                                help_text="Pro zobrazení odkazu na celou verzi programu musí být obě následující pole vyplněná.",
+                                                                label="Odkaz na celou verzi programu",
+                                                                required=False,
+                                                            ),
+                                                        ),
+                                                        (
+                                                            "long_version_text",
+                                                            wagtail.blocks.CharBlock(
+                                                                label="Nadpis odkazu na celou verzi programu",
+                                                                required=False,
+                                                            ),
+                                                        ),
+                                                    ],
+                                                    template="styleguide2/includes/molecules/program/program_block.html",
+                                                ),
+                                            ),
+                                        ]
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                ],
+                blank=True,
+                verbose_name="Programy",
+            ),
         ),
     ]
diff --git a/district/migrations/0222_districtsearchpage.py b/district/migrations/0222_districtsearchpage.py
index c84eca78b3d7c64beaa8ca7e667300e04c600675..d4b0c08c4dd9735dddb103d3de2d5329271270c8 100644
--- a/district/migrations/0222_districtsearchpage.py
+++ b/district/migrations/0222_districtsearchpage.py
@@ -1,30 +1,55 @@
 # Generated by Django 5.0.6 on 2024-06-11 09:23
 
 import django.db.models.deletion
-import shared.models.main
 import wagtailmetadata.models
 from django.db import migrations, models
 
+import shared.models.main
+
 
 class Migration(migrations.Migration):
-
     dependencies = [
-        ('district', '0221_alter_districthomepage_content_and_more'),
-        ('wagtailcore', '0093_uploadedfile'),
-        ('wagtailimages', '0026_delete_uploadedimage'),
+        ("district", "0221_alter_districthomepage_content_and_more"),
+        ("wagtailcore", "0093_uploadedfile"),
+        ("wagtailimages", "0026_delete_uploadedimage"),
     ]
 
     operations = [
         migrations.CreateModel(
-            name='DistrictSearchPage',
+            name="DistrictSearchPage",
             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')),
-                ('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')),
+                (
+                    "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",
+                    ),
+                ),
+                (
+                    "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': 'Vyhledávací stránka',
-                'abstract': False,
+                "verbose_name": "Vyhledávací stránka",
+                "abstract": False,
             },
-            bases=(shared.models.main.SubpageMixin, wagtailmetadata.models.WagtailImageMetadataMixin, 'wagtailcore.page', models.Model),
+            bases=(
+                shared.models.main.SubpageMixin,
+                wagtailmetadata.models.WagtailImageMetadataMixin,
+                "wagtailcore.page",
+                models.Model,
+            ),
         ),
     ]
diff --git a/district/models.py b/district/models.py
index ef3a38e409bcde5058a9b460cc5bbdc8e5198c9c..68ffebb2deb57847507fb32294c08d53dc6ff194 100644
--- a/district/models.py
+++ b/district/models.py
@@ -1,9 +1,9 @@
 import json
 
-from django.http import HttpResponseRedirect
 from django.core.cache import cache
 from django.core.exceptions import ValidationError
 from django.db import models
+from django.http import HttpResponseRedirect
 from modelcluster.contrib.taggit import ClusterTaggableManager
 from modelcluster.fields import ParentalKey
 from taggit.models import TaggedItemBase
@@ -48,8 +48,8 @@ from shared.models import (
     MainPeoplePageMixin,
     MainPersonPageMixin,
     MainProgramPageMixin,
-    MainSimplePageMixin,
     MainSearchPageMixin,
+    MainSimplePageMixin,
     PageInMenuMixin,
     PdfPageMixin,
     SharedTaggedDistrictArticle,
diff --git a/district/templates/district/district_new_program_page.html b/district/templates/district/district_new_program_page.html
index a015fc17a055fc65663a4a61b39849b02a4ff03f..791a32b3f73be5f5c4e6809e8fcacbb9effbfb7b 100644
--- a/district/templates/district/district_new_program_page.html
+++ b/district/templates/district/district_new_program_page.html
@@ -2,4 +2,4 @@
 
 {% block navbar %}
   {% include 'styleguide2/includes/organisms/layout/district/navbar.html' with selected_item=page.get_menu_title %}
-{% endblock %}
\ No newline at end of file
+{% endblock %}
diff --git a/district/templates/district/district_search_page.html b/district/templates/district/district_search_page.html
index e8e73f244e6f0c31c2e9f13dee96064333950beb..5e36913121273b3c9871c96992d84ff232d212ed 100644
--- a/district/templates/district/district_search_page.html
+++ b/district/templates/district/district_search_page.html
@@ -2,4 +2,4 @@
 
 {% block navbar %}
   {% include 'styleguide2/includes/organisms/layout/district/navbar.html' with selected_item=page.get_menu_title %}
-{% endblock %}
\ No newline at end of file
+{% endblock %}
diff --git a/shared/migrations/0005_auto_20240513_0955.py b/shared/migrations/0005_auto_20240513_0955.py
index dde10a6c981a109f341293d76ff54eefac32ea91..d923266a1480455aeefff225989b194ddd617a4e 100644
--- a/shared/migrations/0005_auto_20240513_0955.py
+++ b/shared/migrations/0005_auto_20240513_0955.py
@@ -26,7 +26,7 @@ def fix_tags_names(apps, schema_editor):
 
         try:
             tag.save()
-        except Exception as e:
+        except Exception:
             # The tag already exists, despite numerous checks
             pass
 
diff --git a/shared/models/main.py b/shared/models/main.py
index 8e78600b121f849fc24e8ddd6931c6245fc07286..472c87515c1168b9a6e9c8fb0f727438c163a829 100644
--- a/shared/models/main.py
+++ b/shared/models/main.py
@@ -241,20 +241,12 @@ class SocialMixin(Page):
 
 class PageInMenuMixin(Page):
     def get_menu_title(self, parent_instance=None) -> str:
-        instance = (
-            self
-            if parent_instance is None
-            else parent_instance
-        )
+        instance = self if parent_instance is None else parent_instance
 
         menu_iterator = (
             instance.root_page.menu
             if hasattr(instance, "root_page")
-            else (
-                instance.menu
-                if hasattr(instance, "menu")
-                else []
-            )
+            else (instance.menu if hasattr(instance, "menu") else [])
         )
 
         for menu in menu_iterator:
@@ -1107,7 +1099,9 @@ class MainHomePageMixin(
 
         context["article_data_list"] = self.materialize_shared_articles_query(
             self.append_all_shared_articles_query(
-                self.article_page_model.objects.live().child_of(self.articles_page).all()
+                self.article_page_model.objects.live()
+                .child_of(self.articles_page)
+                .all()
             ).order_by("-union_timestamp")[:3]
         )
 
@@ -1274,7 +1268,10 @@ class MainArticlesPageMixin(
     def get_base_shared_articles_query(self, filter: models.Q):
         return self.materialize_shared_articles_query(
             self.append_all_shared_articles_query(
-                self.root_page.article_page_model.objects.filter(filter).live().child_of(self).all()
+                self.root_page.article_page_model.objects.filter(filter)
+                .live()
+                .child_of(self)
+                .all()
             ).order_by("-union_timestamp")
         )
 
diff --git a/shared/static/styleguide2/pirati-ui.svg b/shared/static/styleguide2/pirati-ui.svg
index ffc20eccf43c3d89476c0124b2475cd314fe2ecd..c6e3a71ad07f5229dda5d69c9289dc5ce339be12 100644
--- a/shared/static/styleguide2/pirati-ui.svg
+++ b/shared/static/styleguide2/pirati-ui.svg
@@ -127,4 +127,4 @@
 <glyph unicode="&#xe976;" glyph-name="price-tags" horiz-adv-x="1280" d="M1232 960h-384c-26.4 0-63.274-15.274-81.942-33.942l-476.116-476.116c-18.668-18.668-18.668-49.214 0-67.882l412.118-412.118c18.668-18.668 49.214-18.668 67.882 0l476.118 476.118c18.666 18.666 33.94 55.54 33.94 81.94v384c0 26.4-21.6 48-48 48zM992 576c-53.020 0-96 42.98-96 96s42.98 96 96 96 96-42.98 96-96-42.98-96-96-96zM128 416l544 544h-80c-26.4 0-63.274-15.274-81.942-33.942l-476.116-476.116c-18.668-18.668-18.668-49.214 0-67.882l412.118-412.118c18.668-18.668 49.214-18.668 67.882 0l30.058 30.058-416 416z" />
 <glyph unicode="&#xe977;" glyph-name="twitter" horiz-adv-x="1001" d="M596.009 526.629l372.819 433.371h-88.346l-323.718-376.29-258.553 376.29h-298.21l390.983-569.018-390.983-454.457h88.351l341.855 397.375 273.051-397.375h298.21l-405.458 590.103zM475 385.969l-354.815 507.521h135.702l624.636-893.48h-135.702l-269.821 385.959z" />
 <glyph unicode="&#xe99b;" glyph-name="stats-dots" d="M128 64h896v-128h-1024v1024h128zM288 128c-53.020 0-96 42.98-96 96s42.98 96 96 96c2.828 0 5.622-0.148 8.388-0.386l103.192 171.986c-9.84 15.070-15.58 33.062-15.58 52.402 0 53.020 42.98 96 96 96s96-42.98 96-96c0-19.342-5.74-37.332-15.58-52.402l103.192-171.986c2.766 0.238 5.56 0.386 8.388 0.386 2.136 0 4.248-0.094 6.35-0.23l170.356 298.122c-10.536 15.408-16.706 34.036-16.706 54.11 0 53.020 42.98 96 96 96s96-42.98 96-96c0-53.020-42.98-96-96-96-2.14 0-4.248 0.094-6.35 0.232l-170.356-298.124c10.536-15.406 16.706-34.036 16.706-54.11 0-53.020-42.98-96-96-96s-96 42.98-96 96c0 19.34 5.74 37.332 15.578 52.402l-103.19 171.984c-2.766-0.238-5.56-0.386-8.388-0.386s-5.622 0.146-8.388 0.386l-103.192-171.986c9.84-15.068 15.58-33.060 15.58-52.4 0-53.020-42.98-96-96-96z" />
-</font></defs></svg>
\ No newline at end of file
+</font></defs></svg>