fix(routing): open routing wizard to all conditionable types
This commit is contained in:
parent
70d9d72a59
commit
ea8112b8b3
4 changed files with 44 additions and 3 deletions
|
@ -4,7 +4,7 @@ fr:
|
||||||
Le routage permet d’acheminer les dossiers vers différents groupes d’instructeurs.
|
Le routage permet d’acheminer les dossiers vers différents groupes d’instructeurs.
|
||||||
routing_configuration_notice_2_html: |
|
routing_configuration_notice_2_html: |
|
||||||
<p>Pour le configurer, votre formulaire doit comporter
|
<p>Pour le configurer, votre formulaire doit comporter
|
||||||
au moins un champ de type « choix simple », « communes », « epci », « départements » ou « régions ».</p>
|
au moins un champ de type %{conditionable_types}.</p>
|
||||||
<p>Ajoutez ce champ dans la page <a href="%{path}">« Configuration des champs »</a>.</p>
|
<p>Ajoutez ce champ dans la page <a href="%{path}">« Configuration des champs »</a>.</p>
|
||||||
delete_title: Aucun dossier ne sera supprimé. Les groupes d'instructeurs vont être supprimés. Seuls les instructeurs du groupe « %{defaut_label} » resteront affectés à la démarche.
|
delete_title: Aucun dossier ne sera supprimé. Les groupes d'instructeurs vont être supprimés. Seuls les instructeurs du groupe « %{defaut_label} » resteront affectés à la démarche.
|
||||||
delete_confirmation: |
|
delete_confirmation: |
|
||||||
|
|
|
@ -24,8 +24,8 @@
|
||||||
ROUTAGE_URL,
|
ROUTAGE_URL,
|
||||||
title: t('.routage_doc.title'),
|
title: t('.routage_doc.title'),
|
||||||
**helpers.external_link_attributes)
|
**helpers.external_link_attributes)
|
||||||
- if @procedure.active_revision.routable_types_de_champ.none?
|
- if @procedure.active_revision.conditionable_types_de_champ.none?
|
||||||
%p.fr-mt-2w= t('.routing_configuration_notice_2_html', path: champs_admin_procedure_path(@procedure))
|
%p.fr-mt-2w= t('.routing_configuration_notice_2_html', path: champs_admin_procedure_path(@procedure), conditionable_types: TypeDeChamp.humanized_conditionable_types)
|
||||||
- elsif @procedure.groupe_instructeurs.active.one?
|
- elsif @procedure.groupe_instructeurs.active.one?
|
||||||
= link_to 'Configurer le routage', options_admin_procedure_groupe_instructeurs_path(@procedure, state: :choix), class: 'fr-btn'
|
= link_to 'Configurer le routage', options_admin_procedure_groupe_instructeurs_path(@procedure, state: :choix), class: 'fr-btn'
|
||||||
|
|
||||||
|
|
|
@ -660,6 +660,12 @@ class TypeDeChamp < ApplicationRecord
|
||||||
Logic::ChampValue::MANAGED_TYPE_DE_CHAMP.values.include?(type_champ)
|
Logic::ChampValue::MANAGED_TYPE_DE_CHAMP.values.include?(type_champ)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def self.humanized_conditionable_types
|
||||||
|
Logic::ChampValue::MANAGED_TYPE_DE_CHAMP.values.map do
|
||||||
|
"« #{I18n.t(_1, scope: [:activerecord, :attributes, :type_de_champ, :type_champs])} »"
|
||||||
|
end.to_sentence(last_word_connector: ' ou ')
|
||||||
|
end
|
||||||
|
|
||||||
def invalid_regexp?
|
def invalid_regexp?
|
||||||
self.errors.delete(:expression_reguliere)
|
self.errors.delete(:expression_reguliere)
|
||||||
self.errors.delete(:expression_reguliere_exemple_text)
|
self.errors.delete(:expression_reguliere_exemple_text)
|
||||||
|
|
|
@ -793,6 +793,41 @@ describe Administrateurs::GroupeInstructeursController, type: :controller do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe '#options' do
|
||||||
|
context 'with a simple routable type de champ' do
|
||||||
|
let!(:procedure) do
|
||||||
|
create(:procedure,
|
||||||
|
types_de_champ_public: [
|
||||||
|
{ type: :drop_down_list, libelle: 'Votre ville', options: ['Paris', 'Lyon', 'Marseille'] }
|
||||||
|
],
|
||||||
|
administrateurs: [admin])
|
||||||
|
end
|
||||||
|
before { get :options, params: { procedure_id: procedure.id, state: 'choix' } }
|
||||||
|
|
||||||
|
it do
|
||||||
|
expect(response).to have_http_status(:ok)
|
||||||
|
expect(response.body).to include('Choix du type de routage')
|
||||||
|
expect(procedure.reload.routing_enabled).to be_falsey
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'with a conditionable but not simple routable type de champ' do
|
||||||
|
let!(:procedure) do
|
||||||
|
create(:procedure,
|
||||||
|
types_de_champ_public: [
|
||||||
|
{ type: :integer_number }
|
||||||
|
],
|
||||||
|
administrateurs: [admin])
|
||||||
|
end
|
||||||
|
before { get :options, params: { procedure_id: procedure.id, state: 'choix' } }
|
||||||
|
|
||||||
|
it do
|
||||||
|
expect(response).to redirect_to(admin_procedure_groupe_instructeurs_path(procedure))
|
||||||
|
expect(procedure.reload.routing_enabled).to be_truthy
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe '#create_simple_routing' do
|
describe '#create_simple_routing' do
|
||||||
context 'with a drop_down_list type de champ' do
|
context 'with a drop_down_list type de champ' do
|
||||||
let!(:procedure3) do
|
let!(:procedure3) do
|
||||||
|
|
Loading…
Reference in a new issue