From c3f2b3590008c61d968b55ae4d577296706df8c9 Mon Sep 17 00:00:00 2001
From: Arnaud Levy <contact@arnaudlevy.com>
Date: Thu, 30 Jun 2022 21:43:19 +0200
Subject: [PATCH] better style load for preview

---
 app/models/communication/website.rb           |  44 +++-----
 .../communication/website/configs/base_url.rb |  26 +++--
 .../website/configs/permalinks.rb             |  26 +++--
 .../communication/website/with_style.rb       |  44 ++++++++
 .../20220630192226_add_style_to_website.rb    |   6 +
 db/schema.rb                                  | 105 +++++++++++-------
 test/fixtures/communication/websites.yml      |  26 +++--
 7 files changed, 169 insertions(+), 108 deletions(-)
 create mode 100644 app/models/communication/website/with_style.rb
 create mode 100644 db/migrate/20220630192226_add_style_to_website.rb

diff --git a/app/models/communication/website.rb b/app/models/communication/website.rb
index a52d485dd..f557c652f 100644
--- a/app/models/communication/website.rb
+++ b/app/models/communication/website.rb
@@ -2,18 +2,20 @@
 #
 # Table name: communication_websites
 #
-#  id            :uuid             not null, primary key
-#  about_type    :string           indexed => [about_id]
-#  access_token  :string
-#  git_endpoint  :string
-#  git_provider  :integer          default("github")
-#  name          :string
-#  repository    :string
-#  url           :string
-#  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]
+#  access_token     :string
+#  git_endpoint     :string
+#  git_provider     :integer          default("github")
+#  name             :string
+#  repository       :string
+#  style            :text
+#  style_updated_at :date
+#  url              :string
+#  created_at       :datetime         not null
+#  updated_at       :datetime         not null
+#  about_id         :uuid             indexed => [about_type]
+#  university_id    :uuid             not null, indexed
 #
 # Indexes
 #
@@ -35,6 +37,7 @@ class Communication::Website < ApplicationRecord
   include WithMenuItems
   include WithProgramCategories
   include WithSpecialPages
