feat(instruction options management): add routable champs by category
This commit is contained in:
parent
264594fd58
commit
d979bf6c68
5 changed files with 24 additions and 8 deletions
|
@ -7,9 +7,10 @@ fr:
|
||||||
routing_configured_html:
|
routing_configured_html:
|
||||||
Vous avez configuré un routage avec <strong>%{groupe_instructeurs_count} groupes d’instructeurs.</strong>
|
Vous avez configuré un routage avec <strong>%{groupe_instructeurs_count} groupes d’instructeurs.</strong>
|
||||||
routing_configuration_notice_2_html: |
|
routing_configuration_notice_2_html: |
|
||||||
<p>Pour le configurer, votre formulaire doit comporter
|
Pour le configurer, votre formulaire doit comporter
|
||||||
au moins un champ de type %{conditionable_types}.</p>
|
au moins un <strong>« champ routable »</strong>, soit un champ de type :
|
||||||
<p>Ajoutez ce champ dans la page <a href="%{path}">« Configuration des champs »</a>.</p>
|
routing_configuration_notice_3_html: |
|
||||||
|
Ajoutez ce champ dans la page d’édition <a href="%{path}">des champs du formulaire</a>.
|
||||||
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: |
|
||||||
Attention : tous les dossiers vont être déplacés dans le groupe « %{defaut_label} » et seuls les instructeurs présent dans ce groupe resteront affectés à la démarche. Souhaitez-vous continuer ?
|
Attention : tous les dossiers vont être déplacés dans le groupe « %{defaut_label} » et seuls les instructeurs présent dans ce groupe resteront affectés à la démarche. Souhaitez-vous continuer ?
|
||||||
|
|
|
@ -31,7 +31,12 @@
|
||||||
%p.fr-mt-2w
|
%p.fr-mt-2w
|
||||||
%i.fr-mt-2w= t('.routing_configured_html', groupe_instructeurs_count: @procedure.groupe_instructeurs.count)
|
%i.fr-mt-2w= t('.routing_configured_html', groupe_instructeurs_count: @procedure.groupe_instructeurs.count)
|
||||||
- if @procedure.active_revision.conditionable_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), conditionable_types: TypeDeChamp.humanized_conditionable_types)
|
%p.fr-mt-2w.fr-mb-0= t('.routing_configuration_notice_2_html')
|
||||||
|
%ul
|
||||||
|
- TypeDeChamp.humanized_conditionable_types_by_category.each do |category|
|
||||||
|
%li
|
||||||
|
= category.join(', ')
|
||||||
|
%p.fr-mt-2w= t('.routing_configuration_notice_3_html', path: champs_admin_procedure_path(@procedure))
|
||||||
- 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'
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,11 @@ class Logic::ChampValue < Logic::Term
|
||||||
:pays
|
:pays
|
||||||
)
|
)
|
||||||
|
|
||||||
|
MANAGED_TYPE_DE_CHAMP_BY_CATEGORY = MANAGED_TYPE_DE_CHAMP.keys.map(&:to_sym)
|
||||||
|
.each_with_object(Hash.new { |h, k| h[k] = [] }) do |type, h|
|
||||||
|
h[TypeDeChamp::TYPE_DE_CHAMP_TO_CATEGORIE[type]] << type
|
||||||
|
end
|
||||||
|
|
||||||
CHAMP_VALUE_TYPE = {
|
CHAMP_VALUE_TYPE = {
|
||||||
boolean: :boolean, # from yes_no or checkbox champ
|
boolean: :boolean, # from yes_no or checkbox champ
|
||||||
number: :number, # from integer or decimal number champ
|
number: :number, # from integer or decimal number champ
|
||||||
|
|
|
@ -655,10 +655,9 @@ 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
|
def self.humanized_conditionable_types_by_category
|
||||||
Logic::ChampValue::MANAGED_TYPE_DE_CHAMP.values.map do
|
Logic::ChampValue::MANAGED_TYPE_DE_CHAMP_BY_CATEGORY
|
||||||
"« #{I18n.t(_1, scope: [:activerecord, :attributes, :type_de_champ, :type_champs])} »"
|
.map { |_, v| v.map { "« #{I18n.t(_1, scope: [:activerecord, :attributes, :type_de_champ, :type_champs])} »" } }
|
||||||
end.to_sentence(last_word_connector: ' ou ')
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def invalid_regexp?
|
def invalid_regexp?
|
||||||
|
|
|
@ -475,4 +475,10 @@ describe TypeDeChamp do
|
||||||
it { expect(subject).to eq('') }
|
it { expect(subject).to eq('') }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe '#humanized_conditionable_types_by_category' do
|
||||||
|
subject { TypeDeChamp.humanized_conditionable_types_by_category }
|
||||||
|
|
||||||
|
it { is_expected.to eq([["« Oui/Non »", "« Case à cocher seule »", "« Choix simple »", "« Choix multiple »"], ["« Nombre entier »", "« Nombre décimal »"], ["« Communes »", "« EPCI »", "« Départements »", "« Régions »", "« Adresse »", "« Pays »"]]) }
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue