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
+