diff --git a/donate/models.py b/donate/models.py index 1eec15b590dc8c70d6e23a4aded4a2c99db55931..f4a78aa0a472a354ae298672281ab50310093f1c 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 0000000000000000000000000000000000000000..f4e3713c0a84cd7b949afaf6f9eee723a1b9afa3 --- /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 "#"