From dc78acba199b7c16946ea07798ed72ba790e3fe5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jan=20Bedna=C5=99=C3=ADk?= <jan.bednarik@gmail.com> Date: Fri, 30 Apr 2021 01:21:17 +0200 Subject: [PATCH] donate: Get subpage URL refactoring --- donate/models.py | 16 +++++----------- shared/utils.py | 8 ++++++++ 2 files changed, 13 insertions(+), 11 deletions(-) create mode 100644 shared/utils.py diff --git a/donate/models.py b/donate/models.py index 1eec15b5..f4a78aa0 100644 --- a/donate/models.py +++ b/donate/models.py @@ -21,6 +21,7 @@ from wagtail.images.edit_handlers import ImageChooserPanel from wagtailmetadata.models import MetadataPageMixin from shared.models import SubpageMixin +from shared.utils import get_subpage_url from tuning import help from .forms import DonateForm @@ -73,13 +74,6 @@ class DonateFormAmountsMixin(models.Model): abstract = True -def get_url(page, dest_page_type): - try: - return page.get_children().type(dest_page_type).live().first().get_url() - except (Page.DoesNotExist, AttributeError): - return "#" - - class DonateHomePage(DonateFormMixin, DonateFormAmountsMixin, Page, MetadataPageMixin): ### FIELDS @@ -198,15 +192,15 @@ class DonateHomePage(DonateFormMixin, DonateFormAmountsMixin, Page, MetadataPage @property def info_page_url(self): - return get_url(self, DonateInfoPage) + return get_subpage_url(self, DonateInfoPage) @property def projects_page_url(self): - return get_url(self, DonateProjectIndexPage) + return get_subpage_url(self, DonateProjectIndexPage) @property def regions_page_url(self): - return get_url(self, DonateRegionIndexPage) + return get_subpage_url(self, DonateRegionIndexPage) @property def has_projects(self): @@ -332,7 +326,7 @@ class DonateRegionPage( @property def targeted_donations_page_url(self): - return get_url(self, DonateTargetedDonationsPage) + return get_subpage_url(self, DonateTargetedDonationsPage) @property def has_targeted_donations(self): diff --git a/shared/utils.py b/shared/utils.py new file mode 100644 index 00000000..f4e3713c --- /dev/null +++ b/shared/utils.py @@ -0,0 +1,8 @@ +from wagtail.core.models import Page + + +def get_subpage_url(page, dest_page_type): + try: + return page.get_descendants().type(dest_page_type).live().first().get_url() + except (Page.DoesNotExist, AttributeError): + return "#" -- GitLab