summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvgeny Fadeev <evgeny.fadeev@gmail.com>2011-10-03 19:22:16 -0300
committerEvgeny Fadeev <evgeny.fadeev@gmail.com>2011-10-03 19:22:16 -0300
commit5045ba6520c1f06938d6a5cb6be448223f116541 (patch)
tree362289ec9415eb3d15553f22d98d99d800acd47a
parenteec4df8eff641f443313df2e6e6ceb9fe7a2261a (diff)
parenta822dec80256a53ba9770be2c9e5cf8ce48bfca1 (diff)
downloadaskbot-5045ba6520c1f06938d6a5cb6be448223f116541.tar.gz
askbot-5045ba6520c1f06938d6a5cb6be448223f116541.tar.bz2
askbot-5045ba6520c1f06938d6a5cb6be448223f116541.zip
Merge branch 'sayanchowdhury'
-rw-r--r--askbot/feed.py65
-rw-r--r--askbot/skins/default/templates/question.html6
-rw-r--r--askbot/urls.py5
3 files changed, 73 insertions, 3 deletions
diff --git a/askbot/feed.py b/askbot/feed.py
index 23416677..c4257ab9 100644
--- a/askbot/feed.py
+++ b/askbot/feed.py
@@ -14,8 +14,66 @@
#encoding:utf-8
from django.contrib.syndication.feeds import Feed
from django.utils.translation import ugettext as _
-from askbot.models import Question
+from django.core.exceptions import ObjectDoesNotExist
+from askbot.models import Question, Answer, Comment
from askbot.conf import settings as askbot_settings
+import itertools
+
+class RssParticularQuestionFeed(Feed):
+ """rss feed class for particular questions
+ """
+ title = askbot_settings.APP_TITLE + _(' - ')+ _('Particular Question')
+ link = askbot_settings.APP_URL
+ description = askbot_settings.APP_DESCRIPTION
+ copyright = askbot_settings.APP_COPYRIGHT
+
+ def get_object(self, bits):
+ if len(bits) != 1:
+ raise ObjectDoesNotExist
+ return Question.objects.get(id__exact = bits[0])
+
+ def item_link(self, item):
+ """get full url to the item
+ """
+ return self.link + item.get_absolute_url()
+
+ def item_pubdate(self, item):
+ """get date of creation for the item
+ """
+ return item.added_at
+
+ def items(self, item):
+ """get questions for the feed
+ """
+ results = itertools.chain(
+ Question.objects.filter(id = item.id),
+ Answer.objects.filter(question = item.id),
+ Comment.objects.filter(question = item.id),
+ )
+ return results
+
+ def item_title(self, item):
+ """returns the title for the item
+ """
+ title = item
+ if item.__class__.__name__ == "Question":
+ self.title = item
+ elif item.__class__.__name__ == "Answer":
+ title = "Answer by %s for %s " %(item.author,self.title)
+ elif item.__class__.__name__ == "Comment":
+ title = "Comment by %s for %s" %(item.user,self.title)
+ return title
+
+ def item_description(self,item):
+ """returns the description for the item
+ """
+ if item.__class__.__name__ == "Question":
+ return item.text
+ if item.__class__.__name__ == "Answer":
+ return item.text
+ elif item.__class__.__name__ == "Comment":
+ return item.comment
+
class RssLastestQuestionsFeed(Feed):
"""rss feed class for the latest questions
"""
@@ -50,6 +108,11 @@ class RssLastestQuestionsFeed(Feed):
because the slug can change
"""
return self.link + item.get_absolute_url(no_slug = True)
+
+ def item_description(self, item):
+ """returns the desciption for the item
+ """
+ return item.text
def items(self, item):
"""get questions for the feed
diff --git a/askbot/skins/default/templates/question.html b/askbot/skins/default/templates/question.html
index 06cd1332..376cd058 100644
--- a/askbot/skins/default/templates/question.html
+++ b/askbot/skins/default/templates/question.html
@@ -12,6 +12,12 @@
{% endblock %}
{% block content %}
<h1><a href="{{ question.get_absolute_url() }}">{{ question.get_question_title() }}</a></h1>
+<p class="rss">
+ (<a
+ href="{{settings.APP_URL}}/feeds/question/{{ question.id }}"
+ title="{% trans %}subscribe to the questions feed{% endtrans %}"
+ >{% trans %}rss feed{% endtrans %}</a>)
+</p>
<table style="width:100%;" id="question-table" {% if question.deleted %}class="deleted"{%endif%}>
<tr>
<td style="width:30px;vertical-align:top">
diff --git a/askbot/urls.py b/askbot/urls.py
index 54c50d96..8b435c56 100644
--- a/askbot/urls.py
+++ b/askbot/urls.py
@@ -8,7 +8,7 @@ from django.conf.urls.defaults import handler500, handler404
from django.contrib import admin
from django.utils.translation import ugettext as _
from askbot import views
-from askbot.feed import RssLastestQuestionsFeed
+from askbot.feed import RssLastestQuestionsFeed, RssParticularQuestionFeed
from askbot.sitemap import QuestionsSitemap
from askbot.skins.utils import update_media_revision
@@ -16,7 +16,8 @@ admin.autodiscover()
update_media_revision()#needs to be run once, so put it here
feeds = {
- 'rss': RssLastestQuestionsFeed
+ 'rss': RssLastestQuestionsFeed,
+ 'question':RssParticularQuestionFeed
}
sitemaps = {
'questions': QuestionsSitemap