Author: humbedooh
Date: Wed Mar 25 00:49:05 2015
New Revision: 1669031

URL: http://svn.apache.org/r1669031
Log:
Re-factor and add some more DH/STV types, why stop at 9?!
Also, this requires some snazzy sorting, so let's do that.

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

Modified: steve/trunk/pysteve/lib/plugins/dh.py
URL: 
http://svn.apache.org/viewvc/steve/trunk/pysteve/lib/plugins/dh.py?rev=1669031&r1=1669030&r2=1669031&view=diff
==============================================================================
--- steve/trunk/pysteve/lib/plugins/dh.py (original)
+++ steve/trunk/pysteve/lib/plugins/dh.py Wed Mar 25 00:49:05 2015
@@ -91,68 +91,17 @@ constants.VOTE_TYPES += (
         'vote_func': None,
         'tally_func': tallyDH
     },
-    {
-        'key': "dh2",
-        'description': "D'Hondt Election with 2 seats",
-        'category': 'dh',
-        'validate_func': validateDH,
-        'vote_func': None,
-        'tally_func': tallyDH
-    },
-    {
-        'key': "dh3",
-        'description': "D'Hondt Election with 3 seats",
-        'category': 'dh',
-        'validate_func': validateDH,
-        'vote_func': None,
-        'tally_func': tallyDH
-    },
-    {
-        'key': "dh4",
-        'description': "D'Hondt Election with 4 seats",
-        'category': 'dh',
-        'validate_func': validateDH,
-        'vote_func': None,
-        'tally_func': tallyDH
-    },
-    {
-        'key': "dh5",
-        'description': "D'Hondt Election with 5 seats",
-        'category': 'dh',
-        'validate_func': validateDH,
-        'vote_func': None,
-        'tally_func': tallyDH
-    },
-    {
-        'key': "dh6",
-        'description': "D'Hondt Election with 6 seats",
-        'category': 'dh',
-        'validate_func': validateDH,
-        'vote_func': None,
-        'tally_func': tallyDH
-    },
-    {
-        'key': "dh7",
-        'description': "D'Hondt Election with 7 seats",
-        'category': 'dh',
-        'validate_func': validateDH,
-        'vote_func': None,
-        'tally_func': tallyDH
-    },
-    {
-        'key': "dh8",
-        'description': "D'Hondt Election with 8 seats",
-        'category': 'dh',
-        'validate_func': validateDH,
-        'vote_func': None,
-        'tally_func': tallyDH
-    },
-    {
-        'key': "dh9",
-        'description': "D'Hondt Election with 9 seats",
-        'category': 'dh',
-        'validate_func': validateDH,
-        'vote_func': None,
-        'tally_func': tallyDH
-    }
-)
\ No newline at end of file
+)
+
+# Add ad nauseam
+for i in range(2,21):
+    constants.VOTE_TYPES += (
+        {
+            'key': "dh%u" % i,
+            'description': "D'Hondt Election with %u seats" % i,
+            'category': 'dh',
+            'validate_func': validateDH,
+            'vote_func': None,
+            'tally_func': tallyDH
+        },
+    )
\ No newline at end of file

Modified: steve/trunk/pysteve/lib/plugins/stv.py
URL: 
http://svn.apache.org/viewvc/steve/trunk/pysteve/lib/plugins/stv.py?rev=1669031&r1=1669030&r2=1669031&view=diff
==============================================================================
--- steve/trunk/pysteve/lib/plugins/stv.py (original)
+++ steve/trunk/pysteve/lib/plugins/stv.py Wed Mar 25 00:49:05 2015
@@ -176,68 +176,17 @@ constants.VOTE_TYPES += (
         'vote_func': None,
         'tally_func': tallySTV
     },
-    {
-        'key': "stv2",
-        'description': "Single Transferrable Vote with 2 seats",
-        'category': 'stv',
-        'validate_func': validateSTV,
-        'vote_func': None,
-        'tally_func': tallySTV
-    },
-    {
-        'key': "stv3",
-        'description': "Single Transferrable Vote with 3 seats",
-        'category': 'stv',
-        'validate_func': validateSTV,
-        'vote_func': None,
-        'tally_func': tallySTV
-    },
-    {
-        'key': "stv4",
-        'description': "Single Transferrable Vote with 4 seats",
-        'category': 'stv',
-        'validate_func': validateSTV,
-        'vote_func': None,
-        'tally_func': tallySTV
-    },
-    {
-        'key': "stv5",
-        'description': "Single Transferrable Vote with 5 seats",
-        'category': 'stv',
-        'validate_func': validateSTV,
-        'vote_func': None,
-        'tally_func': tallySTV
-    },
-    {
-        'key': "stv6",
-        'description': "Single Transferrable Vote with 6 seats",
-        'category': 'stv',
-        'validate_func': validateSTV,
-        'vote_func': None,
-        'tally_func': tallySTV
-    },
-    {
-        'key': "stv7",
-        'description': "Single Transferrable Vote with 7 seats",
-        'category': 'stv',
-        'validate_func': validateSTV,
-        'vote_func': None,
-        'tally_func': tallySTV
-    },
-    {
-        'key': "stv8",
-        'description': "Single Transferrable Vote with 8 seats",
-        'category': 'stv',
-        'validate_func': validateSTV,
-        'vote_func': None,
-        'tally_func': tallySTV
-    },
-    {
-        'key': "stv9",
-        'description': "Single Transferrable Vote with 9 seats",
-        'category': 'stv',
-        'validate_func': validateSTV,
-        'vote_func': None,
-        'tally_func': tallySTV
-    }
-)
\ No newline at end of file
+)
+
+# Add ad nauseam
+for i in range(2,21):
+    constants.VOTE_TYPES += (
+        {
+            'key': "stv%02u" % i,
+            'description': "Single Transferrable Vote with %u seats" % i,
+            'category': 'stv',
+            'validate_func': validateSTV,
+            'vote_func': None,
+            'tally_func': tallySTV
+        },
+    )

Modified: steve/trunk/pysteve/www/htdocs/js/steve_rest.js
URL: 
http://svn.apache.org/viewvc/steve/trunk/pysteve/www/htdocs/js/steve_rest.js?rev=1669031&r1=1669030&r2=1669031&view=diff
==============================================================================
--- steve/trunk/pysteve/www/htdocs/js/steve_rest.js (original)
+++ steve/trunk/pysteve/www/htdocs/js/steve_rest.js Wed Mar 25 00:49:05 2015
@@ -996,7 +996,16 @@ function setVoteTypes(code, response, st
                        option.value = i;
                        sortable.push([option, type])
                }
-               sortable.sort(function(a,b) { return (a[1] > b[1])})
+               sortable.sort(
+                       function(a,b) {
+                               var ta = a[1].match(/^(.+?)\d+/) ? 
a[1].match(/(.+?)\d+/)[1] : null
+                               var tb = b[1].match(/^(.+?)\d+/) ? 
b[1].match(/(.+?)\d+/)[1] : null
+                               if ( ta && tb && ta == tb ) {
+                                       return parseInt(a[1].match(/(\d+)/)[1]) 
> parseInt(b[1].match(/(\d+)/)[1])
+                               } else  {
+                                       return (a[1] > b[1])
+                               }
+                       })
                for (i in sortable) {
                        tobj.add(sortable[i][0])
                }


Reply via email to