diff --git a/main/blocks.py b/main/blocks.py
index 10d1ef81ae6a3e4b5d274bb60136e974e96fb538..9d81fb706d25e3c57bea848a181048357c195c0e 100644
--- a/main/blocks.py
+++ b/main/blocks.py
@@ -315,7 +315,7 @@ class ArticleImageMixin(StructBlock):
     image_source = CharBlock(
         label="Zdroj obrázku",
         help_text="Např. 'europoslankyně Markéta Gregorová'",
-        required=False
+        required=False,
     )
 
     text = RichTextBlock(label="Text")
diff --git a/main/menu.py b/main/menu.py
index 2bc18a55f1c5169524b195a5c81d94bbd2cd3018..ab74d03ffc03c52f030c220fe671ca1ece6cc1b1 100644
--- a/main/menu.py
+++ b/main/menu.py
@@ -1,18 +1,18 @@
 from django.db import models
+from wagtail import blocks
+from wagtail.admin.panels import FieldPanel, MultiFieldPanel
 from wagtail.fields import StreamField
+from wagtail.models import Page
 
 from shared.blocks import MenuItemBlock as MenuItemBlockBase
 from shared.models import MenuMixin as MenuMixinBase
-from wagtail.admin.panels import FieldPanel, MultiFieldPanel
-from wagtail import blocks
-from wagtail.models import Page
 
 
 class MenuItemBlock(MenuItemBlockBase):
     title = blocks.CharBlock(
         label="Titulek",
         help_text="Pokud není odkazovaná stránka na Majáku, použij možnost zadání samotné adresy níže.",
-        required=True
+        required=True,
     )
 
     class Meta:
@@ -33,7 +33,7 @@ class MenuMixin(MenuMixinBase):
         help_text="Pokud není odkazovaná stránka na Majáku, použij možnost zadání samotné adresy níže.",
         max_length=16,
         blank=True,
-        null=True
+        null=True,
     )
 
     important_item_page = models.ForeignKey(
diff --git a/main/migrations/0063_alter_mainhomepage_content.py b/main/migrations/0063_alter_mainhomepage_content.py
index 98f5a0d4df5f205b42b7ce7423d91b6949fd668e..1ac616dec5e94b05177e639ddb0375e70038ca64 100644
--- a/main/migrations/0063_alter_mainhomepage_content.py
+++ b/main/migrations/0063_alter_mainhomepage_content.py
@@ -1,22 +1,138 @@
 # Generated by Django 4.1.10 on 2023-12-12 09:31
 
-from django.db import migrations
-import main.blocks
 import wagtail.blocks
 import wagtail.fields
 import wagtail.images.blocks
+from django.db import migrations
 
+import main.blocks
 
-class Migration(migrations.Migration):
 
+class Migration(migrations.Migration):
     dependencies = [
-        ('main', '0062_alter_mainpersonpage_calendar_url'),
+        ("main", "0062_alter_mainpersonpage_calendar_url"),
     ]
 
     operations = [
         migrations.AlterField(
-            model_name='mainhomepage',
-            name='content',
-            field=wagtail.fields.StreamField([('carousel', wagtail.blocks.StructBlock([('button_link', wagtail.blocks.URLBlock(label='Odkaz tlačítka')), ('button_text', wagtail.blocks.CharBlock(label='Text tlačítka')), ('image', wagtail.images.blocks.ImageChooserBlock(label='Hlavní obrázek')), ('line_1', wagtail.blocks.TextBlock(label='První řádek')), ('line_2', wagtail.blocks.TextBlock(label='Druhý řádek'))])), ('news', 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'))])), ('people', 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(main.blocks.BoxBlock, label='Boxíky'))])), ('regions', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text='Články pro regiony se načtou automaticky', label='Titulek'))])), ('boxes', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Nadpis')), ('list', wagtail.blocks.ListBlock(main.blocks.BoxBlock, label='Boxíky')), ('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek pozadí', required=False))]))], blank=True, use_json_field=True, verbose_name='Hlavní obsah'),
+            model_name="mainhomepage",
+            name="content",
+            field=wagtail.fields.StreamField(
+                [
+                    (
+                        "carousel",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "button_link",
+                                    wagtail.blocks.URLBlock(label="Odkaz tlačítka"),
+                                ),
+                                (
+                                    "button_text",
+                                    wagtail.blocks.CharBlock(label="Text tlačítka"),
+                                ),
+                                (
+                                    "image",
+                                    wagtail.images.blocks.ImageChooserBlock(
+                                        label="Hlavní obrázek"
+                                    ),
+                                ),
+                                (
+                                    "line_1",
+                                    wagtail.blocks.TextBlock(label="První řádek"),
+                                ),
+                                (
+                                    "line_2",
+                                    wagtail.blocks.TextBlock(label="Druhý řádek"),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "news",
+                        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"),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "people",
+                        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(
+                                        main.blocks.BoxBlock, label="Boxíky"
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "regions",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "title",
+                                    wagtail.blocks.CharBlock(
+                                        help_text="Články pro regiony se načtou automaticky",
+                                        label="Titulek",
+                                    ),
+                                )
+                            ]
+                        ),
+                    ),
+                    (
+                        "boxes",
+                        wagtail.blocks.StructBlock(
+                            [
+                                ("title", wagtail.blocks.CharBlock(label="Nadpis")),
+                                (
+                                    "list",
+                                    wagtail.blocks.ListBlock(
+                                        main.blocks.BoxBlock, label="Boxíky"
+                                    ),
+                                ),
+                                (
+                                    "image",
+                                    wagtail.images.blocks.ImageChooserBlock(
+                                        label="Obrázek pozadí", required=False
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                ],
+                blank=True,
+                use_json_field=True,
+                verbose_name="Hlavní obsah",
+            ),
         ),
     ]
diff --git a/main/migrations/0064_mainhomepage_important_item_name_and_more.py b/main/migrations/0064_mainhomepage_important_item_name_and_more.py
index e83b2b84e34f1aae9afd3253e270283dbcdf53dc..00dfd660782c2b2b0369f60ef45f0014ca4d7fbe 100644
--- a/main/migrations/0064_mainhomepage_important_item_name_and_more.py
+++ b/main/migrations/0064_mainhomepage_important_item_name_and_more.py
@@ -1,39 +1,154 @@
 # Generated by Django 4.1.10 on 2023-12-12 10:22
 
-from django.db import migrations, models
 import django.db.models.deletion
-import main.blocks
 import wagtail.blocks
 import wagtail.fields
 import wagtail.images.blocks
+from django.db import migrations, models
 
+import main.blocks
 
-class Migration(migrations.Migration):
 
+class Migration(migrations.Migration):
     dependencies = [
-        ('wagtailcore', '0083_workflowcontenttype'),
-        ('main', '0063_alter_mainhomepage_content'),
+        ("wagtailcore", "0083_workflowcontenttype"),
+        ("main", "0063_alter_mainhomepage_content"),
     ]
 
     operations = [
         migrations.AddField(
-            model_name='mainhomepage',
-            name='important_item_name',
-            field=models.CharField(blank=True, help_text='Pokud není odkazovaná stránka na Majáku, použij možnost zadání samotné adresy níže', max_length=16, null=True, verbose_name='Jméno'),
+            model_name="mainhomepage",
+            name="important_item_name",
+            field=models.CharField(
+                blank=True,
+                help_text="Pokud není odkazovaná stránka na Majáku, použij možnost zadání samotné adresy níže",
+                max_length=16,
+                null=True,
+                verbose_name="Jméno",
+            ),
         ),
         migrations.AddField(
-            model_name='mainhomepage',
-            name='important_item_page',
-            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='wagtailcore.page', verbose_name='Stránka'),
+            model_name="mainhomepage",
+            name="important_item_page",
+            field=models.ForeignKey(
+                blank=True,
+                null=True,
+                on_delete=django.db.models.deletion.PROTECT,
+                related_name="+",
+                to="wagtailcore.page",
+                verbose_name="Stránka",
+            ),
         ),
         migrations.AddField(
-            model_name='mainhomepage',
-            name='important_item_url',
-            field=models.URLField(blank=True, null=True, verbose_name='Adresa'),
+            model_name="mainhomepage",
+            name="important_item_url",
+            field=models.URLField(blank=True, null=True, verbose_name="Adresa"),
         ),
         migrations.AlterField(
-            model_name='mainhomepage',
-            name='content',
-            field=wagtail.fields.StreamField([('carousel', wagtail.blocks.StructBlock([('line_1', wagtail.blocks.TextBlock(label='První řádek')), ('line_2', wagtail.blocks.TextBlock(label='Druhý řádek'))])), ('news', 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'))])), ('people', 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(main.blocks.BoxBlock, label='Boxíky'))])), ('regions', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text='Články pro regiony se načtou automaticky', label='Titulek'))])), ('boxes', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Nadpis')), ('list', wagtail.blocks.ListBlock(main.blocks.BoxBlock, label='Boxíky')), ('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek pozadí', required=False))]))], blank=True, use_json_field=True, verbose_name='Hlavní obsah'),
+            model_name="mainhomepage",
+            name="content",
+            field=wagtail.fields.StreamField(
+                [
+                    (
+                        "carousel",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "line_1",
+                                    wagtail.blocks.TextBlock(label="První řádek"),
+                                ),
+                                (
+                                    "line_2",
+                                    wagtail.blocks.TextBlock(label="Druhý řádek"),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "news",
+                        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"),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "people",
+                        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(
+                                        main.blocks.BoxBlock, label="Boxíky"
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "regions",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "title",
+                                    wagtail.blocks.CharBlock(
+                                        help_text="Články pro regiony se načtou automaticky",
+                                        label="Titulek",
+                                    ),
+                                )
+                            ]
+                        ),
+                    ),
+                    (
+                        "boxes",
+                        wagtail.blocks.StructBlock(
+                            [
+                                ("title", wagtail.blocks.CharBlock(label="Nadpis")),
+                                (
+                                    "list",
+                                    wagtail.blocks.ListBlock(
+                                        main.blocks.BoxBlock, label="Boxíky"
+                                    ),
+                                ),
+                                (
+                                    "image",
+                                    wagtail.images.blocks.ImageChooserBlock(
+                                        label="Obrázek pozadí", required=False
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                ],
+                blank=True,
+                use_json_field=True,
+                verbose_name="Hlavní obsah",
+            ),
         ),
     ]
diff --git a/main/migrations/0065_alter_mainhomepage_important_item_name.py b/main/migrations/0065_alter_mainhomepage_important_item_name.py
index 7f67803a590ede0dbeadd0355280d124dc6ffee7..446c1ab98d2339faf2502ef47b10e7d9a985ab51 100644
--- a/main/migrations/0065_alter_mainhomepage_important_item_name.py
+++ b/main/migrations/0065_alter_mainhomepage_important_item_name.py
@@ -4,15 +4,20 @@ from django.db import migrations, models
 
 
 class Migration(migrations.Migration):
-
     dependencies = [
-        ('main', '0064_mainhomepage_important_item_name_and_more'),
+        ("main", "0064_mainhomepage_important_item_name_and_more"),
     ]
 
     operations = [
         migrations.AlterField(
-            model_name='mainhomepage',
-            name='important_item_name',
-            field=models.CharField(blank=True, help_text='Pokud není odkazovaná stránka na Majáku, použij možnost zadání samotné adresy níže.', max_length=16, null=True, verbose_name='Jméno'),
+            model_name="mainhomepage",
+            name="important_item_name",
+            field=models.CharField(
+                blank=True,
+                help_text="Pokud není odkazovaná stránka na Majáku, použij možnost zadání samotné adresy níže.",
+                max_length=16,
+                null=True,
+                verbose_name="Jméno",
+            ),
         ),
     ]
diff --git a/main/migrations/0066_alter_mainhomepage_menu.py b/main/migrations/0066_alter_mainhomepage_menu.py
index cbc8499ec86a25fa26eb3977863c20f4db5d633c..817c550a9febb8b44438fccf2a4ad22d6e099edd 100644
--- a/main/migrations/0066_alter_mainhomepage_menu.py
+++ b/main/migrations/0066_alter_mainhomepage_menu.py
@@ -1,20 +1,52 @@
 # Generated by Django 4.1.10 on 2023-12-12 10:43
 
-from django.db import migrations
 import wagtail.blocks
 import wagtail.fields
+from django.db import migrations
 
 
 class Migration(migrations.Migration):
-
     dependencies = [
-        ('main', '0065_alter_mainhomepage_important_item_name'),
+        ("main", "0065_alter_mainhomepage_important_item_name"),
     ]
 
     operations = [
         migrations.AlterField(
-            model_name='mainhomepage',
-            name='menu',
-            field=wagtail.fields.StreamField([('menu_item', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text='Pokud není odkazovaná stránka na Majáku, použij možnost zadání samotné adresy níže.', label='Titulek', required=True)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False))]))], blank=True, use_json_field=True, verbose_name='Menu'),
+            model_name="mainhomepage",
+            name="menu",
+            field=wagtail.fields.StreamField(
+                [
+                    (
+                        "menu_item",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "title",
+                                    wagtail.blocks.CharBlock(
+                                        help_text="Pokud není odkazovaná stránka na Majáku, použij možnost zadání samotné adresy níže.",
+                                        label="Titulek",
+                                        required=True,
+                                    ),
+                                ),
+                                (
+                                    "page",
+                                    wagtail.blocks.PageChooserBlock(
+                                        label="Stránka", required=False
+                                    ),
+                                ),
+                                (
+                                    "link",
+                                    wagtail.blocks.URLBlock(
+                                        label="Odkaz", required=False
+                                    ),
+                                ),
+                            ]
+                        ),
+                    )
+                ],
+                blank=True,
+                use_json_field=True,
+                verbose_name="Menu",
+            ),
         ),
     ]
