X-Git-Url: https://projects.mako.cc/source/selectricity/blobdiff_plain/9abed97635edbac7fb1a687298fff5c5434cdff4..75091532075247ae9c47164ea883f4fe803eddf4:/app/controllers/voter_controller.rb diff --git a/app/controllers/voter_controller.rb b/app/controllers/voter_controller.rb index 2ceb42b..d2529f8 100644 --- a/app/controllers/voter_controller.rb +++ b/app/controllers/voter_controller.rb @@ -1,25 +1,71 @@ class VoterController < ApplicationController + layout 'vb' model :voter model :vote model :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( [ "password = ?", password ] )[0] + render :action => 'fullvote' + end end def review - password = params[:id] - @voter = Voter.find_all( [ "password = ?", password ] )[0] + if authenticate + # remove any existing votes and reload + if @voter.vote + @voter.vote.destroy + @voter.reload + end - # destroy the old vote if that's what we need to do - @voter.vote.destroy if @voter.vote - @voter.reload + @vote = Vote.new + @voter.vote = @vote + @vote.votestring = params[:vote][:votestring] + @vote.save + 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 + @voter.vote.confirm! + render :action => 'thanks' + else + redirect_to :action => 'index' + end + end - @voter.vote = Vote.new - @voter.vote.votestring = params[:vote][:votestring] - @voter.vote.save - render_text "success" + 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] + end end +