]> projects.mako.cc - selectricity/blobdiff - app/controllers/election_controller.rb
Fix full voter addition bug where the regex flunks the trailing \r on middle items...
[selectricity] / app / controllers / election_controller.rb
index 570f1fc3687a4162428555d06829544074d74b93..05a66fff5fef68c273ca0a9c024283a26a0f0a76 100644 (file)
@@ -60,8 +60,8 @@ class ElectionController < ApplicationController
 
   def start_election
     @election = Election.find(params[:id])
 
   def start_election
     @election = Election.find(params[:id])
-    
     @election.voters.each do |voter|
     @election.voters.each do |voter|
+      voter.vote = Vote.new
       email = VoterNotify.deliver_votestart(voter)
       #render(:text => "<pre>" + email.encoded + "</pre>")
     end
       email = VoterNotify.deliver_votestart(voter)
       #render(:text => "<pre>" + email.encoded + "</pre>")
     end
@@ -69,15 +69,6 @@ class ElectionController < ApplicationController
     @election.activate!
     redirect_to :action => 'show', :id => @election.id
   end
     @election.activate!
     redirect_to :action => 'show', :id => @election.id
   end
-  
-  def change_notices
-    election = Election.find(params[:id])
-    if election.notices == 0
-      election.notices = 1 
-    else
-      election.notices = 0
-    end
-  end
 
   # methods fod display, adding, deleting, and manipulating candidate
   # information for elections
 
   # methods fod display, adding, deleting, and manipulating candidate
   # information for elections
@@ -108,13 +99,13 @@ class ElectionController < ApplicationController
 
   def lessinfo_candidate
     @show_details = false
 
   def lessinfo_candidate
     @show_details = false
-    @candidate = Candidate.find( params[:id] )
+    @current_candidate = Candidate.find( params[:id] )
     render :partial => 'candidate_line'
   end
 
   def moreinfo_candidate
     @show_details = true
     render :partial => 'candidate_line'
   end
 
   def moreinfo_candidate
     @show_details = true
-    @candidate = Candidate.find( params[:id] )
+    @current_candidate = Candidate.find( params[:id] )
     render :partial => 'candidate_line'
   end
 
     render :partial => 'candidate_line'
   end
 
@@ -154,7 +145,6 @@ class ElectionController < ApplicationController
     if params.has_key?( :raw_voter_list )
       process_incoming_voters( params[:raw_voter_list] )
     end
     if params.has_key?( :raw_voter_list )
       process_incoming_voters( params[:raw_voter_list] )
     end
-
     @raw_voter_list = RawVoterList.new
   end
   
     @raw_voter_list = RawVoterList.new
   end
   
@@ -192,7 +182,7 @@ class ElectionController < ApplicationController
     @election.voters. each do |voter|
       if voter.vote and voter.vote.confirmed?
         @voter_list << voter.email
     @election.voters. each do |voter|
       if voter.vote and voter.vote.confirmed?
         @voter_list << voter.email
-       @vote_list << voter.vote
+             @vote_list << voter.vote
       end
     end
 
       end
     end
 
@@ -209,7 +199,8 @@ class ElectionController < ApplicationController
 
       unless incoming_voters.entries.empty?
         incoming_voters.each do |new_voter|
 
       unless incoming_voters.entries.empty?
         incoming_voters.each do |new_voter|
-
+          new_voter.email.strip! # There's a trailing \r on all but the last in
+                                 # the list!
           if incoming_voters.email == 0
             new_voter.contacted = 1
                elsif incoming_voters.email == 1
           if incoming_voters.email == 0
             new_voter.contacted = 1
                elsif incoming_voters.email == 1
@@ -218,11 +209,14 @@ class ElectionController < ApplicationController
                else
                  new_voter.contacted = 0
           end
                else
                  new_voter.contacted = 0
           end
-       
-          # the new voter should be in good shape. save add to the election
-          @election.voters << new_voter
-               new_voter.save
+          if new_voter.valid?
+            # the new voter should be in good shape. save add to the election
+            @election.voters << new_voter
+                 new_voter.save
+          end
+          # TODO: Can we do some kind of AJAX error message for the voter being invalid?
         end
         end
+        @election.save
       end
  
       # reset the next time to have a the same default value for emailing
       end
  
       # reset the next time to have a the same default value for emailing

Benjamin Mako Hill || Want to submit a patch?