diff -r 000000000000 -r 0d40e90630ef web/lib/django/contrib/comments/feeds.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/web/lib/django/contrib/comments/feeds.py Wed Jan 20 00:34:04 2010 +0100 @@ -0,0 +1,38 @@ +from django.conf import settings +from django.contrib.syndication.feeds import Feed +from django.contrib.sites.models import Site +from django.contrib import comments +from django.utils.translation import ugettext as _ + +class LatestCommentFeed(Feed): + """Feed of latest comments on the current site.""" + + def title(self): + if not hasattr(self, '_site'): + self._site = Site.objects.get_current() + return _("%(site_name)s comments") % dict(site_name=self._site.name) + + def link(self): + if not hasattr(self, '_site'): + self._site = Site.objects.get_current() + return "http://%s/" % (self._site.domain) + + def description(self): + if not hasattr(self, '_site'): + self._site = Site.objects.get_current() + return _("Latest comments on %(site_name)s") % dict(site_name=self._site.name) + + def items(self): + qs = comments.get_model().objects.filter( + site__pk = settings.SITE_ID, + is_public = True, + is_removed = False, + ) + if getattr(settings, 'COMMENTS_BANNED_USERS_GROUP', None): + where = ['user_id NOT IN (SELECT user_id FROM auth_user_groups WHERE group_id = %s)'] + params = [settings.COMMENTS_BANNED_USERS_GROUP] + qs = qs.extra(where=where, params=params) + return qs.order_by('-submit_date')[:40] + + def item_pubdate(self, item): + return item.submit_date