X-Git-Url: https://projects.mako.cc/source/selectricity-live/blobdiff_plain/8f23a174c70223831055e1498b50c3ba260858fe..6a935d078f20d2b1b0d60f0a30c41a642d40758a:/app/models/vote.rb diff --git a/app/models/vote.rb b/app/models/vote.rb index dcadcac..bb91a6b 100644 --- a/app/models/vote.rb +++ b/app/models/vote.rb @@ -1,3 +1,21 @@ +# Selectricity: Voting Machinery for the Masses +# Copyright (C) 2007, 2008 Benjamin Mako Hill +# Copyright (C) 2007 Massachusetts Institute of Technology +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public +# License along with this program. If not, see +# . + class Vote < ActiveRecord::Base # relationships to other classes belongs_to :voter @@ -71,16 +89,6 @@ class Vote < ActiveRecord::Base confirmed == 1 end - def votestring=(string="") - candidate_ids = voter.election.candidates.sort.collect \ - { |candidate| candidate.id.to_i } - - rel_votes = string.split("").collect { |vote| vote.to_i } - - # covert relative orders to absolute candidate ids - self.votes = rel_votes.collect { |vote| candidate_ids[ vote - 1 ] } - end - def votestring # create a mapping of candidates ids and the relative order of the # candidates as they appear when sorted alphabetically @@ -90,12 +98,12 @@ class Vote < ActiveRecord::Base end # assemble the votestring - self.votes.collect {|v| cand_relnums[v]}.join("") + self.votes.collect {|v| (cand_relnums[v] + 64).chr}.join("") end # the following subroutine is used for quickvotes, but need for elections now # too. It creates a vote with the candidates listed in order of preference - # based on alphabetical order. It is meant to be manipulated and then confirmed + # based on alphabetical order. Meant to be manipulated and then confirmed def set_defaults! self.votes = voter.election.candidates.sort.collect {|c| c.id } self.save