diff --git a/tbx/blog/models.py b/tbx/blog/models.py index ae127df5e..8c059753b 100644 --- a/tbx/blog/models.py +++ b/tbx/blog/models.py @@ -1,14 +1,11 @@ -from itertools import chain import math import string from django import forms from django.core.paginator import EmptyPage, PageNotAnInteger, Paginator from django.db import models -from django.db.models import Case, Q, When from django.dispatch import receiver from django.utils.functional import cached_property -from django.utils.http import urlencode from modelcluster.fields import ParentalKey, ParentalManyToManyField from wagtail.admin.panels import ( @@ -78,25 +75,11 @@ def blog_posts(self): def get_context(self, request, *args, **kwargs): context = super().get_context(request, *args, **kwargs) - # Get blog_posts - blog_posts = self.blog_posts - - # Filter by related_service slug - slug_filter = request.GET.get("filter") - extra_url_params = {} - - if slug_filter and slug_filter in self.taxonomy_slugs: - blog_posts = blog_posts.filter( - Q(related_sectors__slug=slug_filter) - | Q(related_services__slug=slug_filter) - ) - extra_url_params["filter"] = slug_filter - # use page to filter page = request.GET.get("page", 1) # Pagination - paginator = Paginator(blog_posts, 10) # Show 10 blog_posts per page + paginator = Paginator(self.blog_posts, 10) # Show 10 blog_posts per page try: blog_posts = paginator.page(page) @@ -105,20 +88,8 @@ def get_context(self, request, *args, **kwargs): except EmptyPage: blog_posts = paginator.page(paginator.num_pages) - # Only show Sectors and Services that have been used - related_sectors = Sector.objects.filter( - pk__in=models.Subquery(self.blog_posts.values("related_sectors")) - ) - - related_services = Service.objects.filter( - pk__in=models.Subquery(self.blog_posts.values("related_services")) - ) - tags = chain(related_services, related_sectors) - context.update( blog_posts=blog_posts, - tags=tags, - extra_url_params=urlencode(extra_url_params), ) return context @@ -162,18 +133,6 @@ def set_body_word_count(self): ).split() self.body_word_count = len(body_words) - @cached_property - def sectors(self): - return self.related_sectors.all() - - @cached_property - def services(self): - return self.related_services.all() - - @property - def tags(self): - return chain(self.services, self.sectors) - def get_related_blog_posts(self): # Assumption that blog posts for the same division # will be under the same blog index page. @@ -183,7 +142,7 @@ def get_related_blog_posts(self): if related := self.related_posts.values_list("page"): # If some blog posts have been manually selected we show those first base_queryset |= BlogPage.objects.filter(pk__in=related) - manual_first = Case(When(pk__in=related, then=1), default=2) + manual_first = models.Case(models.When(pk__in=related, then=1), default=2) order_by.insert(0, manual_first) prefetch_author_images = models.Prefetch( @@ -261,6 +220,7 @@ def type(self): FieldPanel("related_services", widget=forms.CheckboxSelectMultiple), ], heading="Taxonomies", + help_text="For internal use only, will not be rendered on the final page.", ), InlinePanel( "related_posts", diff --git a/tbx/blog/tests/test_models.py b/tbx/blog/tests/test_models.py index c1756b602..73d9e3277 100644 --- a/tbx/blog/tests/test_models.py +++ b/tbx/blog/tests/test_models.py @@ -133,3 +133,12 @@ def test_related_blog_posts_padded_if_not_enough(self): ], transform=attrgetter("title"), ) + + def test_tags_not_rendered(self): + page = BlogPageFactory( + parent=self.blog_index, + related_services=[ServiceFactory(name="SHOULD_NOT_BE_RENDERED")], + related_sectors=[SectorFactory(name="SHOULD_NOT_BE_RENDERED")], + ) + response = self.client.get(page.url) + self.assertNotContains(response, "SHOULD_NOT_BE_RENDERED") diff --git a/tbx/project_styleguide/templates/patterns/pages/blog/blog_detail.html b/tbx/project_styleguide/templates/patterns/pages/blog/blog_detail.html index 2dd6740ec..f8325717d 100644 --- a/tbx/project_styleguide/templates/patterns/pages/blog/blog_detail.html +++ b/tbx/project_styleguide/templates/patterns/pages/blog/blog_detail.html @@ -8,7 +8,6 @@ 'author-title' : '{{ page.first_author.role }}', 'author-name' : '{{ page.first_author.name }}', 'published' : '{{ page.date|date:"Ymd" }}', - 'tags' : [{% for tag in page.services %}'{{tag.name}}'{% if not forloop.last %}, {% endif %}{% endfor %}], 'read-time' : '{{ page.read_time }}', 'id': '{{ page.id }}', 'page-h1' : '{{ page.title }}', @@ -34,14 +33,6 @@

{{ page.title }}

{% pageurl page.blog_index as blog_index_url %} - - {# Temporarily hide tags #} -
@@ -56,7 +47,7 @@