+  include WithStyle
 
   enum git_provider: {
     github: 0,
@@ -73,21 +76,4 @@ class Communication::Website < ApplicationRecord
     dependencies += about.git_dependencies(website) if about.present?
     dependencies
   end
-
-  def preview_style
-    return '' if url.blank?
-    html = Nokogiri::HTML open(url)
-    css_files = html.xpath '//link[@rel="stylesheet"]/@href'
-    css = ''
-    css_files.each do |css_url|
-      css_uri = URI.parse css_url
-      data = Net::HTTP.get css_uri
-      data = data.force_encoding("UTF-8")
-      data = data.gsub "src:url(../", "src:url(#{url}/assets/"
-      data = data.gsub ",url(../", ",url(#{url}/assets/"
-      css << data
-    end
-    css
-  end
-
 end
diff --git a/app/models/communication/website/configs/base_url.rb b/app/models/communication/website/configs/base_url.rb
index b44e75e04..f4eaa3745 100644
--- a/app/models/communication/website/configs/base_url.rb
+++ b/app/models/communication/website/configs/base_url.rb
@@ -2,18 +2,20 @@
 #
 # Table name: communication_websites
 #
-#  id            :uuid             not null, primary key
-#  about_type    :string           indexed => [about_id]
-#  access_token  :string
-#  git_endpoint  :string
-#  git_provider  :integer          default("github")
-#  name          :string
-#  repository    :string
-#  url           :string
-#  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]
+#  access_token     :string
+#  git_endpoint     :string
+#  git_provider     :integer          default("github")
+#  name             :string
+#  repository       :string
+#  style            :text
+#  style_updated_at :date
+#  url              :string
+#  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/configs/permalinks.rb b/app/models/communication/website/configs/permalinks.rb
index 2bd9c6bae..162ec5007 100644
--- a/app/models/communication/website/configs/permalinks.rb
+++ b/app/models/communication/website/configs/permalinks.rb
@@ -2,18 +2,20 @@
 #
 # Table name: communication_websites
 #
-#  id            :uuid             not null, primary key
-#  about_type    :string           indexed => [about_id]
-#  access_token  :string
-#  git_endpoint  :string
-#  git_provider  :integer          default("github")
-#  name          :string
-#  repository    :string
-#  url           :string
-#  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]
+#  access_token     :string
+#  git_endpoint     :string
+#  git_provider     :integer          default("github")
+#  name             :string
+#  repository       :string
+#  style            :text
+#  style_updated_at :date
+#  url              :string
+#  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/with_style.rb b/app/models/communication/website/with_style.rb
new file mode 100644
index 000000000..831c7c4c7
--- /dev/null
+++ b/app/models/communication/website/with_style.rb
@@ -0,0 +1,44 @@
+module Communication::Website::WithStyle
+    extend ActiveSupport::Concern
+
+  def preview_style
+    return '' if url.blank?
+    load_style if style_outdated? 
+    style
+  end
+
+  protected
+
+  def load_style
+    @style = ''
+    load_style_from url 
+    load_style_from "#{url}/fr" if @style.blank?
+    load_style_from "#{url}/en" if @style.blank?
+    substitute_fonts_urls_in_style!
+    self.update_columns style: @style, 
+                        style_updated_at: Date.today
+  end
+
+  def load_style_from(url)
+    data = URI.open url
+    html = Nokogiri::HTML data
+    css_files = html.xpath '//link[@rel="stylesheet"]/@href'
+    css_files.each do |css_url|
+      add_css_url_to_style css_url.to_s
+    end
+  end
+
+  def add_css_url_to_style(css_url)
+    @style << URI.open(css_url).read
+  end
+
+  def substitute_fonts_urls_in_style!
+    @style.gsub! "src:url(../", "src:url(#{url}/assets/"
+    @style.gsub ",url(../", ",url(#{url}/assets/"
+  end
+
+  def style_outdated?
+    style_updated_at.nil? || style_updated_at < Date.yesterday 
+  end
+    
+end
\ No newline at end of file
diff --git a/db/migrate/20220630192226_add_style_to_website.rb b/db/migrate/20220630192226_add_style_to_website.rb
new file mode 100644
index 000000000..90b779418
--- /dev/null
+++ b/db/migrate/20220630192226_add_style_to_website.rb
@@ -0,0 +1,6 @@
+class AddStyleToWebsite < ActiveRecord::Migration[6.1]
+  def change
+    add_column :communication_websites, :style, :text
+    add_column :communication_websites, :style_updated_at, :date
+  end
+end
diff --git a/db/schema.rb b/db/schema.rb
index a99cfcb7d..c33a161b9 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,14 +10,14 @@
 #
 # It's strongly recommended that you check this file into your version control system.
 
-ActiveRecord::Schema.define(version: 2022_06_09_085535) do
+ActiveRecord::Schema.define(version: 2022_06_30_192226) do
 
   # These are extensions that must be enabled in order to support this database
   enable_extension "pgcrypto"
   enable_extension "plpgsql"
   enable_extension "unaccent"
 
-  create_table "action_text_rich_texts", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "action_text_rich_texts", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.string "name", null: false
     t.text "body"
     t.string "record_type", null: false
@@ -27,7 +27,7 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.index ["record_type", "record_id", "name"], name: "index_action_text_rich_texts_uniqueness", unique: true
   end
 
-  create_table "active_storage_attachments", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "active_storage_attachments", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.string "name", null: false
     t.string "record_type", null: false
     t.uuid "record_id", null: false
@@ -37,7 +37,7 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.index ["record_type", "record_id", "name", "blob_id"], name: "index_active_storage_attachments_uniqueness", unique: true
   end
 
-  create_table "active_storage_blobs", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "active_storage_blobs", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.string "key", null: false
     t.string "filename", null: false
     t.string "content_type"
@@ -51,13 +51,13 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.index ["university_id"], name: "index_active_storage_blobs_on_university_id"
   end
 
-  create_table "active_storage_variant_records", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "active_storage_variant_records", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.uuid "blob_id", null: false
     t.string "variation_digest", null: false
     t.index ["blob_id", "variation_digest"], name: "index_active_storage_variant_records_uniqueness", unique: true
   end
 
-  create_table "administration_qualiopi_criterions", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "administration_qualiopi_criterions", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.integer "number"
     t.text "name"
     t.text "description"
@@ -65,7 +65,7 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.datetime "updated_at", precision: 6, null: false
   end
 
-  create_table "administration_qualiopi_indicators", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "administration_qualiopi_indicators", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.uuid "criterion_id", null: false
     t.integer "number"
     t.text "name"
@@ -79,7 +79,7 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.index ["criterion_id"], name: "index_administration_qualiopi_indicators_on_criterion_id"
   end
 
-  create_table "communication_blocks", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "communication_blocks", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.uuid "university_id", null: false
     t.string "about_type"
     t.uuid "about_id"
@@ -93,7 +93,7 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.index ["university_id"], name: "index_communication_blocks_on_university_id"
   end
 
-  create_table "communication_extranets", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "communication_extranets", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.string "name"
     t.uuid "university_id", null: false
     t.string "domain"
@@ -105,7 +105,7 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.index ["university_id"], name: "index_communication_extranets_on_university_id"
   end
 
-  create_table "communication_website_categories", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "communication_website_categories", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.uuid "university_id", null: false
     t.uuid "communication_website_id", null: false
     t.string "name"
@@ -135,7 +135,7 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.index ["communication_website_post_id", "communication_website_category_id"], name: "post_category"
   end
 
-  create_table "communication_website_git_files", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "communication_website_git_files", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.string "previous_path"
     t.string "about_type", null: false
     t.uuid "about_id", null: false
@@ -147,7 +147,7 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.index ["website_id"], name: "index_communication_website_git_files_on_website_id"
   end
 
-  create_table "communication_website_imported_authors", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "communication_website_imported_authors", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.uuid "university_id", null: false
     t.uuid "website_id", null: false
     t.uuid "author_id"
@@ -163,7 +163,7 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.index ["website_id"], name: "idx_communication_website_imported_auth_on_website"
   end
 
-  create_table "communication_website_imported_categories", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "communication_website_imported_categories", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.uuid "university_id", null: false
     t.uuid "website_id", null: false
     t.uuid "category_id"
@@ -181,7 +181,7 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.index ["website_id"], name: "idx_communication_website_imported_cat_on_website"
   end
 
-  create_table "communication_website_imported_media", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "communication_website_imported_media", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.string "identifier"
     t.jsonb "data"
     t.text "file_url"
@@ -196,7 +196,7 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.index ["website_id"], name: "index_communication_website_imported_media_on_website_id"
   end
 
-  create_table "communication_website_imported_pages", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "communication_website_imported_pages", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.uuid "university_id", null: false
     t.uuid "website_id", null: false
     t.uuid "page_id"
@@ -220,7 +220,7 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.index ["website_id"], name: "index_communication_website_imported_pages_on_website_id"
   end
 
-  create_table "communication_website_imported_posts", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "communication_website_imported_posts", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.uuid "university_id", null: false
     t.uuid "website_id", null: false
     t.uuid "post_id"
@@ -245,7 +245,7 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.index ["website_id"], name: "index_communication_website_imported_posts_on_website_id"
   end
 
-  create_table "communication_website_imported_websites", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "communication_website_imported_websites", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.uuid "university_id", null: false
     t.uuid "website_id", null: false
     t.integer "status", default: 0
@@ -255,7 +255,7 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.index ["website_id"], name: "index_communication_website_imported_websites_on_website_id"
   end
 
-  create_table "communication_website_menu_items", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "communication_website_menu_items", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.uuid "university_id", null: false
     t.uuid "website_id", null: false
     t.uuid "menu_id", null: false
@@ -275,7 +275,7 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.index ["website_id"], name: "index_communication_website_menu_items_on_website_id"
   end
 
-  create_table "communication_website_menus", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "communication_website_menus", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.uuid "university_id", null: false
     t.uuid "communication_website_id", null: false
     t.string "title"
@@ -287,7 +287,7 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.index ["university_id"], name: "index_communication_website_menus_on_university_id"
   end
 
-  create_table "communication_website_pages", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "communication_website_pages", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.uuid "university_id", null: false
     t.uuid "communication_website_id", null: false
     t.string "title"
@@ -315,7 +315,7 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.index ["university_id"], name: "index_communication_website_pages_on_university_id"
   end
 
-  create_table "communication_website_posts", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "communication_website_posts", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.uuid "university_id", null: false
     t.uuid "communication_website_id", null: false
     t.string "title"
@@ -339,7 +339,7 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.index ["university_id"], name: "index_communication_website_posts_on_university_id"
   end
 
-  create_table "communication_websites", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "communication_websites", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.uuid "university_id", null: false
     t.string "name"
     t.string "url"
@@ -351,6 +351,8 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.uuid "about_id"
     t.integer "git_provider", default: 0
     t.string "git_endpoint"
+    t.text "style"
+    t.date "style_updated_at"
     t.index ["about_type", "about_id"], name: "index_communication_websites_on_about"
     t.index ["university_id"], name: "index_communication_websites_on_university_id"
   end
@@ -383,7 +385,7 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.index ["priority", "run_at"], name: "delayed_jobs_priority"
   end
 
-  create_table "education_academic_years", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "education_academic_years", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.uuid "university_id", null: false
     t.integer "year"
     t.datetime "created_at", precision: 6, null: false
@@ -398,7 +400,7 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.index ["university_person_id", "education_academic_year_id"], name: "index_person_academic_year"
   end
 
-  create_table "education_cohorts", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "education_cohorts", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.uuid "university_id", null: false
     t.uuid "program_id", null: false
     t.uuid "academic_year_id", null: false
@@ -417,7 +419,7 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.index ["university_person_id", "education_cohort_id"], name: "index_person_cohort"
   end
 
-  create_table "education_diplomas", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "education_diplomas", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.string "name"
     t.string "short_name"
     t.integer "level", default: 0
@@ -430,7 +432,7 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.index ["university_id"], name: "index_education_diplomas_on_university_id"
   end
 
-  create_table "education_programs", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "education_programs", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.uuid "university_id", null: false
     t.string "name"
     t.integer "level"
@@ -489,7 +491,7 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.index ["education_program_id", "user_id"], name: "index_education_programs_users_on_program_id_and_user_id"
   end
 
-  create_table "education_schools", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "education_schools", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.uuid "university_id", null: false
     t.string "name"
     t.string "address"
@@ -504,7 +506,24 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.index ["university_id"], name: "index_education_schools_on_university_id"
   end
 
-  create_table "imports", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "external_organizations", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
+    t.string "title"
+    t.text "description"
+    t.string "address"
+    t.string "zipcode"
+    t.string "city"
+    t.string "country"
+    t.string "website"
+    t.string "phone"
+    t.string "mail"
+    t.boolean "active"
+    t.string "sirene"
+    t.integer "kind"
+    t.datetime "created_at", precision: 6, null: false
+    t.datetime "updated_at", precision: 6, null: false
+  end
+
+  create_table "imports", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.integer "number_of_lines"
     t.jsonb "processing_errors"
     t.integer "kind"
@@ -517,14 +536,14 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.index ["user_id"], name: "index_imports_on_user_id"
   end
 
-  create_table "languages", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "languages", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.string "name"
     t.string "iso_code"
     t.datetime "created_at", precision: 6, null: false
     t.datetime "updated_at", precision: 6, null: false
   end
 
-  create_table "research_journal_articles", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "research_journal_articles", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.string "title"
     t.datetime "published_at"
     t.uuid "university_id", null: false
@@ -554,7 +573,7 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.index ["researcher_id"], name: "index_research_journal_articles_researchers_on_researcher_id"
   end
 
-  create_table "research_journal_volumes", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "research_journal_volumes", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.uuid "university_id", null: false
     t.uuid "research_journal_id", null: false
     t.string "title"
@@ -573,7 +592,7 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.index ["university_id"], name: "index_research_journal_volumes_on_university_id"
   end
 
-  create_table "research_journals", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "research_journals", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.uuid "university_id", null: false
     t.string "title"
     t.text "description"
@@ -585,7 +604,7 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.index ["university_id"], name: "index_research_journals_on_university_id"
   end
 
-  create_table "research_laboratories", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "research_laboratories", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.uuid "university_id", null: false
     t.string "name"
     t.string "address"
@@ -597,7 +616,7 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.index ["university_id"], name: "index_research_laboratories_on_university_id"
   end
 
-  create_table "research_laboratory_axes", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "research_laboratory_axes", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.uuid "university_id", null: false
     t.uuid "research_laboratory_id", null: false
     t.string "name"
@@ -611,7 +630,7 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.index ["university_id"], name: "index_research_laboratory_axes_on_university_id"
   end
 
-  create_table "research_theses", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "research_theses", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.uuid "university_id", null: false
     t.uuid "research_laboratory_id", null: false
     t.uuid "author_id", null: false
@@ -629,7 +648,7 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.index ["university_id"], name: "index_research_theses_on_university_id"
   end
 
-  create_table "universities", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "universities", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.string "name"
     t.string "identifier"
     t.string "address"
@@ -653,7 +672,7 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.jsonb "sso_mapping"
   end
 
-  create_table "university_organizations", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "university_organizations", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.uuid "university_id", null: false
     t.string "name"
     t.string "long_name"
@@ -676,7 +695,7 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.index ["university_id"], name: "index_university_organizations_on_university_id"
   end
 
-  create_table "university_people", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "university_people", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.uuid "university_id", null: false
     t.uuid "user_id"
     t.string "last_name"
@@ -698,8 +717,8 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.string "linkedin"
     t.boolean "is_alumnus", default: false
     t.text "description_short"
-    t.boolean "is_author"
     t.string "name"
+    t.boolean "is_author"
     t.integer "gender"
     t.date "birthdate"
     t.string "phone_professional"
@@ -712,7 +731,7 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.index ["user_id"], name: "index_university_people_on_user_id"
   end
 
-  create_table "university_person_experiences", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "university_person_experiences", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.uuid "university_id", null: false
     t.uuid "person_id", null: false
     t.uuid "organization_id", null: false
@@ -726,7 +745,7 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.index ["university_id"], name: "index_university_person_experiences_on_university_id"
   end
 
-  create_table "university_person_involvements", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "university_person_involvements", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.uuid "university_id", null: false
     t.uuid "person_id", null: false
     t.integer "kind"
@@ -741,7 +760,7 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.index ["university_id"], name: "index_university_person_involvements_on_university_id"
   end
 
-  create_table "university_roles", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "university_roles", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.uuid "university_id", null: false
     t.string "target_type"
     t.uuid "target_id"
@@ -753,7 +772,7 @@ ActiveRecord::Schema.define(version: 2022_06_09_085535) do
     t.index ["university_id"], name: "index_university_roles_on_university_id"
   end
 
-  create_table "users", id: :uuid, default: -> { "public.gen_random_uuid()" }, force: :cascade do |t|
+  create_table "users", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t|
     t.uuid "university_id", null: false
     t.string "first_name"
     t.string "last_name"
diff --git a/test/fixtures/communication/websites.yml b/test/fixtures/communication/websites.yml
index aea91b89a..8eac768c7 100644
--- a/test/fixtures/communication/websites.yml
+++ b/test/fixtures/communication/websites.yml
@@ -2,18 +2,20 @@
 #
 # Table name: communication_websites
 #
-#  id            :uuid             not null, primary key
-#  about_type    :string           indexed => [about_id]
-#  access_token  :string
-#  git_endpoint  :string
-#  git_provider  :integer          default("github")
-#  name          :string
-#  repository    :string
-#  url           :string
-#  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]
+#  access_token     :string
+#  git_endpoint     :string
+#  git_provider     :integer          default("github")
+#  name             :string
+#  repository       :string
+#  style            :text
+#  style_updated_at :date
+#  url              :string
+#  created_at       :datetime         not null
+#  updated_at       :datetime         not null
+#  about_id         :uuid             indexed => [about_type]
+#  university_id    :uuid             not null, indexed
 #
 # Indexes
 #
-- 
GitLab