X-Git-Url: https://projects.mako.cc/source/selectricity/blobdiff_plain/eaf661eb6a8571bc24b180cfc731f3b9b38a8fff..5c62b1606f7f89efdd5a6c51308cd0212fe9a709:/app/controllers/application.rb?ds=sidebyside diff --git a/app/controllers/application.rb b/app/controllers/application.rb index bab76f9..bdd11e8 100644 --- a/app/controllers/application.rb +++ b/app/controllers/application.rb @@ -1,55 +1,47 @@ -# 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 +# 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 + @vote = Vote.find(params[:id]) - 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 + @vote.rankings.each do |ranking| + ranking.rank = params['rankings-list'].index(ranking.candidate.id.to_s) + 1 + ranking.save 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 } - + render :nothing => true end end