Maemo.org team/Generating election results

(How to generate election results after an election, step by step.)
Line 1: Line 1:
-
 
+
Instructions for generating election results once an election is completed. In this example, the election ID is 8.
-
Instructions for generating election results once an election is completed.
+
# Go to http://maemo.org/vote/
# Go to http://maemo.org/vote/
# Click on election link - get to http://maemo.org/vote/results.php?election_id=8
# Click on election link - get to http://maemo.org/vote/results.php?election_id=8
-
# Click on "List of all votes" - http://maemo.org/vote/votes.php?election_id=8
+
# Click on [http://maemo.org/vote/votes.php?election_id=8 "List of all votes"]
-
# Click on "Download the ballots": http://maemo.org/vote/blt.php?election_id=8
+
# Click on [http://maemo.org/vote/blt.php?election_id=8 "Download the ballots"]
# Browser proposes open or save - save the file (election.blt)
# Browser proposes open or save - save the file (election.blt)
-
# Launch OpenSTV.py (version 1.5 is latest as of writing) (downloaded from http://www.openstv.org/)
+
# Launch [http://www.openstv.org/ OpenSTV] (version 1.5 is latest as of writing)
# File->New election
# File->New election
-
# Load election.blt file - Method: Fractional transfer STV
+
# Load election.blt file - Method: Fractional transfer STV (for the character survey, I chose the Borda method, because fractional transfer didn't make any sense)
# Election options: Seat number = number of desired elected candidates (1 for referendum, 5 for council, etc); Threshold = Droop, Static, Whole; Delay surplus transfer = Off; Batch elimination = Zero; click OK
# Election options: Seat number = number of desired elected candidates (1 for referendum, 5 for council, etc); Threshold = Droop, Static, Whole; Delay surplus transfer = Off; Batch elimination = Zero; click OK
# Election results generated - you can see the winners & count details. To generate HTML version: Results->Save results as HTML - save file election_results.html
# Election results generated - you can see the winners & count details. To generate HTML version: Results->Save results as HTML - save file election_results.html

Revision as of 18:55, 22 December 2009

Instructions for generating election results once an election is completed. In this example, the election ID is 8.

  1. Go to http://maemo.org/vote/
  2. Click on election link - get to http://maemo.org/vote/results.php?election_id=8
  3. Click on "List of all votes"
  4. Click on "Download the ballots"
  5. Browser proposes open or save - save the file (election.blt)
  6. Launch OpenSTV (version 1.5 is latest as of writing)
  7. File->New election
  8. Load election.blt file - Method: Fractional transfer STV (for the character survey, I chose the Borda method, because fractional transfer didn't make any sense)
  9. Election options: Seat number = number of desired elected candidates (1 for referendum, 5 for council, etc); Threshold = Droop, Static, Whole; Delay surplus transfer = Off; Batch elimination = Zero; click OK
  10. Election results generated - you can see the winners & count details. To generate HTML version: Results->Save results as HTML - save file election_results.html
  11. Edit HTML file to take care of MySQL formating (escape quotes, backslashes, etc) and remove HTML headers - manual process
    • remove <html> and <head>,
    • change <body> into
    • sed/\'center\'/\"center\"/g
    • Ensure HTML attributes are quoted (colspan, rowspan, border, cellspacing)
    • Massage output as necessary (removing "symbols are elected" for characters survey, replacing characters with HTML entities, etc)
  12. Insert results in non-production database to test:
    mysql -uelection -p election
    $ insert into election_results values (8 <the election_id on the results URL above>, '<copy & paste HTML file>');
  13. Check that results display correctly, and massage results field if needed.
  14. Dump insert from non-prod DB to send for insertion in prod DB (as an SQL statement, to make it as easy as possible - ensures quoting & character escaping is done correctly):
    mysqldump -uelection -p -t -w 'election_results.election_id=8' election election_results > results.sql
  15. On production database, mysql -u<db user> -p < results.sql