20
20
User = get_user_model ()
21
21
22
22
23
+ def get_base_breadcrumb ():
24
+ return [(_ ("Blog" ), reverse ("blog:article-latest" ))]
25
+
26
+
23
27
class BaseBlogView (object ):
24
28
model = Article
25
29
@@ -116,6 +120,16 @@ def get_context_data(self, object=None):
116
120
]
117
121
return ctx
118
122
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
+
119
133
120
134
class ArticleListView (BaseBlogListView , ListView ):
121
135
view_url_name = "fds_blog:article-latest"
@@ -142,6 +156,9 @@ def get_context_data(self, **kwargs):
142
156
context ["featured" ] = self .featured
143
157
return context
144
158
159
+ def get_breadcrumbs (self ):
160
+ return get_base_breadcrumb ()
161
+
145
162
146
163
class ArticleArchiveView (BaseBlogListView , ListView ):
147
164
date_field = "start_publication"
@@ -169,6 +186,9 @@ def get_context_data(self, **kwargs):
169
186
context = super ().get_context_data (** kwargs )
170
187
return context
171
188
189
+ def get_breadcrumbs (self ):
190
+ return get_base_breadcrumb () + [(_ ("Archive" ))]
191
+
172
192
173
193
class TaggedListView (BaseBlogListView , ListView ):
174
194
view_url_name = "fds_blog:article-tagged"
@@ -183,6 +203,9 @@ def get_context_data(self, **kwargs):
183
203
context = super ().get_context_data (** kwargs )
184
204
return context
185
205
206
+ def get_breadcrumbs (self ):
207
+ return get_base_breadcrumb () + [(self .tag .name )]
208
+
186
209
187
210
class AuthorArticleView (BaseBlogListView , ListView ):
188
211
view_url_name = "fds_blog:article-author"
@@ -194,10 +217,14 @@ def get_queryset(self):
194
217
return self .optimize (qs )
195
218
196
219
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
198
222
context = super ().get_context_data (** kwargs )
199
223
return context
200
224
225
+ def get_breadcrumbs (self ):
226
+ return get_base_breadcrumb () + [(self .author .get_full_name ())]
227
+
201
228
202
229
class CategoryArticleView (BaseBlogListView , ListView ):
203
230
_category = None
@@ -231,6 +258,9 @@ def get_context_data(self, **kwargs):
231
258
context = super ().get_context_data (** kwargs )
232
259
return context
233
260
261
+ def get_breadcrumbs (self ):
262
+ return get_base_breadcrumb () + [(self .category .title )]
263
+
234
264
235
265
class ArticleSearchView (BaseSearchView ):
236
266
search_name = "blog"
0 commit comments