From 01d2edfa97f4edd4243a06aef8ee99faaade47ab Mon Sep 17 00:00:00 2001 From: hernani Date: Mon, 28 Jun 2010 11:53:53 +0000 Subject: [PATCH] AMore rss feed improvements. git-svn-id: http://svn.osqa.net/svnroot/osqa/trunk@456 0cfe37f9-358a-4d5e-be75-b63607b5c754 --- forum/feed.py | 19 ++++++++++++++++++- forum/skins/default/media/style/style.css | 6 ++++++ forum/skins/default/templates/questions.html | 2 +- forum/views/readers.py | 6 +++++- 4 files changed, 30 insertions(+), 3 deletions(-) diff --git a/forum/feed.py b/forum/feed.py index 2575e66..15a8ab9 100644 --- a/forum/feed.py +++ b/forum/feed.py @@ -1,8 +1,11 @@ try: from django.contrib.syndication.views import Feed, FeedDoesNotExist + old_version = False except: from django.contrib.syndication.feeds import Feed, FeedDoesNotExist + old_version = True +from django.http import HttpResponse from django.utils.translation import ugettext as _ from models import Question from forum import settings @@ -15,7 +18,10 @@ class RssQuestionFeed(Feed): self._title = title self._description = description self._question_list = question_list - self._url = request.path + self._url = request.path + "&" + "&".join(["%s=%s" % (k, v) for k, v in request.GET.items() if not k in ('page', 'pagesize', 'sort')]) + + if old_version: + super(RssQuestionFeed, self).__init__('', request) def title(self): return self._title @@ -35,5 +41,16 @@ class RssQuestionFeed(Feed): def item_pubdate(self, item): return item.added_at + def item_categories(self, item): + return item.tagname_list() + def items(self, item): return self._question_list[:30] + + if old_version: + def __call__(self, request): + feedgen = self.get_feed('') + response = HttpResponse(mimetype=feedgen.mime_type) + feedgen.write(response, 'utf-8') + return response + diff --git a/forum/skins/default/media/style/style.css b/forum/skins/default/media/style/style.css index 3c94bea..a2a9fa8 100644 --- a/forum/skins/default/media/style/style.css +++ b/forum/skins/default/media/style/style.css @@ -1710,4 +1710,10 @@ div.dialog.prompt .dialog-content select, div.dialog.prompt .dialog-content text .suspended-user { text-decoration: line-through; +} + +.feed-icon { + width: 14px; + height: 14px; + float: left; } \ No newline at end of file diff --git a/forum/skins/default/templates/questions.html b/forum/skins/default/templates/questions.html index 16ba09f..9c3523a 100644 --- a/forum/skins/default/templates/questions.html +++ b/forum/skins/default/templates/questions.html @@ -14,7 +14,7 @@ {% block content %}
{% question_list_title %} - + {% question_sort_tabs sort_context %}
{% for question in questions %} diff --git a/forum/views/readers.py b/forum/views/readers.py index 7a73856..134fff2 100644 --- a/forum/views/readers.py +++ b/forum/views/readers.py @@ -149,7 +149,11 @@ def question_list(request, initial, answer_description = _("answers") if not feed_url: - feed_url = request.path + "?type=rss" + req_params = "&".join(["%s=%s" % (k, v) for k, v in request.GET.items() if not k in ('page', 'pagesize', 'sort')]) + if req_params: + req_params = '&' + req_params + + feed_url = mark_safe(request.path + "?type=rss" + req_params) return { "questions" : questions, -- 2.45.2