Author: humbedooh
Date: Mon Feb  8 12:41:23 2016
New Revision: 1729153

URL: http://svn.apache.org/viewvc?rev=1729153&view=rev
Log:
allow abstaining from STV

Modified:
    steve/trunk/pysteve/lib/plugins/stv.py
    steve/trunk/pysteve/www/htdocs/js/steve_stv.js

Modified: steve/trunk/pysteve/lib/plugins/stv.py
URL: 
http://svn.apache.org/viewvc/steve/trunk/pysteve/lib/plugins/stv.py?rev=1729153&r1=1729152&r2=1729153&view=diff
==============================================================================
--- steve/trunk/pysteve/lib/plugins/stv.py (original)
+++ steve/trunk/pysteve/lib/plugins/stv.py Mon Feb  8 12:41:23 2016
@@ -33,6 +33,7 @@ debug = []
 def validateSTV(vote, issue):
     "Tries to validate a vote, returns why if not valid, None otherwise"
     letters = [chr(i) for i in range(ord('a'), ord('a') + 
len(issue['candidates']))]
+    letters.push('-')
     for char in letters:
         if vote.count(char) > 1:
             return "Duplicate letters found"
@@ -326,7 +327,12 @@ def generate_random(count, votes):
 
 
 def tallySTV(votes, issue):
-    
+    rvotes = []
+    # Cut out abstained votes.
+    for vote in votes:
+        if vote.find("-") == -1:
+            rvotes.push(vote)
+    votes = rvotes
     m = re.match(r"stv(\d+)", issue['type'])
     if not m:
         raise Exception("Not an STV vote!")

Modified: steve/trunk/pysteve/www/htdocs/js/steve_stv.js
URL: 
http://svn.apache.org/viewvc/steve/trunk/pysteve/www/htdocs/js/steve_stv.js?rev=1729153&r1=1729152&r2=1729153&view=diff
==============================================================================
--- steve/trunk/pysteve/www/htdocs/js/steve_stv.js (original)
+++ steve/trunk/pysteve/www/htdocs/js/steve_stv.js Mon Feb  8 12:41:23 2016
@@ -642,6 +642,9 @@ function castVotes(args) {
     if (v.length == 0 && document.getElementById('mbox').value.length > 0) {
         v = document.getElementById('mbox').value
     }
+    if (v == "") {
+        v = "-"
+    }
     postREST("/steve/voter/vote/" + election + "/" + issue, {
         uid: uid,
         vote: v


Reply via email to