From a5d2a7f7dc31abe72edfb2c00a99b4f76a459f7c Mon Sep 17 00:00:00 2001
From: Arnaud Levy <contact@arnaudlevy.com>
Date: Wed, 5 Jul 2023 12:44:44 +0200
Subject: [PATCH] Fix #1117

---
 .../university/organizations_controller.rb    | 12 ++++
 app/models/communication/extranet.rb          | 57 +++++++++----------
 app/models/communication/website.rb           | 39 ++++++-------
 .../communication/website/configs/base.rb     | 39 ++++++-------
 .../website/configs/default_languages.rb      | 39 ++++++-------
 .../website/configs/default_permalinks.rb     | 39 ++++++-------
 .../website/configs/development_config.rb     | 39 ++++++-------
 .../website/configs/production_config.rb      | 39 ++++++-------
 app/models/research/hal/publication.rb        |  5 ++
 app/models/university/organization.rb         |  7 +++
 .../university/organizations/show.html.erb    | 40 +++++++++----
 config/routes/admin/university.rb             |  1 +
 ...di18n_infos_to_university_organizations.rb | 16 ++++++
 db/schema.rb                                  | 13 ++++-
 test/fixtures/communication/extranets.yml     | 57 +++++++++----------
 test/fixtures/communication/websites.yml      | 39 ++++++-------
 test/fixtures/research/hal/publications.yml   |  5 ++
 test/fixtures/university/organizations.yml    |  6 ++
 test/models/university/organization_test.rb   |  6 ++
 19 files changed, 296 insertions(+), 202 deletions(-)
 create mode 100644 db/migrate/20230705103400_addi18n_infos_to_university_organizations.rb

diff --git a/app/controllers/admin/university/organizations_controller.rb b/app/controllers/admin/university/organizations_controller.rb
index b37568637..49fbfea4a 100644
--- a/app/controllers/admin/university/organizations_controller.rb
+++ b/app/controllers/admin/university/organizations_controller.rb
@@ -34,6 +34,18 @@ class Admin::University::OrganizationsController < Admin::University::Applicatio
     breadcrumb
   end
 
+  def in_language
+    language = Language.find_by!(iso_code: params[:lang])
+    translation = @organization.find_or_translate!(language)
+    if translation.newly_translated
+      # There's an attribute accessor named "newly_translated" that we set to true
+      # when we just created the translation. We use it to redirect to the form instead of the show.
+      redirect_to [:edit, :admin, translation.becomes(translation.class.base_class)]
+    else
+      redirect_to [:admin, translation.becomes(translation.class.base_class)]
+    end
+  end
+
   def static
     @about = @organization
     @website = @organization.websites&.first
diff --git a/app/models/communication/extranet.rb b/app/models/communication/extranet.rb
index 1a4615b3d..0dc316363 100644
--- a/app/models/communication/extranet.rb
+++ b/app/models/communication/extranet.rb
@@ -2,35 +2,34 @@
 #
 # Table name: communication_extranets
 #
