]> git.openstreetmap.org Git - osqa.git/blobdiff - forum/feed.py
OSQA-533, fixed some W3C validation errors: closing <img /> tags, removed some unnece...
[osqa.git] / forum / feed.py
index bbbf3e701d4975fd249eef2fabab538ffdcac003..02c309d364d67783f1c99ada4646efea9e6baded 100644 (file)
@@ -1,8 +1,8 @@
 try:
-    from django.contrib.syndication.views import Feed, FeedDoesNotExist
+    from django.contrib.syndication.views import Feed, FeedDoesNotExist, add_domain
     old_version = False
 except:
-    from django.contrib.syndication.feeds import Feed, FeedDoesNotExist
+    from django.contrib.syndication.feeds import Feed, FeedDoesNotExist, add_domain
     old_version = True
 
 from django.http import HttpResponse
@@ -10,6 +10,12 @@ from django.utils.translation import ugettext as _
 from django.utils.safestring import mark_safe
 from models import Question
 from forum import settings
+from forum.modules import decorate
+from forum.utils.pagination import generate_uri
+
+@decorate(add_domain, needs_origin=False)
+def add_domain(domain, url, *args, **kwargs):
+    return "%s%s" % (settings.APP_BASE_URL, url)
 
 class BaseNodeFeed(Feed):
     if old_version:
@@ -18,7 +24,7 @@ class BaseNodeFeed(Feed):
 
     def __init__(self, request, title, description, url):
         self._title = title
-        self._description = mark_safe(description)
+        self._description = mark_safe(unicode(description))
         self._url = url
 
         if old_version:
@@ -61,7 +67,7 @@ class BaseNodeFeed(Feed):
 
 class RssQuestionFeed(BaseNodeFeed):
     def __init__(self, request, question_list, title, description):
-        url = request.path + "&" + "&".join(["%s=%s" % (k, v) for k, v in request.GET.items() if not k in (_('page'), _('pagesize'), _('sort'))])
+        url = request.path + "&" + generate_uri(request.GET, (_('page'), _('pagesize'), _('sort')))
         super(RssQuestionFeed, self).__init__(request, title, description, url)
 
         self._question_list = question_list