From: Stephen Burrows Date: Wed, 15 Dec 2010 17:59:57 +0000 (-0500) Subject: Minor changes to penfield to return feed urls only when feeds are actually enabled... X-Git-Tag: philo-0.9~24^2~5 X-Git-Url: http://git.ithinksw.org/philo.git/commitdiff_plain/ee93c1aed3616a880050bed082bcc0636d4ed92b?ds=inline Minor changes to penfield to return feed urls only when feeds are actually enabled and to allow BlogEntry.objects.latest(). Corrected TreeManager.get_with_path to return the root node (if defined) as the deepest node if nothing else is found along the path. Removed embed tag error raising for an expected behavior. --- diff --git a/contrib/penfield/models.py b/contrib/penfield/models.py index 8248340..d3eea16 100644 --- a/contrib/penfield/models.py +++ b/contrib/penfield/models.py @@ -37,6 +37,7 @@ class BlogEntry(Entity, Titled): class Meta: ordering = ['-date'] verbose_name_plural = "blog entries" + get_latest_by = "date" register_value_model(BlogEntry) @@ -104,7 +105,12 @@ class BlogView(MultiView, FeedMultiViewMixin): def urlpatterns(self): urlpatterns = patterns('', url(r'^', include(self.feed_patterns(self.get_all_entries, self.index_page, 'index'))), - url(r'^%s/(?P[-\w]+[-+/\w]*)/%s/' % (self.tag_permalink_base, self.feed_suffix), self.feed_view(self.get_entries_by_tag, 'entries_by_tag_feed'), name='entries_by_tag_feed'), + ) + if self.feeds_enabled: + urlpatterns += patterns('', + url(r'^%s/(?P[-\w]+[-+/\w]*)/%s/' % (self.tag_permalink_base, self.feed_suffix), self.feed_view(self.get_entries_by_tag, 'entries_by_tag_feed'), name='entries_by_tag_feed'), + ) + urlpatterns += patterns('', url(r'^%s/(?P[-\w]+[-+/\w]*)/' % self.tag_permalink_base, self.page_view(self.get_entries_by_tag, self.tag_page), name='entries_by_tag') ) if self.tag_archive_page: @@ -436,4 +442,4 @@ class NewsletterView(MultiView, FeedMultiViewMixin): 'title': title } defaults.update(kwargs or {}) - return super(NewsletterView, self).get_feed(feed_type, extra_context, defaults) \ No newline at end of file + return super(NewsletterView, self).get_feed(feed_type, extra_context, defaults) diff --git a/contrib/penfield/utils.py b/contrib/penfield/utils.py index 0386d38..43c7c91 100644 --- a/contrib/penfield/utils.py +++ b/contrib/penfield/utils.py @@ -87,11 +87,14 @@ class FeedMultiViewMixin(object): return self.atom_feed(**defaults) def feed_patterns(self, object_fetcher, page, base_name): - feed_name = '%s_feed' % base_name urlpatterns = patterns('', - url(r'^%s/$' % self.feed_suffix, self.feed_view(object_fetcher, feed_name), name=feed_name), url(r'^$', self.page_view(object_fetcher, page), name=base_name) ) + if self.feeds_enabled: + feed_name = '%s_feed' % base_name + urlpatterns = patterns('', + url(r'^%s/$' % self.feed_suffix, self.feed_view(object_fetcher, feed_name), name=feed_name), + ) + urlpatterns return urlpatterns def add_item(self, feed, obj, kwargs=None): diff --git a/models/base.py b/models/base.py index 202c2f3..34e90dc 100644 --- a/models/base.py +++ b/models/base.py @@ -358,6 +358,8 @@ class TreeManager(models.Manager): if deepest_level == depth: # This should happen if nothing is found with any part of the given path. + if root is not None: + return root, build_path(segments) raise return find_obj(segments, depth, deepest_found) diff --git a/templatetags/embed.py b/templatetags/embed.py index 176bbc4..dba58d1 100644 --- a/templatetags/embed.py +++ b/templatetags/embed.py @@ -210,8 +210,6 @@ class ConstantEmbedNode(template.Node): try: t = context.render_context[EMBED_CONTEXT_KEY].get_embed_template(self, context) except (KeyError, IndexError): - if settings.TEMPLATE_DEBUG: - raise self.mark_rendered_for(context) return settings.TEMPLATE_STRING_IF_INVALID