From 7ce7a15621cba593ae10dd43c7ad8c6e538b0d67 Mon Sep 17 00:00:00 2001
From: Ben Adida <ben@adida.net>
Date: Wed, 17 Nov 2010 08:20:08 -0800
Subject: [PATCH] added queue forcing

---
 helios/stats_urls.py        | 1 +
 helios/stats_views.py       | 9 +++++++++
 helios/templates/stats.html | 2 +-
 3 files changed, 11 insertions(+), 1 deletion(-)

diff --git a/helios/stats_urls.py b/helios/stats_urls.py
index 9e6e270..606ee80 100644
--- a/helios/stats_urls.py
+++ b/helios/stats_urls.py
@@ -11,6 +11,7 @@ from helios.stats_views import *
 urlpatterns = patterns(
     '',
     (r'^$', home),
+    (r'^force-queue$', force_queue),
     (r'^elections$', elections),
     (r'^recent-votes$', recent_votes),
 )
diff --git a/helios/stats_views.py b/helios/stats_views.py
index 7381599..1affcbb 100644
--- a/helios/stats_views.py
+++ b/helios/stats_views.py
@@ -13,6 +13,7 @@ from security import *
 from auth.security import get_user, save_in_session_across_logouts
 from view_utils import *
 
+from helios import tasks
 
 def require_admin(request):
   user = get_user(request)
@@ -26,6 +27,14 @@ def home(request):
   num_votes_in_queue = CastVote.objects.filter(invalidated_at=None, verified_at=None).count()
   return render_template(request, 'stats', {'num_votes_in_queue': num_votes_in_queue})
 
+def force_queue(request):
+  user = require_admin(request)
+  votes_in_queue = CastVote.objects.filter(invalidated_at=None, verified_at=None)
+  for cv in votes_in_queue:
+    tasks.cast_vote_verify_and_store.delay(cv.id)
+
+  return HttpResponseRedirect(reverse(home))
+
 def elections(request):
   user = require_admin(request)
 
diff --git a/helios/templates/stats.html b/helios/templates/stats.html
index 6b1cebd..9c48e9f 100644
--- a/helios/templates/stats.html
+++ b/helios/templates/stats.html
@@ -9,6 +9,6 @@
 <li> <a href="{% url helios.stats_views.recent_votes %}">recent votes</a></li>
 </ul>
 
-<p><b>{{num_votes_in_queue}}</b> votes in queue.</p>
+<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>
 
 {% endblock %}
-- 
GitLab