Skip to content

Commit 2def615

Browse files
committed
TWE-58 Remove tags from BlogPage and BlogIndexPage
1 parent bfff176 commit 2def615

File tree

7 files changed

+18
-244
lines changed

7 files changed

+18
-244
lines changed

tbx/blog/models.py

Lines changed: 2 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
1-
from itertools import chain
21
import math
32
import string
43

54
from django import forms
65
from django.core.paginator import EmptyPage, PageNotAnInteger, Paginator
76
from django.db import models
8-
from django.db.models import Q
97
from django.dispatch import receiver
108
from django.utils.functional import cached_property
11-
from django.utils.http import urlencode
129

1310
from modelcluster.fields import ParentalManyToManyField
1411
from wagtail.admin.panels import FieldPanel, InlinePanel, MultiFieldPanel
@@ -73,25 +70,11 @@ def blog_posts(self):
7370
def get_context(self, request, *args, **kwargs):
7471
context = super().get_context(request, *args, **kwargs)
7572

76-
# Get blog_posts
77-
blog_posts = self.blog_posts
78-
79-
# Filter by related_service slug
80-
slug_filter = request.GET.get("filter")
81-
extra_url_params = {}
82-
83-
if slug_filter and slug_filter in self.taxonomy_slugs:
84-
blog_posts = blog_posts.filter(
85-
Q(related_sectors__slug=slug_filter)
86-
| Q(related_services__slug=slug_filter)
87-
)
88-
extra_url_params["filter"] = slug_filter
89-
9073
# use page to filter
9174
page = request.GET.get("page", 1)
9275

9376
# Pagination
94-
paginator = Paginator(blog_posts, 10) # Show 10 blog_posts per page
77+
paginator = Paginator(self.blog_posts, 10) # Show 10 blog_posts per page
9578

9679
try:
9780
blog_posts = paginator.page(page)
@@ -100,20 +83,8 @@ def get_context(self, request, *args, **kwargs):
10083
except EmptyPage:
10184
blog_posts = paginator.page(paginator.num_pages)
10285

103-
# Only show Sectors and Services that have been used
104-
related_sectors = Sector.objects.filter(
105-
pk__in=models.Subquery(self.blog_posts.values("related_sectors"))
106-
)
107-
108-
related_services = Service.objects.filter(
109-
pk__in=models.Subquery(self.blog_posts.values("related_services"))
110-
)
111-
tags = chain(related_services, related_sectors)
112-
11386
context.update(
11487
blog_posts=blog_posts,
115-
tags=tags,
116-
extra_url_params=urlencode(extra_url_params),
11788
)
11889
return context
11990

@@ -157,18 +128,6 @@ def set_body_word_count(self):
157128
).split()
158129
self.body_word_count = len(body_words)
159130

160-
@cached_property
161-
def sectors(self):
162-
return self.related_sectors.all()
163-
164-
@cached_property
165-
def services(self):
166-
return self.related_services.all()
167-
168-
@property
169-
def tags(self):
170-
return chain(self.services, self.sectors)
171-
172131
def get_related_blog_posts(self):
173132
prefetch_author_images = models.Prefetch(
174133
"authors__author__image",
@@ -247,6 +206,7 @@ def type(self):
247206
FieldPanel("related_services", widget=forms.CheckboxSelectMultiple),
248207
],
249208
heading="Taxonomies",
209+
help_text="For internal use only, will not be rendered on the final page.",
250210
),
251211
MultiFieldPanel(SocialFields.promote_panels, "Social fields"),
252212
]

tbx/blog/tests/test_models.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,3 +90,16 @@ def test_related_blog_posts(self):
9090
transform=attrgetter("title"),
9191
ordered=False,
9292
)
93+
94+
def test_tags_not_rendered(self):
95+
site = Site.objects.get(is_default_site=True)
96+
index = BlogIndexPageFactory(
97+
parent=DivisionPageFactory(parent=HomePageFactory(parent=site.root_page))
98+
)
99+
page = BlogPageFactory(
100+
parent=index,
101+
related_services=[ServiceFactory(name="SHOULD_NOT_BE_RENDERED")],
102+
related_sectors=[SectorFactory(name="SHOULD_NOT_BE_RENDERED")],
103+
)
104+
response = self.client.get(page.url)
105+
self.assertNotContains(response, "SHOULD_NOT_BE_RENDERED")

tbx/project_styleguide/templates/patterns/pages/blog/blog_detail.html

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
'author-title' : '{{ page.first_author.role }}',
99
'author-name' : '{{ page.first_author.name }}',
1010
'published' : '{{ page.date|date:"Ymd" }}',
11-
'tags' : [{% for tag in page.services %}'{{tag.name}}'{% if not forloop.last %}, {% endif %}{% endfor %}],
1211
'read-time' : '{{ page.read_time }}',
1312
'id': '{{ page.id }}',
1413
'page-h1' : '{{ page.title }}',
@@ -34,14 +33,6 @@
3433
<h1 class="heading heading--one">{{ page.title }}</h1>
3534

