add simple_routing
This commit is contained in:
parent
8b568c2035
commit
01caa498d3
3 changed files with 63 additions and 0 deletions
|
@ -1,6 +1,7 @@
|
|||
module Administrateurs
|
||||
class GroupeInstructeursController < AdministrateurController
|
||||
include ActiveSupport::NumberHelper
|
||||
include Logic
|
||||
|
||||
before_action :ensure_not_super_admin!, only: [:add_instructeur]
|
||||
|
||||
|
@ -29,6 +30,38 @@ module Administrateurs
|
|||
@groupes_instructeurs = paginated_groupe_instructeurs
|
||||
end
|
||||
|
||||
def simple_routing
|
||||
@procedure = procedure
|
||||
end
|
||||
|
||||
def create_simple_routing
|
||||
@procedure = procedure
|
||||
stable_id = params[:create_simple_routing][:stable_id].to_i
|
||||
|
||||
tdc = @procedure.active_revision.routable_types_de_champ.find { |tdc| tdc.stable_id == stable_id }
|
||||
|
||||
tdc_options = tdc.options["drop_down_options"].reject(&:empty?)
|
||||
|
||||
tdc_options.each do |option_label|
|
||||
gi = procedure.groupe_instructeurs.find_by({ label: option_label }) || procedure.groupe_instructeurs
|
||||
.create({ label: option_label, instructeurs: [current_administrateur.instructeur] })
|
||||
gi.update(routing_rule: ds_eq(champ_value(stable_id), constant(gi.label)))
|
||||
end
|
||||
|
||||
defaut = @procedure.defaut_groupe_instructeur
|
||||
|
||||
if !tdc_options.include?(defaut.label)
|
||||
new_defaut = @procedure.reload.groupe_instructeurs_but_defaut.first
|
||||
@procedure.update!(defaut_groupe_instructeur: new_defaut)
|
||||
reaffecter_all_dossiers_to_defaut_groupe
|
||||
defaut.instructeurs.each { new_defaut.add(_1) }
|
||||
defaut.destroy!
|
||||
end
|
||||
|
||||
flash.notice = 'Les groupes instructeurs ont été ajoutés'
|
||||
redirect_to admin_procedure_groupe_instructeurs_path(procedure)
|
||||
end
|
||||
|
||||
def show
|
||||
@procedure = procedure
|
||||
@groupe_instructeur = groupe_instructeur
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
= render partial: 'administrateurs/breadcrumbs',
|
||||
locals: { steps: [[t('.procedures'), admin_procedures_path],
|
||||
[@procedure.libelle.truncate_words(10), admin_procedure_path(@procedure)],
|
||||
['Groupes', admin_procedure_groupe_instructeurs_path(@procedure)],
|
||||
['Routage à partir d’un champ']] }
|
||||
|
||||
= render Procedure::InstructeursMenuComponent.new(procedure: @procedure) do
|
||||
- content_for(:title, 'Routage')
|
||||
%h1 Routage à partir d’un champ
|
||||
= form_for :create_simple_routing,
|
||||
method: :post,
|
||||
data: { controller: 'radio-enabled-submit' },
|
||||
url: create_simple_routing_admin_procedure_groupe_instructeurs_path(@procedure) do |f|
|
||||
|
||||
%div{ data: { 'action': "click->radio-enabled-submit#click" } }
|
||||
.notice
|
||||
Sélectionner le champ à partir duquel créer des groupes d'instructeurs
|
||||
- buttons_content = @procedure.active_revision.routable_types_de_champ.map { |tdc| { label: tdc.libelle, value: tdc.stable_id } }
|
||||
= render Dsfr::RadioButtonListComponent.new(form: f,
|
||||
target: :stable_id,
|
||||
buttons: buttons_content)
|
||||
|
||||
%ul.fr-btns-group.fr-btns-group--inline-sm
|
||||
%li
|
||||
= link_to 'Retour', options_admin_procedure_groupe_instructeurs_path(@procedure, state: :choix), class: 'fr-btn fr-btn--secondary'
|
||||
%li
|
||||
%button.fr-btn{ disabled: true, data: { 'radio-enabled-submit-target': 'submit' } } Créer les groupes
|
|
@ -535,6 +535,9 @@ Rails.application.routes.draw do
|
|||
get 'options'
|
||||
get 'ajout'
|
||||
post 'ajout' => 'groupe_instructeurs#create'
|
||||
get 'simple_routing'
|
||||
post 'create_simple_routing'
|
||||
delete 'destroy_all_groups_but_defaut'
|
||||
patch 'update_routing_criteria_name'
|
||||
patch 'update_instructeurs_self_management_enabled'
|
||||
post 'import'
|
||||
|
|
Loading…
Reference in a new issue