diff --git a/app/controllers/new_administrateur/groupe_instructeurs_controller.rb b/app/controllers/new_administrateur/groupe_instructeurs_controller.rb index 25f83e4e8..d0564e134 100644 --- a/app/controllers/new_administrateur/groupe_instructeurs_controller.rb +++ b/app/controllers/new_administrateur/groupe_instructeurs_controller.rb @@ -170,7 +170,7 @@ module NewAdministrateur redirect_to admin_procedure_groupe_instructeurs_path(procedure) else - groupes_emails = CSV.new(group_csv_file.read, headers: true, header_converters: :downcase) + groupes_emails = CSV.new(group_csv_file.read.force_encoding("UTF-8"), headers: true, header_converters: :downcase) .map { |r| r.to_h.slice('groupe', 'email') } add_instructeurs_and_get_errors = InstructeursImportService.import(procedure, groupes_emails) diff --git a/app/services/instructeurs_import_service.rb b/app/services/instructeurs_import_service.rb index c8db3ed3b..fad1e5922 100644 --- a/app/services/instructeurs_import_service.rb +++ b/app/services/instructeurs_import_service.rb @@ -6,7 +6,7 @@ class InstructeursImportService admins = procedure.administrateurs groupes_emails, error_groupe_emails = groupes_emails - .map { |groupe_email| { "groupe" => groupe_email["groupe"].strip, "email" => groupe_email["email"].gsub(/[[:space:]]/, '').downcase } } + .map { |groupe_email| { "groupe" => groupe_email["groupe"].present? ? groupe_email["groupe"].strip : nil, "email" => groupe_email["email"].present? ? groupe_email["email"].gsub(/[[:space:]]/, '').downcase : nil } } .partition { |groupe_email| Devise.email_regexp.match?(groupe_email['email']) && groupe_email['groupe'].present? } errors = error_groupe_emails.map { |group_email| group_email['email'] }