Minor changes to penfield to return feed urls only when feeds are actually enabled...
authorStephen Burrows <stephen.r.burrows@gmail.com>
Wed, 15 Dec 2010 17:59:57 +0000 (12:59 -0500)
committerStephen Burrows <stephen.r.burrows@gmail.com>
Wed, 15 Dec 2010 17:59:57 +0000 (12:59 -0500)
contrib/penfield/models.py
contrib/penfield/utils.py
models/base.py
templatetags/embed.py

index 8248340..d3eea16 100644 (file)
@@ -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<tag_slugs>[-\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<tag_slugs>[-\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<tag_slugs>[-\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)
index 0386d38..43c7c91 100644 (file)
@@ -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):
index 202c2f3..34e90dc 100644 (file)
@@ -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)
index 176bbc4..dba58d1 100644 (file)
@@ -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