1
from django.contrib.syndication.feeds import FeedDoesNotExist
1
from django.contrib.syndication.views import Feed, FeedDoesNotExist
2
2
from django.core.exceptions import ObjectDoesNotExist
3
from django.contrib.sites.models import Site
4
from django.contrib.syndication.feeds import Feed
5
3
from django.core.urlresolvers import reverse
6
from widelands.news.models import Post, Category
4
from news.models import Post, Category
6
# Validated through http://validator.w3.org/feed/
9
7
class NewsPostsFeed(Feed):
10
title = 'Widelands news posts feed'
9
title = 'Widelands news feed'
11
10
description = 'The news section from the widelands.org homepage'
12
title_template = 'feeds/posts_title.html'
13
description_template = 'feeds/posts_description.html'
11
title_template = 'news/feeds/posts_title.html'
12
description_template = 'news/feeds/posts_description.html'
15
return Post.objects.published()[:10]
16
18
return reverse('news_index')
19
return Post.objects.published()[:10]
21
def item_pubdate(self, obj):
20
def item_pubdate(self, item):
23
# Currently not used / not checked for compatibility for django 1.8
25
24
class NewsPostsByCategory(Feed):
26
25
title = 'Widelands.org posts category feed'
30
29
raise ObjectDoesNotExist
31
30
return Category.objects.get(slug__exact=bits[0])
35
34
raise FeedDoesNotExist
36
return obj.get_absolute_url()
38
def description(self, obj):
39
return "Posts recently categorized as %s" % obj.title
42
return obj.post_set.published()[:10]
35
return item.get_absolute_url()
37
def description(self, item):
38
return "Posts recently categorized as %s" % item.title
40
def items(self, item):
41
return item.post_set.published()[:10]