1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
from django.contrib.syndication.views. import Feed
from django.urls import reverse
from weblog.models import BlogPost, Category, CategoryTranslation
from weblog.apps import SETTINGS as blog_settings
from django.utils.translation import ugettext_lazy as _, pgettext_lazy
from django.utils import translation
class MainFeed(Feed):
title = _('%(blog_title)s RSS feed') % {'blog_title': blog_settings['blog_title']}
link = reverse('weblog:Index')
description = _('Latest blog posts on %(blog_title)s') % {'blog_title': blog_settings['blog_title']}
def items(self):
return BlogPost.objects.order_by('-publish_date')[:blog_settings['posts_per_page']]
def item_title(self, item):
return item.title
def item_description(self, item):
return item.content
class BlogFeed(Feed):
def get_object(self, request, category_slug=None):
if category_slug:
if category_slug != 'misc':
self.category = Category.objects.get(slug=obj)
self.category_name = self.category.name
self.current_language = translation.get_language()
if self.current_language is None:
self.current_language = settings.LANGUAGE_CODE
if IS_MULTILINGUAL and obj != 'misc':
category_translations = CategoryTranslation.objects.filter(category=category)
if category_translations.count() > 0:
for cat_trans in category_translations:
if self.current_language[0:2] == cat_trans.language[0:2]:
self.category_name = cat_trans
elif category_slug == 'misc':
self.category_name = pgettext_lazy('Posts without category', 'Uncategorized')
return category_slug
return None
def title(self, obj):
if obj:
return _('%(blog_title)s\'s %(category_name)s RSS feed') % {'blog_title': blog_settings['blog_title'], 'category_name': self.category_name}
return _('%(blog_title)s RSS feed') % {'blog_title': blog_settings['blog_title']}
def link(self, obj):
if obj:
return reverse('weblog:CategoryIndex', kwargs={'category_slug': obj})
return reverse('weblog:Index')
def description(self, obj):
if obj:
return _('Latest %(category_name)s blog posts on %(blog_title)s') % {'blog_title': blog_settings['blog_title'], 'category_name': self.category_name}
return _('Latest blog posts on %(blog_title)s') % {'blog_title': blog_settings['blog_title']}
def items(self, obj):
pass
def item_title(self, item, obj):
pass
def item_description(self, item, obj):
pass
|