+ def get_positions_info(election)
+ buckets = Hash.new
+ buckets2= Hash.new
+ rank_labels = Hash.new
+
+ election.candidates.each do |candidate|
+ buckets[candidate.id] = []
+ buckets2[candidate.id] = []
+ end
+
+ #attach the ranking to the candidate's array to which is belongs
+ election.votes.each do |vote|
+ vote.rankings.each do |ranking|
+ buckets[ranking.candidate_id] << ranking.rank
+ end
+ end
+
+ #count how many times each candidate has been ranked at a certain level
+ buckets.each_pair do |id, array|
+ (1..election.candidates.size).each do |i|
+ buckets2[id] << (array.find_all {|rank| rank == i}).size
+ end
+ end
+
+ #sort by amount of 1st place votes
+ sorted_data = buckets2.values.sort {|a,b| b[0] <=> a[0]}
+
+ election.votes.each do |vote|
+ vote.rankings.size.times do |i|
+ rank_labels[i] = (i+1).to_s
+ end
+ end
+
+ return sorted_data, rank_labels
+ end