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
|
module Administrateurs
|
||||||
class GroupeInstructeursController < AdministrateurController
|
class GroupeInstructeursController < AdministrateurController
|
||||||
include ActiveSupport::NumberHelper
|
include ActiveSupport::NumberHelper
|
||||||
|
include Logic
|
||||||
|
|
||||||
before_action :ensure_not_super_admin!, only: [:add_instructeur]
|
before_action :ensure_not_super_admin!, only: [:add_instructeur]
|
||||||
|
|
||||||
|
@ -29,6 +30,38 @@ module Administrateurs
|
||||||
@groupes_instructeurs = paginated_groupe_instructeurs
|
@groupes_instructeurs = paginated_groupe_instructeurs
|
||||||
end
|
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
|
def show
|
||||||
@procedure = procedure
|
@procedure = procedure
|
||||||
@groupe_instructeur = groupe_instructeur
|
@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 'options'
|
||||||
get 'ajout'
|
get 'ajout'
|
||||||
post 'ajout' => 'groupe_instructeurs#create'
|
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_routing_criteria_name'
|
||||||
patch 'update_instructeurs_self_management_enabled'
|
patch 'update_instructeurs_self_management_enabled'
|
||||||
post 'import'
|
post 'import'
|
||||||
|
|
Loading…
Reference in a new issue