From 60d497987137b129276d32137e74d3e9b41b762f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Wed, 18 Sep 2013 14:23:45 +0200 Subject: [PATCH] add rss & atom feeds for news items --- panikweb/urls.py | 4 +++- panikweb/views.py | 20 +++++++++++++++++++ panikweb_templates/templates/news.html | 2 +- panikweb_templates/templates/news/feed.html | 6 ++++++ panikweb_templates/templates/news/inline.html | 2 +- panikweb_templates/templates/news/roll.html | 2 +- .../templates/news/search_result.html | 2 +- 7 files changed, 33 insertions(+), 5 deletions(-) create mode 100644 panikweb_templates/templates/news/feed.html diff --git a/panikweb/urls.py b/panikweb/urls.py index dc8dd96..cfdcfaa 100644 --- a/panikweb/urls.py +++ b/panikweb/urls.py @@ -22,10 +22,12 @@ urlpatterns = patterns('', url(r'^listen/$', 'panikweb.search.listenArchives', name='listen'), url(r'^news/$', 'panikweb.views.news', name='news'), url(r'^news/archives/$', 'panikweb.views.newsArchives', name='newsArchives'), - url(r'^news/(?P[\w,-]+)$', 'panikweb.views.newsitemview', name='news-view'), + url(r'^news/(?P[\w,-]+)$', 'panikweb.views.newsitemview', name='newsitem-view'), url(r'^search/', 'panikweb.search.view', name='search'), + url(r'^news.rss', 'panikweb.views.rss_news_feed', name='rss-feed'), + url(r'^news.atom', 'panikweb.views.atom_news_feed', name='atom-feed'), url(r'^podcasts.rss', 'panikweb.views.podcasts_feed', name='podcasts-feed'), url(r'^newsletter/', include('newsletter.urls')), diff --git a/panikweb/views.py b/panikweb/views.py index 5837646..e158c2f 100644 --- a/panikweb/views.py +++ b/panikweb/views.py @@ -10,6 +10,9 @@ from django.views.generic.dates import _date_from_string from django.core.paginator import Paginator +from django.contrib.syndication.views import Feed +from django.utils.feedgenerator import Atom1Feed + import fiber.views from haystack.query import SearchQuerySet from jsonresponse import to_json @@ -559,3 +562,20 @@ class FiberPageView(fiber.views.FiberTemplateView): context['sectionName'] = 'About' return context fiber_page = FiberPageView.as_view() + + +class RssNewsFeed(Feed): + title = 'Radio Panik' + link = '/news/' + description_template = 'news/feed.html' + + def items(self): + return NewsItem.objects.order_by('-date')[:10] + +rss_news_feed = RssNewsFeed() + +class AtomNewsFeed(RssNewsFeed): + feed_type = Atom1Feed + + +atom_news_feed = AtomNewsFeed() diff --git a/panikweb_templates/templates/news.html b/panikweb_templates/templates/news.html index 2f3274b..d5ee3e2 100644 --- a/panikweb_templates/templates/news.html +++ b/panikweb_templates/templates/news.html @@ -36,7 +36,7 @@