|
- require_relative "../models"
-
- def show_candidate(id)
- c = Candidate.get(id)
-
- template = "%6s\t%50s\t%20s\t%3s"
-
- puts template % [ c.id, c.forenames, c.surname ]
-
- ccy_template = "%20s\t%15s\t%20s\t%20s"
- c.candidacies.each do |ccy|
- puts template % [ ccy.election.body.name, ccy.election.d, ccy.district.name, ccy.party.name]
- end
- end
-
- winner = ARGV.shift
- loser = ARGV.shift
-
- puts "WINNER"
- show_candidate(winner)
-
- puts
-
- puts "LOSER"
- show_candidate(loser)
-
- puts "Are you sure you want to merge these two candidates? The loser will be deleted. (Y or N)"
-
- answer = gets.chomp.downcase
-
- unless answer == 'y'
- puts "Aborting. No changes made to the database."
- exit
- end
-
- # Transfer all the loser's candidacies to the winner
- repository(:default).adapter.select("
- UPDATE candidacies
- SET candidate_id = #{winner}
- WHERE candidate_id = #{loser}
- ")
-
- # Delete the loser candidate
- DeletedCandidate.create(:old_candidate_id => loser, :candidate_id => winner)
- Candidate.get(loser).destroy
-
- puts "Merge completed. Here is the merged candidate:"
- puts
- show_candidate(winner)
|