-#  id                             :uuid             not null, primary key
-#  about_type                     :string           indexed => [about_id]
-#  allow_experiences_modification :boolean          default(TRUE)
-#  color                          :string
-#  cookies_policy                 :text
-#  css                            :text
-#  feature_alumni                 :boolean          default(FALSE)
-#  feature_contacts               :boolean          default(FALSE)
-#  feature_jobs                   :boolean          default(FALSE)
-#  feature_library                :boolean          default(FALSE)
-#  feature_posts                  :boolean          default(FALSE)
-#  has_sso                        :boolean          default(FALSE)
-#  home_sentence                  :text
-#  host                           :string
-#  name                           :string
-#  privacy_policy                 :text
-#  registration_contact           :string
-#  sass                           :text
-#  sso_button_label               :string
-#  sso_cert                       :text
-#  sso_mapping                    :jsonb
-#  sso_name_identifier_format     :string
-#  sso_provider                   :integer          default("saml")
-#  sso_target_url                 :string
-#  terms                          :text
-#  created_at                     :datetime         not null
-#  updated_at                     :datetime         not null
-#  about_id                       :uuid             indexed => [about_type]
-#  university_id                  :uuid             not null, indexed
+#  id                         :uuid             not null, primary key
+#  about_type                 :string           indexed => [about_id]
+#  color                      :string
+#  cookies_policy             :text
+#  css                        :text
+#  feature_alumni             :boolean          default(FALSE)
+#  feature_contacts           :boolean          default(FALSE)
+#  feature_jobs               :boolean          default(FALSE)
+#  feature_library            :boolean          default(FALSE)
+#  feature_posts              :boolean          default(FALSE)
+#  has_sso                    :boolean          default(FALSE)
+#  home_sentence              :text
+#  host                       :string
+#  name                       :string
+#  privacy_policy             :text
+#  registration_contact       :string
+#  sass                       :text
+#  sso_button_label           :string
+#  sso_cert                   :text
+#  sso_mapping                :jsonb
+#  sso_name_identifier_format :string
+#  sso_provider               :integer          default("saml")
+#  sso_target_url             :string
+#  terms                      :text
+#  created_at                 :datetime         not null
+#  updated_at                 :datetime         not null
+#  about_id                   :uuid             indexed => [about_type]
+#  university_id              :uuid             not null, indexed
 #
 # Indexes
 #
diff --git a/app/models/communication/website.rb b/app/models/communication/website.rb
index be1dea930..5762b6d22 100644
--- a/app/models/communication/website.rb
+++ b/app/models/communication/website.rb
@@ -2,25 +2,26 @@
 #
 # Table name: communication_websites
 #
-#  id                  :uuid             not null, primary key
-#  about_type          :string           indexed => [about_id]
-#  access_token        :string
-#  git_branch          :string
-#  git_endpoint        :string
-#  git_provider        :integer          default("github")
-#  in_production       :boolean          default(FALSE)
-#  name                :string
-#  plausible_url       :string
-#  repository          :string
-#  style               :text
-#  style_updated_at    :date
-#  theme_version       :string           default("NA")
-#  url                 :string
-#  created_at          :datetime         not null
-#  updated_at          :datetime         not null
-#  about_id            :uuid             indexed => [about_type]
-#  default_language_id :uuid             not null, indexed
-#  university_id       :uuid             not null, indexed
+#  id                      :uuid             not null, primary key
+#  about_type              :string           indexed => [about_id]
+#  access_token            :string
+#  deployment_status_badge :text
+#  git_branch              :string
+#  git_endpoint            :string
+#  git_provider            :integer          default("github")
+#  in_production           :boolean          default(FALSE)
+#  name                    :string
+#  plausible_url           :string
+#  repository              :string
+#  style                   :text
+#  style_updated_at        :date
+#  theme_version           :string           default("NA")
+#  url                     :string
+#  created_at              :datetime         not null
+#  updated_at              :datetime         not null
+#  about_id                :uuid             indexed => [about_type]
+#  default_language_id     :uuid             not null, indexed
+#  university_id           :uuid             not null, indexed
 #
 # Indexes
 #
diff --git a/app/models/communication/website/configs/base.rb b/app/models/communication/website/configs/base.rb
index 2cc59f410..b14fd096b 100644
--- a/app/models/communication/website/configs/base.rb
+++ b/app/models/communication/website/configs/base.rb
@@ -2,25 +2,26 @@
 #
 # Table name: communication_websites
 #
