X-Git-Url: https://projects.mako.cc/source/selectricity/blobdiff_plain/277d9e323c1c9c525c1cea4590dc71bc56aeed06..eaf661eb6a8571bc24b180cfc731f3b9b38a8fff:/app/controllers/application.rb diff --git a/app/controllers/application.rb b/app/controllers/application.rb index a5bb108..bab76f9 100644 --- a/app/controllers/application.rb +++ b/app/controllers/application.rb @@ -5,4 +5,51 @@ 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") + 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