From bea9c0caac9e65c020158e0c720c2cb468731f22 Mon Sep 17 00:00:00 2001
From: Arnaud Levy <contact@arnaudlevy.com>
Date: Thu, 17 Mar 2022 09:25:25 +0100
Subject: [PATCH] import

---
 .../university/person/alumnus/import.rb       | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

diff --git a/app/models/university/person/alumnus/import.rb b/app/models/university/person/alumnus/import.rb
index 6b31c5dfe..935d62499 100644
--- a/app/models/university/person/alumnus/import.rb
+++ b/app/models/university/person/alumnus/import.rb
@@ -36,23 +36,34 @@ class University::Person::Alumnus::Import < ApplicationRecord
       year = university.academic_years
                        .where(year: row['year'])
                        .first_or_create
+      first_name = clean_encoding row['first_name']
+      last_name = clean_encoding row['last_name']
+      url = clean_encoding row['url']
       if row['mail'].blank?
         person = university.people
-                           .where(first_name: row['first_name'], last_name: row['last_name'])
+                           .where(first_name: first_name, last_name: last_name)
                            .first_or_create
       else
         person = university.people
                            .where(email: row['mail'])
                            .first_or_create
-        person.first_name = row['first_name']
-        person.last_name = row['last_name']
+        person.first_name = first_name
+        person.last_name = last_name
       end
       # TODO all fields
       person.is_alumnus = true
-      person.url = row['url']
+      person.url = url
       person.slug = person.to_s.parameterize
       person.save
       # byebug
     end
   end
+
+  def clean_encoding(value)
+    return if value.nil?
+    if value.encoding != 'UTF-8'
+      value = value.force_encoding 'UTF-8'
+    end
+    value
+  end
 end
-- 
GitLab