fix defaut_groupe_instructeur_id for (hidden) procedure with an (hidden) parent
This commit is contained in:
parent
f7880352f0
commit
995858e124
2 changed files with 8 additions and 3 deletions
|
@ -1,7 +1,9 @@
|
||||||
namespace :after_party do
|
namespace :after_party do
|
||||||
desc 'Deployment task: fix_defaut_groupe_instructeur_id_for_cloned_procedure'
|
desc 'Deployment task: fix_defaut_groupe_instructeur_id_for_cloned_procedure'
|
||||||
task fix_defaut_groupe_instructeur_id_for_cloned_procedure: :environment do
|
task fix_defaut_groupe_instructeur_id_for_cloned_procedure: :environment do
|
||||||
|
# rubocop:disable DS/Unscoped
|
||||||
procedures = Procedure
|
procedures = Procedure
|
||||||
|
.unscoped
|
||||||
.joins(:groupe_instructeurs)
|
.joins(:groupe_instructeurs)
|
||||||
.where.not(parent_procedure_id: nil)
|
.where.not(parent_procedure_id: nil)
|
||||||
.where("procedures.created_at > ?", Time.zone.parse("17/04/2023"))
|
.where("procedures.created_at > ?", Time.zone.parse("17/04/2023"))
|
||||||
|
@ -9,13 +11,16 @@ namespace :after_party do
|
||||||
procedures.each do |p|
|
procedures.each do |p|
|
||||||
if !p.defaut_groupe_instructeur_id.in?(p.groupe_instructeurs.map(&:id))
|
if !p.defaut_groupe_instructeur_id.in?(p.groupe_instructeurs.map(&:id))
|
||||||
wrong_groupe = p.defaut_groupe_instructeur
|
wrong_groupe = p.defaut_groupe_instructeur
|
||||||
new_defaut_groupe = p.groupe_instructeurs.find_by(label: p.parent_procedure.defaut_groupe_instructeur.label)
|
parent_procedure = Procedure.unscoped.find(p.parent_procedure_id)
|
||||||
|
new_defaut_groupe = p.groupe_instructeurs.find_by(label: parent_procedure.defaut_groupe_instructeur.label)
|
||||||
p.update!(defaut_groupe_instructeur: new_defaut_groupe)
|
p.update!(defaut_groupe_instructeur: new_defaut_groupe)
|
||||||
|
|
||||||
p.dossiers.where(groupe_instructeur: wrong_groupe).update_all(groupe_instructeur_id: new_defaut_groupe.id)
|
p.dossiers.where(groupe_instructeur: wrong_groupe).update_all(groupe_instructeur_id: new_defaut_groupe.id)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# rubocop:enable DS/Unscoped
|
||||||
|
|
||||||
AfterParty::TaskRecord
|
AfterParty::TaskRecord
|
||||||
.create version: AfterParty::TaskRecorder.new(__FILE__).timestamp
|
.create version: AfterParty::TaskRecorder.new(__FILE__).timestamp
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
describe '20230421091957_fix_defaut_groupe_instructeur_id_for_cloned_procedure' do
|
describe '20230421091957_fix_defaut_groupe_instructeur_id_for_cloned_procedure' do
|
||||||
let(:rake_task) { Rake::Task['after_party:fix_defaut_groupe_instructeur_id_for_cloned_procedure'] }
|
let(:rake_task) { Rake::Task['after_party:fix_defaut_groupe_instructeur_id_for_cloned_procedure'] }
|
||||||
|
|
||||||
let!(:parent_procedure) { create(:procedure) }
|
let!(:parent_procedure) { create(:procedure, hidden_at: Time.zone.now) }
|
||||||
let(:procedure) { create(:procedure, parent_procedure:) }
|
let(:procedure) { create(:procedure, parent_procedure:, hidden_at: Time.zone.now) }
|
||||||
let(:dossier) { create(:dossier, procedure:) }
|
let(:dossier) { create(:dossier, procedure:) }
|
||||||
|
|
||||||
subject(:run_task) { rake_task.invoke }
|
subject(:run_task) { rake_task.invoke }
|
||||||
|
|
Loading…
Reference in a new issue