diff --git a/main/migrations/0067_alter_mainhomepage_menu_and_more.py b/main/migrations/0067_alter_mainhomepage_menu_and_more.py
index e7256296f9871e3e697138eedf956c1e3944d87d..4ea0adb6f3b55a19fff2c3f867eab19c57e71cf7 100644
--- a/main/migrations/0067_alter_mainhomepage_menu_and_more.py
+++ b/main/migrations/0067_alter_mainhomepage_menu_and_more.py
@@ -1,30 +1,106 @@
 # Generated by Django 4.1.10 on 2023-12-12 11:35
 
-from django.db import migrations
 import wagtail.blocks
 import wagtail.fields
+from django.db import migrations
 
 
 class Migration(migrations.Migration):
-
     dependencies = [
-        ('main', '0066_alter_mainhomepage_menu'),
+        ("main", "0066_alter_mainhomepage_menu"),
     ]
 
     operations = [
         migrations.AlterField(
-            model_name='mainhomepage',
-            name='menu',
-            field=wagtail.fields.StreamField([('menu_item', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text='Pokud není odkazovaná stránka na Majáku, použij možnost zadání samotné adresy níže.', label='Titulek', required=True)), ('page', wagtail.blocks.PageChooserBlock(label='Stránka', required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False))]))], blank=True, use_json_field=True, verbose_name='Položky'),
+            model_name="mainhomepage",
+            name="menu",
+            field=wagtail.fields.StreamField(
+                [
+                    (
+                        "menu_item",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "title",
+                                    wagtail.blocks.CharBlock(
+                                        help_text="Pokud není odkazovaná stránka na Majáku, použij možnost zadání samotné adresy níže.",
+                                        label="Titulek",
+                                        required=True,
+                                    ),
+                                ),
+                                (
+                                    "page",
+                                    wagtail.blocks.PageChooserBlock(
+                                        label="Stránka", required=False
+                                    ),
+                                ),
+                                (
+                                    "link",
+                                    wagtail.blocks.URLBlock(
+                                        label="Odkaz", required=False
+                                    ),
+                                ),
+                            ]
+                        ),
+                    )
+                ],
+                blank=True,
+                use_json_field=True,
+                verbose_name="Položky",
+            ),
         ),
         migrations.AlterField(
-            model_name='mainhomepage',
-            name='social_links',
-            field=wagtail.fields.StreamField([('social_links', wagtail.blocks.StructBlock([('text', wagtail.blocks.CharBlock(label='Název')), ('link', wagtail.blocks.URLBlock(label='Odkaz')), ('icon', wagtail.blocks.CharBlock(help_text='Seznam ikon - https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons <br/>Název ikony zadejte bez tečky na začátku', label='Ikona'))]))], blank=True, use_json_field=True, verbose_name='Odkazy na sociální sítě'),
+            model_name="mainhomepage",
+            name="social_links",
+            field=wagtail.fields.StreamField(
+                [
+                    (
+                        "social_links",
+                        wagtail.blocks.StructBlock(
+                            [
+                                ("text", wagtail.blocks.CharBlock(label="Název")),
+                                ("link", wagtail.blocks.URLBlock(label="Odkaz")),
+                                (
+                                    "icon",
+                                    wagtail.blocks.CharBlock(
+                                        help_text="Seznam ikon - https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons <br/>Název ikony zadejte bez tečky na začátku",
+                                        label="Ikona",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    )
+                ],
+                blank=True,
+                use_json_field=True,
+                verbose_name="Odkazy na sociální sítě",
+            ),
         ),
         migrations.AlterField(
-            model_name='mainpersonpage',
-            name='social_links',
-            field=wagtail.fields.StreamField([('social_links', wagtail.blocks.StructBlock([('text', wagtail.blocks.CharBlock(label='Název')), ('link', wagtail.blocks.URLBlock(label='Odkaz')), ('icon', wagtail.blocks.CharBlock(help_text='Seznam ikon - https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons <br/>Název ikony zadejte bez tečky na začátku', label='Ikona'))]))], blank=True, use_json_field=True, verbose_name='Odkazy na sociální sítě'),
+            model_name="mainpersonpage",
+            name="social_links",
+            field=wagtail.fields.StreamField(
+                [
+                    (
+                        "social_links",
+                        wagtail.blocks.StructBlock(
+                            [
+                                ("text", wagtail.blocks.CharBlock(label="Název")),
+                                ("link", wagtail.blocks.URLBlock(label="Odkaz")),
+                                (
+                                    "icon",
+                                    wagtail.blocks.CharBlock(
+                                        help_text="Seznam ikon - https://styleguide.pirati.cz/latest/?p=viewall-atoms-icons <br/>Název ikony zadejte bez tečky na začátku",
+                                        label="Ikona",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    )
+                ],
+                blank=True,
+                use_json_field=True,
+                verbose_name="Odkazy na sociální sítě",
+            ),
         ),
     ]
diff --git a/main/migrations/0068_alter_mainhomepage_footer_other_links.py b/main/migrations/0068_alter_mainhomepage_footer_other_links.py
index 9ec35fbdc5640456bde6df2d045f611d696febba..6c8ede1713a2204ebffcabafb8131affe21ce769 100644
--- a/main/migrations/0068_alter_mainhomepage_footer_other_links.py
+++ b/main/migrations/0068_alter_mainhomepage_footer_other_links.py
@@ -1,21 +1,42 @@
 # Generated by Django 4.1.10 on 2023-12-12 19:02
 
-from django.db import migrations
-import main.blocks
 import wagtail.blocks
 import wagtail.fields
+from django.db import migrations
 
+import main.blocks
 
-class Migration(migrations.Migration):
 
+class Migration(migrations.Migration):
     dependencies = [
-        ('main', '0067_alter_mainhomepage_menu_and_more'),
+        ("main", "0067_alter_mainhomepage_menu_and_more"),
     ]
 
     operations = [
         migrations.AlterField(
-            model_name='mainhomepage',
-            name='footer_other_links',
-            field=wagtail.fields.StreamField([('other_links', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek')), ('list', wagtail.blocks.ListBlock(main.blocks.LinkBlock, label='Seznam odkazů s titulkem'))]))], blank=True, use_json_field=True, verbose_name='Odkazy v zápatí webu'),
+            model_name="mainhomepage",
+            name="footer_other_links",
+            field=wagtail.fields.StreamField(
+                [
+                    (
+                        "other_links",
+                        wagtail.blocks.StructBlock(
+                            [
+                                ("title", wagtail.blocks.CharBlock(label="Titulek")),
+                                (
+                                    "list",
+                                    wagtail.blocks.ListBlock(
+                                        main.blocks.LinkBlock,
+                                        label="Seznam odkazů s titulkem",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    )
+                ],
+                blank=True,
+                use_json_field=True,
+                verbose_name="Odkazy v zápatí webu",
+            ),
         ),
     ]
diff --git a/main/migrations/0069_remove_mainarticlepage_article_type.py b/main/migrations/0069_remove_mainarticlepage_article_type.py
index 93721beb01d58cfce0d37a7f1b7647aca410f65e..53c9c1d603f54da668d1bee12e3f3a9b9e16d1ff 100644
--- a/main/migrations/0069_remove_mainarticlepage_article_type.py
+++ b/main/migrations/0069_remove_mainarticlepage_article_type.py
@@ -4,14 +4,13 @@ from django.db import migrations
 
 
 class Migration(migrations.Migration):
-
     dependencies = [
-        ('main', '0068_alter_mainhomepage_footer_other_links'),
+        ("main", "0068_alter_mainhomepage_footer_other_links"),
     ]
 
     operations = [
         migrations.RemoveField(
-            model_name='mainarticlepage',
-            name='article_type',
+            model_name="mainarticlepage",
+            name="article_type",
         ),
     ]
diff --git a/main/migrations/0070_remove_mainarticlespage_perex.py b/main/migrations/0070_remove_mainarticlespage_perex.py
index 3b321d696c412de58681df77c969e9b4599af99d..dde35d932822ebec5d7c3e91631f983885fdcb0f 100644
--- a/main/migrations/0070_remove_mainarticlespage_perex.py
+++ b/main/migrations/0070_remove_mainarticlespage_perex.py
@@ -4,14 +4,13 @@ from django.db import migrations
 
 
 class Migration(migrations.Migration):
-
     dependencies = [
-        ('main', '0069_remove_mainarticlepage_article_type'),
+        ("main", "0069_remove_mainarticlepage_article_type"),
     ]
 
     operations = [
         migrations.RemoveField(
-            model_name='mainarticlespage',
-            name='perex',
+            model_name="mainarticlespage",
+            name="perex",
         ),
     ]
diff --git a/main/migrations/0071_remove_mainpeoplepage_perex_and_more.py b/main/migrations/0071_remove_mainpeoplepage_perex_and_more.py
index e07b81ca56c607d54757a0d00d9f1aefa2601869..a682cce564b55971a84a80514ec47e3dec226205 100644
--- a/main/migrations/0071_remove_mainpeoplepage_perex_and_more.py
+++ b/main/migrations/0071_remove_mainpeoplepage_perex_and_more.py
@@ -1,30 +1,33 @@
 # Generated by Django 4.1.10 on 2023-12-12 22:44
 
-from django.db import migrations
 import wagtail.fields
+from django.db import migrations
 
 
 class Migration(migrations.Migration):
-
     dependencies = [
-        ('main', '0070_remove_mainarticlespage_perex'),
+        ("main", "0070_remove_mainarticlespage_perex"),
     ]
 
     operations = [
         migrations.RemoveField(
-            model_name='mainpeoplepage',
-            name='perex',
+            model_name="mainpeoplepage",
+            name="perex",
         ),
         migrations.AddField(
-            model_name='mainpeoplepage',
-            name='perex_col_1',
-            field=wagtail.fields.RichTextField(default='', verbose_name='Perex - první sloupec'),
+            model_name="mainpeoplepage",
+            name="perex_col_1",
+            field=wagtail.fields.RichTextField(
+                default="", verbose_name="Perex - první sloupec"
+            ),
             preserve_default=False,
         ),
         migrations.AddField(
-            model_name='mainpeoplepage',
-            name='perex_col_2',
-            field=wagtail.fields.RichTextField(default='', verbose_name='Perex - druhý sloupec'),
+            model_name="mainpeoplepage",
+            name="perex_col_2",
+            field=wagtail.fields.RichTextField(
+                default="", verbose_name="Perex - druhý sloupec"
+            ),
             preserve_default=False,
         ),
     ]
diff --git a/main/migrations/0072_alter_mainarticlepage_content.py b/main/migrations/0072_alter_mainarticlepage_content.py
index b085375118fbc500c91ed55d5c7007c7aaae09e8..8ddf66721fc3580a964e18d0c3f5b8c784f55a4a 100644
--- a/main/migrations/0072_alter_mainarticlepage_content.py
+++ b/main/migrations/0072_alter_mainarticlepage_content.py
@@ -1,22 +1,108 @@
 # Generated by Django 4.1.10 on 2023-12-13 20:05
 
-from django.db import migrations
 import wagtail.blocks
 import wagtail.documents.blocks
 import wagtail.fields
 import wagtail.images.blocks
+from django.db import migrations
 
 
 class Migration(migrations.Migration):
-
     dependencies = [
-        ('main', '0071_remove_mainpeoplepage_perex_and_more'),
+        ("main", "0071_remove_mainpeoplepage_perex_and_more"),
     ]
 
     operations = [
         migrations.AlterField(
-            model_name='mainarticlepage',
-            name='content',
-            field=wagtail.fields.StreamField([('text', wagtail.blocks.RichTextBlock(template='main/includes/atoms/text/prose_richtext.html')), ('quote', wagtail.blocks.StructBlock([('quote', wagtail.blocks.CharBlock(label='Citace')), ('autor_name', wagtail.blocks.CharBlock(label='Jméno autora'))])), ('download', wagtail.blocks.StructBlock([('file', wagtail.documents.blocks.DocumentChooserBlock(label='Stáhnutelný soubor'))])), ('image_left', wagtail.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek')), ('image_source', wagtail.blocks.CharBlock(help_text="Např. 'europoslankyně Markéta Gregorová'", label='Zdroj obrázku')), ('href', wagtail.blocks.URLBlock(label='Odkaz k textu')), ('text', wagtail.blocks.RichTextBlock(label='Text'))])), ('image_right', wagtail.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek')), ('image_source', wagtail.blocks.CharBlock(help_text="Např. 'europoslankyně Markéta Gregorová'", label='Zdroj obrázku')), ('href', wagtail.blocks.URLBlock(label='Odkaz k textu')), ('text', wagtail.blocks.RichTextBlock(label='Text'))]))], blank=True, use_json_field=True, verbose_name='Článek'),
+            model_name="mainarticlepage",
+            name="content",
+            field=wagtail.fields.StreamField(
+                [
+                    (
+                        "text",
+                        wagtail.blocks.RichTextBlock(
+                            template="main/includes/atoms/text/prose_richtext.html"
+                        ),
+                    ),
+                    (
+                        "quote",
+                        wagtail.blocks.StructBlock(
+                            [
+                                ("quote", wagtail.blocks.CharBlock(label="Citace")),
+                                (
+                                    "autor_name",
+                                    wagtail.blocks.CharBlock(label="Jméno autora"),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "download",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "file",
+                                    wagtail.documents.blocks.DocumentChooserBlock(
+                                        label="Stáhnutelný soubor"
+                                    ),
+                                )
+                            ]
+                        ),
+                    ),
+                    (
+                        "image_left",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "image",
+                                    wagtail.images.blocks.ImageChooserBlock(
+                                        label="Obrázek"
+                                    ),
+                                ),
+                                (
+                                    "image_source",
+                                    wagtail.blocks.CharBlock(
+                                        help_text="Např. 'europoslankyně Markéta Gregorová'",
+                                        label="Zdroj obrázku",
+                                    ),
+                                ),
+                                (
+                                    "href",
+                                    wagtail.blocks.URLBlock(label="Odkaz k textu"),
+                                ),
+                                ("text", wagtail.blocks.RichTextBlock(label="Text")),
+                            ]
+                        ),
+                    ),
+                    (
+                        "image_right",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "image",
+                                    wagtail.images.blocks.ImageChooserBlock(
+                                        label="Obrázek"
+                                    ),
+                                ),
+                                (
+                                    "image_source",
+                                    wagtail.blocks.CharBlock(
+                                        help_text="Např. 'europoslankyně Markéta Gregorová'",
+                                        label="Zdroj obrázku",
+                                    ),
+                                ),
+                                (
+                                    "href",
+                                    wagtail.blocks.URLBlock(label="Odkaz k textu"),
+                                ),
+                                ("text", wagtail.blocks.RichTextBlock(label="Text")),
+                            ]
+                        ),
+                    ),
+                ],
+                blank=True,
+                use_json_field=True,
+                verbose_name="Článek",
+            ),
         ),
     ]
diff --git a/main/migrations/0073_alter_mainarticlepage_content_and_more.py b/main/migrations/0073_alter_mainarticlepage_content_and_more.py
index 1770f800e38b0c03e7d822b8c9f3f37e8729c4e8..e1d84b0693fd73ad169e48f8e4def7b9d24dc5ab 100644
--- a/main/migrations/0073_alter_mainarticlepage_content_and_more.py
+++ b/main/migrations/0073_alter_mainarticlepage_content_and_more.py
@@ -1,31 +1,67 @@
 # Generated by Django 4.1.10 on 2023-12-13 22:27
 
-from django.db import migrations, models
 import wagtail.blocks
 import wagtail.documents.blocks
 import wagtail.fields
+from django.db import migrations, models
 
 
 class Migration(migrations.Migration):
-
     dependencies = [
-        ('main', '0072_alter_mainarticlepage_content'),
+        ("main", "0072_alter_mainarticlepage_content"),
     ]
 
     operations = [
         migrations.AlterField(
-            model_name='mainarticlepage',
-            name='content',
-            field=wagtail.fields.StreamField([('text', wagtail.blocks.RichTextBlock(template='main/includes/atoms/text/prose_richtext.html')), ('quote', wagtail.blocks.StructBlock([('quote', wagtail.blocks.CharBlock(label='Citace')), ('autor_name', wagtail.blocks.CharBlock(label='Jméno autora'))])), ('download', wagtail.blocks.StructBlock([('file', wagtail.documents.blocks.DocumentChooserBlock(label='Stáhnutelný soubor'))]))], blank=True, use_json_field=True, verbose_name='Článek'),
+            model_name="mainarticlepage",
+            name="content",
+            field=wagtail.fields.StreamField(
+                [
+                    (
+                        "text",
+                        wagtail.blocks.RichTextBlock(
+                            template="main/includes/atoms/text/prose_richtext.html"
+                        ),
+                    ),
+                    (
+                        "quote",
+                        wagtail.blocks.StructBlock(
+                            [
+                                ("quote", wagtail.blocks.CharBlock(label="Citace")),
+                                (
+                                    "autor_name",
+                                    wagtail.blocks.CharBlock(label="Jméno autora"),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "download",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "file",
+                                    wagtail.documents.blocks.DocumentChooserBlock(
+                                        label="Stáhnutelný soubor"
+                                    ),
+                                )
+                            ]
+                        ),
+                    ),
+                ],
+                blank=True,
+                use_json_field=True,
+                verbose_name="Článek",
+            ),
         ),
         migrations.AlterField(
-            model_name='mainpeoplepage',
-            name='perex_col_1',
-            field=models.TextField(verbose_name='Perex - první sloupec'),
+            model_name="mainpeoplepage",
+            name="perex_col_1",
+            field=models.TextField(verbose_name="Perex - první sloupec"),
         ),
         migrations.AlterField(
-            model_name='mainpeoplepage',
-            name='perex_col_2',
-            field=models.TextField(verbose_name='Perex - druhý sloupec'),
+            model_name="mainpeoplepage",
+            name="perex_col_2",
+            field=models.TextField(verbose_name="Perex - druhý sloupec"),
         ),
     ]
diff --git a/main/migrations/0074_mainpersonpage_primary_group.py b/main/migrations/0074_mainpersonpage_primary_group.py
index 8d360854fb351caeef9b33814cd0353aca654e35..2887fe94801c24d184a236ab62166ca522b62105 100644
--- a/main/migrations/0074_mainpersonpage_primary_group.py
+++ b/main/migrations/0074_mainpersonpage_primary_group.py
@@ -4,15 +4,20 @@ from django.db import migrations, models
 
 
 class Migration(migrations.Migration):
-
     dependencies = [
-        ('main', '0073_alter_mainarticlepage_content_and_more'),
+        ("main", "0073_alter_mainarticlepage_content_and_more"),
     ]
 
     operations = [
         migrations.AddField(
-            model_name='mainpersonpage',
-            name='primary_group',
-            field=models.CharField(blank=True, help_text="např. 'Europarlament' nebo 'Sněmovna'", max_length=32, null=True, verbose_name='Kategorie'),
+            model_name="mainpersonpage",
+            name="primary_group",
+            field=models.CharField(
+                blank=True,
+                help_text="např. 'Europarlament' nebo 'Sněmovna'",
+                max_length=32,
+                null=True,
+                verbose_name="Kategorie",
+            ),
         ),
     ]
diff --git a/main/migrations/0075_rename_people_mainpersonpage_related_people.py b/main/migrations/0075_rename_people_mainpersonpage_related_people.py
index e57642f32c4541328c1a40e1eae56c57e01924a1..6bac10171f7062f38ba789194866f8db86f7ad9f 100644
--- a/main/migrations/0075_rename_people_mainpersonpage_related_people.py
+++ b/main/migrations/0075_rename_people_mainpersonpage_related_people.py
@@ -4,15 +4,14 @@ from django.db import migrations
 
 
 class Migration(migrations.Migration):
-
     dependencies = [
-        ('main', '0074_mainpersonpage_primary_group'),
+        ("main", "0074_mainpersonpage_primary_group"),
     ]
 
     operations = [
         migrations.RenameField(
-            model_name='mainpersonpage',
-            old_name='people',
-            new_name='related_people',
+            model_name="mainpersonpage",
+            old_name="people",
+            new_name="related_people",
         ),
     ]
diff --git a/main/migrations/0076_remove_mainarticlepage_is_black.py b/main/migrations/0076_remove_mainarticlepage_is_black.py
index 0603085e7f12de797468d9808a13029198c7f499..f5f43479479d6620cc0632b9e1dc35433cfadf34 100644
--- a/main/migrations/0076_remove_mainarticlepage_is_black.py
+++ b/main/migrations/0076_remove_mainarticlepage_is_black.py
@@ -4,14 +4,13 @@ from django.db import migrations
 
 
 class Migration(migrations.Migration):
-
     dependencies = [
-        ('main', '0075_rename_people_mainpersonpage_related_people'),
+        ("main", "0075_rename_people_mainpersonpage_related_people"),
     ]
 
     operations = [
         migrations.RemoveField(
-            model_name='mainarticlepage',
-            name='is_black',
+            model_name="mainarticlepage",
+            name="is_black",
         ),
     ]
diff --git a/main/migrations/0077_alter_mainarticlepage_image.py b/main/migrations/0077_alter_mainarticlepage_image.py
index a9111c1b5d2a333db98671b2790bdc0de5304a00..1e316591219b0e05ef4e155fe1e129a027f665bb 100644
--- a/main/migrations/0077_alter_mainarticlepage_image.py
+++ b/main/migrations/0077_alter_mainarticlepage_image.py
@@ -1,20 +1,27 @@
 # Generated by Django 4.1.10 on 2023-12-14 18:08
 
-from django.db import migrations, models
 import django.db.models.deletion
+from django.db import migrations, models
 
 
 class Migration(migrations.Migration):
-
     dependencies = [
-        ('wagtailimages', '0025_alter_image_file_alter_rendition_file'),
-        ('main', '0076_remove_mainarticlepage_is_black'),
+        ("wagtailimages", "0025_alter_image_file_alter_rendition_file"),
+        ("main", "0076_remove_mainarticlepage_is_black"),
     ]
 
     operations = [
         migrations.AlterField(
-            model_name='mainarticlepage',
-            name='image',
-            field=models.ForeignKey(blank=True, help_text='Ukazuje se v kartách, které na článek odkazují. Např. na hlavní stránce a stránkách osob.', null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='wagtailimages.image', verbose_name='Obrázek'),
+            model_name="mainarticlepage",
+            name="image",
+            field=models.ForeignKey(
+                blank=True,
+                help_text="Ukazuje se v kartách, které na článek odkazují. Např. na hlavní stránce a stránkách osob.",
+                null=True,
+                on_delete=django.db.models.deletion.PROTECT,
+                related_name="+",
+                to="wagtailimages.image",
+                verbose_name="Obrázek",
+            ),
         ),
     ]
diff --git a/main/migrations/0078_alter_mainarticlepage_image.py b/main/migrations/0078_alter_mainarticlepage_image.py
index e98b616d02e303bde26cab6c4c2c69505631727b..3ec390c5dfcdb95695246bff0f5f4e32613c6331 100644
--- a/main/migrations/0078_alter_mainarticlepage_image.py
+++ b/main/migrations/0078_alter_mainarticlepage_image.py
@@ -1,20 +1,25 @@
 # Generated by Django 4.1.10 on 2023-12-14 18:16
 
-from django.db import migrations, models
 import django.db.models.deletion
+from django.db import migrations, models
 
 
 class Migration(migrations.Migration):
-
     dependencies = [
-        ('wagtailimages', '0025_alter_image_file_alter_rendition_file'),
-        ('main', '0077_alter_mainarticlepage_image'),
+        ("wagtailimages", "0025_alter_image_file_alter_rendition_file"),
+        ("main", "0077_alter_mainarticlepage_image"),
     ]
 
     operations = [
         migrations.AlterField(
-            model_name='mainarticlepage',
-            name='image',
-            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='wagtailimages.image', verbose_name='obrázek'),
+            model_name="mainarticlepage",
+            name="image",
+            field=models.ForeignKey(
+                blank=True,
+                null=True,
+                on_delete=django.db.models.deletion.PROTECT,
+                to="wagtailimages.image",
+                verbose_name="obrázek",
+            ),
         ),
     ]
diff --git a/main/migrations/0079_remove_mainpersonpage_related_people_and_more.py b/main/migrations/0079_remove_mainpersonpage_related_people_and_more.py
index c9133781840dc903a84e97bf60f11e99837fd495..91da938d925882fa0b2fea55ecfb14983ad92780 100644
--- a/main/migrations/0079_remove_mainpersonpage_related_people_and_more.py
+++ b/main/migrations/0079_remove_mainpersonpage_related_people_and_more.py
@@ -4,19 +4,20 @@ from django.db import migrations, models
 
 
 class Migration(migrations.Migration):
-
     dependencies = [
-        ('main', '0078_alter_mainarticlepage_image'),
+        ("main", "0078_alter_mainarticlepage_image"),
     ]
 
     operations = [
         migrations.RemoveField(
-            model_name='mainpersonpage',
-            name='related_people',
+            model_name="mainpersonpage",
+            name="related_people",
         ),
         migrations.AddField(
-            model_name='mainpersonpage',
-            name='related_people',
-            field=models.ManyToManyField(to='main.mainpersonpage', verbose_name='Další lidé'),
+            model_name="mainpersonpage",
+            name="related_people",
+            field=models.ManyToManyField(
+                to="main.mainpersonpage", verbose_name="Další lidé"
+            ),
         ),
     ]
diff --git a/main/migrations/0080_remove_mainpersonpage_related_people_and_more.py b/main/migrations/0080_remove_mainpersonpage_related_people_and_more.py
index c2e1caa68cbc87a684ca4fa8ba04e750dcf42db5..a83560f2a35c29036b54764fcad440a6b1d42e6a 100644
--- a/main/migrations/0080_remove_mainpersonpage_related_people_and_more.py
+++ b/main/migrations/0080_remove_mainpersonpage_related_people_and_more.py
@@ -1,24 +1,35 @@
 # Generated by Django 4.1.10 on 2023-12-14 20:25
 
-from django.db import migrations
 import wagtail.blocks
 import wagtail.fields
+from django.db import migrations
 
 
 class Migration(migrations.Migration):
-
     dependencies = [
-        ('main', '0079_remove_mainpersonpage_related_people_and_more'),
+        ("main", "0079_remove_mainpersonpage_related_people_and_more"),
     ]
 
     operations = [
         migrations.RemoveField(
-            model_name='mainpersonpage',
-            name='related_people',
+            model_name="mainpersonpage",
+            name="related_people",
         ),
         migrations.AddField(
-            model_name='mainpersonpage',
-            name='related_people',
-            field=wagtail.fields.StreamField([('person', wagtail.blocks.PageChooserBlock(label='Detail osoby', page_type=['main.MainPersonPage']))], blank=True, use_json_field=True, verbose_name='Další lidé'),
+            model_name="mainpersonpage",
+            name="related_people",
+            field=wagtail.fields.StreamField(
+                [
+                    (
+                        "person",
+                        wagtail.blocks.PageChooserBlock(
+                            label="Detail osoby", page_type=["main.MainPersonPage"]
+                        ),
+                    )
+                ],
+                blank=True,
+                use_json_field=True,
+                verbose_name="Další lidé",
+            ),
         ),
     ]
diff --git a/main/migrations/0081_remove_mainarticlepage_region_and_more.py b/main/migrations/0081_remove_mainarticlepage_region_and_more.py
index 22708bd0eaa2ee6a7d258821aaa16d6788c5e0e9..8fcbf4680b7384e67c178339dd8f8c57a843b73c 100644
--- a/main/migrations/0081_remove_mainarticlepage_region_and_more.py
+++ b/main/migrations/0081_remove_mainarticlepage_region_and_more.py
@@ -1,26 +1,129 @@
 # Generated by Django 4.1.10 on 2023-12-14 20:54
 
-from django.db import migrations
-import main.blocks
 import wagtail.blocks
 import wagtail.fields
 import wagtail.images.blocks
+from django.db import migrations
 
+import main.blocks
 
-class Migration(migrations.Migration):
 
+class Migration(migrations.Migration):
     dependencies = [
-        ('main', '0080_remove_mainpersonpage_related_people_and_more'),
+        ("main", "0080_remove_mainpersonpage_related_people_and_more"),
     ]
 
     operations = [
         migrations.RemoveField(
-            model_name='mainarticlepage',
-            name='region',
+            model_name="mainarticlepage",
+            name="region",
         ),
         migrations.AlterField(
-            model_name='mainhomepage',
-            name='content',
-            field=wagtail.fields.StreamField([('carousel', wagtail.blocks.StructBlock([('line_1', wagtail.blocks.TextBlock(label='První řádek')), ('line_2', wagtail.blocks.TextBlock(label='Druhý řádek'))])), ('news', 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'))])), ('europarl_news', wagtail.blocks.StructBlock([])), ('people', 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(main.blocks.BoxBlock, label='Boxíky'))])), ('regions', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(help_text='Články pro regiony se načtou automaticky', label='Titulek'))])), ('boxes', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Nadpis')), ('list', wagtail.blocks.ListBlock(main.blocks.BoxBlock, label='Boxíky')), ('image', wagtail.images.blocks.ImageChooserBlock(label='Obrázek pozadí', required=False))]))], blank=True, use_json_field=True, verbose_name='Hlavní obsah'),
+            model_name="mainhomepage",
+            name="content",
+            field=wagtail.fields.StreamField(
+                [
+                    (
+                        "carousel",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "line_1",
+                                    wagtail.blocks.TextBlock(label="První řádek"),
+                                ),
+                                (
+                                    "line_2",
+                                    wagtail.blocks.TextBlock(label="Druhý řádek"),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "news",
+                        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"),
+                                ),
+                            ]
+                        ),
+                    ),
+                    ("europarl_news", wagtail.blocks.StructBlock([])),
+                    (
+                        "people",
+                        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(
+                                        main.blocks.BoxBlock, label="Boxíky"
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "regions",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "title",
+                                    wagtail.blocks.CharBlock(
+                                        help_text="Články pro regiony se načtou automaticky",
+                                        label="Titulek",
+                                    ),
+                                )
+                            ]
+                        ),
+                    ),
+                    (
+                        "boxes",
+                        wagtail.blocks.StructBlock(
+                            [
+                                ("title", wagtail.blocks.CharBlock(label="Nadpis")),
+                                (
+                                    "list",
+                                    wagtail.blocks.ListBlock(
+                                        main.blocks.BoxBlock, label="Boxíky"
+                                    ),
+                                ),
+                                (
+                                    "image",
+                                    wagtail.images.blocks.ImageChooserBlock(
+                                        label="Obrázek pozadí", required=False
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                ],
+                blank=True,
+                use_json_field=True,
+                verbose_name="Hlavní obsah",
+            ),
         ),
     ]
diff --git a/main/migrations/0082_mainhomepage_europarl_section_tag_and_more.py b/main/migrations/0082_mainhomepage_europarl_section_tag_and_more.py
index 7545494b07374d1c3bc6e105be0b42b001cd3c51..efab7235154ee33190bf0434c5f842d6f81ad299 100644
--- a/main/migrations/0082_mainhomepage_europarl_section_tag_and_more.py
+++ b/main/migrations/0082_mainhomepage_europarl_section_tag_and_more.py
@@ -1,38 +1,72 @@
 # Generated by Django 4.1.10 on 2023-12-14 21:51
 
-from django.db import migrations, models
 import django.db.models.deletion
 import modelcluster.contrib.taggit
 import modelcluster.fields
+from django.db import migrations, models
 
 
 class Migration(migrations.Migration):
-
     dependencies = [
-        ('taggit', '0005_auto_20220424_2025'),
-        ('main', '0081_remove_mainarticlepage_region_and_more'),
+        ("taggit", "0005_auto_20220424_2025"),
+        ("main", "0081_remove_mainarticlepage_region_and_more"),
     ]
 
     operations = [
         migrations.AddField(
-            model_name='mainhomepage',
-            name='europarl_section_tag',
-            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='taggit.tag', verbose_name='Tag pro rozdělení - Eurovolby'),
+            model_name="mainhomepage",
+            name="europarl_section_tag",
+            field=models.ForeignKey(
+                blank=True,
+                null=True,
+                on_delete=django.db.models.deletion.PROTECT,
+                related_name="+",
+                to="taggit.tag",
+                verbose_name="Tag pro rozdělení - Eurovolby",
+            ),
         ),
         migrations.CreateModel(
-            name='MainArticleSectionTag',
+            name="MainArticleSectionTag",
             fields=[
-                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
-                ('content_object', modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='section_tagged_items', to='main.mainarticlepage')),
-                ('tag', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_items', to='taggit.tag')),
+                (
+                    "id",
+                    models.AutoField(
+                        auto_created=True,
+                        primary_key=True,
+                        serialize=False,
+                        verbose_name="ID",
+                    ),
+                ),
+                (
+                    "content_object",
+                    modelcluster.fields.ParentalKey(
+                        on_delete=django.db.models.deletion.CASCADE,
+                        related_name="section_tagged_items",
+                        to="main.mainarticlepage",
+                    ),
+                ),
+                (
+                    "tag",
+                    models.ForeignKey(
+                        on_delete=django.db.models.deletion.CASCADE,
+                        related_name="%(app_label)s_%(class)s_items",
+                        to="taggit.tag",
+                    ),
+                ),
             ],
             options={
-                'abstract': False,
+                "abstract": False,
             },
         ),
         migrations.AddField(
-            model_name='mainarticlepage',
-            name='section_tags',
-            field=modelcluster.contrib.taggit.ClusterTaggableManager(blank=True, help_text='Používá se například pro oddělení článků do sekce pro eurovolby. Pokud chceš, aby se články zobrazovaly pouze na hlavní stránce, nepřidávej žádné tagy.', through='main.MainArticleSectionTag', to='taggit.Tag', verbose_name='Tagy pro rozdělení do sekcí'),
+            model_name="mainarticlepage",
+            name="section_tags",
+            field=modelcluster.contrib.taggit.ClusterTaggableManager(
+                blank=True,
+                help_text="Používá se například pro oddělení článků do sekce pro eurovolby. Pokud chceš, aby se články zobrazovaly pouze na hlavní stránce, nepřidávej žádné tagy.",
+                through="main.MainArticleSectionTag",
+                to="taggit.Tag",
+                verbose_name="Tagy pro rozdělení do sekcí",
+            ),
         ),
     ]
