Merge pull request #8942 from demarches-simplifiees/fix_clone_and_defaut_groupe_instructeur_id

Correctif: corrige defaut_groupe_instructeur_id pour les procedures clonees (2023-04-17-01)
This commit is contained in:
LeSim 2023-04-21 12:11:19 +00:00 committed by GitHub
commit 1539f66ff5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 25 additions and 1 deletions

View file

@ -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

View file

@ -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

View file

@ -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