From 805fbe12f0d2358b838b1d0b5f0ab915fd3f1a5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Gaya?= <sebastien.gaya@gmail.com> Date: Mon, 24 Oct 2022 14:12:24 +0200 Subject: [PATCH] orga from extranet --- app/models/university/organization.rb | 2 ++ app/models/university/person/experience.rb | 9 ++++----- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/app/models/university/organization.rb b/app/models/university/organization.rb index a7cd539fc..dc384b107 100644 --- a/app/models/university/organization.rb +++ b/app/models/university/organization.rb @@ -74,6 +74,8 @@ class University::Organization < ApplicationRecord } validates_presence_of :name + # Organization can be created from extranet with only their name. Be careful for future validators. + # There is an attribute accessor above : `created_from_extranet` enum kind: { company: 10, diff --git a/app/models/university/person/experience.rb b/app/models/university/person/experience.rb index 5b5ec61ad..9a841a781 100644 --- a/app/models/university/person/experience.rb +++ b/app/models/university/person/experience.rb @@ -50,11 +50,10 @@ class University::Person::Experience < ApplicationRecord def create_organization_if_needed if organization.nil? && organization_name.present? self.organization_name = self.organization_name.strip - self.organization = university.organizations - .where("name ILIKE ?", organization_name) - .or(university.organizations.where(siren: organization_name)).first_or_create do |organization| - organization.created_from_extranet = true - end + orga = university.organizations.find_by("name ILIKE ?", organization_name) + orga ||= university.organizations.find_by(siren: organization_name) + orga ||= university.organizations.create(name: organization_name, created_from_extranet: true) + self.organization = orga if orga.persisted? end end end -- GitLab