X-Git-Url: https://projects.mako.cc/source/selectricity/blobdiff_plain/fc0a6a8d7ea15bcdb27ebdd58721401c7045c6e0..e8094b780ec0f30ac06b4de4c4f3a9c2bffe209d:/app/models/vote.rb?ds=sidebyside diff --git a/app/models/vote.rb b/app/models/vote.rb old mode 100755 new mode 100644 index f263a75..21b5408 --- a/app/models/vote.rb +++ b/app/models/vote.rb @@ -7,7 +7,7 @@ class Vote < ActiveRecord::Base # callbacks after_update :save_rankings before_destroy :destroy_rankings - + def to_s votes.join("") end @@ -51,6 +51,11 @@ class Vote < ActiveRecord::Base rankings.each { |ranking| ranking.destroy } end + def settime + self.time = Time.now + self.save + end + def confirm! self.confirmed = 1 self.save @@ -66,16 +71,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 @@ -85,14 +80,15 @@ 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. 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 - def set_defaults! - self.votes = voter.election.candidates.sort.collect {|c| c.id } + # 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. Meant to be manipulated and then confirmed + def set_defaults! + self.votes = voter.election.candidates.sort.collect {|c| c.id } self.save end + end