diff --git a/donate/models.py b/donate/models.py index f4a78aa0a472a354ae298672281ab50310093f1c..895d46088414569650809f5a4b3d3ab150d6b897 100644 --- a/donate/models.py +++ b/donate/models.py @@ -1,3 +1,5 @@ +from functools import cached_property + from django.conf import settings from django.core.cache import cache from django.core.paginator import EmptyPage, PageNotAnInteger, Paginator @@ -190,19 +192,19 @@ class DonateHomePage(DonateFormMixin, DonateFormAmountsMixin, Page, MetadataPage def root_page(self): return self - @property + @cached_property def info_page_url(self): return get_subpage_url(self, DonateInfoPage) - @property + @cached_property def projects_page_url(self): return get_subpage_url(self, DonateProjectIndexPage) - @property + @cached_property def regions_page_url(self): return get_subpage_url(self, DonateRegionIndexPage) - @property + @cached_property def has_projects(self): return self.get_descendants().type(DonateProjectPage).live().exists() @@ -324,11 +326,11 @@ class DonateRegionPage( def get_meta_title(self): return self.seo_title or self.main_title - @property + @cached_property def targeted_donations_page_url(self): return get_subpage_url(self, DonateTargetedDonationsPage) - @property + @cached_property def has_targeted_donations(self): return self.get_descendants().type(DonateTargetedDonationsPage).live().exists() @@ -603,7 +605,7 @@ class DonateInfoPage(DonateFormMixin, Page, SubpageMixin, MetadataPageMixin): verbose_name = "Infostránka s formulářem" # use portal_project_id from home page - @property + @cached_property def portal_project_id(self): return self.get_parent().specific.portal_project_id