diff --git a/main/migrations/0083_remove_mainprogrampage_perex_and_more.py b/main/migrations/0083_remove_mainprogrampage_perex_and_more.py
index ca25e4af28fc6e0bbfebc3d93d582131abe66181..0f6bb3d186f33e7f90122bf6d8257f65e2237109 100644
--- a/main/migrations/0083_remove_mainprogrampage_perex_and_more.py
+++ b/main/migrations/0083_remove_mainprogrampage_perex_and_more.py
@@ -1,25 +1,48 @@
 # Generated by Django 4.1.10 on 2023-12-15 12:24
 
-from django.db import migrations
 import wagtail.blocks
 import wagtail.fields
 import wagtail.images.blocks
+from django.db import migrations
 
 
 class Migration(migrations.Migration):
-
     dependencies = [
-        ('main', '0082_mainhomepage_europarl_section_tag_and_more'),
+        ("main", "0082_mainhomepage_europarl_section_tag_and_more"),
     ]
 
     operations = [
         migrations.RemoveField(
-            model_name='mainprogrampage',
-            name='perex',
+            model_name="mainprogrampage",
+            name="perex",
         ),
         migrations.AlterField(
-            model_name='maincontactpage',
-            name='contact_boxes',
-            field=wagtail.fields.StreamField([('item', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek')), ('image', wagtail.images.blocks.ImageChooserBlock(label='Ikona')), ('subtitle', wagtail.blocks.CharBlock(label='Podtitulek'))]))], blank=True, use_json_field=True, verbose_name='Kontaktní boxy'),
+            model_name="maincontactpage",
+            name="contact_boxes",
+            field=wagtail.fields.StreamField(
+                [
+                    (
+                        "item",
+                        wagtail.blocks.StructBlock(
+                            [
+                                ("title", wagtail.blocks.CharBlock(label="Titulek")),
+                                (
+                                    "image",
+                                    wagtail.images.blocks.ImageChooserBlock(
+                                        label="Ikona"
+                                    ),
+                                ),
+                                (
+                                    "subtitle",
+                                    wagtail.blocks.CharBlock(label="Podtitulek"),
+                                ),
+                            ]
+                        ),
+                    )
+                ],
+                blank=True,
+                use_json_field=True,
+                verbose_name="Kontaktní boxy",
+            ),
         ),
     ]
diff --git a/main/migrations/0084_alter_mainprogrampage_program.py b/main/migrations/0084_alter_mainprogrampage_program.py
index f89e96f17bca59aa2477067d77aafe476e5a42c4..765c3580a5bf197d010f7475e4809cbb8acf5b2e 100644
--- a/main/migrations/0084_alter_mainprogrampage_program.py
+++ b/main/migrations/0084_alter_mainprogrampage_program.py
@@ -1,21 +1,232 @@
 # Generated by Django 4.1.10 on 2023-12-15 13:54
 
-from django.db import migrations
 import wagtail.blocks
 import wagtail.fields
 import wagtail.images.blocks
+from django.db import migrations
 
 
 class Migration(migrations.Migration):
-
     dependencies = [
-        ('main', '0083_remove_mainprogrampage_perex_and_more'),
+        ("main", "0083_remove_mainprogrampage_perex_and_more"),
     ]
 
     operations = [
         migrations.AlterField(
-            model_name='mainprogrampage',
-            name='program',
-            field=wagtail.fields.StreamField([('program_group', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek části 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(label='Titulek části 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=['main.MainArticlesPage', 'main.MainArticlePage', 'main.MainProgramPage', 'main.MainPeoplePage', 'main.MainPersonPage', 'main.MainSimplePage', 'main.MainContactPage', 'main.MainCrossroadPage'], required=False)), ('link', wagtail.blocks.URLBlock(label='Odkaz', required=False))]), label='Karty programu'))])), ('program_group_popout', wagtail.blocks.StructBlock([('title', wagtail.blocks.CharBlock(label='Titulek části programu')), ('categories', wagtail.blocks.ListBlock(wagtail.blocks.StructBlock([('name', wagtail.blocks.CharBlock(label='Název')), ('icon', wagtail.images.blocks.ImageChooserBlock(label='Ikona', 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'))]), label='Jednotlivé bloky programu'))]), label='Kategorie programu'))]))], blank=True, use_json_field=True, verbose_name='Program'),
+            model_name="mainprogrampage",
+            name="program",
+            field=wagtail.fields.StreamField(
+                [
+                    (
+                        "program_group",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "title",
+                                    wagtail.blocks.CharBlock(
+                                        label="Titulek části 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(
+                                        label="Titulek části 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=[
+                                                            "main.MainArticlesPage",
+                                                            "main.MainArticlePage",
+                                                            "main.MainProgramPage",
+                                                            "main.MainPeoplePage",
+                                                            "main.MainPersonPage",
+                                                            "main.MainSimplePage",
+                                                            "main.MainContactPage",
+                                                            "main.MainCrossroadPage",
+                                                        ],
+                                                        required=False,
+                                                    ),
+                                                ),
+                                                (
+                                                    "link",
+                                                    wagtail.blocks.URLBlock(
+                                                        label="Odkaz", required=False
+                                                    ),
+                                                ),
+                                            ]
+                                        ),
+                                        label="Karty programu",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                    (
+                        "program_group_popout",
+                        wagtail.blocks.StructBlock(
+                            [
+                                (
+                                    "title",
+                                    wagtail.blocks.CharBlock(
+                                        label="Titulek části programu"
+                                    ),
+                                ),
+                                (
+                                    "categories",
+                                    wagtail.blocks.ListBlock(
+                                        wagtail.blocks.StructBlock(
+                                            [
+                                                (
+                                                    "name",
+                                                    wagtail.blocks.CharBlock(
+                                                        label="Název"
+                                                    ),
+                                                ),
+                                                (
+                                                    "icon",
+                                                    wagtail.images.blocks.ImageChooserBlock(
+                                                        label="Ikona", 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",
+                                                                    ),
+                                                                ),
+                                                            ]
+                                                        ),
+                                                        label="Jednotlivé bloky programu",
+                                                    ),
+                                                ),
+                                            ]
+                                        ),
+                                        label="Kategorie programu",
+                                    ),
+                                ),
+                            ]
+                        ),
+                    ),
+                ],
+                blank=True,
+                use_json_field=True,
+                verbose_name="Program",
+            ),
         ),
     ]
