diff --git a/app/views/experts/shared/avis/_form.html.haml b/app/views/experts/shared/avis/_form.html.haml index a8ec6a80c..7dc44b8f4 100644 --- a/app/views/experts/shared/avis/_form.html.haml +++ b/app/views/experts/shared/avis/_form.html.haml @@ -1,4 +1,4 @@ -- if @dossier.procedure.feature_enabled?(:admin_affect_experts_to_avis).blank? +- if !@dossier.procedure.experts_require_administrateur_invitation? %section.ask-avis %h1.tab-title Inviter des personnes à donner leur avis %p.avis-notice Les invités pourront consulter le dossier, donner un avis et contribuer au fil de messagerie. Ils ne pourront pas modifier le dossier. diff --git a/app/views/instructeurs/shared/avis/_form.html.haml b/app/views/instructeurs/shared/avis/_form.html.haml index 466b48c66..9803b4901 100644 --- a/app/views/instructeurs/shared/avis/_form.html.haml +++ b/app/views/instructeurs/shared/avis/_form.html.haml @@ -1,7 +1,7 @@ %section.ask-avis %h1.tab-title Inviter des personnes à donner leur avis %p.avis-notice Les invités pourront consulter le dossier, donner un avis et contribuer au fil de messagerie. Ils ne pourront pas modifier le dossier. - - if @dossier.procedure.feature_enabled?(:admin_affect_experts_to_avis) + - if @dossier.procedure.experts_require_administrateur_invitation %p.avis-notice Choisissez des experts à qui vous souhaitez demander un avis parmi la liste prédéfinie par les administrateurs de la démarche - else %p.avis-notice Entrez les adresses email des experts à qui vous souhaitez demander un avis @@ -10,13 +10,13 @@ - hidden_field_id = SecureRandom.uuid = hidden_field_tag 'avis[emails]', nil, data: { uuid: hidden_field_id } = react_component("ComboMultipleDropdownList", - options: @dossier.procedure.feature_enabled?(:admin_affect_experts_to_avis) ? @experts_emails : [], + options: @dossier.procedure.experts_require_administrateur_invitation ? @experts_emails : [], selected: [], disabled: [], hiddenFieldId: hidden_field_id, label: 'avis_emails', id: 'avis_emails', - acceptNewValues: @dossier.procedure.feature_enabled?(:admin_affect_experts_to_avis).blank?) + acceptNewValues: !@dossier.procedure.experts_require_administrateur_invitation) = f.text_area :introduction, rows: 3, value: avis.introduction || 'Bonjour, merci de me donner votre avis sur ce dossier.', required: true %p.tab-title Ajouter une pièce jointe .form-group diff --git a/app/views/new_administrateur/experts_procedures/index.html.haml b/app/views/new_administrateur/experts_procedures/index.html.haml index bed3d724b..a4bcabd3f 100644 --- a/app/views/new_administrateur/experts_procedures/index.html.haml +++ b/app/views/new_administrateur/experts_procedures/index.html.haml @@ -9,59 +9,88 @@ .container.groupe-instructeur .card - .card-title Affecter des experts à la démarche - = form_for :experts_procedure, - url: admin_procedure_experts_path(@procedure), - html: { class: 'form' } do |f| + .card-title Autoriser les instructeurs à solliciter des experts invités + %p.notice Si cette fonctionnalité est désactivée, les instructeurs ne pourront plus solliciter d'experts + = form_for @procedure, + method: :put, + url: allow_expert_review_admin_procedure_path(@procedure), + html: { class: 'form procedure-form__column--form no-background' } do |f| + %label.toggle-switch + = f.check_box :allow_expert_review, class: 'toggle-switch-checkbox', onchange: 'this.form.submit()' + %span.toggle-switch-control.round + %span.toggle-switch-label.on + %span.toggle-switch-label.off - .instructeur-wrapper - %p.notice Pendant l'instruction d'un dossier, les instructeurs peuvent demander leur avis à un ou plusieurs experts. - %p.notice Entrez les adresses email des experts que vous souhaitez affecter à cette démarche - - hidden_field_id = SecureRandom.uuid - = hidden_field_tag :emails, nil, data: { uuid: hidden_field_id } - = react_component("ComboMultipleDropdownList", - options: [], - selected: [], disabled: [], - hiddenFieldId: hidden_field_id, - label: 'email expert', - acceptNewValues: true) + - if @procedure.allow_expert_review? + .card + .card-title Gérer les experts invités de la démarche + %p.notice Si cette fonctionnalité est activée, les instructeurs pourront uniquement inviter les experts de votre liste + = 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 + = f.check_box :experts_require_administrateur_invitation, class: 'toggle-switch-checkbox', onchange: 'this.form.submit()' + %span.toggle-switch-control.round + %span.toggle-switch-label.on + %span.toggle-switch-label.off - = f.submit 'Affecter à la démarche', class: 'button primary send' - - if @experts_procedure.present? - %table.table.mt-2 - %thead - %tr - %th Liste des experts - %th Nombre d'avis - - if @procedure.feature_enabled?(:admin_affect_experts_to_avis) - %th Notifier des décisions sur les dossiers - %tbody - - @experts_procedure.each do |expert_procedure| - %tr - %td - %span.icon.person - = expert_procedure.expert.email - %td.text-center - = expert_procedure.avis.count - - if @procedure.feature_enabled?(:admin_affect_experts_to_avis) - %td.text-center - = form_for expert_procedure, - url: admin_procedure_expert_path(id: expert_procedure), - remote: true, - method: :put, - authenticity_token: true, - html: { class: 'form procedure-form__column--form no-background' } do |f| - %label.toggle-switch - = f.check_box :allow_decision_access, class: 'toggle-switch-checkbox', onchange: 'this.form.submit()' - %span.toggle-switch-control.round - %span.toggle-switch-label.on - %span.toggle-switch-label.off - %td.actions= button_to 'retirer', - admin_procedure_expert_path(id: expert_procedure, procedure: @procedure), - 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" }, - class: 'button' - - else - .blank-tab - %h2.empty-text Aucun expert invité pour le moment. - %p.empty-text-details Les instructeurs de cette démarche n'ont pas encore fait appel aux experts. + - if @procedure.experts_require_administrateur_invitation? + .card + .card-title Affecter des experts à la démarche + = form_for :experts_procedure, + url: admin_procedure_experts_path(@procedure), + html: { class: 'form' } do |f| + + .instructeur-wrapper + %p.notice Pendant l'instruction d'un dossier, les instructeurs peuvent demander leur avis à un ou plusieurs experts. + %p.notice Entrez les adresses email des experts que vous souhaitez affecter à cette démarche + - hidden_field_id = SecureRandom.uuid + = hidden_field_tag :emails, nil, data: { uuid: hidden_field_id } + = react_component("ComboMultipleDropdownList", + options: [], + selected: [], disabled: [], + hiddenFieldId: hidden_field_id, + label: 'email expert', + acceptNewValues: true) + + = f.submit 'Affecter à la démarche', class: 'button primary send' + - if @experts_procedure.present? + %table.table.mt-2 + %thead + %tr + %th Liste des experts + %th Nombre d'avis + - if @procedure.experts_require_administrateur_invitation + %th Notifier des décisions sur les dossiers + %tbody + - @experts_procedure.each do |expert_procedure| + %tr + %td + %span.icon.person + = expert_procedure.expert.email + %td.text-center + = expert_procedure.avis.count + - if @procedure.experts_require_administrateur_invitation + %td.text-center + = form_for expert_procedure, + url: admin_procedure_expert_path(id: expert_procedure), + remote: true, + method: :put, + authenticity_token: true, + html: { class: 'form procedure-form__column--form no-background' } do |f| + %label.toggle-switch + = f.check_box :allow_decision_access, class: 'toggle-switch-checkbox', onchange: 'this.form.submit()' + %span.toggle-switch-control.round + %span.toggle-switch-label.on + %span.toggle-switch-label.off + - if @procedure.experts_require_administrateur_invitation + %td.actions= button_to 'retirer', + admin_procedure_expert_path(id: expert_procedure, procedure: @procedure), + 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" }, + class: 'button' + - else + .blank-tab + %h2.empty-text Aucun expert invité pour le moment. + %p.empty-text-details Les instructeurs de cette démarche n'ont pas encore fait appel aux experts. diff --git a/app/views/new_administrateur/procedures/show.html.haml b/app/views/new_administrateur/procedures/show.html.haml index 6f362e623..25efba6bf 100644 --- a/app/views/new_administrateur/procedures/show.html.haml +++ b/app/views/new_administrateur/procedures/show.html.haml @@ -142,32 +142,16 @@ = link_to 'Modifier', edit_admin_procedure_attestation_template_path(@procedure), class: 'button' .card-admin - - if @procedure.allow_expert_review? - %div - %span.icon.accept - %p.card-admin-status-accept Activé - - else - %div - %span.icon.clock - %p.card-admin-status-todo Désactivée + %div + %span.icon.preview + %p.card-admin-status-todo À configurer + %div %p.card-admin-title Avis externes - %p.card-admin-subtitle Demander des avis aux experts invités + %p.card-admin-subtitle Gérer les avis des experts invités + .card-admin-action - = link_to "#{@procedure.allow_expert_review? ? 'Désactiver' : 'Activer'}", allow_expert_review_admin_procedure_path(@procedure), method: :put, class: 'button' - - - if @procedure.allow_expert_review? - .card-admin - %div - %span.icon.preview - %p.card-admin-status-todo À voir - - %div - %p.card-admin-title Liste des experts - %p.card-admin-subtitle Liste des experts invités par les instructeurs - - .card-admin-action - = link_to "Voir", admin_procedure_experts_path(@procedure), class: 'button' + = link_to "Modifier", admin_procedure_experts_path(@procedure), class: 'button' .card-admin