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