diff --git a/main/migrations/0085_mainarticlesectiontagged_sectiontag_and_more.py b/main/migrations/0085_mainarticlesectiontagged_sectiontag_and_more.py
index e72bb82137dc0d12baec5bd3af996de2eb4439d9..bb371250acdb60d389edc26981cfb8a3c743984d 100644
--- a/main/migrations/0085_mainarticlesectiontagged_sectiontag_and_more.py
+++ b/main/migrations/0085_mainarticlesectiontagged_sectiontag_and_more.py
@@ -1,53 +1,87 @@
 # Generated by Django 4.1.10 on 2023-12-15 15:37
 
-from django.db import migrations, models
 import django.db.models.deletion
 import modelcluster.fields
+from django.db import migrations, models
 
 
 class Migration(migrations.Migration):
-
     dependencies = [
-        ('main', '0084_alter_mainprogrampage_program'),
+        ("main", "0084_alter_mainprogrampage_program"),
     ]
 
     operations = [
         migrations.CreateModel(
-            name='MainArticleSectionTagged',
+            name="MainArticleSectionTagged",
             fields=[
-                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
+                (
+                    "id",
+                    models.AutoField(
+                        auto_created=True,
+                        primary_key=True,
+                        serialize=False,
+                        verbose_name="ID",
+                    ),
+                ),
             ],
             options={
-                'abstract': False,
+                "abstract": False,
             },
         ),
         migrations.CreateModel(
-            name='SectionTag',
+            name="SectionTag",
             fields=[
-                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
-                ('name', models.CharField(max_length=100, unique=True, verbose_name='name')),
-                ('slug', models.SlugField(allow_unicode=True, max_length=100, unique=True, verbose_name='slug')),
+                (
+                    "id",
+                    models.AutoField(
+                        auto_created=True,
+                        primary_key=True,
+                        serialize=False,
+                        verbose_name="ID",
+                    ),
+                ),
+                (
+                    "name",
+                    models.CharField(max_length=100, unique=True, verbose_name="name"),
+                ),
+                (
+                    "slug",
+                    models.SlugField(
+                        allow_unicode=True,
+                        max_length=100,
+                        unique=True,
+                        verbose_name="slug",
+                    ),
+                ),
             ],
             options={
-                'verbose_name': 'Tag pro rozdělení do sekcí',
-                'verbose_name_plural': 'Tagy pro rozdělení do sekcí',
+                "verbose_name": "Tag pro rozdělení do sekcí",
+                "verbose_name_plural": "Tagy pro rozdělení do sekcí",
             },
         ),
         migrations.RemoveField(
-            model_name='mainarticlepage',
-            name='section_tags',
+            model_name="mainarticlepage",
+            name="section_tags",
         ),
         migrations.DeleteModel(
-            name='MainArticleSectionTag',
+            name="MainArticleSectionTag",
         ),
         migrations.AddField(
-            model_name='mainarticlesectiontagged',
-            name='content_object',
-            field=modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='section_tagged_items', to='main.mainarticlepage'),
+            model_name="mainarticlesectiontagged",
+            name="content_object",
+            field=modelcluster.fields.ParentalKey(
+                on_delete=django.db.models.deletion.CASCADE,
+                related_name="section_tagged_items",
+                to="main.mainarticlepage",
+            ),
         ),
         migrations.AddField(
-            model_name='mainarticlesectiontagged',
-            name='tag',
-            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='%(app_label)s_%(class)s_items', to='main.sectiontag'),
+            model_name="mainarticlesectiontagged",
+            name="tag",
+            field=models.ForeignKey(
+                on_delete=django.db.models.deletion.CASCADE,
+                related_name="%(app_label)s_%(class)s_items",
+                to="main.sectiontag",
+            ),
         ),
     ]
