diff --git a/helios/stats_urls.py b/helios/stats_urls.py index 606ee80d9380ee577f005b60fb6bd0c32ff2e40c..53bae6eec7d336416d3c326687e433b293ba76d0 100644 --- a/helios/stats_urls.py +++ b/helios/stats_urls.py @@ -13,5 +13,6 @@ urlpatterns = patterns( (r'^$', home), (r'^force-queue$', force_queue), (r'^elections$', elections), + (r'^problem-elections$', recent_problem_elections), (r'^recent-votes$', recent_votes), ) diff --git a/helios/stats_views.py b/helios/stats_views.py index 1affcbbf7545d50fb572f56cffdf7f5c7d76a925..456b12a5d3299332ad3875d867331b5376fe99a9 100644 --- a/helios/stats_views.py +++ b/helios/stats_views.py @@ -56,3 +56,11 @@ def recent_votes(request): elections_with_votes_in_24hours = Election.objects.filter(voter__castvote__cast_at__gt= datetime.datetime.utcnow() - datetime.timedelta(days=1)).annotate(last_cast_vote = Max('voter__castvote__cast_at'), num_recent_cast_votes = Count('voter__castvote')).order_by('-last_cast_vote') return render_template(request, "stats_recent_votes", {'elections' : elections_with_votes_in_24hours}) + +def recent_problem_elections(request): + user = require_admin(request) + + # elections left unfrozen older than 1 day old (and younger than 10 days old, so we don't go back too far) + elections_with_problems = Election.objects.filter(frozen_at = None, created_at__gt = datetime.datetime.utcnow() - datetime.timedelta(days=10), created_at__lt = datetime.datetime.utcnow() - datetime.timedelta(days=1) ) + + return render_template(request, "stats_problem_elections", {'elections' : elections_with_problems}) diff --git a/helios/templates/stats.html b/helios/templates/stats.html index 9c48e9f15c5e82516f45606c81f0e53eaf6621d8..f9ae1f72d83d8c58331db582ade27e6c723862d4 100644 --- a/helios/templates/stats.html +++ b/helios/templates/stats.html @@ -7,6 +7,7 @@ <ul> <li> <a href="{% url helios.stats_views.elections %}">elections</a></li> <li> <a href="{% url helios.stats_views.recent_votes %}">recent votes</a></li> +<li> <a href="{% url helios.stats_views.recent_problem_elections %}">recent problem elections</a></li> </ul> <p><b>{{num_votes_in_queue}}</b> votes in queue. {% if num_votes_in_queue %}[<a href="{% url helios.stats_views.force_queue %}">force it</a>]{% endif %}</p> diff --git a/helios/views.py b/helios/views.py index 20e2181dab92a69e33175651bed3c5e290c2bed1..51761344d1ec485cba7b27dd765800aff1cf5098 100644 --- a/helios/views.py +++ b/helios/views.py @@ -105,7 +105,7 @@ def admin_autologin(request): users = User.objects.filter(admin_p=True) if len(users) == 0: - users = User.objects.all() + return HttpResponse("no admin users!") if len(users) == 0: return HttpResponse("no users!")