]> projects.mako.cc - selectricity/blobdiff - app/controllers/voter_controller.rb
Changed justin's email in README because mit.edu address is out of date.
[selectricity] / app / controllers / voter_controller.rb
index 1634ccd1a86d4854f96f6b5922154d26139accfe..408bdab880ec0f411a1d19f8eea0261f3b5d1d02 100644 (file)
@@ -13,7 +13,7 @@ class VoterController < ApplicationController
   require_dependency "election"
 
   before_filter :authenticate, :except => [:index, :login, :reminder,
-                                           :kiosk_ready]
+                                           :kiosk_ready, :sort_candidates]
 
   def index
     if params[:election_id]
@@ -54,18 +54,24 @@ class VoterController < ApplicationController
       else
         @sidebar_content = render_to_string(:partial => 'vote_sidebar')
         if @election.embeddable? and params[:embed] == "true"
-          #look for custom theme, and assign to instance variabels for widget use
+          # look for custom theme, and assign to instance variabels
+          # for widget use
           if @election.embed_custom_string
             @top_bar = SkinPicture.find(:first,
-            :conditions => ["filename = ?", @election.embed_custom_string + "top_bar.png"])
+              :conditions => ["filename = ?",
+                @election.embed_custom_string + "top_bar.png"])
             @default_image = SkinPicture.find(:first,
-            :conditions => ["filename = ?", @election.embed_custom_string + "default_image.png"])
+              :conditions => ["filename = ?",
+                @election.embed_custom_string + "default_image.png"])
             @bg1 = SkinPicture.find(:first,
-            :conditions => ["filename = ?", @election.embed_custom_string + "bg1.png"])
+              :conditions => ["filename = ?",
+                @election.embed_custom_string + "bg1.png"])
             @bg2 = SkinPicture.find(:first,
-            :conditions => ["filename = ?", @election.embed_custom_string + "bg2.png"])
+              :conditions => ["filename = ?",
+                @election.embed_custom_string + "bg2.png"])
             @bottom_bar = SkinPicture.find(:first,
-            :conditions => ["filename = ?", @election.embed_custom_string + "bottom_bar.png"])
+              :conditions => ["filename = ?",
+                @election.embed_custom_string + "bottom_bar.png"])
           end
           render :template => 'embed/full_vote', :layout => 'embed'
         else
@@ -77,7 +83,8 @@ class VoterController < ApplicationController
 
   def login
     if params[:vote] and params[:vote][:password]
-      redirect_to votepassword_url( :action => 'index', :urlpassword => params[:vote][:password])
+      redirect_to votepassword_url(:action => 'index',
+        :urlpassword => params[:vote][:password])
     else
       redirect_to :action => 'index'
     end
@@ -105,7 +112,8 @@ class VoterController < ApplicationController
   
   def reminder
     if params[:email]
-      voter_array= FullVoter.find(:all, :conditions => ["email = ?", params[:email]])
+      voter_array= FullVoter.find(:all,
+        :conditions => ["email = ?", params[:email]])
       voter_array.delete_if {|voter| voter.election.active == 0}
       unless voter_array.empty?
         VoterNotify.deliver_reminder(voter_array)
@@ -115,24 +123,32 @@ class VoterController < ApplicationController
   end
   
   def results
-    if @voter.election.early_results? \
-       or @voter.election.enddate < Time.now
+    if authenticate and
+      (@voter.election.early_results? \
+       or @voter.election.enddate < Time.now)
       
       @election = @voter.election
-      @sidebar_content = render_to_string(:partial => 'full_results_sidebar')
+      @sidebar_content = \
+        render_to_string(:partial => 'full_results_sidebar')
 
-      #look for custom theme, and assign to instance variabels for widget use
+      # look for custom theme, and assign to instance variabels for
+      # widget use
       if @election.embed_custom_string
         @top_bar = SkinPicture.find(:first,
-        :conditions => ["filename = ?", @election.embed_custom_string + "top_bar.png"])
+          :conditions => ["filename = ?",
+            @election.embed_custom_string + "top_bar.png"])
         @default_image = SkinPicture.find(:first,
-        :conditions => ["filename = ?", @election.embed_custom_string + "default_image.png"])
+          :conditions => ["filename = ?",
+            @election.embed_custom_string + "default_image.png"])
         @bg1 = SkinPicture.find(:first,
-        :conditions => ["filename = ?", @election.embed_custom_string + "bg1.png"])
+          :conditions => ["filename = ?",
+            @election.embed_custom_string + "bg1.png"])
         @bg2 = SkinPicture.find(:first,
-        :conditions => ["filename = ?", @election.embed_custom_string + "bg2.png"])
+          :conditions => ["filename = ?",
+            @election.embed_custom_string + "bg2.png"])
         @bottom_bar = SkinPicture.find(:first,
-        :conditions => ["filename = ?", @election.embed_custom_string + "bottom_bar.png"])
+          :conditions => ["filename = ?",
+            @election.embed_custom_string + "bottom_bar.png"])
       end
       if @election.embeddable? and params[:embed] == "true"
         render :template => 'embed/results', :layout => 'embed'
@@ -179,8 +195,8 @@ class VoterController < ApplicationController
                           session.session_id, election.id])[0]
 
         # when (a) there is no voter or (b) when there is a voter but
-        # it's kiosk mode on the right page, rewrite with blank voter
-        if not(@voter) \
+        # it's kiosk mode on the right page, rewrite with a blank voter
+        if ((not @voter) and  (election.enddate < Time.now)) \
           or (params[:action] == 'kiosk_ready' and election.kiosk)
           @voter = OpenVoter.new unless @voter
         end

Benjamin Mako Hill || Want to submit a patch?