fix weird bug with showing results from open elections
author<mako@atdot.cc> <>
Mon, 8 Jun 2009 13:06:58 +0000 (09:06 -0400)
committer<mako@atdot.cc> <>
Mon, 8 Jun 2009 13:06:58 +0000 (09:06 -0400)
app/controllers/voter_controller.rb

index d7f589db7f9d0b1d2e62d4806e11db686fd67ed3..afc01039b8e535b7733844f44bf0b5429ed64b2e 100644 (file)
@@ -31,6 +31,7 @@ class VoterController < ApplicationController
           :conditions => ["session_id = ? and election_id = ?",
           session.session_id, @election.id])[0]
       
           :conditions => ["session_id = ? and election_id = ?",
           session.session_id, @election.id])[0]
       
+
         @voter = OpenVoter.new unless @voter
 
         @voter.election = @election
         @voter = OpenVoter.new unless @voter
 
         @voter.election = @election
@@ -152,6 +153,7 @@ class VoterController < ApplicationController
   end
   
   def results
   end
   
   def results
+    debugger
     if authenticate and
       (@voter.election.early_results? \
        or @voter.election.enddate < Time.now)
     if authenticate and
       (@voter.election.early_results? \
        or @voter.election.enddate < Time.now)
@@ -193,12 +195,22 @@ class VoterController < ApplicationController
     password = params[:id]
     if password == "open"
       election = Election.find(params[:format])
     password = params[:id]
     if password == "open"
       election = Election.find(params[:format])
+
+      # double check to make sure the election is not authenticated
       unless election.authenticated?
         @voter = OpenVoter.find(:all,
           :conditions => ["session_id = ? and election_id = ?",
                           session.session_id, election.id])[0]
       unless election.authenticated?
         @voter = OpenVoter.find(:all,
           :conditions => ["session_id = ? and election_id = ?",
                           session.session_id, election.id])[0]
+
+        # if the election is over, proceed
+        if (not @voter) and (election.enddate < Time.now)
+          @voter = OpenVoter.new
+          @voter.election = election
+        end
+
         @password = "open." + election.id.to_s
       end
         @password = "open." + election.id.to_s
       end
+
     else
       @voter = FullVoter.find(:all,
         :conditions => [ "password = ?", password ] )[0]
     else
       @voter = FullVoter.find(:all,
         :conditions => [ "password = ?", password ] )[0]

Benjamin Mako Hill || Want to submit a patch?