| @@ -0,0 +1,49 @@ | |||||
| 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, c.sex ] | |||||
| 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 | |||||
| Candidate.get(loser).destroy | |||||
| puts "Merge completed. Here is the merged candidate:" | |||||
| puts | |||||
| show_candidate(winner) | |||||