]> git.openstreetmap.org Git - osqa.git/blobdiff - forum/feed.py
Fixes a compatibility error with the feed api from django 1.1 and 1.2.
[osqa.git] / forum / feed.py
index 0a0882548eb33f8d19cf61253fa26f4b4452f574..2575e6669e21a0051c85ba4a4072ce408612b28a 100644 (file)
@@ -1,28 +1,30 @@
-#!/usr/bin/env python
-#encoding:utf-8
-#-------------------------------------------------------------------------------
-# Name:        Syndication feed class for subsribtion
-# Purpose:
-#
-# Author:      Mike
-#
-# Created:     29/01/2009
-# Copyright:   (c) CNPROG.COM 2009
-# Licence:     GPL V2
-#-------------------------------------------------------------------------------
-from django.contrib.syndication.feeds import Feed, FeedDoesNotExist
+try:
+    from django.contrib.syndication.views import Feed, FeedDoesNotExist
+except:
+    from django.contrib.syndication.feeds import Feed, FeedDoesNotExist
+
 from django.utils.translation import ugettext as _
 from models import Question
-from django.conf import settings
-class RssLastestQuestionsFeed(Feed):
-    title = str(settings.APP_TITLE) + _(' - ')+ _('latest questions')
-    link = settings.APP_URL #+ '/' + _('question/')
-    description = settings.APP_DESCRIPTION
-    #ttl = 10
+from forum import settings
+
+
+class RssQuestionFeed(Feed):
     copyright = settings.APP_COPYRIGHT
 
+    def __init__(self, question_list, title, description, request):
+        self._title = title
+        self._description = description
+        self._question_list = question_list
+        self._url = request.path
+
+    def title(self):
+        return self._title
+
+    def link(self):
+        return self._url
+
     def item_link(self, item):
-        return self.link + item.get_absolute_url()
+        return item.get_absolute_url()
 
     def item_author_name(self, item):
         return item.author.username
@@ -34,10 +36,4 @@ class RssLastestQuestionsFeed(Feed):
         return item.added_at
 
     def items(self, item):
-       return Question.objects.filter(deleted=False).order_by('-last_activity_at')[:30]
-
-def main():
-    pass
-
-if __name__ == '__main__':
-    main()
+       return self._question_list[:30]