add typo detection and suggestion for instructeur adding instructeur
This commit is contained in:
parent
f163c04da6
commit
67be27e18f
2 changed files with 21 additions and 6 deletions
|
@ -1,5 +1,6 @@
|
||||||
module Instructeurs
|
module Instructeurs
|
||||||
class GroupeInstructeursController < InstructeurController
|
class GroupeInstructeursController < InstructeurController
|
||||||
|
include EmailSanitizableConcern
|
||||||
include UninterlacePngConcern
|
include UninterlacePngConcern
|
||||||
include GroupeInstructeursSignatureConcern
|
include GroupeInstructeursSignatureConcern
|
||||||
|
|
||||||
|
@ -19,16 +20,29 @@ module Instructeurs
|
||||||
end
|
end
|
||||||
|
|
||||||
def add_instructeur
|
def add_instructeur
|
||||||
instructeur = Instructeur.by_email(instructeur_email) ||
|
email = instructeur_email.present? ? [instructeur_email].to_json : [].to_json
|
||||||
create_instructeur(instructeur_email)
|
email = check_if_typo(email)&.first
|
||||||
|
errors = Array.wrap(generate_emails_suggestions_message(@maybe_typos))
|
||||||
|
|
||||||
|
if !errors.empty?
|
||||||
|
flash.now[:alert] = errors.join(". ") if !errors.empty?
|
||||||
|
|
||||||
|
@procedure = procedure
|
||||||
|
@groupe_instructeur = groupe_instructeur
|
||||||
|
@instructeurs = paginated_instructeurs
|
||||||
|
return render :show
|
||||||
|
end
|
||||||
|
|
||||||
|
instructeur = Instructeur.by_email(email) ||
|
||||||
|
create_instructeur(email)
|
||||||
|
|
||||||
if instructeur.blank?
|
if instructeur.blank?
|
||||||
flash[:alert] = "L’adresse email « #{instructeur_email} » n’est pas valide."
|
flash[:alert] = "L’adresse email « #{email} » n’est pas valide."
|
||||||
elsif groupe_instructeur.instructeurs.include?(instructeur)
|
elsif groupe_instructeur.instructeurs.include?(instructeur)
|
||||||
flash[:alert] = "L’instructeur « #{instructeur_email} » est déjà dans le groupe."
|
flash[:alert] = "L’instructeur « #{email} » est déjà dans le groupe."
|
||||||
else
|
else
|
||||||
groupe_instructeur.add(instructeur)
|
groupe_instructeur.add(instructeur)
|
||||||
flash[:notice] = "L’instructeur « #{instructeur_email} » a été affecté au groupe."
|
flash[:notice] = "L’instructeur « #{email} » a été affecté au groupe."
|
||||||
|
|
||||||
if instructeur.user.email_verified_at
|
if instructeur.user.email_verified_at
|
||||||
GroupeInstructeurMailer
|
GroupeInstructeurMailer
|
||||||
|
@ -100,7 +114,7 @@ module Instructeurs
|
||||||
end
|
end
|
||||||
|
|
||||||
def instructeur_email
|
def instructeur_email
|
||||||
params[:instructeur][:email].strip.downcase
|
params.dig('instructeur', 'email')&.strip&.downcase
|
||||||
end
|
end
|
||||||
|
|
||||||
def instructeur_id
|
def instructeur_id
|
||||||
|
|
|
@ -21,6 +21,7 @@
|
||||||
Démarche « #{@procedure.libelle} »
|
Démarche « #{@procedure.libelle} »
|
||||||
|
|
||||||
.card.fr-mt-2w
|
.card.fr-mt-2w
|
||||||
|
= render Procedure::InvitationWithTypoComponent.new(maybe_typos: @maybe_typos, url: add_instructeur_instructeur_groupe_path(@procedure, @groupe_instructeur.id), title: "Avant d'ajouter l'email, veuillez confirmer" )
|
||||||
%h2.fr-h3 Gestion des instructeurs
|
%h2.fr-h3 Gestion des instructeurs
|
||||||
= form_for(Instructeur.new(user: User.new), url: { action: :add_instructeur }, html: { class: 'form' }) do |f|
|
= form_for(Instructeur.new(user: User.new), url: { action: :add_instructeur }, html: { class: 'form' }) do |f|
|
||||||
%h3.fr-h4 Affecter un nouvel instructeur
|
%h3.fr-h4 Affecter un nouvel instructeur
|
||||||
|
|
Loading…
Reference in a new issue