diff --git a/district/models.py b/district/models.py
index 7c026ad5d299ed6dc41909e3a6cd5193bf081458..ef3a38e409bcde5058a9b460cc5bbdc8e5198c9c 100644
--- a/district/models.py
+++ b/district/models.py
@@ -1,5 +1,6 @@
 import json
 
+from django.http import HttpResponseRedirect
 from django.core.cache import cache
 from django.core.exceptions import ValidationError
 from django.db import models
@@ -1099,25 +1100,33 @@ class DistrictGeoFeatureDetailPage(
 # Legacy models required for migrations
 
 
-class DistrictElectionRootPage(Page):
+class LegacyProgramPageMixin(Page):
+    def serve(self, request, *args, **kwargs):
+        return HttpResponseRedirect("/programy/")
+
+    class Meta:
+        abstract = True
+
+
+class DistrictElectionRootPage(LegacyProgramPageMixin, Page):
     pass
 
 
-class DistrictProgramPage(Page):
+class DistrictProgramPage(LegacyProgramPageMixin, Page):
     pass
 
 
-class DistrictInteractiveProgramPage(Page):
+class DistrictInteractiveProgramPage(LegacyProgramPageMixin, Page):
     pass
 
 
-class DistrictElectionCampaignPage(Page):
+class DistrictElectionCampaignPage(LegacyProgramPageMixin, Page):
     pass
 
 
-class DistrictElectionProgramPage(Page):
+class DistrictElectionProgramPage(LegacyProgramPageMixin, Page):
     pass
 
 
-class DistrictPostElectionStrategyPage(Page):
+class DistrictPostElectionStrategyPage(LegacyProgramPageMixin, Page):
     pass
diff --git a/shared/models/main.py b/shared/models/main.py
index c708723b7e8ff2134145b92848f20a02a4c47c89..2d1a58ff6ff3a8f7dc597ceefbbb3245cb6dc3ff 100644
--- a/shared/models/main.py
+++ b/shared/models/main.py
@@ -250,7 +250,11 @@ class PageInMenuMixin(Page):
         menu_iterator = (
             instance.root_page.menu
             if hasattr(instance, "root_page")
-            else instance.menu
+            else (
+                instance.menu
+                if hasattr(instance, "menu")
+                else []
+            )
         )
 
         for menu in menu_iterator:
@@ -268,9 +272,10 @@ class PageInMenuMixin(Page):
                     if item["page"].id == instance.id:
                         return menu.value["title"]
 
-        parent = instance.get_parent().specific
+        parent = instance.get_parent()
 
         if parent:
+            parent = parent.specific
             return self.get_menu_title(parent)
 
         return self.title