##// END OF EJS Templates
Show only several last items in the RSS feed.
neko259 -
r189:bd4cb780 default
parent child Browse files
Show More
@@ -1,74 +1,76 b''
1 from django.contrib.syndication.views import Feed
1 from django.contrib.syndication.views import Feed
2 from django.core.urlresolvers import reverse
2 from django.core.urlresolvers import reverse
3 from django.shortcuts import get_object_or_404
3 from django.shortcuts import get_object_or_404
4 from boards.models import Post, Tag, NO_PARENT
4 from boards.models import Post, Tag, NO_PARENT
5 from neboard import settings
5 from neboard import settings
6
6
7 __author__ = 'neko259'
7 __author__ = 'neko259'
8
8
9 MAX_ITEMS = 20
10
9
11
10 class AllThreadsFeed(Feed):
12 class AllThreadsFeed(Feed):
11 title = settings.SITE_NAME + ' - All threads'
13 title = settings.SITE_NAME + ' - All threads'
12 link = '/'
14 link = '/'
13 description_template = 'boards/rss/post.html'
15 description_template = 'boards/rss/post.html'
14
16
15 def items(self):
17 def items(self):
16 return Post.objects.get_threads(order_by='-pub_time')
18 return Post.objects.get_threads(order_by='-pub_time')[:MAX_ITEMS]
17
19
18 def item_title(self, item):
20 def item_title(self, item):
19 return item.title
21 return item.title
20
22
21 def item_link(self, item):
23 def item_link(self, item):
22 return reverse('thread', args={item.id})
24 return reverse('thread', args={item.id})
23
25
24 def item_pubdate(self, item):
26 def item_pubdate(self, item):
25 return item.pub_time
27 return item.pub_time
26
28
27
29
28 class TagThreadsFeed(Feed):
30 class TagThreadsFeed(Feed):
29 link = '/'
31 link = '/'
30 description_template = 'boards/rss/post.html'
32 description_template = 'boards/rss/post.html'
31
33
32 def items(self, obj):
34 def items(self, obj):
33 return Post.objects.get_threads(tag=obj, order_by='-pub_time')
35 return Post.objects.get_threads(tag=obj, order_by='-pub_time')[:MAX_ITEMS]
34
36
35 def get_object(self, request, tag_name):
37 def get_object(self, request, tag_name):
36 return get_object_or_404(Tag, name=tag_name)
38 return get_object_or_404(Tag, name=tag_name)
37
39
38 def item_title(self, item):
40 def item_title(self, item):
39 return item.title
41 return item.title
40
42
41 def item_link(self, item):
43 def item_link(self, item):
42 return reverse('thread', args={item.id})
44 return reverse('thread', args={item.id})
43
45
44 def item_pubdate(self, item):
46 def item_pubdate(self, item):
45 return item.pub_time
47 return item.pub_time
46
48
47 def title(self, obj):
49 def title(self, obj):
48 return obj.name
50 return obj.name
49
51
50
52
51 class ThreadPostsFeed(Feed):
53 class ThreadPostsFeed(Feed):
52 link = '/'
54 link = '/'
53 description_template = 'boards/rss/post.html'
55 description_template = 'boards/rss/post.html'
54
56
55 def items(self, obj):
57 def items(self, obj):
56 return Post.objects.get_thread(opening_post_id=obj)
58 return Post.objects.get_thread(opening_post_id=obj)[:MAX_ITEMS]
57
59
58 def get_object(self, request, post_id):
60 def get_object(self, request, post_id):
59 return post_id
61 return post_id
60
62
61 def item_title(self, item):
63 def item_title(self, item):
62 return item.title
64 return item.title
63
65
64 def item_link(self, item):
66 def item_link(self, item):
65 if NO_PARENT == item.parent:
67 if NO_PARENT == item.parent:
66 return reverse('thread', args={item.id})
68 return reverse('thread', args={item.id})
67 else:
69 else:
68 return reverse('thread', args={item.parent}) + "#" + str(item.id)
70 return reverse('thread', args={item.parent}) + "#" + str(item.id)
69
71
70 def item_pubdate(self, item):
72 def item_pubdate(self, item):
71 return item.pub_time
73 return item.pub_time
72
74
73 def title(self, obj):
75 def title(self, obj):
74 return get_object_or_404(Post, id=obj).title No newline at end of file
76 return get_object_or_404(Post, id=obj).title
General Comments 0
You need to be logged in to leave comments. Login now