]> projects.mako.cc - selectricity-live/blobdiff - app/controllers/voter_controller.rb
Added more testcases:
[selectricity-live] / app / controllers / voter_controller.rb
index 2ceb42b1d24d0db5af7550569bf48fdd5bf5c23e..779e83f15aa8bc6eb8862fc0420e34685d241112 100644 (file)
@@ -1,25 +1,47 @@
 class VoterController < ApplicationController
+  layout 'main'
   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
 
-    @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 = FullVoter.find_all( [ "password = ?", password ] )[0]
+  end
 end
+

Benjamin Mako Hill || Want to submit a patch?