diff options
author | Luke Shumaker <lukeshu@sbcglobal.net> | 2015-04-13 21:08:45 -0400 |
---|---|---|
committer | Luke Shumaker <lukeshu@sbcglobal.net> | 2015-04-13 21:08:45 -0400 |
commit | c6eb3b7b3c77d1b70126e0755c9ee66de88d5395 (patch) | |
tree | 138b206e95b7ec98ad9d319dd95157a2028b4cd1 /feeds.py | |
parent | 81a4f3e5e602d900ebfb2c20eb7565fddfb013a2 (diff) | |
parent | c910b9220c45eb9d493d260f325efda2141205a4 (diff) |
Merge branch 'archweb-generic' into master-nomake
# Conflicts:
# public/views.py
Diffstat (limited to 'feeds.py')
-rw-r--r-- | feeds.py | 22 |
1 files changed, 15 insertions, 7 deletions
@@ -5,11 +5,11 @@ from pytz import utc from django.conf import settings from django.contrib.sites.models import Site from django.contrib.syndication.views import Feed +from django.db import connection from django.db.models import Q from django.utils.feedgenerator import Rss201rev2Feed from django.views.decorators.http import condition -from main.utils import retrieve_latest from main.models import Arch, Repo, Package from news.models import News from releng.models import Release @@ -65,20 +65,21 @@ class GuidNotPermalinkFeed(Rss201rev2Feed): def package_etag(request, *args, **kwargs): - latest = retrieve_latest(Package) + latest = package_last_modified(request) if latest: return hashlib.md5(str(kwargs) + str(latest)).hexdigest() return None def package_last_modified(request, *args, **kwargs): - return retrieve_latest(Package) + cursor = connection.cursor() + cursor.execute("SELECT MAX(last_update) FROM packages") + return cursor.fetchone()[0] class PackageFeed(Feed): feed_type = GuidNotPermalinkFeed link = '/packages/' - title_template = 'feeds/packages_title.html' def __call__(self, request, *args, **kwargs): wrapper = condition(etag_func=package_etag, last_modified_func=package_last_modified) @@ -141,6 +142,9 @@ class PackageFeed(Feed): def item_pubdate(self, item): return item.last_update + def item_title(self, item): + return '%s %s %s' % (item.pkgname, item.full_version, item.arch.name) + def item_description(self, item): return item.pkgdesc @@ -149,13 +153,15 @@ class PackageFeed(Feed): def news_etag(request, *args, **kwargs): - latest = retrieve_latest(News, 'last_modified') + latest = news_last_modified(request) if latest: return hashlib.md5(str(latest)).hexdigest() return None def news_last_modified(request, *args, **kwargs): - return retrieve_latest(News, 'last_modified') + cursor = connection.cursor() + cursor.execute("SELECT MAX(last_modified) FROM news") + return cursor.fetchone()[0] class NewsFeed(Feed): @@ -165,7 +171,6 @@ class NewsFeed(Feed): link = '/news/' description = 'The latest and greatest news from the '+settings.BRANDING_DISTRONAME+' distribution.' subtitle = description - description_template = 'feeds/news_description.html' def __call__(self, request, *args, **kwargs): wrapper = condition(etag_func=news_etag, last_modified_func=news_last_modified) @@ -189,6 +194,9 @@ class NewsFeed(Feed): def item_title(self, item): return item.title + def item_description(self, item): + return item.html() + class ReleaseFeed(Feed): feed_type = GuidNotPermalinkFeed |