+
+
+class RssQuestionFeed(BaseNodeFeed):
+ def __init__(self, request, question_list, title, description):
+ url = request.path + "?" + generate_uri(request.GET, (_('page'), _('pagesize'), _('sort')))
+ super(RssQuestionFeed, self).__init__(request, title, description, url)
+
+ self._question_list = question_list
+
+ def item_categories(self, item):
+ return item.tagname_list()
+
+ def _items(self):
+ return self._question_list
+
+ def items(self):
+ return self._items()[:30]
+
+class RssAnswerFeed(BaseNodeFeed):
+ if old_version:
+ title_template = "feeds/rss_answer_title.html"
+
+ def __init__(self, request, question, include_comments=False):
+ super(RssAnswerFeed, self).__init__(
+ request, _("Answers to: %s") % smart_unicode(question.title),
+ question.html,
+ question.get_absolute_url()
+ )
+ self._question = question
+ self._include_comments = include_comments
+
+ def _items(self):
+ if self._include_comments:
+ qs = self._question.all_children
+ else:
+ qs = self._question.answers
+
+ return qs.filter_state(deleted=False).order_by('-added_at')
+
+ def items(self):
+ return self._items()[:30]
+
+ def item_title(self, item):
+ if item.node_type == "answer":
+ return _("Answer by %s") % smart_unicode(item.author.username)
+ else:
+ return _("Comment by %(cauthor)s on %(pauthor)s's %(qora)s") % dict(
+ cauthor=smart_unicode(item.author.username),
+ pauthor=smart_unicode(item.parent.author.username),
+ qora=(item.parent.node_type == "answer" and _("answer") or _("question"))
+ )