From 0756746af48ab376ef6e0972850fc2cccc82b523 Mon Sep 17 00:00:00 2001 From: portnov Date: Mon, 23 Jun 2008 11:43:33 +0600 Subject: [PATCH] Add RSS feed for latest comments via django.contrib.syndication. --- comments/feeds.py | 17 +++++++++++++++++ templates/base/feeds/comments_description.html | 1 + templates/base/feeds/comments_title.html | 1 + templates/themes/rtfm/base.html | 2 +- urls.py | 7 ++++--- 5 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 comments/feeds.py create mode 100644 templates/base/feeds/comments_description.html create mode 100644 templates/base/feeds/comments_title.html diff --git a/comments/feeds.py b/comments/feeds.py new file mode 100644 index 0000000..299c545 --- /dev/null +++ b/comments/feeds.py @@ -0,0 +1,17 @@ +from django.conf import settings +from django.contrib.syndication.feeds import Feed +from django.utils.translation import ugettext as _ +from utils import get_comment_url +from models import Comment + +class LastComments(Feed): + title = _("Last comments") + link = "/" + description = _("Last comments") + + def items(self): + return Comment.objects.all()[:settings.RSS_MAX_ITEMS] + + def item_link(self,comment): + return get_comment_url(comment) + diff --git a/templates/base/feeds/comments_description.html b/templates/base/feeds/comments_description.html new file mode 100644 index 0000000..b590e8d --- /dev/null +++ b/templates/base/feeds/comments_description.html @@ -0,0 +1 @@ +{{obj.text}} diff --git a/templates/base/feeds/comments_title.html b/templates/base/feeds/comments_title.html new file mode 100644 index 0000000..891d2fe --- /dev/null +++ b/templates/base/feeds/comments_title.html @@ -0,0 +1 @@ +{{obj.title}} от {{obj.author.username}} diff --git a/templates/themes/rtfm/base.html b/templates/themes/rtfm/base.html index bc27fe3..4c18a15 100644 --- a/templates/themes/rtfm/base.html +++ b/templates/themes/rtfm/base.html @@ -10,7 +10,7 @@ - + diff --git a/urls.py b/urls.py index 1abccab..e2ef2c5 100644 --- a/urls.py +++ b/urls.py @@ -1,5 +1,8 @@ from django.conf.urls.defaults import * from django.contrib.auth.views import login, logout +from comments.feeds import LastComments + +feeds = dict(comments = LastComments) urlpatterns = patterns('', (r'^$', "mgmt.views.main"), @@ -12,7 +15,6 @@ urlpatterns = patterns('', (r'^docs/(\d+)/edit/$', "mgmt.views.edit_document"), (r'^docs/create/(\d+)/$', "mgmt.views.create_document"), (r'^bugs/state/(\d+)/$', 'mgmt.views.bugs_by_state'), -# (r'^bugs/feed/$', 'mgmt.views.last_bugs'), (r'^bugs/(\d+)/$', "mgmt.views.one_bug"), (r'^bugs/(\d+)/edit/$', "mgmt.views.edit_bug"), (r'^bugs/report/(\d+)/$', 'mgmt.views.bug_report'), @@ -24,7 +26,6 @@ urlpatterns = patterns('', (r'^tasks/(\d+)/$', 'mgmt.views.one_task'), (r'^tasks/(\d+)/edit/$', 'mgmt.views.edit_task'), (r'^tasks/create/(\d+)/$', 'mgmt.views.create_task'), -# (r'^reports/feed/$', 'mgmt.views.last_reports'), (r'^reports/(\d+)/$', 'mgmt.views.one_report'), (r'^reports/(\d+)/edit/$', 'mgmt.views.edit_report'), (r'^reports/create/(\d+)/$', 'mgmt.views.create_report'), @@ -32,8 +33,8 @@ urlpatterns = patterns('', (r'^message/(\d+)/delete/$', 'mgmt.views.delete_private_message'), (r'^preview/$', 'mgmt.views.message_preview'), (r'^comments/(\d+)/delete/$', 'mgmt.views.delete_comment'), -# (r'^comments/feed/$', 'mgmt.views.last_comments'), (r'^my/$', 'mgmt.views.my_page'), + (r'^feeds/(.*)/$', 'django.contrib.syndication.views.feed', {'feed_dict': feeds}), (r'^git/', include('pygit.urls')), (r'^kb/', include('kb.urls')), -- 1.7.2.3