diff --git a/main/migrations/0086_mainarticlepage_section_tags.py b/main/migrations/0086_mainarticlepage_section_tags.py
index 6ef93631a0f801598b3e053f1ecdfcb101f33665..72312b24cacd82ab5c34f27a70f8d03d4f96097a 100644
--- a/main/migrations/0086_mainarticlepage_section_tags.py
+++ b/main/migrations/0086_mainarticlepage_section_tags.py
@@ -1,19 +1,24 @@
 # Generated by Django 4.1.10 on 2023-12-15 15:38
 
-from django.db import migrations
 import modelcluster.contrib.taggit
+from django.db import migrations
 
 
 class Migration(migrations.Migration):
-
     dependencies = [
-        ('main', '0085_mainarticlesectiontagged_sectiontag_and_more'),
+        ("main", "0085_mainarticlesectiontagged_sectiontag_and_more"),
     ]
 
     operations = [
         migrations.AddField(
-            model_name='mainarticlepage',
-            name='section_tags',
-            field=modelcluster.contrib.taggit.ClusterTaggableManager(blank=True, help_text='Používá se například pro oddělení článků do sekce pro eurovolby. Pokud chceš, aby se články zobrazovaly pouze na hlavní stránce, nepřidávej žádné tagy.', through='main.MainArticleSectionTagged', to='main.SectionTag', verbose_name='Tagy pro rozdělení do sekcí'),
+            model_name="mainarticlepage",
+            name="section_tags",
+            field=modelcluster.contrib.taggit.ClusterTaggableManager(
+                blank=True,
+                help_text="Používá se například pro oddělení článků do sekce pro eurovolby. Pokud chceš, aby se články zobrazovaly pouze na hlavní stránce, nepřidávej žádné tagy.",
+                through="main.MainArticleSectionTagged",
+                to="main.SectionTag",
+                verbose_name="Tagy pro rozdělení do sekcí",
+            ),
         ),
     ]
