From a202a579887ba0bf5149b2e3bce0695aa3b4ae9c Mon Sep 17 00:00:00 2001 From: simon lehericey Date: Fri, 21 Apr 2023 11:19:09 +0200 Subject: [PATCH 1/2] fix: defaut_groupe_instructeur_id for a cloned procedure --- app/models/procedure.rb | 3 +++ spec/models/procedure_spec.rb | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/app/models/procedure.rb b/app/models/procedure.rb index 1519105c2..91e34bd70 100644 --- a/app/models/procedure.rb +++ b/app/models/procedure.rb @@ -559,6 +559,9 @@ class Procedure < ApplicationRecord procedure.draft_revision.types_de_champ_public.each { |tdc| tdc.options&.delete(:old_pj) } end + new_defaut_groupe = procedure.groupe_instructeurs.find_by(label: defaut_groupe_instructeur.label) + procedure.update!(defaut_groupe_instructeur: new_defaut_groupe) + procedure end diff --git a/spec/models/procedure_spec.rb b/spec/models/procedure_spec.rb index 9a8260720..71fdc85f8 100644 --- a/spec/models/procedure_spec.rb +++ b/spec/models/procedure_spec.rb @@ -518,6 +518,7 @@ describe Procedure do expect(subject.groupe_instructeurs.size).to eq(2) expect(subject.groupe_instructeurs.size).to eq(procedure.groupe_instructeurs.size) expect(subject.groupe_instructeurs.where(label: "groupe_1").first).not_to be nil + expect(subject.defaut_groupe_instructeur_id).to eq(subject.groupe_instructeurs.find_by(label: 'défaut').id) end it "should clone instructeurs in the groupe" do @@ -568,7 +569,8 @@ describe Procedure do cloned_procedure.parent_procedure_id = nil expect(cloned_procedure).to have_same_attributes_as(procedure, except: [ "path", "draft_revision_id", "service_id", 'estimated_dossiers_count', - "duree_conservation_etendue_par_ds", "duree_conservation_dossiers_dans_ds", 'max_duree_conservation_dossiers_dans_ds' + "duree_conservation_etendue_par_ds", "duree_conservation_dossiers_dans_ds", 'max_duree_conservation_dossiers_dans_ds', + "defaut_groupe_instructeur_id" ]) end From 83b8570a6568842710d4a37627b67d0771292292 Mon Sep 17 00:00:00 2001 From: simon lehericey Date: Fri, 21 Apr 2023 11:42:44 +0200 Subject: [PATCH 2/2] fix: add rake task to fix wrong defaut_groupe_instructeur to instance: skip this task if you merge this release with 2023-04-17-01 --- ...e_instructeur_id_for_cloned_procedure.rake | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 lib/tasks/deployment/20230421091957_fix_defaut_groupe_instructeur_id_for_cloned_procedure.rake diff --git a/lib/tasks/deployment/20230421091957_fix_defaut_groupe_instructeur_id_for_cloned_procedure.rake b/lib/tasks/deployment/20230421091957_fix_defaut_groupe_instructeur_id_for_cloned_procedure.rake new file mode 100644 index 000000000..7ddaee105 --- /dev/null +++ b/lib/tasks/deployment/20230421091957_fix_defaut_groupe_instructeur_id_for_cloned_procedure.rake @@ -0,0 +1,19 @@ +namespace :after_party do + desc 'Deployment task: fix_defaut_groupe_instructeur_id_for_cloned_procedure' + task fix_defaut_groupe_instructeur_id_for_cloned_procedure: :environment do + procedures = Procedure + .joins(:groupe_instructeurs) + .where.not(parent_procedure_id: nil) + .where("procedures.created_at > ?", Time.zone.parse("17/04/2023")) + + procedures.each do |p| + if !p.defaut_groupe_instructeur_id.in?(p.groupe_instructeurs.map(&:id)) + new_defaut_groupe = p.groupe_instructeurs.find_by(label: p.parent_procedure.defaut_groupe_instructeur.label) + p.update!(defaut_groupe_instructeur: new_defaut_groupe) + end + end + + AfterParty::TaskRecord + .create version: AfterParty::TaskRecorder.new(__FILE__).timestamp + end +end