+
+ def change
+ voter = QuickVoter.find(:all, :conditions => ["session_id = ?",
+ session.session_id])[0]
+ voter.destroy
+ redirect_to quickvote_url( :ident => params[:ident] )
+ end
+
+ 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
+
+ def mapvoters
+ @map = GMap.new("map_div_id")
+ @map.control_init(:large_map => true, :map_type => true)
+ center = nil
+
+ QuickVote.ident_to_quickvote(params[:id]).voters.each do |voter|
+ next unless voter.ipaddress
+
+ location = GeoKit::Geocoders::IpGeocoder.geocode(voter.ipaddress)
+ next unless location.lng and location.lat
+
+ unless center
+ center = [location.lat, location.lng]
+ @map.center_zoom_init(center, 4)
+ end
+
+ marker = GMarker.new([location.lat,location.lng],
+ :title => "Voter",
+ :info_window => (voter.ipaddress or "unknown") \
+ + " " + voter.vote.votestring)
+ @map.overlay_init(marker)
+ end
+ end
+
+ ###############################################################
+ # the following method pertains to displaying the results of a
+ # quickvote
+ ###############################################################
+