diff --git a/main/migrations/0087_mainhomepage_main_section_tag.py b/main/migrations/0087_mainhomepage_main_section_tag.py
index ddd23c338a7ca5667810fc07a013b9dce862a582..b808d2c02ffaf9e612a2d4e31c6076ff22e2428b 100644
--- a/main/migrations/0087_mainhomepage_main_section_tag.py
+++ b/main/migrations/0087_mainhomepage_main_section_tag.py
@@ -1,19 +1,25 @@
 # Generated by Django 4.1.10 on 2023-12-15 15:48
 
-from django.db import migrations, models
 import django.db.models.deletion
+from django.db import migrations, models
 
 
 class Migration(migrations.Migration):
-
     dependencies = [
-        ('main', '0086_mainarticlepage_section_tags'),
+        ("main", "0086_mainarticlepage_section_tags"),
     ]
 
     operations = [
         migrations.AddField(
-            model_name='mainhomepage',
-            name='main_section_tag',
-            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='main.sectiontag', verbose_name='Tag pro rozdělení - Hlavní stránka'),
+            model_name="mainhomepage",
+            name="main_section_tag",
+            field=models.ForeignKey(
+                blank=True,
+                null=True,
+                on_delete=django.db.models.deletion.PROTECT,
+                related_name="+",
+                to="main.sectiontag",
+                verbose_name="Tag pro rozdělení - Hlavní stránka",
+            ),
         ),
     ]
