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