refactor(combo): use new multicombobox

This commit is contained in:
Paul Chavard 2024-05-15 23:16:55 +02:00
parent 9f9243499c
commit c17351e50a
No known key found for this signature in database
15 changed files with 51 additions and 78 deletions

View file

@ -9,8 +9,8 @@ module Administrateurs
end
def create
emails = params['emails'].presence || [].to_json
emails = JSON.parse(emails).map { EmailSanitizer.sanitize(_1) }
emails = params['emails'].presence || []
emails = emails.map { EmailSanitizer.sanitize(_1) }
@maybe_typos, no_suggestions = emails
.map { |email| [email, EmailChecker.check(email:)[:suggestions]&.first] }
.partition { _1[1].present? }

View file

@ -218,8 +218,8 @@ module Administrateurs
end
def add_instructeur
emails = params['emails'].presence || [].to_json
emails = JSON.parse(emails).map { EmailSanitizableConcern::EmailSanitizer.sanitize(_1) }
emails = params[:emails].presence || []
emails = emails.map { EmailSanitizableConcern::EmailSanitizer.sanitize(_1) }
instructeurs, invalid_emails = groupe_instructeur.add_instructeurs(emails:)

View file

@ -527,11 +527,10 @@ module Administrateurs
:accuse_lecture,
:api_entreprise_token,
:duree_conservation_dossiers_dans_ds,
{ zone_ids: [] },
:lien_dpo,
:opendata,
:procedure_expires_when_termine_enabled,
:tags
{ zone_ids: [], tags: [] }
]
editable_params << :piece_justificative_multiple if @procedure && !@procedure.piece_justificative_multiple?
@ -544,9 +543,6 @@ module Administrateurs
if permited_params[:auto_archive_on].present?
permited_params[:auto_archive_on] = Date.parse(permited_params[:auto_archive_on]) + 1.day
end
if permited_params[:tags].present?
permited_params[:tags] = JSON.parse(permited_params[:tags])
end
permited_params
end

View file

@ -4,7 +4,7 @@ module CreateAvisConcern
private
def create_avis_from_params(dossier, instructeur_or_expert, confidentiel = false)
if create_avis_params[:emails].empty?
if create_avis_params[:emails].blank?
avis = Avis.new(create_avis_params)
errors = avis.errors
errors.add(:emails, :blank)
@ -19,8 +19,8 @@ module CreateAvisConcern
# the :emails parameter is a 1-element array.
# Hence the call to first
# https://github.com/rails/rails/issues/17225
expert_emails = create_avis_params[:emails].presence || [].to_json
expert_emails = JSON.parse(expert_emails).map(&:strip).map(&:downcase)
expert_emails = create_avis_params[:emails].presence || []
expert_emails = expert_emails.map(&:strip).map(&:downcase)
allowed_dossiers = [dossier]
if create_avis_params[:invite_linked_dossiers].present?
@ -84,6 +84,6 @@ module CreateAvisConcern
end
def create_avis_params
params.require(:avis).permit(:introduction_file, :introduction, :confidentiel, :invite_linked_dossiers, :emails, :question_label)
params.require(:avis).permit(:introduction_file, :introduction, :confidentiel, :invite_linked_dossiers, :question_label, emails: [])
end
end

View file

@ -6,8 +6,8 @@ module Gestionnaires
end
def create
emails = [params.require(:administrateur)[:email]].to_json
emails = JSON.parse(emails).map { EmailSanitizableConcern::EmailSanitizer.sanitize(_1) }
emails = [params.require(:administrateur)[:email]].compact
emails = emails.map { EmailSanitizableConcern::EmailSanitizer.sanitize(_1) }
administrateurs_to_add, valid_emails, invalid_emails = Administrateur.find_all_by_identifier_with_emails(emails:)
not_found_emails = valid_emails - administrateurs_to_add.map(&:email)

View file

@ -6,8 +6,8 @@ module Gestionnaires
end
def create
emails = [params.require(:gestionnaire)[:email]].to_json
emails = JSON.parse(emails).map { EmailSanitizableConcern::EmailSanitizer.sanitize(_1) }
emails = [params.require(:gestionnaire)[:email]].compact
emails = emails.map { EmailSanitizableConcern::EmailSanitizer.sanitize(_1) }
gestionnaires_to_add, valid_emails, invalid_emails = Gestionnaire.find_all_by_identifier_with_emails(emails:)
not_found_emails = valid_emails - gestionnaires_to_add.map(&:email)

View file

@ -86,9 +86,9 @@ module Instructeurs
end
def send_to_instructeurs
recipients = params['recipients'].presence || [].to_json
recipients = params['recipients'].presence || []
# instructeurs are scoped by groupe_instructeur to avoid enumeration
recipients = dossier.groupe_instructeur.instructeurs.where(id: JSON.parse(recipients))
recipients = dossier.groupe_instructeur.instructeurs.where(id: recipients)
if recipients.present?
recipients.each do |recipient|

View file

@ -2,8 +2,8 @@ module Manager
class GroupeGestionnairesController < Manager::ApplicationController
def add_gestionnaire
groupe_gestionnaire = GroupeGestionnaire.find(params[:id])
emails = [params['emails'].presence || ''].to_json
emails = JSON.parse(emails).map { EmailSanitizableConcern::EmailSanitizer.sanitize(_1) }
emails = [params['emails']].compact
emails = emails.map { EmailSanitizableConcern::EmailSanitizer.sanitize(_1) }
gestionnaires_to_add, valid_emails, invalid_emails = Gestionnaire.find_all_by_identifier_with_emails(emails:)
not_found_emails = valid_emails - gestionnaires_to_add.map(&:email)

View file

@ -111,8 +111,7 @@ module Manager
end
def add_tags
tags_h = { tags: JSON.parse(tags_params[:tags]) }
if procedure.update(tags_h)
if procedure.update(tags: tags_params[:tags])
flash.notice = "Le modèle est mis à jour."
else
flash.alert = procedure.errors.full_messages.join(', ')
@ -181,7 +180,7 @@ module Manager
end
def tags_params
params.require(:procedure).permit(:tags)
params.require(:procedure).permit(tags: [])
end
def template_params