diff --git a/main/migrations/0088_alter_mainhomepage_europarl_section_tag.py b/main/migrations/0088_alter_mainhomepage_europarl_section_tag.py
index 766c58c43314cd8f675d1f7eaec2e6aed75c8725..6c599cc6522c04490c70a5e535566076b6c5b5da 100644
--- a/main/migrations/0088_alter_mainhomepage_europarl_section_tag.py
+++ b/main/migrations/0088_alter_mainhomepage_europarl_section_tag.py
@@ -1,19 +1,25 @@
 # Generated by Django 4.1.10 on 2023-12-15 16:19
 
-from django.db import migrations, models
 import django.db.models.deletion
+from django.db import migrations, models
 
 
 class Migration(migrations.Migration):
-
     dependencies = [
-        ('main', '0087_mainhomepage_main_section_tag'),
+        ("main", "0087_mainhomepage_main_section_tag"),
     ]
 
     operations = [
         migrations.AlterField(
-            model_name='mainhomepage',
-            name='europarl_section_tag',
-            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='main.sectiontag', verbose_name='Tag pro rozdělení - Eurovolby'),
+            model_name="mainhomepage",
+            name="europarl_section_tag",
+            field=models.ForeignKey(
+                blank=True,
+                null=True,
+                on_delete=django.db.models.deletion.PROTECT,
+                related_name="+",
+                to="main.sectiontag",
+                verbose_name="Tag pro rozdělení - Eurovolby",
+            ),
         ),
     ]
diff --git a/main/models.py b/main/models.py
index 9b7d42997cf28d0916b9697140929f9fa8c45b13..a1a26f330f6932f01763bdd167aca363fe4bc7b6 100644
--- a/main/models.py
+++ b/main/models.py
@@ -10,7 +10,7 @@ from django.shortcuts import render
 from django.utils import timezone
 from modelcluster.contrib.taggit import ClusterTaggableManager
 from modelcluster.fields import ParentalKey
-from taggit.models import TaggedItemBase, TagBase
+from taggit.models import TagBase, TaggedItemBase
 from wagtail.admin.panels import (
     FieldPanel,
     HelpPanel,
@@ -19,7 +19,7 @@ from wagtail.admin.panels import (
     PageChooserPanel,
     TabbedInterface,
 )
-from wagtail.blocks import RichTextBlock, PageChooserBlock
+from wagtail.blocks import PageChooserBlock, RichTextBlock
 from wagtail.contrib.routable_page.models import RoutablePageMixin, route
 from wagtail.fields import RichTextField, StreamField
 from wagtail.models import Page
@@ -176,7 +176,7 @@ class MainHomePage(
                 FieldPanel("europarl_section_tag"),
                 FieldPanel("main_section_tag"),
             ],
-            heading="Tagy"
+            heading="Tagy",
         ),
     ]
 
