rend accessible l'envoi de dossier par un instructeur

en remplaçant select2 par ComboMultipleDropdownList
This commit is contained in:
Christophe Robillard 2021-02-11 15:31:10 +01:00 committed by Paul Chavard
parent b8097e782a
commit c855d13994
5 changed files with 9 additions and 12 deletions

View file

@ -72,7 +72,7 @@ module Instructeurs
end
def send_to_instructeurs
recipients = Instructeur.find(params[:recipients])
recipients = Instructeur.find(JSON.parse(params[:recipients]))
recipients.each do |recipient|
recipient.follow(dossier)

View file

@ -8,9 +8,8 @@
Le destinataire suivra automatiquement le dossier
= form_for dossier, url: send_to_instructeurs_instructeur_dossier_path(dossier.procedure, dossier), method: :post, html: { class: 'form recipients-form' } do |f|
.flex.justify-start.align-start
= select_tag(:recipients,
options_from_collection_for_select(potential_recipients, :id, :email),
multiple: true,
class: 'select2-limited',
placeholder: '')
- hidden_field_id = SecureRandom.uuid
= hidden_field_tag :recipients, nil, data: { uuid: hidden_field_id }
= react_component("ComboMultipleDropdownList", options: potential_recipients.map{|r| [r.email, r.id]}, selected: [], disabled: [], hiddenFieldId: hidden_field_id, label: "email instructeur")
= f.submit "Envoyer", class: "button large send gap-left"

View file

@ -38,7 +38,7 @@ describe Instructeurs::DossiersController, type: :controller do
post(
:send_to_instructeurs,
params: {
recipients: [recipient],
recipients: [recipient.id].to_json,
procedure_id: procedure.id,
dossier_id: dossier.id
}

View file

@ -128,10 +128,8 @@ feature 'Instructing a dossier:' do
click_on 'Personnes impliquées'
first('.select2-container', minimum: 1).click
find('li.select2-results__option[role="option"]', text: instructeur_2.email).click
first('.select2-container', minimum: 1).click
find('li.select2-results__option[role="option"]', text: instructeur_3.email).click
select_multi('email instructeur', instructeur_2.email)
select_multi('email instructeur', instructeur_3.email)
click_on 'Envoyer'

View file

@ -13,7 +13,7 @@ describe 'instructeurs/dossiers/envoyer_dossier_block.html.haml', type: :view do
let(:instructeur) { create(:instructeur, email: 'yop@totomail.fr') }
let(:potential_recipients) { [instructeur] }
it { is_expected.to have_css("select > option[value='#{instructeur.id}']") }
it { is_expected.to match(/data-react-props.*#{instructeur.email}/) }
it { is_expected.to have_css(".button.send") }
end