Add a few cache headers and minor feed caching back in

Now that we aren't using the middleware, add cache headers on our
primary pages so we can prevent some repeat traffic, and cache all feeds
for five minutes.

Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
Dan McGee 2012-01-03 15:00:49 -06:00
parent 5a91a246a8
commit 9ddbe26e4c
2 changed files with 11 additions and 4 deletions

View File

@ -1,6 +1,7 @@
from django.conf import settings
from django.contrib.auth.models import User
from django.http import Http404
from django.views.decorators.cache import cache_control
from django.views.generic import list_detail
from django.views.generic.simple import direct_to_template
@ -10,6 +11,7 @@
from news.models import News
from .utils import get_recent_updates
@cache_control(max_age=300)
def index(request):
pkgs = get_recent_updates()
context = {
@ -33,6 +35,7 @@ def index(request):
},
}
@cache_control(max_age=300)
def userlist(request, user_type='devs'):
users = User.objects.order_by(
'first_name', 'last_name').select_related('userprofile')
@ -50,12 +53,14 @@ def userlist(request, user_type='devs'):
context['users'] = users
return direct_to_template(request, 'public/userlist.html', context)
@cache_control(max_age=300)
def donate(request):
context = {
'donors': Donor.objects.filter(visible=True).order_by('name'),
}
return direct_to_template(request, 'public/donate.html', context)
@cache_control(max_age=300)
def download(request):
qset = MirrorUrl.objects.select_related('mirror', 'protocol').filter(
protocol__is_download=True,
@ -71,6 +76,7 @@ def download(request):
template_object_name="mirror_url",
extra_context=context)
@cache_control(max_age=300)
def feeds(request):
context = {
'arches': Arch.objects.all(),
@ -78,6 +84,7 @@ def feeds(request):
}
return direct_to_template(request, 'public/feeds.html', context)
@cache_control(max_age=300)
def keys(request):
context = {
'keys': MasterKey.objects.select_related('owner', 'revoker',

View File

@ -27,12 +27,12 @@
# Feeds patterns, used later
feeds_patterns = patterns('',
(r'^$', 'public.views.feeds', {}, 'feeds-list'),
(r'^news/$', NewsFeed()),
(r'^packages/$', PackageFeed()),
(r'^news/$', cache_page(300)(NewsFeed())),
(r'^packages/$', cache_page(300)(PackageFeed())),
(r'^packages/(?P<arch>[A-z0-9]+)/$',
PackageFeed()),
cache_page(300)(PackageFeed())),
(r'^packages/(?P<arch>[A-z0-9]+)/(?P<repo>[A-z0-9\-]+)/$',
PackageFeed()),
cache_page(300)(PackageFeed())),
)
# Sitemaps