3635
{% pageurl page.blog_index as blog_index_url %}
37-
38-
{# Temporarily hide tags #}
39-
<!-- <div class="tags tags--with-title">
40-
<span class="sr-only">Related post categories</span>
41-
{% for tag in page.tags %}
42-
{% include "patterns/atoms/tag/tag.html" with tag_slug=tag.slug tag_name=tag.name tag_link_base=blog_index_url %}
43-
{% endfor %}
44-
</div> -->
4536
</div>
4637

4738
<div class="blog-meta">
@@ -56,7 +47,7 @@ <h2 class="motif-heading section-title--related-posts section-title--large-gap"
5647
<ul class="grid__related-posts streamfield__related-posts">
5748
{% for post in page.related_blog_posts %}
5849
{% pageurl post as post_url %}
59-
{% include "patterns/molecules/listing/listing--avatar.html" with title=post.title name=post.first_author.name job_title=post.first_author.role link=post_url date=post.date reading_time=post.read_time tags=post.tags hide_tags=True avatar=post.first_author.image tag_link_base=blog_index_url %}
50+
{% include "patterns/molecules/listing/listing--avatar.html" with title=post.title name=post.first_author.name job_title=post.first_author.role link=post_url date=post.date reading_time=post.read_time hide_tags=True avatar=post.first_author.image tag_link_base=blog_index_url %}
6051
{% endfor %}
6152

6253
<li class="mx-auto lg:mx-0 mt-spacerSmall">

tbx/project_styleguide/templates/patterns/pages/blog/blog_detail.yaml

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,6 @@ context:
1414
date: 07 Aug 2024
1515
get_verbose_name: Blog page
1616
read_time: 5
17-
tags:
18-
- name: Digital products
19-
slug: digital-products
20-
- name: Wagtail
21-
slug: wagtail
22-
- name: Digital Marketing
23-
slug: digital-marketing
2417
related_blog_posts:
2518
- link: '/'
2619
title: Reimagining our Agile training and ways of working
@@ -29,38 +22,20 @@ context:
2922
role: Product Director
3023
date: 05 Sep 23
3124
read_time: 4
32-
tags_screenreader_text: 'Filter blog posts by category'
33-
tags:
34-
- name: Innovation
35-
slug: innovation
36-
- name: Culture
37-
slug: culture
3825
- link: '/'
3926
title: The future of AI in healthcare
4027
first_author:
4128
name: Emily Johnson
4229
role: Data Scientist
4330
date: 05 Sep 23
4431
read_time: 6
45-
tags_screenreader_text: 'Filter blog posts by category'
46-
tags:
47-
- name: Artificial Intelligence
48-
slug: ai
49-
- name: Healthcare
50-
slug: healthcare
5132
- link: '/'
5233
title: The impact of machine learning in finance
5334
first_author:
5435
name: Sarah Thompson
5536
role: Financial Analyst
5637
date: 05 Sep 23
5738
read_time: 8
58-
tags_screenreader_text: 'Filter blog posts by category'
59-
tags:
60-
- name: Machine Learning
61-
slug: machine-learning
62-
- name: Finance
63-
slug: finance
6439

6540
tags:
6641
include_block:

tbx/project_styleguide/templates/patterns/pages/blog/blog_listing.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@
1010

1111
{% block content %}
1212
<div class="grid grid--spacer-large">
13-
{% include "patterns/molecules/title-filters/title-filters.html" with item=page tags=tags hide_tags=True %}
13+
{% include "patterns/molecules/title-filters/title-filters.html" with item=page hide_tags=True %}
1414

1515
<ul class="page-listing page-listing--blog">
1616
{% for post in blog_posts %}
1717
{% pageurl post as link %}
18-
{% include "patterns/molecules/listing/listing--avatar.html" with link=link avatar=post.first_author.image title=post.title name=post.first_author.name job_title=post.first_author.role date=post.date reading_time=post.read_time tags=post.tags hide_tags=True tag_link_base=blog_index_url base_class="page-listing__item" %}
18+
{% include "patterns/molecules/listing/listing--avatar.html" with link=link avatar=post.first_author.image title=post.title name=post.first_author.name job_title=post.first_author.role date=post.date reading_time=post.read_time hide_tags=True tag_link_base=blog_index_url base_class="page-listing__item" %}
1919
{% endfor %}
2020
</ul>
2121

tbx/project_styleguide/templates/patterns/pages/blog/blog_listing.yaml

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -23,71 +23,41 @@ context:
2323
first_author:
2424
name: Paul Vetch
2525
role: Strategy Director
26-
tags:
27-
- name: Digital products
28-
slug: digital-products
29-
- name: Wagtail
30-
slug: wagtail
3126

3227
- title: Wagtail for Public Sector
3328
date: 20 Oct 2023
3429
read_time: '5'
3530
first_author:
3631
name: Paul Vetch
3732
role: Strategy Director
38-
tags:
39-
- name: Social Media
40-
slug: social-media
41-
- name: Culture
42-
slug: culture
4333

4434
- title: Explore the potential of AI in content management
4535
date: 20 Oct 2023
4636
read_time: '5'
4737
first_author:
4838
name: Paul Vetch
4939
role: Strategy Director
50-
tags:
51-
- name: Social Media
52-
slug: social-media
53-
- name: Culture
54-
slug: culture
5540

5641
- title: Wagtail for Public Sector
5742
date: 20 Oct 2023
5843
read_time: '5'
5944
first_author:
6045
name: Will Heinemann
6146
role: New Business Director
62-
tags:
63-
- name: Digital products
64-
slug: digital-products
65-
- name: Wagtail
66-
slug: wagtail
6747

6848
- title: Explore the potential of AI in content management
6949
date: 20 Oct 2023
7050
read_time: '5'
7151
first_author:
7252
name: Will Heinemann
7353
role: New Business Director
74-
tags:
75-
- name: Digital products
76-
slug: digital-products
77-
- name: Wagtail
78-
slug: wagtail
7954

8055
- title: Wagtail for Public Sector
8156
date: 20 Oct 2023
8257
read_time: '5'
8358
first_author:
8459
name: Will Heinemann
8560
role: New Business Director
86-
tags:
87-
- name: Digital products
88-
slug: digital-products
89-
- name: Wagtail
90-
slug: wagtail
9161

9262
tags:
9363
srcset_image:

0 commit comments

Comments
 (0)