diff --git a/website/blog/models.py b/website/blog/models.py index 4069fd1..b223b13 100644 --- a/website/blog/models.py +++ b/website/blog/models.py @@ -82,6 +82,10 @@ class BlogPostTagPage(BaseListingPage): subpage_types: list[Any] = [] parent_page_types = [BlogPostTagListPage] + @cached_property + def html_title(self) -> str: + return f"Pages tagged with '{super().html_title}'" + def get_listing_pages(self) -> models.QuerySet: blog_list_page = BlogPostListPage.objects.all().live().get() return blog_list_page.get_listing_pages().filter(tags=self) diff --git a/website/common/models.py b/website/common/models.py index 238de52..18d4813 100644 --- a/website/common/models.py +++ b/website/common/models.py @@ -46,6 +46,14 @@ class BasePage(Page): """ return self.get_ancestors().exclude(depth__lte=2) + @cached_property + def html_title(self) -> str: + return self.seo_title or self.title + + @cached_property + def hero_title(self) -> str: + return self.html_title + class BaseContentPage(BasePage, MetadataMixin): subtitle = models.CharField(max_length=255, blank=True) @@ -149,7 +157,7 @@ class BaseContentPage(BasePage, MetadataMixin): return self.hero_image_url def get_meta_title(self) -> str: - return self.seo_title or self.title + return self.html_title def get_meta_description(self) -> str: return self.summary @@ -222,7 +230,7 @@ class BaseListingPage(RoutablePageMixin, BaseContentPage): return self.feed_class( self.get_listing_pages(), self.get_full_url(request), - self.title, + self.html_title, )(request) diff --git a/website/common/templates/wagtail_base.html b/website/common/templates/wagtail_base.html index 2316913..15307a4 100644 --- a/website/common/templates/wagtail_base.html +++ b/website/common/templates/wagtail_base.html @@ -4,7 +4,7 @@ {% block body_class %}{{ page.body_class }}{% endblock %} -{% block title %}{% if page.seo_title %}{{ page.seo_title }}{% else %}{{ page.title }}{% endif %}{% endblock %} +{% block title %}{{ page.html_title }}{% endblock %} {% block extra_head %} {% meta_tags %} @@ -21,7 +21,7 @@
{% include "common/breadcrumbs.html" with parents=page.get_parent_pages %} -

{{ page.title }}

+

{{ page.hero_title }}

{% if page.subtitle %}

{{ page.subtitle }}

{% endif %}