X-Git-Url: https://projects.mako.cc/source/selectricity-live/blobdiff_plain/f7aee769411a893c1059c529a220c0d25c72974f..6dfbfbec4b0d01138c272649d668c5a872706a5c:/app/controllers/application.rb?ds=inline diff --git a/app/controllers/application.rb b/app/controllers/application.rb index 7462619..bab76f9 100644 --- a/app/controllers/application.rb +++ b/app/controllers/application.rb @@ -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