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
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:
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:
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