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