diff -r 000000000000 -r 8083d21c0020 web/hgbook/comments/feeds.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/hgbook/comments/feeds.py Mon Jan 25 18:56:45 2010 +0530 @@ -0,0 +1,35 @@ +from django.core.exceptions import ObjectDoesNotExist +from django.utils.feedgenerator import Atom1Feed +from django.contrib.syndication.feeds import Feed +from hgbook.comments.models import Comment, Element + +class MyAtomFeed(Atom1Feed): + title_type = u'html' + +class Comments(Feed): + feed_type = MyAtomFeed + title = 'Mercurial - The Definitive Guide: recent comments' + subtitle = ('Recent comments on the text of “Mercurial: The ' + 'Definitive Guide”, from our readers') + link = '/feeds/comments/' + author_name = 'Our readers' + + def feedfilter(self, queryset): + return queryset.order_by('-date')[:20] + + def items(self): + return self.feedfilter(Comment.objects) + + def item_author_name(self, obj): + return obj.submitter_name + + def item_pubdate(self, obj): + return obj.date + + def get_object(self, bits): + if len(bits) == 0: + return self.items() + elif len(bits) > 1: + raise ObjectDoesNotExist + return self.feedfilter(Comment.objects.filter(element__chapter=bits[0], + hidden=False))