-#  id                  :uuid             not null, primary key
-#  about_type          :string           indexed => [about_id]
-#  access_token        :string
-#  git_branch          :string
-#  git_endpoint        :string
-#  git_provider        :integer          default("github")
-#  in_production       :boolean          default(FALSE)
-#  name                :string
-#  plausible_url       :string
-#  repository          :string
-#  style               :text
-#  style_updated_at    :date
-#  theme_version       :string           default("NA")
-#  url                 :string
-#  created_at          :datetime         not null
-#  updated_at          :datetime         not null
-#  about_id            :uuid             indexed => [about_type]
-#  default_language_id :uuid             not null, indexed
-#  university_id       :uuid             not null, indexed
+#  id                      :uuid             not null, primary key
+#  about_type              :string           indexed => [about_id]
+#  access_token            :string
+#  deployment_status_badge :text
+#  git_branch              :string
+#  git_endpoint            :string
+#  git_provider            :integer          default("github")
+#  in_production           :boolean          default(FALSE)
+#  name                    :string
+#  plausible_url           :string
+#  repository              :string
+#  style                   :text
+#  style_updated_at        :date
+#  theme_version           :string           default("NA")
+#  url                     :string
+#  created_at              :datetime         not null
+#  updated_at              :datetime         not null
+#  about_id                :uuid             indexed => [about_type]
+#  default_language_id     :uuid             not null, indexed
+#  university_id           :uuid             not null, indexed
 #
 # Indexes
 #
diff --git a/app/models/communication/website/configs/default_languages.rb b/app/models/communication/website/configs/default_languages.rb
index 53bac0a2b..14a78fdd4 100644
--- a/app/models/communication/website/configs/default_languages.rb
+++ b/app/models/communication/website/configs/default_languages.rb
@@ -2,25 +2,26 @@
 #
 # Table name: communication_websites
 #
-#  id                  :uuid             not null, primary key
-#  about_type          :string           indexed => [about_id]
-#  access_token        :string
-#  git_branch          :string
-#  git_endpoint        :string
-#  git_provider        :integer          default("github")
-#  in_production       :boolean          default(FALSE)
-#  name                :string
-#  plausible_url       :string
-#  repository          :string
-#  style               :text
-#  style_updated_at    :date
-#  theme_version       :string           default("NA")
-#  url                 :string
-#  created_at          :datetime         not null
-#  updated_at          :datetime         not null
-#  about_id            :uuid             indexed => [about_type]
-#  default_language_id :uuid             not null, indexed
-#  university_id       :uuid             not null, indexed
+#  id                      :uuid             not null, primary key
+#  about_type              :string           indexed => [about_id]
+#  access_token            :string
+#  deployment_status_badge :text
+#  git_branch              :string
+#  git_endpoint            :string
+#  git_provider            :integer          default("github")
+#  in_production           :boolean          default(FALSE)
+#  name                    :string
+#  plausible_url           :string
+#  repository              :string
+#  style                   :text
+#  style_updated_at        :date
+#  theme_version           :string           default("NA")
+#  url                     :string
+#  created_at              :datetime         not null
+#  updated_at              :datetime         not null
+#  about_id                :uuid             indexed => [about_type]
+#  default_language_id     :uuid             not null, indexed
+#  university_id           :uuid             not null, indexed
 #
 # Indexes
 #
diff --git a/app/models/communication/website/configs/default_permalinks.rb b/app/models/communication/website/configs/default_permalinks.rb
index c0feec9c1..9251792cd 100644
--- a/app/models/communication/website/configs/default_permalinks.rb
+++ b/app/models/communication/website/configs/default_permalinks.rb
@@ -2,25 +2,26 @@
 #
 # Table name: communication_websites
 #
-#  id                  :uuid             not null, primary key
-#  about_type          :string           indexed => [about_id]
-#  access_token        :string
-#  git_branch          :string
-#  git_endpoint        :string
-#  git_provider        :integer          default("github")
-#  in_production       :boolean          default(FALSE)
-#  name                :string
-#  plausible_url       :string
-#  repository          :string
-#  style               :text
-#  style_updated_at    :date
-#  theme_version       :string           default("NA")
-#  url                 :string
-#  created_at          :datetime         not null
-#  updated_at          :datetime         not null
-#  about_id            :uuid             indexed => [about_type]
-#  default_language_id :uuid             not null, indexed
-#  university_id       :uuid             not null, indexed
+#  id                      :uuid             not null, primary key
+#  about_type              :string           indexed => [about_id]
+#  access_token            :string
+#  deployment_status_badge :text
+#  git_branch              :string
+#  git_endpoint            :string
+#  git_provider            :integer          default("github")
+#  in_production           :boolean          default(FALSE)
+#  name                    :string
+#  plausible_url           :string
+#  repository              :string
+#  style                   :text
+#  style_updated_at        :date
+#  theme_version           :string           default("NA")
+#  url                     :string
+#  created_at              :datetime         not null
+#  updated_at              :datetime         not null
+#  about_id                :uuid             indexed => [about_type]
+#  default_language_id     :uuid             not null, indexed
+#  university_id           :uuid             not null, indexed
 #
 # Indexes
 #
