X-Git-Url: https://projects.mako.cc/source/selectricity/blobdiff_plain/9abed97635edbac7fb1a687298fff5c5434cdff4..d66a99486376939d64f8a5d9032dcc516f7b1195:/app/controllers/voter_controller.rb diff --git a/app/controllers/voter_controller.rb b/app/controllers/voter_controller.rb index 2ceb42b..fb1bec7 100644 --- a/app/controllers/voter_controller.rb +++ b/app/controllers/voter_controller.rb @@ -1,25 +1,42 @@ class VoterController < ApplicationController - model :voter - model :vote - model :election + layout 'main' + require_dependency "voter" + require_dependency "vote" + require_dependency "election" def index password = params[:id] - @voter = Voter.find_all( [ "password = ?", password ] )[0] + password = params[:vote][:password] if params[:vote] + if @voter = FullVoter.find(:all, :conditions => [ "password = ?", password ] )[0] + @voter.vote = Vote.new if @voter.vote.nil? + @voter.vote.set_defaults! if @voter.vote.rankings.empty? + render :action => 'full_vote' + end end def review - password = params[:id] - @voter = Voter.find_all( [ "password = ?", password ] )[0] - - # destroy the old vote if that's what we need to do - @voter.vote.destroy if @voter.vote - @voter.reload - - @voter.vote = Vote.new - @voter.vote.votestring = params[:vote][:votestring] - @voter.vote.save - render_text "success" + if authenticate + @voter.vote.time = Time.now + @voter.vote.save + @voter.reload + else + redirect_to :action => 'index' + end end + def confirm + if authenticate + @voter.vote.confirm! + render :action => 'thanks' + else + redirect_to :action => 'index' + end + end + + private + def authenticate + password = params[:id] + @voter = FullVoter.find(:all, :conditions => [ "password = ?", password ] )[0] + end end +