class VoterController < ApplicationController
- layout 'vb'
- model :voter
- model :vote
- model :election
+ layout 'main'
+ require_dependency "voter"
+ require_dependency "vote"
+ require_dependency "election"
def index
password = params[:id]
password = params[:vote][:password] if params[:vote]
- if @voter = FullVoter.find_all( [ "password = ?", password ] )[0]
- render :action => 'fullvote'
+ 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
if authenticate
- # remove any existing votes and reload
- if @voter.vote
- @voter.vote.destroy
- @voter.reload
- end
-
- @vote = Vote.new
- @voter.vote = @vote
- @vote.votestring = params[:vote][:votestring]
- @vote.save
+ @voter.vote.time = Time.now
+ @voter.vote.save
+ @voter.reload
else
redirect_to :action => 'index'
end
end
def confirm
- if params[:votename]
- if Voter.find_all( ["session_id = ?", session.session_id ])[0]
- flash[:notice] = "You have already voted!"
- redirect_to quickvote_url( :votename => params[:votename] )
- else
- @voter = QuickVoter.new()
- @voter.election = Election.find_all( [ "name = ?",
- params[:votename] ] )[0]
- @voter.session_id = session.session_id
- @voter.save
- @voter.reload
-
- @voter.vote = Vote.new
- @voter.vote.votestring = params[:vote][:votestring]
- @voter.vote.save
- @voter.vote.confirm!
- render :action => 'thanks'
- end
-
- elsif authenticate
+ if authenticate
@voter.vote.confirm!
render :action => 'thanks'
else
redirect_to :action => 'index'
end
end
-
- def quickvote
- @voter = QuickVoter.new
- @voter.election = Election.find_all( [ "name = ?", params[:votename] ] )[0]
- end
-
+
private
def authenticate
password = params[:id]
- @voter = FullVoter.find_all( [ "password = ?", password ] )[0]
+ @voter = FullVoter.find(:all, :conditions => [ "password = ?", password ] )[0]
end
end