diff --git a/app/controllers/administrateurs/attestation_template_v2s_controller.rb b/app/controllers/administrateurs/attestation_template_v2s_controller.rb index 4585f1c39..64ea3348c 100644 --- a/app/controllers/administrateurs/attestation_template_v2s_controller.rb +++ b/app/controllers/administrateurs/attestation_template_v2s_controller.rb @@ -133,7 +133,13 @@ module Administrateurs @procedure.attestation_templates.build(version: 2, json_body: AttestationTemplate::TIPTAP_BODY_DEFAULT, activated: true, state:) end - def should_edit_draft? = !@procedure.brouillon? + def should_edit_draft? + if @procedure.brouillon? + @procedure.attestation_templates.v1.published.any? + else + true + end + end def editor_params params.required(:attestation_template).permit(:activated, :official_layout, :label_logo, :label_direction, :tiptap_body, :footer, :logo, :signature, :activated, :state) diff --git a/spec/controllers/administrateurs/attestation_template_v2s_controller_spec.rb b/spec/controllers/administrateurs/attestation_template_v2s_controller_spec.rb index e82085bc9..e7056cd67 100644 --- a/spec/controllers/administrateurs/attestation_template_v2s_controller_spec.rb +++ b/spec/controllers/administrateurs/attestation_template_v2s_controller_spec.rb @@ -142,6 +142,17 @@ describe Administrateurs::AttestationTemplateV2sController, type: :controller do expect(assigns(:attestation_template)).to be_draft expect(attestation_template.reload).to be_present end + + context 'on a draft procedure' do + let(:procedure) { create(:procedure, :draft, administrateur: admin, attestation_template:, libelle: "Ma démarche") } + + it 'build v2 as draft' do + subject + expect(assigns(:attestation_template).version).to eq(2) + expect(assigns(:attestation_template)).to be_draft + expect(attestation_template.reload).to be_present + end + end end context 'attestation template published exist without draft' do