web/hgbook/comments/feeds.py
changeset 0 8083d21c0020
equal deleted inserted replaced
-1:000000000000 0:8083d21c0020
       
     1 from django.core.exceptions import ObjectDoesNotExist
       
     2 from django.utils.feedgenerator import Atom1Feed
       
     3 from django.contrib.syndication.feeds import Feed
       
     4 from hgbook.comments.models import Comment, Element
       
     5 
       
     6 class MyAtomFeed(Atom1Feed):
       
     7     title_type = u'html'
       
     8     
       
     9 class Comments(Feed):
       
    10     feed_type = MyAtomFeed
       
    11     title = 'Mercurial - The Definitive Guide: recent comments'
       
    12     subtitle = ('Recent comments on the text of “Mercurial: The '
       
    13                 'Definitive Guide”, from our readers')
       
    14     link = '/feeds/comments/'
       
    15     author_name = 'Our readers'
       
    16 
       
    17     def feedfilter(self, queryset):
       
    18         return queryset.order_by('-date')[:20]
       
    19 
       
    20     def items(self):
       
    21         return self.feedfilter(Comment.objects)
       
    22 
       
    23     def item_author_name(self, obj):
       
    24         return obj.submitter_name
       
    25 
       
    26     def item_pubdate(self, obj):
       
    27         return obj.date
       
    28 
       
    29     def get_object(self, bits):
       
    30         if len(bits) == 0:
       
    31             return self.items()
       
    32         elif len(bits) > 1:
       
    33             raise ObjectDoesNotExist
       
    34         return self.feedfilter(Comment.objects.filter(element__chapter=bits[0],
       
    35                                                       hidden=False))