Mercurial > hgbook
comparison web/hgbook/comments/feeds.py @ 673:ad304b606163
Initial cut at web comment system import
author | Bryan O'Sullivan <bos@serpentine.com> |
---|---|
date | Tue, 10 Mar 2009 21:42:19 -0700 |
parents | |
children | 88b611f37646 |
comparison
equal
deleted
inserted
replaced
672:40025381bded | 673:ad304b606163 |
---|---|
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 = 'Real World Haskell: recent comments' | |
12 subtitle = ('Recent comments on the text of “Real World ' | |
13 'Haskell”, 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)) |