-# 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: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public
+# License along with this program. If not, see
+# <http://www.gnu.org/licenses/>.
+
+# 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
+ 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 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])
+
+ @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