From df91fd1180da7e64857a91b786dbe8d516b4c915 Mon Sep 17 00:00:00 2001 From: simon lehericey Date: Fri, 6 May 2022 23:20:07 +0200 Subject: [PATCH] move_type_de_champ new style --- app/models/procedure_revision.rb | 20 ++++++------------- ...ocedure_presentation_and_revisions_spec.rb | 2 +- 2 files changed, 7 insertions(+), 15 deletions(-) diff --git a/app/models/procedure_revision.rb b/app/models/procedure_revision.rb index cfa619bc7..05b6aa352 100644 --- a/app/models/procedure_revision.rb +++ b/app/models/procedure_revision.rb @@ -66,23 +66,15 @@ class ProcedureRevision < ApplicationRecord end def move_type_de_champ(stable_id, position) - type_de_champ = find_type_de_champ_by_stable_id(stable_id) + coordinate = revision_types_de_champ + .joins(:type_de_champ) + .find_by(type_de_champ: { stable_id: stable_id }) - if type_de_champ.parent.present? - repetition_type_de_champ = find_or_clone_type_de_champ(stable_id).parent + siblings = coordinate.siblings.to_a - move_type_de_champ_hash(repetition_type_de_champ.types_de_champ.to_a, type_de_champ, position).each do |(id, position)| - type_de_champ = repetition_type_de_champ.types_de_champ.find(id) - type_de_champ.update!(order_place: position) - type_de_champ.revision_type_de_champ&.update!(position: position) - end - else - liste = type_de_champ.private? ? types_de_champ_private : types_de_champ_public + siblings.insert(position, siblings.delete_at(siblings.index(coordinate))) - move_type_de_champ_hash(liste.to_a, type_de_champ, position).each do |(id, position)| - revision_types_de_champ.find_by!(type_de_champ_id: id).update!(position: position) - end - end + reorder(siblings) end def remove_type_de_champ(stable_id) diff --git a/spec/models/procedure_presentation_and_revisions_spec.rb b/spec/models/procedure_presentation_and_revisions_spec.rb index 52fa41b5d..482fb0e14 100644 --- a/spec/models/procedure_presentation_and_revisions_spec.rb +++ b/spec/models/procedure_presentation_and_revisions_spec.rb @@ -41,7 +41,7 @@ describe ProcedurePresentation do before do created_tdc0 = procedure.draft_revision.add_type_de_champ(tdc0) - procedure.draft_revision.move_type_de_champ(created_tdc0.stable_id, 0) + procedure.draft_revision.reload.move_type_de_champ(created_tdc0.stable_id, 0) procedure.publish_revision! end