projects
/
selectricity
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Changed quickvotes so that they take an identifier as opposed to just a
[selectricity]
/
app
/
controllers
/
quickvote_controller.rb
diff --git
a/app/controllers/quickvote_controller.rb
b/app/controllers/quickvote_controller.rb
index 0b745af72e13c79548b227ff83174a79660e9b94..f5ab58128caa2d0a8ae03a67fa9994ab0119a2ed 100644
(file)
--- a/
app/controllers/quickvote_controller.rb
+++ b/
app/controllers/quickvote_controller.rb
@@
-49,7
+49,7
@@
class QuickvoteController < ApplicationController
#############################################################
def index
#############################################################
def index
- @election =
QuickVote.find_all(["name = ?", params[:votename]])[0]
+ @election =
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 the person has specified an election, we show them the voting
# page. otherwise, we redirect back to main the page
@@
-71,7
+71,7
@@
class QuickvoteController < ApplicationController
unless @voter
# create a new voter and populate it
@voter = QuickVoter.new
unless @voter
# create a new voter and populate it
@voter = QuickVoter.new
- @voter.election =
QuickVote.find_all( [ "name = ?", params[:votename] ] )[0]
+ @voter.election =
@election
@voter.session_id = session.session_id
# create new vote and make it the defaulted sorted list
@voter.session_id = session.session_id
# create new vote and make it the defaulted sorted list
@@
-87,7
+87,7
@@
class QuickvoteController < ApplicationController
def confirm
# we need the election to verify that we have the right voter
def confirm
# we need the election to verify that we have the right voter
- election =
QuickVote.find_all( [ "name = ?", params[:votename] ] )[0]
+ election =
ident_to_quickvote(params[:ident])
# find out who the voter is for this election
@voter = QuickVoter.find_all(["session_id = ? and election_id = ?",
# find out who the voter is for this election
@voter = QuickVoter.find_all(["session_id = ? and election_id = ?",
@@
-96,12
+96,12
@@
class QuickvoteController < ApplicationController
if not @voter
# we have not seen this voter before. something is wrong, try
# again
if not @voter
# we have not seen this voter before. something is wrong, try
# again
- redirect_to quickvote_url( :
votename => params[:votename
] )
+ redirect_to quickvote_url( :
ident => params[:ident
] )
elsif @voter.voted?
# this person has already voted, we try again
flash[:notice] = "You have already voted!"
elsif @voter.voted?
# this person has already voted, we try again
flash[:notice] = "You have already voted!"
- redirect_to quickvote_url( :
votename => params[:votename
] )
+ redirect_to quickvote_url( :
ident => params[:ident
] )
else
# record the ip address for posterity
else
# record the ip address for posterity
@@
-122,7
+122,7
@@
class QuickvoteController < ApplicationController
def change
voter = QuickVoter.find_all(["session_id = ?", session.session_id])[0]
voter.destroy
def change
voter = QuickVoter.find_all(["session_id = ?", session.session_id])[0]
voter.destroy
- redirect_to quickvote_url( :
votename => params[:votename
] )
+ redirect_to quickvote_url( :
ident => params[:ident
] )
end
def sort_candidates
end
def sort_candidates
@@
-142,7
+142,7
@@
class QuickvoteController < ApplicationController
###############################################################
def results
###############################################################
def results
- @election =
QuickVote.find_all(["name = ?", params[:votename]] )[0]
+ @election =
ident_to_quickvote(params[:ident])
# initalize the tallies to empty arrays
preference_tally = Array.new
# initalize the tallies to empty arrays
preference_tally = Array.new
@@
-173,4
+173,15
@@
class QuickvoteController < ApplicationController
@election.candidates.each {|c| @candidates[c.id] = c}
end
@election.candidates.each {|c| @candidates[c.id] = c}
end
+ private
+ def ident_to_quickvote(ident)
+ if ident.match(/^\d+$/)
+ quickvote = QuickVote.find(ident)
+ else
+ quickvote = QuickVote.find_all(["name = ?", ident])[0]
+ end
+
+ return quickvote
+ end
+
end
end
Benjamin Mako Hill
||
Want to submit a patch?