From 06958cbdd1b71a0f5c0f2f977c294642d4876042 Mon Sep 17 00:00:00 2001 From: kara Diaby Date: Mon, 21 Jun 2021 13:48:52 +0200 Subject: [PATCH 1/2] fix service and utf-8 encoding --- .../new_administrateur/groupe_instructeurs_controller.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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) From 87ce71f27df5b796c1ce9ca37567c823253fab27 Mon Sep 17 00:00:00 2001 From: kara Diaby Date: Mon, 21 Jun 2021 14:11:05 +0200 Subject: [PATCH 2/2] fix import service --- app/services/instructeurs_import_service.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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'] }