##// END OF EJS Templates
Made quote button actually button so it is impossible to accidentally quote its text
Made quote button actually button so it is impossible to accidentally quote its text

File last commit:

r1882:efba54ba default
r1909:004a4ff8 default
Show More
rss.py
79 lines | 2.0 KiB | text/x-python | PythonLexer
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, Thread, TagAlias
from boards import settings
from boards.models.thread import STATUS_ARCHIVE
__author__ = 'nekorin'
MAX_ITEMS = settings.get_int('RSS', 'MaxItems')
# TODO Make tests for all of these
class AllThreadsFeed(Feed):
title = settings.get('Version', 'SiteName') + ' - All threads'
link = '/'
description_template = 'boards/rss/post.html'
def items(self):
return Post.objects.filter(opening=True).exclude(thread__status=STATUS_ARCHIVE).order_by('-id')[:MAX_ITEMS]
def item_title(self, item):
return item.title
def item_link(self, item):
return item.get_absolute_url()
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.filter(opening=True, thread__tags__aliases__name__in=[obj]).exclude(thread__status=STATUS_ARCHIVE).order_by('-id')[:MAX_ITEMS]
def get_object(self, request, tag_name):
return get_object_or_404(TagAlias, name=tag_name).parent
def item_title(self, item):
return item.title
def item_link(self, item):
return item.get_absolute_url()
def item_pubdate(self, item):
return item.pub_time
def title(self, obj):
return obj.get_name()
class ThreadPostsFeed(Feed):
link = '/'
description_template = 'boards/rss/post.html'
def items(self, obj):
return obj.get_thread().get_replies().order_by('-pub_time')[:MAX_ITEMS]
def get_object(self, request, post_id):
return get_object_or_404(Post, id=post_id)
def item_title(self, item):
return item.title
def item_link(self, item):
return item.get_absolute_url()
def item_pubdate(self, item):
return item.pub_time
def title(self, obj):
return obj.title