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 end
def send_to_instructeurs def send_to_instructeurs
recipients = Instructeur.find(params[:recipients]) recipients = Instructeur.find(JSON.parse(params[:recipients]))
recipients.each do |recipient| recipients.each do |recipient|
recipient.follow(dossier) recipient.follow(dossier)

View file

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

View file

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

View file

@ -128,10 +128,8 @@ feature 'Instructing a dossier:' do
click_on 'Personnes impliquées' click_on 'Personnes impliquées'
first('.select2-container', minimum: 1).click select_multi('email instructeur', instructeur_2.email)
find('li.select2-results__option[role="option"]', text: instructeur_2.email).click select_multi('email instructeur', instructeur_3.email)
first('.select2-container', minimum: 1).click
find('li.select2-results__option[role="option"]', text: instructeur_3.email).click
click_on 'Envoyer' 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(:instructeur) { create(:instructeur, email: 'yop@totomail.fr') }
let(:potential_recipients) { [instructeur] } 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") } it { is_expected.to have_css(".button.send") }
end end