PageRenderTime 19ms CodeModel.GetById 15ms RepoModel.GetById 0ms app.codeStats 0ms

/django/contrib/comments/feeds.py

https://code.google.com/p/mango-py/
Python | 38 lines | 31 code | 6 blank | 1 comment | 4 complexity | 1693538c643012fec8172e8e9ed5a94f MD5 | raw file
Possible License(s): BSD-3-Clause
  1. from django.conf import settings
  2. from django.contrib.syndication.views import Feed
  3. from django.contrib.sites.models import Site
  4. from django.contrib import comments
  5. from django.utils.translation import ugettext as _
  6. class LatestCommentFeed(Feed):
  7. """Feed of latest comments on the current site."""
  8. def title(self):
  9. if not hasattr(self, '_site'):
  10. self._site = Site.objects.get_current()
  11. return _("%(site_name)s comments") % dict(site_name=self._site.name)
  12. def link(self):
  13. if not hasattr(self, '_site'):
  14. self._site = Site.objects.get_current()
  15. return "http://%s/" % (self._site.domain)
  16. def description(self):
  17. if not hasattr(self, '_site'):
  18. self._site = Site.objects.get_current()
  19. return _("Latest comments on %(site_name)s") % dict(site_name=self._site.name)
  20. def items(self):
  21. qs = comments.get_model().objects.filter(
  22. site__pk = settings.SITE_ID,
  23. is_public = True,
  24. is_removed = False,
  25. )
  26. if getattr(settings, 'COMMENTS_BANNED_USERS_GROUP', None):
  27. where = ['user_id NOT IN (SELECT user_id FROM auth_user_groups WHERE group_id = %s)']
  28. params = [settings.COMMENTS_BANNED_USERS_GROUP]
  29. qs = qs.extra(where=where, params=params)
  30. return qs.order_by('-submit_date')[:40]
  31. def item_pubdate(self, item):
  32. return item.submit_date