diff --git a/app/models/communication/website/configs/development_config.rb b/app/models/communication/website/configs/development_config.rb
index e6c253f00..b6f29a235 100644
--- a/app/models/communication/website/configs/development_config.rb
+++ b/app/models/communication/website/configs/development_config.rb
@@ -2,25 +2,26 @@
 #
 # Table name: communication_websites
 #
-#  id                  :uuid             not null, primary key
-#  about_type          :string           indexed => [about_id]
-#  access_token        :string
-#  git_branch          :string
-#  git_endpoint        :string
-#  git_provider        :integer          default("github")
-#  in_production       :boolean          default(FALSE)
-#  name                :string
-#  plausible_url       :string
-#  repository          :string
-#  style               :text
-#  style_updated_at    :date
-#  theme_version       :string           default("NA")
-#  url                 :string
-#  created_at          :datetime         not null
-#  updated_at          :datetime         not null
-#  about_id            :uuid             indexed => [about_type]
-#  default_language_id :uuid             not null, indexed
-#  university_id       :uuid             not null, indexed
+#  id                      :uuid             not null, primary key
+#  about_type              :string           indexed => [about_id]
+#  access_token            :string
+#  deployment_status_badge :text
+#  git_branch              :string
+#  git_endpoint            :string
+#  git_provider            :integer          default("github")
+#  in_production           :boolean          default(FALSE)
+#  name                    :string
+#  plausible_url           :string
+#  repository              :string
+#  style                   :text
+#  style_updated_at        :date
+#  theme_version           :string           default("NA")
+#  url                     :string
+#  created_at              :datetime         not null
+#  updated_at              :datetime         not null
+#  about_id                :uuid             indexed => [about_type]
+#  default_language_id     :uuid             not null, indexed
+#  university_id           :uuid             not null, indexed
 #
 # Indexes
 #
diff --git a/app/models/communication/website/configs/production_config.rb b/app/models/communication/website/configs/production_config.rb
index 7a5ca3cd6..0761e6972 100644
--- a/app/models/communication/website/configs/production_config.rb
+++ b/app/models/communication/website/configs/production_config.rb
@@ -2,25 +2,26 @@
 #
 # Table name: communication_websites
 #
-#  id                  :uuid             not null, primary key
-#  about_type          :string           indexed => [about_id]
-#  access_token        :string
-#  git_branch          :string
-#  git_endpoint        :string
-#  git_provider        :integer          default("github")
-#  in_production       :boolean          default(FALSE)
-#  name                :string
-#  plausible_url       :string
-#  repository          :string
-#  style               :text
-#  style_updated_at    :date
-#  theme_version       :string           default("NA")
-#  url                 :string
-#  created_at          :datetime         not null
-#  updated_at          :datetime         not null
-#  about_id            :uuid             indexed => [about_type]
-#  default_language_id :uuid             not null, indexed
-#  university_id       :uuid             not null, indexed
+#  id                      :uuid             not null, primary key
+#  about_type              :string           indexed => [about_id]
+#  access_token            :string
+#  deployment_status_badge :text
+#  git_branch              :string
+#  git_endpoint            :string
+#  git_provider            :integer          default("github")
+#  in_production           :boolean          default(FALSE)
+#  name                    :string
+#  plausible_url           :string
+#  repository              :string
+#  style                   :text
+#  style_updated_at        :date
+#  theme_version           :string           default("NA")
+#  url                     :string
+#  created_at              :datetime         not null
+#  updated_at              :datetime         not null
+#  about_id                :uuid             indexed => [about_type]
+#  default_language_id     :uuid             not null, indexed
+#  university_id           :uuid             not null, indexed
 #
 # Indexes
 #
