summaryrefslogtreecommitdiff
path: root/sublab_project/news
diff options
context:
space:
mode:
Diffstat (limited to 'sublab_project/news')
-rw-r--r--sublab_project/news/feeds.py32
-rw-r--r--sublab_project/news/urls.py3
2 files changed, 35 insertions, 0 deletions
diff --git a/sublab_project/news/feeds.py b/sublab_project/news/feeds.py
new file mode 100644
index 0000000..011cee5
--- /dev/null
+++ b/sublab_project/news/feeds.py
@@ -0,0 +1,32 @@
+from django.contrib.syndication.views import Feed
+from django.utils.feedgenerator import Atom1Feed
+from django.core.urlresolvers import reverse
+from django.utils.html import strip_tags
+
+from news.models import News
+
+class NewsFeed(Feed):
+ title = "sublab.org news"
+ description = "the latest news from your sublab"
+
+ def link(self):
+ return reverse(self)
+
+ def items(self):
+ return News.objects.order_by('-date_updated')[:10]
+
+ def item_author_name(self, item):
+ return item.author
+
+ def item_description(self, item):
+ return strip_tags(item.content_html)
+
+ def item_title(self, item):
+ return item.title
+
+ def item_pubdate(self, item):
+ return item.date_created
+
+class NewsFeedAtom(NewsFeed):
+ feed_type = Atom1Feed
+ subtitle = NewsFeed.description
diff --git a/sublab_project/news/urls.py b/sublab_project/news/urls.py
index fe682ad..7f2029c 100644
--- a/sublab_project/news/urls.py
+++ b/sublab_project/news/urls.py
@@ -2,9 +2,12 @@ from django.conf.urls.defaults import patterns, include, url
from django.views.generic import DetailView
from news.models import News
+from news.feeds import NewsFeed, NewsFeedAtom
from news.views import NewsListView
urlpatterns = patterns('',
url(r'^$', NewsListView.as_view(), name='news_list'),
url(r'^news/(?P<slug>[-\w]+)/$', DetailView.as_view(model=News), name='news_detail'),
+ url(r'^newsfeed/rss/$', NewsFeed(), name='news_feed'),
+ url(r'^newsfeed/atom/$', NewsFeedAtom(), name='news_feed_atom'),
)