Merge pull request #10463 from demarches-simplifiees/reorganize-config-expert-ldu
[admin] améliorer configuration des experts invités
This commit is contained in:
commit
d9451aa64b
5 changed files with 100 additions and 86 deletions
|
@ -1,5 +1,5 @@
|
||||||
class Dsfr::ToggleComponent < ApplicationComponent
|
class Dsfr::ToggleComponent < ApplicationComponent
|
||||||
def initialize(form:, target:, title:, disabled: nil, hint: nil, toggle_labels: { checked: 'Activé', unchecked: 'Désactivé' }, opt: nil)
|
def initialize(form:, target:, title:, disabled: nil, hint: nil, toggle_labels: { checked: 'Activé', unchecked: 'Désactivé' }, opt: nil, extra_class_names: nil)
|
||||||
@form = form
|
@form = form
|
||||||
@target = target
|
@target = target
|
||||||
@title = title
|
@title = title
|
||||||
|
@ -7,7 +7,8 @@ class Dsfr::ToggleComponent < ApplicationComponent
|
||||||
@disabled = disabled
|
@disabled = disabled
|
||||||
@toggle_labels = toggle_labels
|
@toggle_labels = toggle_labels
|
||||||
@opt = opt
|
@opt = opt
|
||||||
|
@extra_class_names = extra_class_names
|
||||||
end
|
end
|
||||||
|
|
||||||
attr_reader :toggle_labels
|
attr_reader :toggle_labels, :extra_class_names
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
.fr-toggle.fr-toggle--label-left
|
%div{ class: "fr-toggle fr-toggle--label-left #{extra_class_names}" }
|
||||||
= @form.check_box @target, class: 'fr-toggle__input', disabled: @disabled,
|
= @form.check_box @target, class: 'fr-toggle__input', disabled: @disabled,
|
||||||
data: @opt
|
data: @opt
|
||||||
= @form.label @target,
|
= @form.label @target,
|
||||||
|
|
|
@ -7,57 +7,63 @@
|
||||||
%h1.fr-h2
|
%h1.fr-h2
|
||||||
Avis externes
|
Avis externes
|
||||||
|
|
||||||
.groupe-instructeur
|
= render Dsfr::CalloutComponent.new(title: nil) do |c|
|
||||||
.card
|
- c.with_body do
|
||||||
.card-title= t('.titles.allow_invite_experts')
|
Pendant l'instruction d'un dossier, les instructeurs peuvent demander leur avis à un ou plusieurs experts.
|
||||||
%p= t('.descriptions.allow_invite_experts')
|
%p
|
||||||
|
= link_to('Comment gérer les avis externes', t('.experts_doc.url'),
|
||||||
|
title: t('.experts_doc.title'),
|
||||||
|
**external_link_attributes)
|
||||||
|
|
||||||
|
%ul.fr-toggle__list
|
||||||
|
%li
|
||||||
= form_for @procedure,
|
= form_for @procedure,
|
||||||
method: :put,
|
method: :put,
|
||||||
url: allow_expert_review_admin_procedure_path(@procedure),
|
url: allow_expert_review_admin_procedure_path(@procedure),
|
||||||
html: { class: 'form procedure-form__column--form no-background' } do |f|
|
data: { controller: 'autosubmit', turbo: 'true' } do |f|
|
||||||
%label.toggle-switch{ data: { controller: 'autosubmit' } }
|
|
||||||
= f.check_box :allow_expert_review, class: 'toggle-switch-checkbox'
|
= render Dsfr::ToggleComponent.new(form: f,
|
||||||
%span.toggle-switch-control.round
|
target: :allow_expert_review,
|
||||||
%span.toggle-switch-label.on
|
title: t('.titles.allow_invite_experts'),
|
||||||
%span.toggle-switch-label.off
|
hint: t('.descriptions.allow_invite_experts'),
|
||||||
|
disabled: false,
|
||||||
|
extra_class_names: 'fr-toggle--border-bottom')
|
||||||
|
|
||||||
- if @procedure.allow_expert_review?
|
- if @procedure.allow_expert_review?
|
||||||
.card
|
%li
|
||||||
.card-title= t('.titles.manage_procedure_experts')
|
|
||||||
%p= t('.descriptions.manage_procedure_experts')
|
|
||||||
= form_for @procedure,
|
|
||||||
method: :put,
|
|
||||||
url: experts_require_administrateur_invitation_admin_procedure_path(@procedure),
|
|
||||||
html: { class: 'form procedure-form__column--form no-background' } do |f|
|
|
||||||
%label.toggle-switch{ data: { controller: 'autosubmit' } }
|
|
||||||
= f.check_box :experts_require_administrateur_invitation, class: 'toggle-switch-checkbox'
|
|
||||||
%span.toggle-switch-control.round
|
|
||||||
%span.toggle-switch-label.on
|
|
||||||
%span.toggle-switch-label.off
|
|
||||||
|
|
||||||
.card
|
|
||||||
.card-title= t('.titles.allow_expert_messaging')
|
|
||||||
%p= t('.descriptions.allow_expert_messaging')
|
|
||||||
= form_for @procedure,
|
= form_for @procedure,
|
||||||
method: :put,
|
method: :put,
|
||||||
url: allow_expert_messaging_admin_procedure_path(@procedure),
|
url: allow_expert_messaging_admin_procedure_path(@procedure),
|
||||||
html: { class: 'form procedure-form__column--form no-background' } do |f|
|
data: { controller: 'autosubmit', turbo: 'true' } do |f|
|
||||||
%label.toggle-switch{ data: { controller: 'autosubmit' } }
|
|
||||||
= f.check_box :allow_expert_messaging, class: 'toggle-switch-checkbox'
|
= render Dsfr::ToggleComponent.new(form: f,
|
||||||
%span.toggle-switch-control.round
|
target: :allow_expert_messaging,
|
||||||
%span.toggle-switch-label.on
|
title: t('.titles.allow_expert_messaging'),
|
||||||
%span.toggle-switch-label.off
|
hint: t('.descriptions.allow_expert_messaging'),
|
||||||
|
disabled: false,
|
||||||
|
extra_class_names: 'fr-toggle--border-bottom')
|
||||||
|
|
||||||
|
%li
|
||||||
|
= form_for @procedure,
|
||||||
|
method: :put,
|
||||||
|
url: experts_require_administrateur_invitation_admin_procedure_path(@procedure),
|
||||||
|
data: { controller: 'autosubmit', turbo: 'true' } do |f|
|
||||||
|
|
||||||
|
= render Dsfr::ToggleComponent.new(form: f,
|
||||||
|
target: :experts_require_administrateur_invitation,
|
||||||
|
title: t('.titles.manage_procedure_experts'),
|
||||||
|
hint: t('.descriptions.manage_procedure_experts'),
|
||||||
|
disabled: false)
|
||||||
|
|
||||||
|
|
||||||
- if @procedure.experts_require_administrateur_invitation?
|
- if @procedure.experts_require_administrateur_invitation?
|
||||||
.card
|
.card
|
||||||
.card-title Affecter des experts à la démarche
|
|
||||||
= form_for :experts_procedure,
|
= form_for :experts_procedure,
|
||||||
url: admin_procedure_experts_path(@procedure),
|
url: admin_procedure_experts_path(@procedure),
|
||||||
html: { class: 'form' } do |f|
|
html: { class: 'form' } do |f|
|
||||||
|
|
||||||
.instructeur-wrapper
|
.instructeur-wrapper
|
||||||
%p Pendant l'instruction d’un dossier, les instructeurs peuvent demander leur avis à un ou plusieurs experts.
|
%p#experts-emails Entrez les adresses emails des experts que vous souhaitez ajouter à la liste prédéfinie
|
||||||
%p#experts-emails Entrez les adresses email des experts que vous souhaitez affecter à cette démarche
|
|
||||||
= hidden_field_tag :emails, nil
|
= hidden_field_tag :emails, nil
|
||||||
= react_component("ComboMultiple",
|
= react_component("ComboMultiple",
|
||||||
options: [],
|
options: [],
|
||||||
|
@ -68,15 +74,19 @@
|
||||||
describedby: 'experts-emails',
|
describedby: 'experts-emails',
|
||||||
acceptNewValues: true)
|
acceptNewValues: true)
|
||||||
|
|
||||||
= f.submit 'Affecter à la démarche', class: 'button primary send'
|
= f.submit 'Ajouter à la liste', class: 'fr-btn'
|
||||||
|
|
||||||
- if @experts_procedure.present?
|
- if @experts_procedure.present?
|
||||||
%table.table.mt-2
|
.fr-table.fr-table--no-caption.fr-table--layout-fixed.fr-mt-3w
|
||||||
|
%table
|
||||||
%thead
|
%thead
|
||||||
%tr
|
%tr
|
||||||
%th Liste des experts
|
%th Liste des experts
|
||||||
%th Nombre d’avis
|
%th Nombre d’avis
|
||||||
- if @procedure.experts_require_administrateur_invitation
|
- if @procedure.experts_require_administrateur_invitation
|
||||||
%th Notifier des décisions sur les dossiers
|
%th Notifier des décisions sur les dossiers
|
||||||
|
- if @procedure.experts_require_administrateur_invitation
|
||||||
|
%th Action
|
||||||
%tbody
|
%tbody
|
||||||
- @experts_procedure.each do |expert_procedure|
|
- @experts_procedure.each do |expert_procedure|
|
||||||
%tr
|
%tr
|
||||||
|
@ -102,7 +112,7 @@
|
||||||
admin_procedure_expert_path(id: expert_procedure, procedure: @procedure),
|
admin_procedure_expert_path(id: expert_procedure, procedure: @procedure),
|
||||||
method: :delete,
|
method: :delete,
|
||||||
data: { confirm: "Êtes-vous sûr de vouloir révoquer l'expert « #{expert_procedure.expert.email} » de la démarche #{expert_procedure.procedure.libelle} ? Les instructeurs ne pourront plus lui demander d’avis" },
|
data: { confirm: "Êtes-vous sûr de vouloir révoquer l'expert « #{expert_procedure.expert.email} » de la démarche #{expert_procedure.procedure.libelle} ? Les instructeurs ne pourront plus lui demander d’avis" },
|
||||||
class: 'button'
|
class: 'fr-btn fr-btn--secondary'
|
||||||
- else
|
- else
|
||||||
.blank-tab
|
.blank-tab
|
||||||
%h2.empty-text Aucun expert invité pour le moment.
|
%h2.empty-text Aucun expert invité pour le moment.
|
||||||
|
|
|
@ -6,8 +6,11 @@ fr:
|
||||||
main: Experts invités sur %{libelle}
|
main: Experts invités sur %{libelle}
|
||||||
allow_invite_experts: "Autoriser les instructeurs à solliciter des experts invités"
|
allow_invite_experts: "Autoriser les instructeurs à solliciter des experts invités"
|
||||||
allow_expert_messaging: "Autoriser les experts à accéder à la messagerie usager"
|
allow_expert_messaging: "Autoriser les experts à accéder à la messagerie usager"
|
||||||
manage_procedure_experts: "Gérer les experts invités de la démarche"
|
manage_procedure_experts: "Gérer les experts invités de la démarche avec une liste prédéfinie"
|
||||||
descriptions:
|
descriptions:
|
||||||
allow_invite_experts : Lorsque cette fonctionnalité est active, les instructeurs peuvent solliciter les experts
|
allow_invite_experts : Lorsque cette fonctionnalité est active, les instructeurs peuvent solliciter les experts
|
||||||
allow_expert_messaging: Lorsque cette fonctionnalité est active, les experts peuvent demander des informations aux usagers
|
allow_expert_messaging: Lorsque cette fonctionnalité est active, les experts peuvent demander des informations aux usagers
|
||||||
manage_procedure_experts: Lorsque cette fonctionnalité est active, les instructeurs peuvent uniquement solliciter les experts de votre liste
|
manage_procedure_experts: Lorsque cette fonctionnalité est active, les instructeurs peuvent uniquement solliciter les experts de votre liste
|
||||||
|
experts_doc:
|
||||||
|
title: Avis externes documentation
|
||||||
|
url: 'https://app.gitbook.com/o/-L7_aClyGhmMzzsqtO4_/s/-L7_aKvpAJdAIEfxHudA/tutoriels/tutoriel-administrateur/~/comments?context=post&node=ff7bd481c1994d6aa56817b7237b9e59#id-12.-la-gestion-des-avis-experts-invites-de-votre-demarche'
|
||||||
|
|
|
@ -40,7 +40,7 @@ describe 'administrateurs/experts_procedures/index', type: :view do
|
||||||
|
|
||||||
context 'when the experts_require_administrateur_invitation is false' do
|
context 'when the experts_require_administrateur_invitation is false' do
|
||||||
it 'authorize instructors to invite any expert' do
|
it 'authorize instructors to invite any expert' do
|
||||||
expect(rendered).not_to have_content "Affecter des experts à la démarche"
|
expect(rendered).not_to have_content "Entrez les adresses emails des experts que vous souhaitez ajouter à la liste prédéfinie"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -50,7 +50,7 @@ describe 'administrateurs/experts_procedures/index', type: :view do
|
||||||
subject
|
subject
|
||||||
end
|
end
|
||||||
it 'does not authorize instructors to invite any expert but only those presents in admin list' do
|
it 'does not authorize instructors to invite any expert but only those presents in admin list' do
|
||||||
expect(rendered).to have_content "Affecter des experts à la démarche"
|
expect(rendered).to have_content "Entrez les adresses emails des experts que vous souhaitez ajouter à la liste prédéfinie"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in a new issue