diff --git a/app/models/research/hal/publication.rb b/app/models/research/hal/publication.rb
index 9682b57fb..b51772181 100644
--- a/app/models/research/hal/publication.rb
+++ b/app/models/research/hal/publication.rb
@@ -3,10 +3,15 @@
 # Table name: research_hal_publications
 #
 #  id               :uuid             not null, primary key
+#  abstract         :text
+#  citation_full    :text
 #  data             :jsonb
 #  docid            :string           indexed
 #  doi              :string
+#  file             :text
 #  hal_url          :string
+#  journal_title    :string
+#  open_access      :boolean
 #  publication_date :date
 #  ref              :string
 #  slug             :string
diff --git a/app/models/university/organization.rb b/app/models/university/organization.rb
index 0ff6fddf3..1083a7669 100644
--- a/app/models/university/organization.rb
+++ b/app/models/university/organization.rb
@@ -29,15 +29,21 @@
 #  zipcode            :string
 #  created_at         :datetime         not null
 #  updated_at         :datetime         not null
+#  language_id        :uuid             indexed
+#  original_id        :uuid             indexed
 #  university_id      :uuid             not null, indexed
 #
 # Indexes
 #
+#  index_university_organizations_on_language_id    (language_id)
+#  index_university_organizations_on_original_id    (original_id)
 #  index_university_organizations_on_university_id  (university_id)
 #
 # Foreign Keys
 #
 #  fk_rails_35fcd198e0  (university_id => universities.id)
+#  fk_rails_3a9208fa29  (language_id => languages.id)
+#  fk_rails_5af11ea0cc  (original_id => university_organizations.id)
 #
 class University::Organization < ApplicationRecord
   include AsIndirectObject
@@ -49,6 +55,7 @@ class University::Organization < ApplicationRecord
   include WithGitFiles
   include WithPermalink
   include WithSlug
+  include WithTranslations
   include WithUniversity
 
   attr_accessor :created_from_extranet
diff --git a/app/views/admin/university/organizations/show.html.erb b/app/views/admin/university/organizations/show.html.erb
index 3b96834af..032e2489d 100644
--- a/app/views/admin/university/organizations/show.html.erb
+++ b/app/views/admin/university/organizations/show.html.erb
@@ -18,20 +18,26 @@
           ].each do |property| %>
           <% value = @organization.send property %>
           <% next if value.blank? %>
-          <div class="col-xxl-6">
+          <div class="col-md-4">
             <%= osuny_label University::Organization.human_attribute_name(property) %>
-            <p><%= value %></p>
+          </div>
+          <div class="col-md-8">
+              <p><%= value %></p>
           </div>
         <% end %>
         <% if @organization.country.present? %>
-          <div class="col-xxl-6">
+          <div class="col-md-4">
             <%= osuny_label University::Organization.human_attribute_name('country') %>
+          </div>
+          <div class="col-md-8">
             <p><%= @organization.country_name %></p>
           </div>
         <% end %>
         <% if @organization.geolocated? %>
-          <div class="col-xxl-6">
+          <div class="col-md-4">
             <%= osuny_label University::Organization.human_attribute_name('geolocation') %>
+          </div>
+          <div class="col-md-8">
             <p><%= @organization.geo_point.to_s %></p>
           </div>
         <% end %>
@@ -40,9 +46,11 @@
     <%= osuny_panel University::Organization.human_attribute_name('digital') do %>
       <div class="row pure__row--small">
         <% unless @organization.url.blank? %>
-          <div class="col-xxl-6">
+          <div class="col-md-4">
             <%= osuny_label University::Organization.human_attribute_name('url') %>
-            <p><%= link_to  @organization.url,
+          </div>
+          <div class="col-md-8">
+              <p><%= link_to  @organization.url,
                             @organization.url,
                             target: :_blank %></p>
           </div>
@@ -56,8 +64,10 @@
             ].each do |property| %>
           <% value = @organization.send property %>
           <% next if value.blank? %>
-          <div class="col-xxl-6">
+          <div class="col-md-4">
             <%= osuny_label University::Organization.human_attribute_name(property) %>
