add typo detection and suggestion for admin adding instructeurs

This commit is contained in:
Lisa Durand 2024-07-03 16:53:23 +02:00
parent c8906d20b8
commit f163c04da6
No known key found for this signature in database
GPG key ID: 0DF91F2CA1E8B816
2 changed files with 18 additions and 6 deletions

View file

@ -1,6 +1,7 @@
module Administrateurs
class GroupeInstructeursController < AdministrateurController
include ActiveSupport::NumberHelper
include EmailSanitizableConcern
include Logic
include UninterlacePngConcern
include GroupeInstructeursSignatureConcern
@ -219,18 +220,20 @@ module Administrateurs
def add_instructeur
emails = params['emails'].presence || [].to_json
emails = JSON.parse(emails).map { EmailSanitizableConcern::EmailSanitizer.sanitize(_1) }
emails = check_if_typo(emails)
errors = Array.wrap(generate_emails_suggestions_message(@maybe_typos))
instructeurs, invalid_emails = groupe_instructeur.add_instructeurs(emails:)
if invalid_emails.present?
flash[:alert] = t('.wrong_address',
errors += [t('.wrong_address',
count: invalid_emails.size,
emails: invalid_emails.join(', '))
emails: invalid_emails.join(', '))]
end
if instructeurs.present?
flash[:notice] = if procedure.routing_enabled?
flash.now[:notice] = if procedure.routing_enabled?
t('.assignment',
count: instructeurs.size,
emails: instructeurs.map(&:email).join(', '),
@ -250,10 +253,18 @@ module Administrateurs
end
end
flash.now[:alert] = errors.join(". ") if !errors.empty?
@procedure = procedure
@instructeurs = paginated_instructeurs
@available_instructeur_emails = available_instructeur_emails
if procedure.routing_enabled?
redirect_to admin_procedure_groupe_instructeur_path(procedure, groupe_instructeur)
@groupe_instructeur = groupe_instructeur
render :show
else
redirect_to admin_procedure_groupe_instructeurs_path(procedure)
@groupes_instructeurs = paginated_groupe_instructeurs
render :index
end
end

View file

@ -1,5 +1,6 @@
.card
= render Procedure::InvitationWithTypoComponent.new(maybe_typos: @maybe_typos, url: add_instructeur_admin_procedure_groupe_instructeur_path(@procedure, groupe_instructeur.id), title: "Avant d'ajouter l'email, veuillez confirmer" )
.card-title Affectation des instructeurs
= form_for :instructeur, url: { action: :add_instructeur, id: groupe_instructeur.id }, html: { class: 'form' } do |f|
.instructeur-wrapper