class ElectionsController < ApplicationController
model :raw_voter_list, :voter, :vote, :candidate
-
- # general methods for dealing with elections
+ ## general methods for dealing with elections
+ ####################################################################
def index
list
render :action => 'list'
@election_pages, @elections = paginate :elections, :per_page => 10
end
- # methods for displaying, creating, and manipulating election overview
- # data
+ ## methods for displaying, creating,
+ ## and manipulating election overview data
+ ####################################################################
+
def show
@election = Election.find(params[:id])
end
# methods fod display, adding, deleting, and manipulating candidate
# information for elections
+ ####################################################################
def new_candidates
@election = Election.find( params[:id] )
end
@election = Election.find( params[:id] )
end
- # methods for displaying, adding, deleting, and manipulating voters
- # for a particular election
+ ## methods for displaying, adding, deleting, and manipulating voters
+ ## for a particular election
+ ####################################################################
def new_voters
@election = Election.find( params[:id] )
if params.has_key?[:raw_voter_list]
voter.destroy
end
- def summary_results
+ ## methods for computing and printing results
+ ####################################################################
+ def results
+ @election = Election.find( params[:id] )
+ votes = []
+
+ @election.voters.each do |voter|
+ if voter.vote and voter.vote.confirmed?
+ votes << voter.vote.rankings.sort.collect {|vote| vote.candidate_id}
+ end
+ end
+
+ @voteobj = CloneproofSSDVote.new(votes)
+ @resultobj = @voteobj.result
+ @winners = @resultobj.winners
+
+ @candidates_by_id = {}
+ @election.candidates.each {|cand| @candidates_by_id[cand.id] = cand}
end
def detailed_results
- @election = Election.find( params[:id] )
-
+
+ self.results
+ breakpoint
@voter_list = []
@vote_list = []
- @election.voters.each do |voter|
+ @election.voters. each do |voter|
if voter.vote and voter.vote.confirmed?
@voter_list << voter.email
@vote_list << voter.vote
@vote_list.sort!
@vote_list.sort! { |a,b| a.token <=> b.token }
- #breakpoint
-
end
-
+
+ ## private methods
+ ####################################################################
private
- def randomize_order
- end
def process_incoming_voters(raw_voter_list)
incoming_voters = RawVoterList.new( raw_voter_list )