class QuickvoteController < ApplicationController
layout 'main'
- model :quick_voter
- model :quick_vote
- model :vote
- model :election
+ require_dependency "quick_voter"
+ require_dependency "quick_vote"
+ require_dependency "vote"
+ require_dependency "election"
#############################################################
# the following methods pertain to creating quickvotes
def create
if params[:quickvote]
@quickvote = QuickVote.new(params[:quickvote])
-
# store the candidate grabbed through ajax and stored in flash
@quickvote.candidatelist = flash[:candlist]
- @quickvote.description=CGI.escapeHTML(@quickvote.description)
+ @quickvote.description=@quickvote.description
# try to save, if it fails, show the page again (the flash should
# still be intact
if @quickvote.save
end
def add_candidate
- candidate_name = CGI.escapeHTML(params[:ajax][:newcandidate])
+ candidate_name = params[:ajax][:newcandidate]
unless candidate_name.strip.empty?
if flash.has_key?(:candlist) and flash[:candlist].instance_of?(Array)
flash[:candlist] << candidate_name unless flash[:candlist].index(candidate_name)
def index
@election = QuickVote.ident_to_quickvote(params[:ident])
-
# if the person has specified an election, we show them the voting
# page. otherwise, we redirect back to main the page
if @election
-
# look to see that the voter has been created and has voted in
# this election, and has confirmed their vote
@voter = QuickVoter.find(:all, :conditions => ["session_id = ? and election_id = ?",
@voter = QuickVoter.new
@voter.election = @election
@voter.session_id = session.session_id
-
- # create new vote and make it the defaulted sorted list
+
+ # create new vote and make it the defaulted sorted list
@voter.vote = Vote.new
@voter.save
@voter.vote.set_defaults!
###############################################################
def results
- @election = QuickVote.ident_to_quickvote(params[:ident])
- @election.results
+ unless @election = QuickVote.ident_to_quickvote(params[:ident])
+ flash[:notice] = "Cannot find quickvote #{params[:ident]}."
+ redirect_to :controller => 'site'
+ return
+ end
+ @results = @election.results
@candidates = {}
@election.candidates.each {|c| @candidates[c.id] = c}
end