##// END OF EJS Templates
Fixed an import issue in models. Removed tests for admin because the user model has changed.
Fixed an import issue in models. Removed tests for admin because the user model has changed.

File last commit:

r89:84c33124 default
r140:aaf68ba2 1.1
Show More
rss.py
73 lines | 1.8 KiB | text/x-python | PythonLexer
neko259
Implemented RSS support. This fixes #11
r89 from django.contrib.syndication.views import Feed
from django.core.urlresolvers import reverse
from django.shortcuts import get_object_or_404
from boards.models import Post, Tag, NO_PARENT
from neboard import settings
__author__ = 'neko259'
class AllThreadsFeed(Feed):
title = settings.SITE_NAME + ' - All threads'
link = '/'
description_template = 'boards/rss/post.html'
def items(self):
return Post.objects.get_threads(order_by='-pub_time')
def item_title(self, item):
return item.title
def item_link(self, item):
return reverse('thread', args={item.id})
def item_pubdate(self, item):
return item.pub_time
class TagThreadsFeed(Feed):
link = '/'
description_template = 'boards/rss/post.html'
def items(self, obj):
return Post.objects.get_threads(tag=obj, order_by='-pub_time')
def get_object(self, request, tag_name):
return get_object_or_404(Tag, name=tag_name)
def item_title(self, item):
return item.title
def item_link(self, item):
return reverse('thread', args={item.id})
def item_pubdate(self, item):
return item.pub_time
def title(self, obj):
return obj.name
class ThreadPostsFeed(Feed):
link = '/'
description_template = 'boards/rss/post.html'
def items(self, obj):
return Post.objects.get_thread(opening_post_id=obj)
def get_object(self, request, post_id):
return post_id
def item_title(self, item):
return item.title
def item_link(self, item):
if NO_PARENT == item.parent:
return reverse('thread', args={item.id})
else:
return reverse('thread', args={item.parent}) + "#" + str(item.id)
def item_pubdate(self, item):
return item.pub_time
def title(self, obj):
return get_object_or_404(Post, id=obj).title