Merge head
authorJohn Dong <jdong@mit.edu>
Fri, 31 Aug 2007 19:22:55 +0000 (15:22 -0400)
committerJohn Dong <jdong@mit.edu>
Fri, 31 Aug 2007 19:22:55 +0000 (15:22 -0400)
15 files changed:
app/controllers/election_controller.rb
app/controllers/voter_controller.rb
app/models/voter_notify.rb
app/views/election/remind_voter.rhtml [new file with mode: 0644]
app/views/quickvote/_pref_tables.rhtml
app/views/quickvote/_result_box.rhtml
app/views/quickvote/_results_sidebar.rhtml
app/views/quickvote/results.rhtml
app/views/voter/forgot_password.rhtml [new file with mode: 0644]
app/views/voter_notify/reminder.rhtml [new file with mode: 0644]
app/views/voter_notify/votestart.rhtml
config/environment.rb
config/gmaps_api_key.yml
db/schema.rb
public/stylesheets/main.css

index eff920ff0419cdcb826e5b3d22817d13ffe07a5a..1affe0fbd254bc2622eaa4756242963ac7ede00b 100644 (file)
@@ -152,6 +152,14 @@ class ElectionController < ApplicationController
     voter.destroy
   end
   
+  def remind_voter
+    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)
+    end
+  end
+  
   ## methods for computing and printing results
   ####################################################################
   def results
index 6693b0fa6baa9090cfa6c72b146a240f3d95024e..fb1bec7a0f69f84b1063b6e936722763d022b8f3 100644 (file)
@@ -32,7 +32,7 @@ class VoterController < ApplicationController
       redirect_to :action => 'index'
     end
   end
-
+  
   private
   def authenticate
     password = params[:id]
index d9fded5888faf10a84e5015215fcc501ecb9cf91..825786a7a33ba01754ce908aaa7ab66d669144a5 100644 (file)
@@ -8,7 +8,12 @@ class VoterNotify < ActionMailer::Base
     @body = { :voter => voter }
   end
 
-  def reminder(voter)
+  def reminder(voter_array)
+    @subject = "Selectricity Election Reminder!"
+    @recipients = voter_array[0].email
+    @from = MAIL_CONFIG[:from]
+    @sent_on = Time.now
+    @body = { :voter_array => voter_array }
   end
 
 end
diff --git a/app/views/election/remind_voter.rhtml b/app/views/election/remind_voter.rhtml
new file mode 100644 (file)
index 0000000..40d7a20
--- /dev/null
@@ -0,0 +1 @@
+The message has been sent, please check your inbox soon.
\ No newline at end of file
index 628ce55ca5d873474e149fdc4097109cf8512799..3479167d226296cc14a0864c47b1299d2efb452a 100644 (file)
@@ -1,8 +1,9 @@
-<% candidates = @election.condorcet_result.ranked_candidates.flatten -%>
+<% candidates = @election.ssd_result.ranked_candidates.flatten -%>
 <% voters = @election.voters.size %>
-<% matrix = @election.condorcet_result.matrix %>
-<% victories = @election.condorcet_result.victories_and_ties %>
+<% matrix = @election.ssd_result.matrix %>
+<% victories = @election.ssd_result.victories_and_ties %>
 
+<% if candidates.size <= 7 -%>
 <!-- This table shows how many times each choice was ranked above the other, 
        with percentages-->
 <table class="preftable">
@@ -30,7 +31,7 @@
  </tr>
 <% end -%>
 </table>
-
+<br />
 <!-- This table generates a margin of victory -->
 <table class="preftable">
   <% candidates.each do |victor| %>
@@ -49,3 +50,5 @@
   </tr>
   <% end -%>
 </table>
+<% end -%>
+
index 41d9d173532773edf1ecb086820687be4597ed34..917dbd4eea590d0ecbdec4da97361428e8783069 100644 (file)
@@ -9,8 +9,11 @@
   <% end %></span>
 </div>
 
+<% unless @election.election_method == method -%>
+<%= render :partial => 'result', :object => @results[method]%>
+<% end -%>
 <%= render :partial => 'methodinfo_' + method,
-           :object => @results[@election.election_method] %>
+           :object => @results[method] %>
 
 </div>
 
index d71d01f15e594f09c7907aaa5cac68c672d12798..f346b2ef280e324cb57b3731c9e1f054cb4b2906 100644 (file)
@@ -34,4 +34,11 @@ Event.observe(method_select, 'change', show_results_for);
 
 <h2>Statistics</h2>
 <%= image_tag( graph_url( :action => 'votes_per_interval', :id => @election ))%>
+<br />
+<br />
+
+<h2>Voter Report</h2>
+
+<p><%= link_to "[View All Voters: Map and Other Info]", :controller => "quickvote",
+       :action => "list_voters", :id => @election.id %></p>
 
index c0de537b423229f3c1fc28ad71cbf91caece8895..4c91538992c3aa50850e009e28ccd8ac2d4c2d32 100644 (file)
 
 <div class="clear-div"></div>
 
-<div class="normal-header">
-  <span class="header">Voter Report</span>
-  <span class="subheader"></span>
-</div>
-
-<p><%= link_to "[View All Voters]", :controller => "quickvote", :action => "list_voters", :id => @election.id %></p>
-<br />
-
 <!--
 <%= image_tag( graph_url( :action => 'choices_positions', :id => @election ) ) %><br />
 -->