@@ -223,8 +223,7 @@ class MainHomePage(
         context = super().get_context(request, args, kwargs)
 
         context["article_data_list"] = (
-            MainArticlePage.objects
-            .filter(
+            MainArticlePage.objects.filter(
                 models.Q(section_tags__isnull=True)
                 | models.Q(section_tags=self.main_section_tag)
             )
@@ -233,9 +232,7 @@ class MainHomePage(
         )
 
         articles_for_article_section = self.materialize_shared_articles_query(
-            self.append_all_shared_articles_query(
-                MainArticlePage.objects.all()
-            )[:8]
+            self.append_all_shared_articles_query(MainArticlePage.objects.all())[:8]
         )
         context["article_main"] = (
             articles_for_article_section[0] if articles_for_article_section else None
@@ -409,8 +406,7 @@ class MainArticlesPage(
 
     def get_article_data_list(self, months_back: int = 1):
         target_date_list = (
-            MainArticlePage.objects
-            .order_by("-date")
+            MainArticlePage.objects.order_by("-date")
             .live()
             .values_list("date", flat=True)
         )
@@ -450,7 +446,9 @@ class MainArticlesPage(
         if get_articles:
             article_timeline_list = self.get_article_data_list(1)
             ctx["article_timeline_list"] = article_timeline_list
-            ctx["show_next_timeline_articles"] = MainArticlePage.objects.live().count() > len(article_timeline_list)
+            ctx[
+                "show_next_timeline_articles"
+            ] = MainArticlePage.objects.live().count() > len(article_timeline_list)
 
             article_list = self.append_all_shared_articles_query(
                 MainArticlePage.objects.all()
@@ -485,13 +483,12 @@ class MainArticlesPage(
         context = {"article_timeline_list": article_list}
         data = {
             "html": render(
-                request, "main/includes/organisms/articles/articles_timeline_list.html", context
+                request,
+                "main/includes/organisms/articles/articles_timeline_list.html",
+                context,
             ).content.decode("utf-8"),
             "last_article": article_list[-1]
-            == MainArticlePage.objects.all()
-            .order_by("-date")
-            .live()
-            .last(),
+            == MainArticlePage.objects.all().order_by("-date").live().last(),
         }
         return JsonResponse(data=data, safe=False)
 
@@ -561,7 +558,7 @@ class MainArticlesPage(
         return {
             "month_number": date_obj.month,
             "month_text": MONTH_NAMES[date_obj.month - 1],
-            "articles": []
+            "articles": [],
         }
 
 
@@ -599,7 +596,10 @@ class MainArticlePage(
     ### FIELDS
     content = StreamField(
         [
-            ("text", RichTextBlock(template="main/includes/atoms/text/prose_richtext.html")),
+            (
+                "text",
+                RichTextBlock(template="main/includes/atoms/text/prose_richtext.html"),
+            ),
             ("quote", blocks.ArticleQuoteBlock()),
             ("download", blocks.ArticleDownloadBlock()),
         ],
@@ -616,9 +616,7 @@ class MainArticlePage(
         verbose_name="Stránka autora (osoby)",
     )
     tags = ClusterTaggableManager(
-        through=MainArticleTag,
-        related_name="tagged_articles",
-        blank=True
+        through=MainArticleTag, related_name="tagged_articles", blank=True
     )
     shared_tags = ClusterTaggableManager(
         verbose_name="Tagy pro sdílení mezi weby",
@@ -789,7 +787,11 @@ class MainPersonPage(
         "Pozice/povolání", max_length=200, blank=True, null=True
     )
     primary_group = models.CharField(
-        "Kategorie", help_text="např. 'Europarlament' nebo 'Sněmovna'", max_length=32, blank=True, null=True
+        "Kategorie",
+        help_text="např. 'Europarlament' nebo 'Sněmovna'",
+        max_length=32,
+        blank=True,
+        null=True,
     )
     perex = models.TextField()
     text = RichTextField()
@@ -805,7 +807,10 @@ class MainPersonPage(
 
     related_people = StreamField(
         [
-            ("person", PageChooserBlock(page_type="main.MainPersonPage", label="Detail osoby"))
+            (
+                "person",
+                PageChooserBlock(page_type="main.MainPersonPage", label="Detail osoby"),
+            )
         ],
         verbose_name="Další lidé",
         blank=True,
@@ -841,9 +846,11 @@ class MainPersonPage(
     def get_context(self, request) -> dict:
         context = super().get_context(request)
 
-        context["article_page_list"] = MainArticlePage.objects.filter(
-            author_page=self.id
-        ).order_by("-date").live()[:3]
+        context["article_page_list"] = (
+            MainArticlePage.objects.filter(author_page=self.id)
+            .order_by("-date")
+            .live()[:3]
+        )
 
         return context
 
diff --git a/main/static/main/pirati-ui.svg b/main/static/main/pirati-ui.svg
index ffc20eccf43c3d89476c0124b2475cd314fe2ecd..c6e3a71ad07f5229dda5d69c9289dc5ce339be12 100644
--- a/main/static/main/pirati-ui.svg
+++ b/main/static/main/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>
diff --git a/main/templates/main/includes/atoms/containers/container__medium.html b/main/templates/main/includes/atoms/containers/container__medium.html
index 5b31707616971183be117411a47bfd34f4911551..08b46815724a8d9776df39cf2be7d598ff199249 100644
--- a/main/templates/main/includes/atoms/containers/container__medium.html
+++ b/main/templates/main/includes/atoms/containers/container__medium.html
@@ -5,4 +5,4 @@
     mpus purus at lorem. Etiam neque. Cras pede libmpus purus at lorem. Etiam neque. Cras pede libmpus purus at lorem. Etiam neque. Cras pede lib
     mpus purus at lorem. Etiam neque. Cras pede libmpus purus at lorem. Etiam neque. Cras pede libmpus purus at lorem. Etiam neque. Cras pede lib
     bmpus purus at lorem. Etiam neque. Cras pede lib</p>
-</div>
\ No newline at end of file
+</div>
diff --git a/main/templates/main/includes/atoms/containers/container__narrow.html b/main/templates/main/includes/atoms/containers/container__narrow.html
index 21ccdbb8c1b48baa66f3d848503a67e44f567743..69e9311a94e0d2ca653d2b5b39f80a351e3d1a75 100644
--- a/main/templates/main/includes/atoms/containers/container__narrow.html
+++ b/main/templates/main/includes/atoms/containers/container__narrow.html
@@ -6,4 +6,4 @@
   mpus purus at lorem. Etiam neque. Cras pede lib
   mpus purus at lorem. Etiam neque. Cras pede libmpus purus at lorem. Etiam neque. Cras pede lib mpus purus at lorem. Etiam neque. Cras pede lib mpus purus at lorem. Etiam neque. Cras pede lib
   </p>
-</div>
\ No newline at end of file
+</div>
diff --git a/main/templates/main/includes/atoms/containers/container__wide.html b/main/templates/main/includes/atoms/containers/container__wide.html
index a172c99d3a9f6505f3cd8084192f0baa6a1cdad1..65335723b4578ab7a4a492cb725d1ca79c47e797 100644
--- a/main/templates/main/includes/atoms/containers/container__wide.html
+++ b/main/templates/main/includes/atoms/containers/container__wide.html
@@ -6,4 +6,4 @@
   mpus purus at lorem. Etiam neque. Cras pede lib
   mpus purus at lorem. Etiam neque. Cras pede libmpus purus at lorem. Etiam neque. Cras pede lib mpus purus at lorem. Etiam neque. Cras pede lib mpus purus at lorem. Etiam neque. Cras pede lib
   </p>
-</div>
\ No newline at end of file
+</div>
diff --git a/main/templates/main/includes/atoms/grids/grids.html b/main/templates/main/includes/atoms/grids/grids.html
index 9a3107ad49837c0c1fc04d49ff85dab736b001a6..2f1761d798b4086f7675678986806a8e6ba8c95c 100644
--- a/main/templates/main/includes/atoms/grids/grids.html
+++ b/main/templates/main/includes/atoms/grids/grids.html
@@ -109,4 +109,4 @@
       </div>
     </div>
   </div>
-</div>
\ No newline at end of file
+</div>
diff --git a/main/templates/main/includes/atoms/text/font_sizes.html b/main/templates/main/includes/atoms/text/font_sizes.html
index 6d0f25372a4540bfea31474ceaa2e6a50c43ec09..92d94a73c03cd9495105e65030eca1b1944ac8ed 100644
--- a/main/templates/main/includes/atoms/text/font_sizes.html
+++ b/main/templates/main/includes/atoms/text/font_sizes.html
@@ -12,4 +12,4 @@
 <span class="text-base">base size</span>
 <span class="text-sm">sm size</span>
 <span class="text-xs">xs size</span>
-</div>
\ No newline at end of file
+</div>
diff --git a/main/templates/main/includes/atoms/text/headings.html b/main/templates/main/includes/atoms/text/headings.html
index 1f03333c81ebfccba1ecd0e5a103104135fc8842..98aafee77620187f4edaf1ed77bdb92a71098fe2 100644
--- a/main/templates/main/includes/atoms/text/headings.html
+++ b/main/templates/main/includes/atoms/text/headings.html
@@ -13,4 +13,4 @@
     <h1 class="head-sm">{{ title }}</h1>
     <h1 class="head-xs">{{ title }}</h1>
   </div>
-</div>
\ No newline at end of file
+</div>
diff --git a/main/templates/main/includes/atoms/text/paragraph.html b/main/templates/main/includes/atoms/text/paragraph.html
index 6545c03925781ce4b54edd52772995c174d78889..1eeeb0597d0918027f8d6b0034e3462f5d306ea7 100644
--- a/main/templates/main/includes/atoms/text/paragraph.html
+++ b/main/templates/main/includes/atoms/text/paragraph.html
@@ -1 +1 @@
-<p>{{ text }}</p>
\ No newline at end of file
+<p>{{ text }}</p>
diff --git a/main/templates/main/includes/atoms/text/prose.html b/main/templates/main/includes/atoms/text/prose.html
index 8a2ea0b6da6ec98e82796c0694d0449a812d1aa3..a389a70e1610008cbb11139bc71b70012fe46d6c 100644
--- a/main/templates/main/includes/atoms/text/prose.html
+++ b/main/templates/main/includes/atoms/text/prose.html
@@ -1,3 +1,3 @@
 <div class="prose">
   {% include 'main/includes/atoms/text/paragraph.html' with text=text %}
-</div> 
+</div>
diff --git a/main/templates/main/includes/molecules/blocks/message_block.html b/main/templates/main/includes/molecules/blocks/message_block.html
index 02962e075440131b0f72cbe60eb10e76ea769916..dd0fad0c30991dec24fa3c80f1374a59836aa0f5 100644
--- a/main/templates/main/includes/molecules/blocks/message_block.html
+++ b/main/templates/main/includes/molecules/blocks/message_block.html
@@ -1,6 +1,6 @@
 <div
     class="px-5 py-4 text-center relative z-30 {% if type == "debug" %}bg-grey-200{% elif type == "info" %}bg-blue-300 text-white{% elif type == "success" %}bg-green-400 text-white{% elif type == "warning" %}bg-yellow-300{% elif type == "error" %}bg-red-600 text-white{% endif %} {% if is_last_child %}drop-shadow-lg{% endif %}"
->    
+>
     <i
         class="ico--{% if type == "debug" %}cog{% elif type == "info" %}info{% elif type == "success" %}checkmark{% elif type == "warning" %}warning{% elif type == "error" %}cross{% endif %} mr-2"
     ></i>