##// END OF EJS Templates
Fixed RSS items. Now getting the latest ones instead of the earliest.
neko259 -
r214:eb81a357 default
parent child Browse files
Show More
@@ -1,80 +1,80 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
4 from boards.models import Post, Tag
5 from neboard import settings
5 from neboard import settings
6
6
7 __author__ = 'neko259'
7 __author__ = 'neko259'
8
8
9 MAX_ITEMS = 20
9 MAX_ITEMS = 20
10
10
11 # TODO Make tests for all of these
11 # TODO Make tests for all of these
12 class AllThreadsFeed(Feed):
12 class AllThreadsFeed(Feed):
13
13
14 title = settings.SITE_NAME + ' - All threads'
14 title = settings.SITE_NAME + ' - All threads'
15 link = '/'
15 link = '/'
16 description_template = 'boards/rss/post.html'
16 description_template = 'boards/rss/post.html'
17
17
18 def items(self):
18 def items(self):
19 return Post.objects.get_threads(order_by='-pub_time')[:MAX_ITEMS]
19 return Post.objects.get_threads(order_by='-pub_time')[-MAX_ITEMS:]
20
20
21 def item_title(self, item):
21 def item_title(self, item):
22 return item.title
22 return item.title
23
23
24 def item_link(self, item):
24 def item_link(self, item):
25 return reverse('thread', args={item.id})
25 return reverse('thread', args={item.id})
26
26
27 def item_pubdate(self, item):
27 def item_pubdate(self, item):
28 return item.pub_time
28 return item.pub_time
29
29
30
30
31 class TagThreadsFeed(Feed):
31 class TagThreadsFeed(Feed):
32
32
33 link = '/'
33 link = '/'
34 description_template = 'boards/rss/post.html'
34 description_template = 'boards/rss/post.html'
35
35
36 def items(self, obj):
36 def items(self, obj):
37 return Post.objects.get_threads(tag=obj,
37 return Post.objects.get_threads(tag=obj,
38 order_by='-pub_time')[:MAX_ITEMS]
38 order_by='-pub_time')[-MAX_ITEMS:]
39
39
40 def get_object(self, request, tag_name):
40 def get_object(self, request, tag_name):
41 return get_object_or_404(Tag, name=tag_name)
41 return get_object_or_404(Tag, name=tag_name)
42
42
43 def item_title(self, item):
43 def item_title(self, item):
44 return item.title
44 return item.title
45
45
46 def item_link(self, item):
46 def item_link(self, item):
47 return reverse('thread', args={item.id})
47 return reverse('thread', args={item.id})
48
48
49 def item_pubdate(self, item):
49 def item_pubdate(self, item):
50 return item.pub_time
50 return item.pub_time
51
51
52 def title(self, obj):
52 def title(self, obj):
53 return obj.name
53 return obj.name
54
54
55
55
56 class ThreadPostsFeed(Feed):
56 class ThreadPostsFeed(Feed):
57
57
58 link = '/'
58 link = '/'
59 description_template = 'boards/rss/post.html'
59 description_template = 'boards/rss/post.html'
60
60
61 def items(self, obj):
61 def items(self, obj):
62 return Post.objects.get_thread(opening_post_id=obj)[:MAX_ITEMS]
62 return Post.objects.get_thread(opening_post_id=obj)[-MAX_ITEMS:]
63
63
64 def get_object(self, request, post_id):
64 def get_object(self, request, post_id):
65 return post_id
65 return post_id
66
66
67 def item_title(self, item):
67 def item_title(self, item):
68 return item.title
68 return item.title
69
69
70 def item_link(self, item):
70 def item_link(self, item):
71 if item.thread:
71 if item.thread:
72 return reverse('thread', args={item.thread.id}) + "#" + str(item.id)
72 return reverse('thread', args={item.thread.id}) + "#" + str(item.id)
73 else:
73 else:
74 return reverse('thread', args={item.id})
74 return reverse('thread', args={item.id})
75
75
76 def item_pubdate(self, item):
76 def item_pubdate(self, item):
77 return item.pub_time
77 return item.pub_time
78
78
79 def title(self, obj):
79 def title(self, obj):
80 return get_object_or_404(Post, id=obj).title
80 return get_object_or_404(Post, id=obj).title
General Comments 0
You need to be logged in to leave comments. Login now