diff --git a/app/views/voter/forgot_password.rhtml b/app/views/voter/forgot_password.rhtml
new file mode 100644 (file)
index 0000000..43d1d03
--- /dev/null
@@ -0,0 +1,12 @@
+<h4>Deleted your email? Lost your password?</h4>
+<p>Not to worry, enter the email at which you were supposed to receive your
+password, and we'll hook you up with a set of magic numbers that shall grant
+access to the chambers within. Hoo-rah!</p>
+
+<% form_tag :controller => 'election', :action => 'remind_voter' do %>
+
+  <p><span label for="email">Email</label></span>
+  <%= text_field_tag :email %></p>
+
+  <%= submit_tag "Submit" %>
+<% end -%>
diff --git a/app/views/voter_notify/reminder.rhtml b/app/views/voter_notify/reminder.rhtml
new file mode 100644 (file)
index 0000000..1373bc2
--- /dev/null
@@ -0,0 +1,17 @@
+Voter!
+
+Either you or an election administrator has requested you receive a reminder for an election you've been registered in.
+
+Here are the election(s) for which you are currently registered and your tokens to enter each election:
+<% @voter_array.each do |voter| -%>
+<%= voter.election.name %>: <%= voter.password %>
+<% end -%>
+
+
+If you feel there is a technical error, please contact:
+
+  help@selectricity.org
+  (Selectricity Tech Support)
+
+Thanks and happy voting!
+Selectricity Staff
index 216ddebf15b1df71b0b6a9b3ab838afa6d428a67..f9dbfc6c90c4cc56282be87e545ed97cb4a8da7a 100644 (file)
@@ -1,17 +1,17 @@
 Voter!
 
-This is an automated message sent by selectricity.media.mit.edu.
+This is an automated message sent by Selectricity.
 
 You have been listed as a voter in an upcoming election.
 
 The election title: <%= @voter.election.name %>
 
 To read more about the election, the candidates, and to vote, you will
-need to use the following token to log in to selectricity.media.mit.edu:
+need to use the following token to log in to Selectricity:
   <%= @voter.password %>
 
 Alternatively, you can just click this URL:
-  http://selectricity.media.mit.edu<%= url_for :controller => 'election', :action => 'show', :id => @voter.election %>
+  http://selectricity.org<%= url_for :controller => 'voter' %>
 
 If you have any questions or if you feel you have received this message
 in error, you should contact:
@@ -21,10 +21,9 @@ in error, you should contact:
 
 Alternatively, if you feel there is a technical error, please contact:
 
-  help@selectricity.media.mit.edu
+  help@selectricity.org
   (Selectricity Tech Support)
 
 Thanks and happy voting!
 Selectricity Staff
-  
-  
+
index ccd9ad0990874b6b4bb92d6260caa52a891b9982..3e5f1c6b4408031dbba3bdb81fd3401acbb3de00 100644 (file)
@@ -59,7 +59,7 @@ end
 
 # Include your application configuration below
 
-MAIL_CONFIG = { :from => 'Selectricity <info@selectricity.media.mit.edu>'} 
+MAIL_CONFIG = { :from => 'Selectricity <info@selectricity.org>'} 
 
 require 'uniq_token'
 require 'randarray'
index b0c65fb0eb70554e97bc053b99e5d7049a16686f..b7ceca6974154513c7fad53c0c659a678eb29170 100644 (file)
@@ -9,4 +9,4 @@ test:
  ABQIAAAAzMUFFnT9uH0xq39J0Y4kbhTJQa0g3IQ9GZqIMmInSLzwtGDKaBR6j135zrztfTGVOm2QlWnkaidDIQ\r
 \r
 production:\r
- ABQIAAAA479zRK1hoNqMcKLTMuBcTRQ0mFvgRda1vOZQqJO6gQItognzGRQueA871M_O5_Q9Pd9xs4Ah4SNYTg\r
+ ABQIAAAA479zRK1hoNqMcKLTMuBcTRR0OKg4vZKrhw1amyo3djP_wIZS7BQ-fJouJ5VRd_fb2HO6KKzIMAVW6Q\r
index 6c038deadbd2983e1fb2073265ec989248421809..e7d7d85723b458caf478df16696688be794a469e 100644 (file)
@@ -42,6 +42,14 @@ ActiveRecord::Schema.define() do
     t.column "rank",         :integer
   end
 
+  create_table "sessions", :force => true do |t|
+    t.column "sessid",     :string
+    t.column "data",       :text
+    t.column "updated_at", :datetime
+  end
+
+  add_index "sessions", ["sessid"], :name => "session_index"
+
   create_table "sitealizer", :force => true do |t|
     t.column "path",       :string
     t.column "ip",         :string
index 13626a13bd67f4a807535390e38f603e9ef76c8c..a77ca83e47927e7f4331a5423a06fd381b9597ab 100644 (file)
@@ -274,14 +274,15 @@ li.moveable {
 }
 
 .preftable th {
+       font-family: verdana,arial,helvetica,sans-serif;
        border-width: 2px;
        border-color: #999999;
        border-style: solid;
        text-align: center;
        font-weight: bold;
-       padding: 5px 5px 5px 15px;
+       padding: 5px 5px 5px 5px;
        background-color: #999999;
-       color: #fff;
+       color: #FFFFFF;
 }
 
 .preftable td {

Benjamin Mako Hill || Want to submit a patch?