Another Step in the Quest to clean up the code base.
This commit is contained in:
@@ -1,40 +1,49 @@
|
||||
from datetime import datetime, time
|
||||
|
||||
from django.conf import settings
|
||||
from django.utils.translation import ugettext as _
|
||||
"""RSS and Atom Feeds to subscribe to the latest news or comments."""
|
||||
import django_comments as comments
|
||||
from django.conf import settings
|
||||
from django.contrib.syndication.views import Feed
|
||||
from django.utils.feedgenerator import Rss201rev2Feed
|
||||
from django.utils.translation import ugettext as _
|
||||
|
||||
from content.models import Article
|
||||
|
||||
MAX_ARTICLE_ITEMS = 10 # Maximum count of articles in the news RSS feed.
|
||||
MAX_COMMENT_ITEMS = 40 # Maximum count of comments in the comments RSS feed.
|
||||
|
||||
|
||||
# Start ignoring PyLintBear (R0201)
|
||||
class LatestNews(Feed):
|
||||
""" An Feed with the latest news from this site """
|
||||
link = "http://www.kasu.at/"
|
||||
description = _("Current news from Kasu")
|
||||
title = "Kasu - traditonelle asiatische Spielkultur"
|
||||
feed_type = Rss201rev2Feed
|
||||
|
||||
def items(self):
|
||||
return Article.objects.published()[:10]
|
||||
"""get the newest published news articles for the feed."""
|
||||
return Article.objects.published()[:MAX_ARTICLE_ITEMS]
|
||||
|
||||
def item_title(self, item):
|
||||
"""Return the article headline as title."""
|
||||
return item.headline
|
||||
|
||||
def item_author_name(self, item):
|
||||
"""Return the username from the author of this article."""
|
||||
return item.author.username
|
||||
|
||||
def item_categories(self, item):
|
||||
"""Return the name of the category to which this article belongs."""
|
||||
return item.category.name,
|
||||
|
||||
def item_description(self, item):
|
||||
"""Return the main content of the article."""
|
||||
return item.content
|
||||
|
||||
def item_pubdate(self, item):
|
||||
return datetime.combine(item.date_created, time())
|
||||
"""Return the creation date as date of publication."""
|
||||
return item.date_created
|
||||
|
||||
|
||||
# noinspection PyMethodMayBeStatic
|
||||
class LatestComments(Feed):
|
||||
"""Feed of latest comments on the current site."""
|
||||
|
||||
@@ -44,23 +53,30 @@ class LatestComments(Feed):
|
||||
feed_type = Rss201rev2Feed
|
||||
|
||||
def items(self):
|
||||
"""Get the newest published comments for the feed."""
|
||||
qs = comments.get_model().objects.filter(
|
||||
site__pk=settings.SITE_ID,
|
||||
is_public=True, is_removed=False
|
||||
)
|
||||
return qs.order_by('-submit_date')[:40]
|
||||
return qs.order_by('-submit_date')[:MAX_COMMENT_ITEMS]
|
||||
|
||||
def item_author_name(self, item):
|
||||
"""Return the username of the comment author."""
|
||||
return item.user_name
|
||||
|
||||
def item_description(self, item):
|
||||
"""Return the whole comment text."""
|
||||
return item.comment
|
||||
|
||||
def item_pubdate(self, item):
|
||||
"""Return the submit date as publication date."""
|
||||
return item.submit_date
|
||||
|
||||
def item_title(self, item):
|
||||
"""Return the author and the pagetitle that has been commented."""
|
||||
return 'From %(user_name)s in %(content_object)s' % {
|
||||
'user_name': item.user_name,
|
||||
'content_object': item.content_object
|
||||
}
|
||||
|
||||
# Stop ignoring
|
||||
|
||||
Reference in New Issue
Block a user