From 067104fc328a25677564058f5443267c94db3432 Mon Sep 17 00:00:00 2001 From: Stephen Burrows Date: Tue, 15 Feb 2011 18:37:31 -0500 Subject: [PATCH] Corrected penfield BlogView handling of tags, particularly related to feed links. Added an optional slash at the beginning of the feed urlpattern in FeedView.feed_patterns to handle cases where this is included from something with no trailing slash. --- contrib/penfield/models.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/contrib/penfield/models.py b/contrib/penfield/models.py index bb71ba2..a616faa 100644 --- a/contrib/penfield/models.py +++ b/contrib/penfield/models.py @@ -64,7 +64,9 @@ class FeedView(MultiView): if self.feeds_enabled: feed_reverse_name = "%s_feed" % reverse_name urlpatterns += patterns('', - url(r'^%s$' % self.feed_suffix, self.feed_view(get_items_attr, feed_reverse_name), name=feed_reverse_name), + # include an optional slash at the beginning in case someone uses an include + # with a base that doesn't include a slash. + url(r'^/?%s$' % self.feed_suffix, self.feed_view(get_items_attr, feed_reverse_name), name=feed_reverse_name), ) return urlpatterns @@ -333,6 +335,7 @@ class BlogView(FeedView): index_page = models.ForeignKey(Page, related_name='blog_index_related') entry_page = models.ForeignKey(Page, related_name='blog_entry_related') + # TODO: entry_archive is misleading. Rename to ymd_page or timespan_page. entry_archive_page = models.ForeignKey(Page, related_name='blog_entry_archive_related', null=True, blank=True) tag_page = models.ForeignKey(Page, related_name='blog_tag_related') tag_archive_page = models.ForeignKey(Page, related_name='blog_tag_archive_related', null=True, blank=True) @@ -359,7 +362,7 @@ class BlogView(FeedView): if self.entry_permalink_style == 'D': kwargs.update({'day': str(obj.date.day).zfill(2)}) return self.entry_view, [], kwargs - elif isinstance(obj, Tag) or (isinstance(obj, models.QuerySet) and obj.model == Tag and obj): + elif isinstance(obj, Tag) or (isinstance(obj, models.query.QuerySet) and obj.model == Tag and obj): if isinstance(obj, Tag): obj = [obj] slugs = [tag.slug for tag in obj if tag in self.get_tag_queryset()] @@ -514,7 +517,7 @@ class BlogView(FeedView): if 'tags' in extra_context: tags = extra_context['tags'] - feed.feed['link'] = request.node.construct_url(self.reverse(tags), with_domain=True, request=request, secure=request.is_secure()) + feed.feed['link'] = request.node.construct_url(self.reverse(obj=tags), with_domain=True, request=request, secure=request.is_secure()) else: tags = obj.entry_tags -- 2.20.1