feeds.py 1.0 KB

12345678910111213141516171819202122232425262728293031
  1. from django.contrib.syndication.views import Feed
  2. from django.contrib.sites.shortcuts import get_current_site
  3. from django.contrib import comments
  4. from django.utils.translation import ugettext as _
  5. class LatestCommentFeed(Feed):
  6. """Feed of latest comments on the current site."""
  7. def __call__(self, request, *args, **kwargs):
  8. self.site = get_current_site(request)
  9. return super(LatestCommentFeed, self).__call__(request, *args, **kwargs)
  10. def title(self):
  11. return _("%(site_name)s comments") % dict(site_name=self.site.name)
  12. def link(self):
  13. return "http://%s/" % (self.site.domain)
  14. def description(self):
  15. return _("Latest comments on %(site_name)s") % dict(site_name=self.site.name)
  16. def items(self):
  17. qs = comments.get_model().objects.filter(
  18. site__pk=self.site.pk,
  19. is_public=True,
  20. is_removed=False,
  21. )
  22. return qs.order_by('-submit_date')[:40]
  23. def item_pubdate(self, item):
  24. return item.submit_date