+          </div>
+          <div class="col-md-8">
             <p><%= value %></p>
           </div>
         <% end %>
@@ -66,21 +76,29 @@
 
     <%= osuny_panel University::Organization.human_attribute_name('legal') do %>
       <div class="row pure__row--small">
-        <div class="col-xxl-6">
+        <div class="col-md-4">
           <%= osuny_label University::Organization.human_attribute_name('long_name') %>
+        </div>
+        <div class="col-md-8">
           <p><%= @organization.long_name %></p>
         </div>
-        <div class="col-xxl-6">
+        <div class="col-md-4">
           <%= osuny_label University::Organization.human_attribute_name('kind') %>
+        </div>
+        <div class="col-md-8">
           <p><%= @organization.kind_i18n %></p>
         </div>
-        <div class="col-xxl-6">
+        <div class="col-md-4">
           <%= osuny_label University::Organization.human_attribute_name('siren') %>
+        </div>
+        <div class="col-md-8">
           <p><%= @organization.siren %></p>
         </div>
       </div>
     <% end %>
 
+    <%= osuny_separator %>
+
     <%= render 'admin/communication/blocks/content/editor', about: @organization %>
   </div>
 
@@ -92,6 +110,8 @@
       <p><%= t @organization.active %></>
     <% end %>
 
+    <%= render 'admin/application/i18n/widget', about: @organization %>
+
     <% if @organization.categories.any? %>
       <%= osuny_panel University::Organization.human_attribute_name('categories') do %>
         <ul class="list-unstyled">
diff --git a/config/routes/admin/university.rb b/config/routes/admin/university.rb
index af658daef..10d8c533a 100644
--- a/config/routes/admin/university.rb
+++ b/config/routes/admin/university.rb
@@ -38,6 +38,7 @@ namespace :university do
     end
     member do
       get :static
+      get "/translations/:lang" => "organizations#in_language", as: :show_in_language
     end
   end
   root to: 'dashboard#index'
diff --git a/db/migrate/20230705103400_addi18n_infos_to_university_organizations.rb b/db/migrate/20230705103400_addi18n_infos_to_university_organizations.rb
new file mode 100644
index 000000000..7e0d5a565
--- /dev/null
+++ b/db/migrate/20230705103400_addi18n_infos_to_university_organizations.rb
@@ -0,0 +1,16 @@
+class Addi18nInfosToUniversityOrganizations < ActiveRecord::Migration[7.0]
+  def up
+    add_reference :university_organizations, :language, foreign_key: true, type: :uuid
+    add_reference :university_organizations, :original, foreign_key: {to_table: :university_organizations}, type: :uuid
+
+    University::Organization.reset_column_information
+    University.all.find_each do |university|
+      university.organizations.update_all(language_id: university.default_language_id)
+    end
+  end
+
+  def down
+    remove_reference :university_organizations, :language
+    remove_reference :university_organizations, :original
+  end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 548674c3a..6366c92c8 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
 #
 # It's strongly recommended that you check this file into your version control system.
 
-ActiveRecord::Schema[7.0].define(version: 2023_07_04_113222) do
+ActiveRecord::Schema[7.0].define(version: 2023_07_05_103400) do
   # These are extensions that must be enabled in order to support this database
   enable_extension "pgcrypto"
   enable_extension "plpgsql"
@@ -738,6 +738,11 @@ ActiveRecord::Schema[7.0].define(version: 2023_07_04_113222) do
     t.date "publication_date"
     t.string "doi"
     t.string "slug"
+    t.text "citation_full"
+    t.boolean "open_access"
+    t.text "abstract"
+    t.string "journal_title"
+    t.text "file"
     t.index ["docid"], name: "index_research_hal_publications_on_docid"
   end
 
@@ -938,6 +943,10 @@ ActiveRecord::Schema[7.0].define(version: 2023_07_04_113222) do
     t.float "longitude"
     t.string "address_name"
     t.string "address_additional"
