-# 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'
+# 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. 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 LoginEngine
+ 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