From 3e1a510286e7e9a07bd9b30c0f7e0d6b7ec96fb4 Mon Sep 17 00:00:00 2001 From: benoitqueyron <72251526+Benoit-MINT@users.noreply.github.com> Date: Fri, 6 Dec 2024 10:55:18 +0100 Subject: [PATCH] =?UTF-8?q?r=C3=A9cup=C3=A9ration=20et=20update=20des=20In?= =?UTF-8?q?structeursProcedure=20positions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/instructeurs/procedures_controller.rb | 6 ++++++ app/models/instructeur.rb | 9 +++++++++ app/models/instructeurs_procedure.rb | 2 ++ 3 files changed, 17 insertions(+) diff --git a/app/controllers/instructeurs/procedures_controller.rb b/app/controllers/instructeurs/procedures_controller.rb index ba5cf835f..decaa9c17 100644 --- a/app/controllers/instructeurs/procedures_controller.rb +++ b/app/controllers/instructeurs/procedures_controller.rb @@ -74,6 +74,8 @@ module Instructeurs end def update_order_positions + current_instructeur.update_instructeur_procedures_positions(ordered_procedure_ids_params) + redirect_to instructeur_procedures_path, notice: "L'ordre des démarches a été mis à jour." end def show @@ -381,5 +383,9 @@ module Instructeurs def cookies_export_key "exports_#{@procedure.id}_seen_at" end + + def ordered_procedure_ids_params + params.require(:ordered_procedure_ids) + end end end diff --git a/app/models/instructeur.rb b/app/models/instructeur.rb index 40cd09587..83f035d44 100644 --- a/app/models/instructeur.rb +++ b/app/models/instructeur.rb @@ -118,6 +118,15 @@ class Instructeur < ApplicationRecord InstructeursProcedure.insert_all(missing_instructeur_procedures) if missing_instructeur_procedures.size.positive? end + def update_instructeur_procedures_positions(ordered_procedure_ids) + procedure_id_position = ordered_procedure_ids.reverse.each.with_index.to_h + InstructeursProcedure.transaction do + procedure_id_position.each do |procedure_id, position| + InstructeursProcedure.where(procedure_id:, instructeur_id: id).update(position:) + end + end + end + def procedure_presentation_and_errors_for_procedure_id(procedure_id) assign_to .joins(:groupe_instructeur) diff --git a/app/models/instructeurs_procedure.rb b/app/models/instructeurs_procedure.rb index a16ad581b..6f0216fa4 100644 --- a/app/models/instructeurs_procedure.rb +++ b/app/models/instructeurs_procedure.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + class InstructeursProcedure < ApplicationRecord belongs_to :instructeur belongs_to :procedure