+    t.uuid "language_id"
+    t.uuid "original_id"
+    t.index ["language_id"], name: "index_university_organizations_on_language_id"
+    t.index ["original_id"], name: "index_university_organizations_on_original_id"
     t.index ["university_id"], name: "index_university_organizations_on_university_id"
   end
 
@@ -1205,7 +1214,9 @@ ActiveRecord::Schema[7.0].define(version: 2023_07_04_113222) do
   add_foreign_key "research_theses", "university_people", column: "director_id"
   add_foreign_key "universities", "languages", column: "default_language_id"
   add_foreign_key "university_organization_categories", "universities"
+  add_foreign_key "university_organizations", "languages"
   add_foreign_key "university_organizations", "universities"
+  add_foreign_key "university_organizations", "university_organizations", column: "original_id"
   add_foreign_key "university_organizations_categories", "university_organization_categories", column: "category_id"
   add_foreign_key "university_organizations_categories", "university_organizations", column: "organization_id"
   add_foreign_key "university_people", "languages"
diff --git a/test/fixtures/communication/extranets.yml b/test/fixtures/communication/extranets.yml
index 5b00f559b..c4a725645 100644
--- a/test/fixtures/communication/extranets.yml
+++ b/test/fixtures/communication/extranets.yml
@@ -2,35 +2,34 @@
 #
 # Table name: communication_extranets
 #
-#  id                             :uuid             not null, primary key
-#  about_type                     :string           indexed => [about_id]
-#  allow_experiences_modification :boolean          default(TRUE)
-#  color                          :string
-#  cookies_policy                 :text
-#  css                            :text
-#  feature_alumni                 :boolean          default(FALSE)
-#  feature_contacts               :boolean          default(FALSE)
-#  feature_jobs                   :boolean          default(FALSE)
-#  feature_library                :boolean          default(FALSE)
-#  feature_posts                  :boolean          default(FALSE)
-#  has_sso                        :boolean          default(FALSE)
-#  home_sentence                  :text
-#  host                           :string
-#  name                           :string
-#  privacy_policy                 :text
-#  registration_contact           :string
-#  sass                           :text
-#  sso_button_label               :string
-#  sso_cert                       :text
-#  sso_mapping                    :jsonb
-#  sso_name_identifier_format     :string
-#  sso_provider                   :integer          default("saml")
-#  sso_target_url                 :string
-#  terms                          :text
-#  created_at                     :datetime         not null
-#  updated_at                     :datetime         not null
-#  about_id                       :uuid             indexed => [about_type]
-#  university_id                  :uuid             not null, indexed
+#  id                         :uuid             not null, primary key
+#  about_type                 :string           indexed => [about_id]
+#  color                      :string
+#  cookies_policy             :text
+#  css                        :text
+#  feature_alumni             :boolean          default(FALSE)
+#  feature_contacts           :boolean          default(FALSE)
+#  feature_jobs               :boolean          default(FALSE)
+#  feature_library            :boolean          default(FALSE)
+#  feature_posts              :boolean          default(FALSE)
+#  has_sso                    :boolean          default(FALSE)
+#  home_sentence              :text
+#  host                       :string
+#  name                       :string
+#  privacy_policy             :text
+#  registration_contact       :string
+#  sass                       :text
+#  sso_button_label           :string
+#  sso_cert                   :text
+#  sso_mapping                :jsonb
+#  sso_name_identifier_format :string
+#  sso_provider               :integer          default("saml")
+#  sso_target_url             :string
+#  terms                      :text
+#  created_at                 :datetime         not null
+#  updated_at                 :datetime         not null
+#  about_id                   :uuid             indexed => [about_type]
+#  university_id              :uuid             not null, indexed
 #
 # Indexes
 #
diff --git a/test/fixtures/communication/websites.yml b/test/fixtures/communication/websites.yml
index 8f739d38a..1a331e189 100644
--- a/test/fixtures/communication/websites.yml
+++ b/test/fixtures/communication/websites.yml
@@ -2,25 +2,26 @@
 #
 # Table name: communication_websites
 #
