diff --git a/helios/stats_urls.py b/helios/stats_urls.py new file mode 100644 index 0000000000000000000000000000000000000000..e96909f8192d301c2556a567534c8b9c81649b31 --- /dev/null +++ b/helios/stats_urls.py @@ -0,0 +1,15 @@ +""" +Helios URLs for Election related stuff + +Ben Adida (ben@adida.net) +""" + +from django.conf.urls.defaults import * + +from helios.stats_views import * + +urlpatterns = patterns( + '', + (r'^$', home), + (r'^elections$', elections), +) diff --git a/helios/stats_views.py b/helios/stats_views.py new file mode 100644 index 0000000000000000000000000000000000000000..30c2b95554e583b5866a22d76c370678ceb5d6f2 --- /dev/null +++ b/helios/stats_views.py @@ -0,0 +1,36 @@ +""" +Helios stats views +""" + +from django.core.urlresolvers import reverse +from django.core.mail import send_mail +from django.core.paginator import Paginator +from django.http import * +from django.db import transaction + +from security import * +from auth.security import get_user, save_in_session_across_logouts + +def require_admin(request): + user = get_user(request) + if not user or not user.admin_p: + raise PermissionDenied() + + return user + +def home(request): + return HttpResponse("foo") + +def elections(request): + user = require_admin(request) + + page = int(request.GET.get('page', 1)) + limit = int(request.GET.get('limit', 25)) + + elections = Election.objects.all().order_by('-created_at') + elections_paginator = Paginator(elections, limit) + elections_page = elections_paginator.page(page) + + return render_template(request, "stats", {'elections' : elections_page.object_list, 'elections_page': elections_page, + 'limit' : limit}) + diff --git a/helios/urls.py b/helios/urls.py index 5c9127da653901eb1b73756c1738c50bffc184b6..5c49d3b7ed08f95a2458d4075edca608bab6cab2 100644 --- a/helios/urls.py +++ b/helios/urls.py @@ -12,7 +12,7 @@ urlpatterns = patterns('', (r'^testcookie$', test_cookie), (r'^testcookie_2$', test_cookie_2), (r'^nocookies$', nocookies), - (r'^stats$', stats), + (r'^stats/', include('helios.stats_urls')), (r'^socialbuttons$', socialbuttons), # election shortcut by shortname