diff --git a/district/migrations/0091_districtinteractiveprogrampage.py b/district/migrations/0091_districtinteractiveprogrampage.py
deleted file mode 100644
index 30e1909756b62e8ad53a997dcb4beb122b662e87..0000000000000000000000000000000000000000
--- a/district/migrations/0091_districtinteractiveprogrampage.py
+++ /dev/null
@@ -1,33 +0,0 @@
-# Generated by Django 4.0.4 on 2022-06-29 16:44
-
-from django.db import migrations, models
-import django.db.models.deletion
-import shared.models
-import wagtail.core.blocks
-import wagtail.core.fields
-import wagtailmetadata.models
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('wagtailimages', '0023_add_choose_permissions'),
-        ('wagtailcore', '0066_collection_management_permissions'),
-        ('district', '0090_districtgeofeaturecollectionpage_promoted_block_title_and_more'),
-    ]
-
-    operations = [
-        migrations.CreateModel(
-            name='DistrictInteractiveProgramPage',
-            fields=[
-                ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.page')),
-                ('perex', models.TextField(blank=True, verbose_name='Perex')),
-                ('content', wagtail.core.fields.StreamField([('interactive_program_block', wagtail.core.blocks.StructBlock([('headline', wagtail.core.blocks.CharBlock(label='Titulek bloku', required=True)), ('perex', wagtail.core.blocks.TextBlock(label='Krátký text pod nadpisem', required=True)), ('program_items', wagtail.core.blocks.ListBlock(wagtail.core.blocks.StructBlock([('title', wagtail.core.blocks.CharBlock(label='Název', required=True)), ('content', wagtail.core.blocks.RichTextBlock(label='Obsah', required=True))]), label='Seznam bodů', required=True))]))], verbose_name='obsah stránky')),
-                ('search_image', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.image', verbose_name='Search image')),
-            ],
-            options={
-                'verbose_name': 'Program',
-            },
-            bases=(shared.models.SubpageMixin, wagtailmetadata.models.WagtailImageMetadataMixin, 'wagtailcore.page', models.Model),
-        ),
-    ]
diff --git a/district/migrations/0092_alter_districtinteractiveprogrampage_options.py b/district/migrations/0092_alter_districtinteractiveprogrampage_options.py
deleted file mode 100644
index 79084518ea910fa7064d441f9c81144c209214ae..0000000000000000000000000000000000000000
--- a/district/migrations/0092_alter_districtinteractiveprogrampage_options.py
+++ /dev/null
@@ -1,17 +0,0 @@
-# Generated by Django 4.0.4 on 2022-06-29 16:48
-
-from django.db import migrations
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('district', '0091_districtinteractiveprogrampage'),
-    ]
-
-    operations = [
-        migrations.AlterModelOptions(
-            name='districtinteractiveprogrampage',
-            options={'verbose_name': 'Interaktivní program'},
-        ),
-    ]
diff --git a/district/migrations/0092_districtinteractiveprogrampage.py b/district/migrations/0092_districtinteractiveprogrampage.py
new file mode 100644
index 0000000000000000000000000000000000000000..a5692bb1dec3c28bbd68e356cae965edb5361fec
--- /dev/null
+++ b/district/migrations/0092_districtinteractiveprogrampage.py
@@ -0,0 +1,147 @@
+# Generated by Django 4.0.4 on 2022-07-11 18:51
+
+import django.db.models.deletion
+import wagtail.core.blocks
+import wagtail.core.fields
+import wagtailmetadata.models
+from django.db import migrations, models
+
+import shared.models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ("wagtailimages", "0023_add_choose_permissions"),
+        ("wagtailcore", "0066_collection_management_permissions"),
+        ("district", "0091_alter_districthomepage_subheader_and_more"),
+    ]
+
+    operations = [
+        migrations.CreateModel(
+            name="DistrictInteractiveProgramPage",
+            fields=[
+                (
+                    "page_ptr",
+                    models.OneToOneField(
+                        auto_created=True,
+                        on_delete=django.db.models.deletion.CASCADE,
+                        parent_link=True,
+                        primary_key=True,
+                        serialize=False,
+                        to="wagtailcore.page",
+                    ),
+                ),
+                ("perex", models.TextField(blank=True, verbose_name="Perex")),
+                (
+                    "content",
+                    wagtail.core.fields.StreamField(
+                        [
+                            (
+                                "interactive_program_block",
+                                wagtail.core.blocks.StructBlock(
+                                    [
+                                        (
+                                            "name",
+                                            wagtail.core.blocks.CharBlock(
+                                                label="Název části programu",
+                                                required=True,
+                                            ),
+                                        ),
+                                        (
+                                            "heading",
+                                            wagtail.core.blocks.CharBlock(
+                                                label="Nadpis", required=True
+                                            ),
+                                        ),
+                                        (
+                                            "description",
+                                            wagtail.core.blocks.RichTextBlock(
+                                                blank=True,
+                                                label="Krátký popis, BEZ BODŮ",
+                                                required=False,
+                                            ),
+                                        ),
+                                        (
+                                            "icon",
+                                            wagtail.core.blocks.ChoiceBlock(
+                                                choices=[
+                                                    (
+                                                        "verejne-sluzby",
+                                                        "Veřejné služby",
+                                                    ),
+                                                    (
+                                                        "zdravotni-pece",
+                                                        "Zdravotní péče",
+                                                    ),
+                                                    ("sport", "Sport"),
+                                                    (
+                                                        "socialni-politika",
+                                                        "Sociální politika",
+                                                    ),
+                                                    (
+                                                        "aktivni-verejnost",
+                                                        "Aktivní veřejnost",
+                                                    ),
+                                                    ("priroda", "Příroda"),
+                                                    ("vzdelavani", "Vzdělávání"),
+                                                    ("kultura", "Kultura"),
+                                                    (
+                                                        "otevrena-radnice",
+                                                        "Otevřená radnice",
+                                                    ),
+                                                    ("cestovni-ruch", "Cestovní ruch"),
+                                                    ("doprava", "Doprava"),
+                                                    ("bydleni", "Bydlení"),
+                                                ],
+                                                label="Ikona",
+                                            ),
+                                        ),
+                                        (
+                                            "program_items",
+                                            wagtail.core.blocks.ListBlock(
+                                                wagtail.core.blocks.StructBlock(
+                                                    [
+                                                        (
+                                                            "content",
+                                                            wagtail.core.blocks.RichTextBlock(
+                                                                label="Obsah",
+                                                                required=True,
+                                                            ),
+                                                        )
+                                                    ]
+                                                ),
+                                                label="Seznam bodů",
+                                                required=True,
+                                            ),
+                                        ),
+                                    ]
+                                ),
+                            )
+                        ],
+                        verbose_name="Části programu",
+                    ),
+                ),
+                (
+                    "search_image",
+                    models.ForeignKey(
+                        blank=True,
+                        null=True,
+                        on_delete=django.db.models.deletion.SET_NULL,
+                        related_name="+",
+                        to="wagtailimages.image",
+                        verbose_name="Search image",
+                    ),
+                ),
+            ],
+            options={
+                "verbose_name": "Interaktivní program",
+            },
+            bases=(
+                shared.models.SubpageMixin,
+                wagtailmetadata.models.WagtailImageMetadataMixin,
+                "wagtailcore.page",
+                models.Model,
+            ),
+        ),
+    ]
diff --git a/district/migrations/0093_alter_districtinteractiveprogrampage_content.py b/district/migrations/0093_alter_districtinteractiveprogrampage_content.py
deleted file mode 100644
index a0661e5022dba8db15489753fe2e9c69eca43738..0000000000000000000000000000000000000000
--- a/district/migrations/0093_alter_districtinteractiveprogrampage_content.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# Generated by Django 4.0.4 on 2022-07-01 15:55
-
-from django.db import migrations
-import wagtail.core.blocks
-import wagtail.core.fields
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('district', '0092_alter_districtinteractiveprogrampage_options'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='districtinteractiveprogrampage',
-            name='content',
-            field=wagtail.core.fields.StreamField([('interactive_program_block', wagtail.core.blocks.StructBlock([('name', wagtail.core.blocks.CharBlock(label='Název části programu', required=True)), ('heading', wagtail.core.blocks.RichTextBlock(label='Nadpis, případně krátký popis', required=True)), ('program_items', wagtail.core.blocks.ListBlock(wagtail.core.blocks.StructBlock([('title', wagtail.core.blocks.CharBlock(label='Název', required=True)), ('content', wagtail.core.blocks.RichTextBlock(label='Obsah', required=True))]), label='Seznam bodů', required=True))]))], verbose_name='Části programu'),
-        ),
-    ]
diff --git a/district/migrations/0094_alter_districtinteractiveprogrampage_content.py b/district/migrations/0094_alter_districtinteractiveprogrampage_content.py
deleted file mode 100644
index 21c47f12717cd3e1adf80b2d8a34c3bebb1e8a3e..0000000000000000000000000000000000000000
--- a/district/migrations/0094_alter_districtinteractiveprogrampage_content.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# Generated by Django 4.0.4 on 2022-07-01 16:01
-
-from django.db import migrations
-import wagtail.core.blocks
-import wagtail.core.fields
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('district', '0093_alter_districtinteractiveprogrampage_content'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='districtinteractiveprogrampage',
-            name='content',
-            field=wagtail.core.fields.StreamField([('interactive_program_block', wagtail.core.blocks.StructBlock([('name', wagtail.core.blocks.CharBlock(label='Název části programu', required=True)), ('heading', wagtail.core.blocks.CharBlock(label='Nadpis', required=True)), ('description', wagtail.core.blocks.RichTextBlock(blank=True, label='Krátký popis, BEZ BODŮ', required=False)), ('program_items', wagtail.core.blocks.ListBlock(wagtail.core.blocks.StructBlock([('content', wagtail.core.blocks.RichTextBlock(label='Obsah', required=True))]), label='Seznam bodů', required=True))]))], verbose_name='Části programu'),
-        ),
-    ]
diff --git a/district/migrations/0095_alter_districtinteractiveprogrampage_content.py b/district/migrations/0095_alter_districtinteractiveprogrampage_content.py
deleted file mode 100644
index 84e32695cde2097e185d68a8de5cf5da0ae6369c..0000000000000000000000000000000000000000
--- a/district/migrations/0095_alter_districtinteractiveprogrampage_content.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# Generated by Django 4.0.4 on 2022-07-01 18:09
-
-from django.db import migrations
-import wagtail.core.blocks
-import wagtail.core.fields
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('district', '0094_alter_districtinteractiveprogrampage_content'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='districtinteractiveprogrampage',
-            name='content',
-            field=wagtail.core.fields.StreamField([('interactive_program_block', wagtail.core.blocks.StructBlock([('name', wagtail.core.blocks.CharBlock(label='Název části programu', required=True)), ('heading', wagtail.core.blocks.CharBlock(label='Nadpis', required=True)), ('description', wagtail.core.blocks.RichTextBlock(blank=True, label='Krátký popis, BEZ BODŮ', required=False)), ('icon', wagtail.core.blocks.ChoiceBlock(choices=[('verejne-sluzby', 'Veřejné služby'), ('zdratovni-pece', 'Zdravoní péče'), ('sport', 'Sport'), ('socialni-politika', 'Sociální politika'), ('aktivni-verejnost', 'Aktivní veřejnost'), ('priroda', 'Příroda'), ('vzdelavani', 'Vzdělávání'), ('kultura', 'Kultura'), ('otevrena-radnice', 'Otevřená radnice'), ('cestovni-ruch', 'Cestovní ruch'), ('doprava', 'Doprava'), ('bydleni', 'Bydlení')], label='Ikona')), ('program_items', wagtail.core.blocks.ListBlock(wagtail.core.blocks.StructBlock([('content', wagtail.core.blocks.RichTextBlock(label='Obsah', required=True))]), label='Seznam bodů', required=True))]))], verbose_name='Části programu'),
-        ),
-    ]
diff --git a/district/migrations/0096_alter_districtinteractiveprogrampage_content.py b/district/migrations/0096_alter_districtinteractiveprogrampage_content.py
deleted file mode 100644
index f3c2dc818b7a481c8d4dd64c401f7829f2511e5d..0000000000000000000000000000000000000000
--- a/district/migrations/0096_alter_districtinteractiveprogrampage_content.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# Generated by Django 4.0.4 on 2022-07-03 14:27
-
-from django.db import migrations
-import wagtail.core.blocks
-import wagtail.core.fields
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('district', '0095_alter_districtinteractiveprogrampage_content'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='districtinteractiveprogrampage',
-            name='content',
-            field=wagtail.core.fields.StreamField([('interactive_program_block', wagtail.core.blocks.StructBlock([('name', wagtail.core.blocks.CharBlock(label='Název části programu', required=True)), ('heading', wagtail.core.blocks.CharBlock(label='Nadpis', required=True)), ('description', wagtail.core.blocks.RichTextBlock(blank=True, label='Krátký popis, BEZ BODŮ', required=False)), ('icon', wagtail.core.blocks.ChoiceBlock(choices=[('verejne-sluzby', 'Veřejné služby'), ('zdratovni-pece', 'Zdravoní péče'), ('sport', 'Sport'), ('socialni-politika', 'Sociální politika'), ('aktivni-verejnost', 'Aktivní veřejnost'), ('priroda', 'Příroda'), ('vzdelavani', 'Vzdělávání'), ('kultura', 'Kultura'), ('otevrena-radnice', 'Otevřená radnice'), ('cestovni-ruch', 'Cestovní ruch'), ('doprava', 'Doprava'), ('bydleni', 'Bydlení')], label='Ikona'))]))], verbose_name='Části programu'),
-        ),
-    ]
diff --git a/district/migrations/0097_alter_districtinteractiveprogrampage_content.py b/district/migrations/0097_alter_districtinteractiveprogrampage_content.py
deleted file mode 100644
index d1db33e8eef14c375b8daf13be5f15e75fd562d0..0000000000000000000000000000000000000000
--- a/district/migrations/0097_alter_districtinteractiveprogrampage_content.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# Generated by Django 4.0.4 on 2022-07-03 14:34
-
-from django.db import migrations
-import wagtail.core.blocks
-import wagtail.core.fields
-
-
-class Migration(migrations.Migration):
-
-    dependencies = [
-        ('district', '0096_alter_districtinteractiveprogrampage_content'),
-    ]
-
-    operations = [
-        migrations.AlterField(
-            model_name='districtinteractiveprogrampage',
-            name='content',
-            field=wagtail.core.fields.StreamField([('interactive_program_block', wagtail.core.blocks.StructBlock([('name', wagtail.core.blocks.CharBlock(label='Název části programu', required=True)), ('heading', wagtail.core.blocks.CharBlock(label='Nadpis', required=True)), ('description', wagtail.core.blocks.RichTextBlock(blank=True, label='Krátký popis, BEZ BODŮ', required=False)), ('icon', wagtail.core.blocks.ChoiceBlock(choices=[('verejne-sluzby', 'Veřejné služby'), ('zdratovni-pece', 'Zdravoní péče'), ('sport', 'Sport'), ('socialni-politika', 'Sociální politika'), ('aktivni-verejnost', 'Aktivní veřejnost'), ('priroda', 'Příroda'), ('vzdelavani', 'Vzdělávání'), ('kultura', 'Kultura'), ('otevrena-radnice', 'Otevřená radnice'), ('cestovni-ruch', 'Cestovní ruch'), ('doprava', 'Doprava'), ('bydleni', 'Bydlení')], label='Ikona')), ('program_items', wagtail.core.blocks.ListBlock(wagtail.core.blocks.StructBlock([('content', wagtail.core.blocks.RichTextBlock(label='Obsah', required=True))]), label='Seznam bodů', required=True))]))], verbose_name='Části programu'),
-        ),
-    ]