]> projects.mako.cc - selectricity-live/blobdiff - app/controllers/application.rb
upgraded to latest version of rubyvote in svn
[selectricity-live] / app / controllers / application.rb
index 7462619a1153399c0946a85eea65dfaea48e0e06..bab76f91062983c5e9b3472d7983b4580532acf8 100644 (file)
@@ -1,9 +1,55 @@
 # 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.
-require 'login_engine'
 
 class ApplicationController < ActionController::Base
-  include LoginEngine
+  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")
+  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}
+    end
+    
+    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
+    
+    unique_days.each_with_index do |fmtdate, index|
+      days_hash[index] = fmtdate
+    end    
+  return { "voters_per_day" => voters_per_day, "days_hash" => days_hash }
+   
+  end
 end

Benjamin Mako Hill || Want to submit a patch?