-#  id                  :uuid             not null, primary key
-#  about_type          :string           indexed => [about_id]
-#  access_token        :string
-#  git_branch          :string
-#  git_endpoint        :string
-#  git_provider        :integer          default("github")
-#  in_production       :boolean          default(FALSE)
-#  name                :string
-#  plausible_url       :string
-#  repository          :string
-#  style               :text
-#  style_updated_at    :date
-#  theme_version       :string           default("NA")
-#  url                 :string
-#  created_at          :datetime         not null
-#  updated_at          :datetime         not null
-#  about_id            :uuid             indexed => [about_type]
-#  default_language_id :uuid             not null, indexed
-#  university_id       :uuid             not null, indexed
+#  id                      :uuid             not null, primary key
+#  about_type              :string           indexed => [about_id]
+#  access_token            :string
+#  deployment_status_badge :text
+#  git_branch              :string
+#  git_endpoint            :string
+#  git_provider            :integer          default("github")
+#  in_production           :boolean          default(FALSE)
+#  name                    :string
+#  plausible_url           :string
+#  repository              :string
+#  style                   :text
+#  style_updated_at        :date
+#  theme_version           :string           default("NA")
+#  url                     :string
+#  created_at              :datetime         not null
+#  updated_at              :datetime         not null
+#  about_id                :uuid             indexed => [about_type]
+#  default_language_id     :uuid             not null, indexed
+#  university_id           :uuid             not null, indexed
 #
 # Indexes
 #
diff --git a/test/fixtures/research/hal/publications.yml b/test/fixtures/research/hal/publications.yml
index 8580abd33..e94b3c2ea 100644
--- a/test/fixtures/research/hal/publications.yml
+++ b/test/fixtures/research/hal/publications.yml
@@ -3,10 +3,15 @@
 # Table name: research_hal_publications
 #
 #  id               :uuid             not null, primary key
+#  abstract         :text
+#  citation_full    :text
 #  data             :jsonb
 #  docid            :string           indexed
 #  doi              :string
+#  file             :text
 #  hal_url          :string
+#  journal_title    :string
+#  open_access      :boolean
 #  publication_date :date
 #  ref              :string
 #  slug             :string
diff --git a/test/fixtures/university/organizations.yml b/test/fixtures/university/organizations.yml
index cb758b3b3..c65f25bbf 100644
--- a/test/fixtures/university/organizations.yml
+++ b/test/fixtures/university/organizations.yml
@@ -29,15 +29,21 @@
 #  zipcode            :string
 #  created_at         :datetime         not null
 #  updated_at         :datetime         not null
+#  language_id        :uuid             indexed
+#  original_id        :uuid             indexed
 #  university_id      :uuid             not null, indexed
 #
 # Indexes
 #
+#  index_university_organizations_on_language_id    (language_id)
+#  index_university_organizations_on_original_id    (original_id)
 #  index_university_organizations_on_university_id  (university_id)
 #
 # Foreign Keys
 #
 #  fk_rails_35fcd198e0  (university_id => universities.id)
+#  fk_rails_3a9208fa29  (language_id => languages.id)
+#  fk_rails_5af11ea0cc  (original_id => university_organizations.id)
 #
 
 default_organization:
diff --git a/test/models/university/organization_test.rb b/test/models/university/organization_test.rb
index b358e842f..c3facdee2 100644
--- a/test/models/university/organization_test.rb
+++ b/test/models/university/organization_test.rb
@@ -29,15 +29,21 @@
 #  zipcode            :string
 #  created_at         :datetime         not null
 #  updated_at         :datetime         not null
+#  language_id        :uuid             indexed
+#  original_id        :uuid             indexed
 #  university_id      :uuid             not null, indexed
 #
 # Indexes
 #
+#  index_university_organizations_on_language_id    (language_id)
+#  index_university_organizations_on_original_id    (original_id)
 #  index_university_organizations_on_university_id  (university_id)
 #
 # Foreign Keys
 #
 #  fk_rails_35fcd198e0  (university_id => universities.id)
+#  fk_rails_3a9208fa29  (language_id => languages.id)
+#  fk_rails_5af11ea0cc  (original_id => university_organizations.id)
 #
 require "test_helper"
 
-- 
GitLab