feat(demarche): add possibility to reset draft revision
This commit is contained in:
parent
34a075571e
commit
9b45dcea3f
5 changed files with 71 additions and 18 deletions
|
@ -734,19 +734,20 @@ class Procedure < ApplicationRecord
|
|||
APIEntrepriseToken.new(api_entreprise_token).expired?
|
||||
end
|
||||
|
||||
def create_new_revision
|
||||
def create_new_revision(revision = nil)
|
||||
transaction do
|
||||
new_draft = draft_revision
|
||||
new_revision = (revision || draft_revision)
|
||||
.deep_clone(include: [:revision_types_de_champ])
|
||||
.tap { |revision| revision.published_at = nil }
|
||||
.tap(&:save!)
|
||||
|
||||
move_new_children_to_new_parent_coordinate(new_draft)
|
||||
move_new_children_to_new_parent_coordinate(new_revision)
|
||||
|
||||
# they are not aware of the new tdcs
|
||||
new_draft.types_de_champ_public.reset
|
||||
new_draft.types_de_champ_private.reset
|
||||
new_revision.types_de_champ_public.reset
|
||||
new_revision.types_de_champ_private.reset
|
||||
|
||||
new_draft
|
||||
new_revision
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -772,6 +773,16 @@ class Procedure < ApplicationRecord
|
|||
.find_each { |dossier| DossierRebaseJob.perform_later(dossier) }
|
||||
end
|
||||
|
||||
def reset_draft_revision!
|
||||
if published_revision.present? && draft_changed?
|
||||
transaction do
|
||||
reset!
|
||||
draft_revision.destroy
|
||||
update!(draft_revision: create_new_revision(published_revision))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def cnaf_enabled?
|
||||
api_particulier_sources['cnaf'].present?
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue