Created a partial to DRY the aja voting method. Modified the voter class to
[selectricity-live] / app / controllers / voter_controller.rb
index d2529f8762416927e7775776ef16ae6f0c6fb6f2..6693b0fa6baa9090cfa6c72b146a240f3d95024e 100644 (file)
@@ -1,55 +1,31 @@
 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
@@ -57,15 +33,10 @@ class VoterController < ApplicationController
     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
 

Benjamin Mako Hill || Want to submit a patch?