+
+ ## Gets a list of all QuickVotes in the system.
+ def list_quickvotes()
+ QuickVote.find(:all).collect do |election|
+ get_quickvote(election.name)
+ end
+ end
+
+ ## Gets information on a particular QuickVote
+ ## Takes in a QuickVote name
+ def get_quickvote(shortname)
+ unless election = QuickVote.ident_to_quickvote(shortname)
+ raise ArgumentError.new("Cannot find QuickVote named #{shortname}")
+ end
+
+ QuickVoteStruct.new(
+ :id => election.id,
+ :name => election.name,
+ :description => election.description,
+ :candidate_ids => election.candidates.collect {|c| c.id },
+ :candidate_names => election.candidates.collect {|c| c.name } )
+ end
+
+ ## Create a QuickVote
+ ## Pass in a QuickVoteStruct populated with all the fields but the candidate ID's
+ ## Any candidate ID's you fill in will be ignored anyway.
+ def create_quickvote(election)
+ qv = QuickVote.new(:name => election.name,
+ :description => election.description)
+ qv.candidate_names = election.candidate_names
+
+ if qv.save
+ return ""
+ else
+ raise ArgumentError.new("Saving quickvote FAILED:"+qv.errors.inspect)
+ end
+ end
+