feat(administrateur): when clone or preview procedure should use published revision if not the owned

This commit is contained in:
Paul Chavard 2023-05-04 16:15:41 +02:00
parent e0071cf1bb
commit 616188bfe3
3 changed files with 35 additions and 15 deletions

View file

@ -520,12 +520,16 @@ class Procedure < ApplicationRecord
is_different_admin = !admin.owns?(self)
populate_champ_stable_ids
include_list = {
attestation_template: [],
draft_revision: {
revision_types_de_champ: [:type_de_champ],
dossier_submitted_message: []
}
revision_to_clone = if is_different_admin && published_revision_id.present?
:published_revision
else
:draft_revision
end
include_list = { attestation_template: [] }
include_list[revision_to_clone] = {
revision_types_de_champ: [:type_de_champ],
dossier_submitted_message: []
}
include_list[:groupe_instructeurs] = :instructeurs if !is_different_admin
procedure = self.deep_clone(include: include_list) do |original, kopy|
@ -544,8 +548,12 @@ class Procedure < ApplicationRecord
procedure.max_duree_conservation_dossiers_dans_ds = NEW_MAX_DUREE_CONSERVATION
end
procedure.estimated_dossiers_count = 0
procedure.published_revision = nil
if procedure.published_revision.present?
procedure.draft_revision = procedure.published_revision
end
procedure.draft_revision.procedure = procedure
procedure.draft_revision.published_at = nil
procedure.published_revision = nil
if is_different_admin
procedure.administrateurs = [admin]