feat(dossier): use persisted dossier for preview

This commit is contained in:
Paul Chavard 2022-04-07 11:40:53 +02:00
parent 27f9a820cc
commit 68ca9efba0
4 changed files with 21 additions and 4 deletions

View file

@ -44,7 +44,7 @@ module Administrateurs
end end
def apercu def apercu
@dossier = procedure_without_control.draft_revision.new_dossier @dossier = procedure_without_control.draft_revision.dossier_for_preview(current_user)
@tab = apercu_tab @tab = apercu_tab
end end

View file

@ -544,7 +544,7 @@ class Dossier < ApplicationRecord
end end
def can_transition_to_en_construction? def can_transition_to_en_construction?
brouillon? && procedure.dossier_can_transition_to_en_construction? brouillon? && procedure.dossier_can_transition_to_en_construction? && !for_procedure_preview?
end end
def can_repasser_en_instruction? def can_repasser_en_instruction?
@ -1246,7 +1246,7 @@ class Dossier < ApplicationRecord
end end
def send_draft_notification_email def send_draft_notification_email
if brouillon? && !procedure.declarative? if brouillon? && !procedure.declarative? && !for_procedure_preview?
DossierMailer.notify_new_draft(self).deliver_later DossierMailer.notify_new_draft(self).deliver_later
end end
end end

View file

@ -132,6 +132,19 @@ class ProcedureRevision < ApplicationRecord
) )
end end
def dossier_for_preview(user)
dossier = Dossier
.create_with(groupe_instructeur: procedure.defaut_groupe_instructeur_for_new_dossier)
.find_or_initialize_by(revision: self, user: user, for_procedure_preview: true, state: Dossier.states.fetch(:brouillon))
if dossier.new_record?
dossier.build_default_individual
dossier.save!
end
dossier
end
private private
def compare_attestation_template(from_at, to_at) def compare_attestation_template(from_at, to_at)

View file

@ -23,7 +23,11 @@ describe Administrateurs::ProceduresController, type: :controller do
get :apercu, params: { id: procedure.id } get :apercu, params: { id: procedure.id }
end end
it { expect(response).to have_http_status(:ok) } it do
expect(response).to have_http_status(:ok)
expect(procedure.dossiers.visible_by_user).to be_empty
expect(procedure.dossiers.for_procedure_preview).not_to be_empty
end
end end
let(:procedure_params) { let(:procedure_params) {