1387b29b10dd1e53e8b7252ef258164ec9e2ebf4
[selectricity-live] / app / controllers / application.rb
1 # Selectricity: Voting Machinery for the Masses
2 # Copyright (C) 2007, 2008 Benjamin Mako Hill <mako@atdot.cc>
3 # Copyright (C) 2007 Massachusetts Institute of Technology
4 #
5 # This program is free software: you can redistribute it and/or modify
6 # it under the terms of the GNU Affero General Public License as
7 # published by the Free Software Foundation, either version 3 of the
8 # License, or (at your option) any later version.
9 #
10 # This program is distributed in the hope that it will be useful, but
11 # WITHOUT ANY WARRANTY; without even the implied warranty of
12 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13 # Affero General Public License for more details.
14 #
15 # You should have received a copy of the GNU Affero General Public
16 # License along with this program.  If not, see
17 # <http://www.gnu.org/licenses/>.
18
19 # Filters added to this controller will be run for all controllers in
20 # the application.  Likewise, all the methods added will be available
21 # for all controllers.
22
23 class ApplicationController < ActionController::Base
24   include AuthenticatedSystem
25   helper :user
26   require_dependency "user"
27
28   include Sitealizer
29   before_filter :add_stylesheets
30   #before_filter :use_sitealizer
31    
32   def initialize
33     @stylesheets = []
34
35         
36     # this is defined is a sketchy way in the sitealizer mixin
37     # initalize. since i'm overloading that, i'm calling it here
38     $visits = [] unless $visits
39   end
40             
41   def add_stylesheets
42     file = "#{Dir.pwd}/public/stylesheets/#{controller_name}.css"
43     if File.exists? file
44       @stylesheets << controller_name
45     end
46   end
47
48   #both election_controller and quickvote_controller need this method
49   def sort_candidates
50     
51     @vote = Vote.find(params[:id])
52     
53     @vote.rankings.each do |ranking|
54       ranking.rank = params['rankings-list'].index(ranking.candidate.id.to_s) + 1
55       ranking.save
56     end
57     render :nothing => true
58   end
59 end

Benjamin Mako Hill || Want to submit a patch?