feat(Procedure.clone): reset subject.duree_conservation_dossiers_dans_ds when procedure.duree_conservation_etendue_par_ds was extended. only extends it on demand otherwise admin could clone old procedure with higher duree_conservation_dossiers_dans_ds
This commit is contained in:
parent
51680b11c2
commit
5f2b290407
2 changed files with 12 additions and 1 deletions
|
@ -486,6 +486,10 @@ class Procedure < ApplicationRecord
|
||||||
procedure.published_at = nil
|
procedure.published_at = nil
|
||||||
procedure.auto_archive_on = nil
|
procedure.auto_archive_on = nil
|
||||||
procedure.lien_notice = nil
|
procedure.lien_notice = nil
|
||||||
|
procedure.duree_conservation_etendue_par_ds = false
|
||||||
|
if procedure.duree_conservation_dossiers_dans_ds > NEW_MAX_DUREE_CONSERVATION
|
||||||
|
procedure.duree_conservation_dossiers_dans_ds = NEW_MAX_DUREE_CONSERVATION
|
||||||
|
end
|
||||||
procedure.published_revision = nil
|
procedure.published_revision = nil
|
||||||
procedure.draft_revision.procedure = procedure
|
procedure.draft_revision.procedure = procedure
|
||||||
|
|
||||||
|
|
|
@ -447,6 +447,8 @@ describe Procedure do
|
||||||
received_mail: received_mail,
|
received_mail: received_mail,
|
||||||
service: service,
|
service: service,
|
||||||
opendata: opendata,
|
opendata: opendata,
|
||||||
|
duree_conservation_etendue_par_ds: true,
|
||||||
|
duree_conservation_dossiers_dans_ds: Procedure::OLD_MAX_DUREE_CONSERVATION,
|
||||||
attestation_template: build(:attestation_template, logo: logo, signature: signature),
|
attestation_template: build(:attestation_template, logo: logo, signature: signature),
|
||||||
types_de_champ_public: [{}, {}, { type: :drop_down_list }, { type: :piece_justificative }, { type: :repetition, children: [{}] }],
|
types_de_champ_public: [{}, {}, { type: :drop_down_list }, { type: :piece_justificative }, { type: :repetition, children: [{}] }],
|
||||||
types_de_champ_private: [{}, {}, { type: :drop_down_list }, { type: :repetition, children: [{}] }],
|
types_de_champ_private: [{}, {}, { type: :drop_down_list }, { type: :repetition, children: [{}] }],
|
||||||
|
@ -489,6 +491,11 @@ describe Procedure do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'should reset duree_conservation_etendue_par_ds' do
|
||||||
|
expect(subject.duree_conservation_etendue_par_ds).to eq(false)
|
||||||
|
expect(subject.duree_conservation_dossiers_dans_ds).to eq(Procedure::NEW_MAX_DUREE_CONSERVATION)
|
||||||
|
end
|
||||||
|
|
||||||
it 'should duplicate specific objects with different id' do
|
it 'should duplicate specific objects with different id' do
|
||||||
expect(subject.id).not_to eq(procedure.id)
|
expect(subject.id).not_to eq(procedure.id)
|
||||||
|
|
||||||
|
@ -525,7 +532,7 @@ describe Procedure do
|
||||||
|
|
||||||
cloned_procedure = subject
|
cloned_procedure = subject
|
||||||
cloned_procedure.parent_procedure_id = nil
|
cloned_procedure.parent_procedure_id = nil
|
||||||
expect(cloned_procedure).to have_same_attributes_as(procedure, except: ["path", "draft_revision_id", "service_id"])
|
expect(cloned_procedure).to have_same_attributes_as(procedure, except: ["path", "draft_revision_id", "service_id", "duree_conservation_etendue_par_ds", "duree_conservation_dossiers_dans_ds"])
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'which is opendata' do
|
context 'which is opendata' do
|
||||||
|
|
Loading…
Add table
Reference in a new issue