Major changes in this commit over include work over several days but that was never...
[selectricity-live] / app / controllers / voter_controller.rb
index 2ceb42b1d24d0db5af7550569bf48fdd5bf5c23e..252711830ac96f7796062b7ab523cf391ed1eab3 100644 (file)
@@ -5,21 +5,41 @@ class VoterController < ApplicationController
 
   def index
     password = params[:id]
-    @voter = Voter.find_all( [ "password = ?", password ] )[0]
+    password = params[:vote][:password] if params[:vote]
+    if @voter = Voter.find_all( [ "password = ?", password ] )[0]
+      render :action => 'vote'
+    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
 
-    @voter.vote = Vote.new
-    @voter.vote.votestring = params[:vote][:votestring] 
-    @voter.vote.save
-    render_text "success"
+  def confirm
+    if authenticate
+      @voter.vote.confirm!
+      render :action => 'thanks'
+    else
+      redirect_to :action => 'index'
+    end
   end
 
+  private
+  def authenticate
+    password = params[:id]
+    @voter = Voter.find_all( [ "password = ?", password ] )[0]
+  end
 end

Benjamin Mako Hill || Want to submit a patch?