aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTheo Chatzimichos <tampakrap@gmail.com>2013-08-17 15:07:55 -0700
committerTheo Chatzimichos <tampakrap@gmail.com>2013-08-17 15:07:55 -0700
commitfb6a5838875e32204b37ddb445798dad4adafcea (patch)
tree45e9580fdc7a0c87f2b2a64dc8953a79823d6383 /okupy/accounts
parentMerge pull request #65 from mgorny/strong-auth-decorator (diff)
parentadd per-view caching on lists (diff)
downloadidentity.gentoo.org-fb6a5838875e32204b37ddb445798dad4adafcea.tar.gz
identity.gentoo.org-fb6a5838875e32204b37ddb445798dad4adafcea.tar.bz2
identity.gentoo.org-fb6a5838875e32204b37ddb445798dad4adafcea.zip
Merge pull request #63 from dastergon/improve_lists_view
Improved and added per-view caching on lists
Diffstat (limited to 'okupy/accounts')
-rw-r--r--okupy/accounts/urls.py6
-rw-r--r--okupy/accounts/views.py24
2 files changed, 14 insertions, 16 deletions
diff --git a/okupy/accounts/urls.py b/okupy/accounts/urls.py
index 91800b0..cf05c47 100644
--- a/okupy/accounts/urls.py
+++ b/okupy/accounts/urls.py
@@ -8,9 +8,9 @@ accounts_urlpatterns = patterns('',
url(r'^login/$', v.login),
url(r'^ssl-auth/$', v.ssl_auth),
url(r'^logout/$', v.logout),
- url(r'^devlist/$', v.DevListsView.as_view(template_name='devlist.html')),
- url(r'^former-devlist/$', v.DevListsView.as_view(template_name='former-devlist.html')),
- url(r'^foundation-members/$', v.DevListsView.as_view(template_name='foundation-members.html')),
+ url(r'^devlist/$', v.accounts_lists, {'acc_list': 'devlist'}),
+ url(r'^former-devlist/$', v.accounts_lists, {'acc_list': 'former-devlist'}),
+ url(r'^foundation-members/$', v.accounts_lists, {'acc_list': 'foundation-members'}),
url(r'^signup/$', v.signup),
url(r'^activate/(?P<token>[a-zA-Z0-9]+)/$', v.activate),
url(r'^otp-setup/$', v.otp_setup),
diff --git a/okupy/accounts/views.py b/okupy/accounts/views.py
index 6c8e214..b477e42 100644
--- a/okupy/accounts/views.py
+++ b/okupy/accounts/views.py
@@ -11,6 +11,7 @@ from django.db import IntegrityError
from django.forms.models import model_to_dict
from django.http import (HttpResponse, HttpResponseForbidden,
HttpResponseBadRequest)
+from django.views.decorators.cache import cache_page
from django.views.generic.base import View
from django.shortcuts import redirect, render
from django.utils.html import format_html
@@ -55,19 +56,16 @@ import qrcode
logger = logging.getLogger('okupy')
logger_mail = logging.getLogger('mail_okupy')
-
-class DevListsView(View):
- template_name = ''
-
- def get(self, request, *args, **kwargs):
- if 'devlist.html' in self.template_name:
- devlist = LDAPUser.objects.filter(is_developer=True)
- elif 'former-devlist.html' in self.template_name:
- devlist = LDAPUser.objects.filter(is_retired=True)
- elif 'foundation-members.html' in self.template_name:
- devlist = LDAPUser.objects.filter(is_foundation=True)
- return render(request, self.template_name, {'devlist': devlist})
-
+@cache_page(60 * 20)
+def accounts_lists(request, acc_list):
+ devlist = LDAPUser.objects.all()
+ if acc_list == 'devlist':
+ devlist = devlist.filter(is_developer=True)
+ elif acc_list == 'former-devlist':
+ devlist = devlist.filter(is_retired=True)
+ elif acc_list == 'foundation-members':
+ devlist = devlist.filter(is_foundation=True)
+ return render(request, '%s.html' % acc_list, {'devlist': devlist})
@otp_required
def index(request):