]> projects.mako.cc - selectricity/blobdiff - app/controllers/application.rb
fixed licensing information for selectricity
[selectricity] / app / controllers / application.rb
index bab76f91062983c5e9b3472d7983b4580532acf8..7be877afa8cbf011e4da5385feae4fe0a6d35f05 100644 (file)
@@ -1,55 +1,48 @@
-# Filters added to this controller will be run for all controllers in the application.
-# Likewise, all the methods added will be available for all controllers.
+# Selectricity: Voting Machinery for the Masses
+# Copyright (C) 2007, 2008 Benjamin Mako Hill <mako@atdot.cc>
+# Copyright (C) 2007 Massachusetts Institute of Technology
+#
+# This program is free software. Please see the COPYING file for
+# details.
+
+# Filters added to this controller will be run for all controllers in
+# the application.  Likewise, all the methods added will be available
+# for all controllers.
 
 class ApplicationController < ActionController::Base
   include AuthenticatedSystem
   helper :user
-  model :user
-  
-  def day_votes
-  
-    @election = Election.find(params[:id])
-    line = Gruff::Line.new
-    line.title = "Voters Per Day"
-    line.font = File.expand_path('/usr/X11R6/lib/X11/fonts/TTF/Vera.ttf', RAILS_ROOT)
-    line.data("#{@election.name}", voter_days["voters_per_day"] )
-    line.labels = voter_days["days_hash"]
-    line.x_axis_label = "Date"
-    line.y_axis_label = "Number of Votes"
-    line.minimum_value = 0.0
-    line.draw
-    send_data(line.to_blob,
-              :disposition => 'inline',
-              :type => 'image/png',
-              :filename => "dayvotes#{@poll.id}.png")
+  require_dependency "user"
+
+  include Sitealizer
+  before_filter :add_stylesheets
+  #before_filter :use_sitealizer
+   
+  def initialize
+    @stylesheets = []
+
+        
+    # this is defined is a sketchy way in the sitealizer mixin
+    # initalize. since i'm overloading that, i'm calling it here
+    $visits = [] unless $visits
   end
-  
-  def voter_days
-    @election = Election.find(params[:id])
-    voter_times = Array.new
-    unique_days = Array.new
-    voters_per_day = Array.new
-    days_hash = Hash.new
-    
-    @election.votes.each do |vote|
-        voter_times << vote.time unless voter_times.any? {|utime| utime == vote.time}
+            
+  def add_stylesheets
+    file = "#{Dir.pwd}/public/stylesheets/#{controller_name}.css"
+    if File.exists? file
+      @stylesheets << controller_name
     end
+  end
+
+  #both election_controller and quickvote_controller need this method
+  def sort_candidates
     
-    voter_times.sort!
-  
-    voter_times.each_with_index do |time, index| 
-      count = 1
-      unless unique_days.any? { |d1| d1.eql?(time.mon.to_s+"/"+time.day.to_s) }
-        unique_days << (time.mon.to_s+"/"+time.day.to_s)
-        count += (voter_times[(index+1)..-1].find_all {|t| t.mon == time.mon && t.day == time.day}).size
-        voters_per_day << count
-      end      
-    end
+    @vote = Vote.find(params[:id])
     
-    unique_days.each_with_index do |fmtdate, index|
-      days_hash[index] = fmtdate
-    end    
-  return { "voters_per_day" => voters_per_day, "days_hash" => days_hash }
-   
+    @vote.rankings.each do |ranking|
+      ranking.rank = params['rankings-list'].index(ranking.candidate.id.to_s) + 1
+      ranking.save
+    end
+    render :nothing => true
   end
 end

Benjamin Mako Hill || Want to submit a patch?