Skip to content

Commit fbb2a92

Browse files
committed
✨ add breadcrumbs to blog
1 parent 2453db9 commit fbb2a92

File tree

3 files changed

+41
-5
lines changed

3 files changed

+41
-5
lines changed

fragdenstaat_de/fds_blog/models.py

+3
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,9 @@ def articles_published(self):
201201
"""
202202
return articles_published(self.articles)
203203

204+
def get_absolute_url(self):
205+
return reverse("blog:article-category", kwargs={"category": self.slug})
206+
204207

205208
class CategoriesEntry(models.Model):
206209
"""

fragdenstaat_de/fds_blog/views.py

+31-1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@
2020
User = get_user_model()
2121

2222

23+
def get_base_breadcrumb():
24+
return [(_("Blog"), reverse("blog:article-latest"))]
25+
26+
2327
class BaseBlogView(object):
2428
model = Article
2529

@@ -116,6 +120,16 @@ def get_context_data(self, object=None):
116120
]
117121
return ctx
118122

123+
def get_breadcrumbs(self):
124+
breadcrumbs = get_base_breadcrumb()
125+
126+
if self.object.categories.exists():
127+
category = self.object.categories.first()
128+
breadcrumbs += [(category.title, category.get_absolute_url())]
129+
130+
breadcrumbs += [(self.object.title)]
131+
return breadcrumbs
132+
119133

120134
class ArticleListView(BaseBlogListView, ListView):
121135
view_url_name = "fds_blog:article-latest"
@@ -142,6 +156,9 @@ def get_context_data(self, **kwargs):
142156
context["featured"] = self.featured
143157
return context
144158

159+
def get_breadcrumbs(self):
160+
return get_base_breadcrumb()
161+
145162

146163
class ArticleArchiveView(BaseBlogListView, ListView):
147164
date_field = "start_publication"
@@ -169,6 +186,9 @@ def get_context_data(self, **kwargs):
169186
context = super().get_context_data(**kwargs)
170187
return context
171188

189+
def get_breadcrumbs(self):
190+
return get_base_breadcrumb() + [(_("Archive"))]
191+
172192

173193
class TaggedListView(BaseBlogListView, ListView):
174194
view_url_name = "fds_blog:article-tagged"
@@ -183,6 +203,9 @@ def get_context_data(self, **kwargs):
183203
context = super().get_context_data(**kwargs)
184204
return context
185205

206+
def get_breadcrumbs(self):
207+
return get_base_breadcrumb() + [(self.tag.name)]
208+
186209

187210
class AuthorArticleView(BaseBlogListView, ListView):
188211
view_url_name = "fds_blog:article-author"
@@ -194,10 +217,14 @@ def get_queryset(self):
194217
return self.optimize(qs)
195218

196219
def get_context_data(self, **kwargs):
197-
kwargs["author"] = get_object_or_404(User, username=self.kwargs.get("username"))
220+
self.author = get_object_or_404(User, username=self.kwargs.get("username"))
221+
kwargs["author"] = self.author
198222
context = super().get_context_data(**kwargs)
199223
return context
200224

225+
def get_breadcrumbs(self):
226+
return get_base_breadcrumb() + [(self.author.get_full_name())]
227+
201228

202229
class CategoryArticleView(BaseBlogListView, ListView):
203230
_category = None
@@ -231,6 +258,9 @@ def get_context_data(self, **kwargs):
231258
context = super().get_context_data(**kwargs)
232259
return context
233260

261+
def get_breadcrumbs(self):
262+
return get_base_breadcrumb() + [(self.category.title)]
263+
234264

235265
class ArticleSearchView(BaseSearchView):
236266
search_name = "blog"

fragdenstaat_de/fds_cms/templates/cms/blog_base.html

+7-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
1-
{% extends "cms/page_reduced.html" %}
1+
{% extends "cms/page.html" %}
22
{% block extra_head %}
3-
{{ block.super }}
4-
<link rel="alternate" type="application/rss+xml" title="{{ SITE_NAME }} Blog" href="{% url 'blog:article-latest-feed' %}" />
3+
{{ block.super }}
4+
<link rel="alternate"
5+
type="application/rss+xml"
6+
title="{{ SITE_NAME }} Blog"
7+
href="{% url 'blog:article-latest-feed' %}" />
58
{% endblock extra_head %}
6-
79
{% block body %}
10+
{% include "snippets/breadcrumbs.html" %}
811
{% block app_body %}
912
{% block content %}{% endblock %}
1013
{% endblock %}

0 commit comments

Comments
 (0)