From 55115cca4f76f2d1d3f896b950d45c98dbd69c19 Mon Sep 17 00:00:00 2001
From: Arnaud Levy <contact@arnaudlevy.com>
Date: Mon, 2 Jan 2023 18:51:07 +0100
Subject: [PATCH] Fix #664

---
 .../university/organizations_controller.rb    |  2 +-
 app/models/university/organization.rb         | 41 ++++++++++---------
 .../university/organizations/_form.html.erb   |  7 +++-
 .../university/organizations/show.html.erb    | 22 +++++-----
 .../university/organizations/static.html.erb  |  2 +
 .../university/people/_main_infos.html.erb    |  2 +
 .../admin/university/people/static.html.erb   |  2 +-
 config/locales/university/en.yml              |  5 ++-
 config/locales/university/fr.yml              |  5 ++-
 ...iption_short_to_university_organization.rb |  5 +++
 db/schema.rb                                  |  3 +-
 test/fixtures/university/organizations.yml    | 41 ++++++++++---------
 test/models/university/organization_test.rb   | 41 ++++++++++---------
 13 files changed, 98 insertions(+), 80 deletions(-)
 create mode 100644 db/migrate/20230102173952_add_description_short_to_university_organization.rb

diff --git a/app/controllers/admin/university/organizations_controller.rb b/app/controllers/admin/university/organizations_controller.rb
index fccc299d6..c08bf99f4 100644
--- a/app/controllers/admin/university/organizations_controller.rb
+++ b/app/controllers/admin/university/organizations_controller.rb
@@ -69,7 +69,7 @@ class Admin::University::OrganizationsController < Admin::University::Applicatio
   def organization_params
     params.require(:university_organization)
           .permit(
-            :name, :long_name, :slug, :description, :active, :siren, :kind,
+            :name, :long_name, :slug, :description, :description_short, :active, :siren, :kind,
             :address, :zipcode, :city, :country, :text,
             :url, :phone, :email,
             :logo, :logo_delete, :logo_infos, 
diff --git a/app/models/university/organization.rb b/app/models/university/organization.rb
index 31c57551e..e3119d42a 100644
--- a/app/models/university/organization.rb
+++ b/app/models/university/organization.rb
@@ -2,26 +2,27 @@
 #
 # Table name: university_organizations
 #
-#  id            :uuid             not null, primary key
-#  active        :boolean          default(TRUE)
-#  address       :string
-#  city          :string
-#  country       :string
-#  description   :text
-#  email         :string
-#  kind          :integer          default("company")
-#  long_name     :string
-#  name          :string
-#  nic           :string
-#  phone         :string
-#  siren         :string
-#  slug          :string
-#  text          :text
-#  url           :string
-#  zipcode       :string
-#  created_at    :datetime         not null
-#  updated_at    :datetime         not null
-#  university_id :uuid             not null, indexed
+#  id                :uuid             not null, primary key
+#  active            :boolean          default(TRUE)
+#  address           :string
+#  city              :string
+#  country           :string
+#  description       :text
+#  description_short :text
+#  email             :string
+#  kind              :integer          default("company")
+#  long_name         :string
+#  name              :string
+#  nic               :string
+#  phone             :string
+#  siren             :string
+#  slug              :string
+#  text              :text
+#  url               :string
+#  zipcode           :string
+#  created_at        :datetime         not null
+#  updated_at        :datetime         not null
+#  university_id     :uuid             not null, indexed
 #
 # Indexes
 #
diff --git a/app/views/admin/university/organizations/_form.html.erb b/app/views/admin/university/organizations/_form.html.erb
index 7b6a761bc..8ed0a659f 100644
--- a/app/views/admin/university/organizations/_form.html.erb
+++ b/app/views/admin/university/organizations/_form.html.erb
@@ -10,7 +10,12 @@
         </div>
         <div class="card-body">
           <%= f.input :name %>
-          <%= f.input :text, as: :summernote %>
+          <%= f.input :description_short %>
+          <%= f.input :text,
+                      as: :summernote,
+                      input_html: {
+                        data: { 'summernote-config' => 'mini-list' }
+                      } %>
         </div>
       </div>
       <div class="card flex-fill w-100">
diff --git a/app/views/admin/university/organizations/show.html.erb b/app/views/admin/university/organizations/show.html.erb
index fd731d10c..d86da0cba 100644
--- a/app/views/admin/university/organizations/show.html.erb
+++ b/app/views/admin/university/organizations/show.html.erb
@@ -1,19 +1,17 @@
 <% content_for :title, @organization %>
 <div class="row">
   <div class="col-md-8">
-    <div class="card flex-fill w-100">
-      <div class="card-header">
-        <h5 class="card-title mb-0"><%= t('content') %></h5>
-      </div>
-      <div class="card-body">
-        <% [:name].each do |property| %>
-          <h3 class="h5"><%= University::Organization.human_attribute_name(property) %></h3>
-          <p><%= @organization.send property %></p>
-        <% end %>
-        <h3 class="h5"><%= University::Organization.human_attribute_name(:text) %></h3>
-        <%= @organization.text.to_s.html_safe %>
+    <%= render 'admin/application/chapo/show', about: @organization %>
+    <% if strip_tags(@organization.text.to_html).present? %>
+      <div class="card">
+        <div class="card-header">
+          <h5 class="card-title mb-0"><%= University::Organization.human_attribute_name(:text) %></h5>
+        </div>
+        <div class="card-body">
+          <%= @organization.text.to_s.html_safe %>
+        </div>
       </div>
-    </div>
+    <% end %>
     <div class="card flex-fill w-100">
       <div class="card-header">
         <h5 class="card-title mb-0">
diff --git a/app/views/admin/university/organizations/static.html.erb b/app/views/admin/university/organizations/static.html.erb
index 90b742e3e..2a42d0941 100644
--- a/app/views/admin/university/organizations/static.html.erb
+++ b/app/views/admin/university/organizations/static.html.erb
@@ -2,6 +2,8 @@
 title: >
   <%= @about.to_s %>
 <%= render 'admin/application/static/permalink' %>
+<%= render 'admin/application/chapo/static' %>
+<%= render 'admin/application/static/design', full_width: true, toc_offcanvas: true %>
 long_name: >
   <%= @about.long_name %>
 kind: "<%= @about.kind %>"
diff --git a/app/views/admin/university/people/_main_infos.html.erb b/app/views/admin/university/people/_main_infos.html.erb
index 7cf40ec7e..505285595 100644
--- a/app/views/admin/university/people/_main_infos.html.erb
+++ b/app/views/admin/university/people/_main_infos.html.erb
@@ -1,5 +1,7 @@
 <div class="row">
   <div class="col-md-8 col-xl-9">
+    <%= render 'admin/application/chapo/show', about: person %>
+
     <div class="card flex-fill w-100">
       <div class="card-header">
         <h2 class="card-title mb-0 h5"><%= t('content') %></h2>
diff --git a/app/views/admin/university/people/static.html.erb b/app/views/admin/university/people/static.html.erb
index 8b28e9fa4..c6b15cb13 100644
--- a/app/views/admin/university/people/static.html.erb
+++ b/app/views/admin/university/people/static.html.erb
@@ -2,6 +2,7 @@
 title: >
   <%= @about.to_s %>
 <%= render 'admin/application/static/permalink' %>
+<%= render 'admin/application/chapo/static' %>
 <%= render 'admin/application/static/design', full_width: true, toc_offcanvas: true %>
 first_name: >
   <%= @about.first_name %>
@@ -22,7 +23,6 @@ image: "<%= @about.best_picture.blob.id %>"
 <% end %>
 description: >
   <%= prepare_text_for_static @about.description %>
-<%= render 'admin/application/chapo/static' %>
 roles:
 <% if @about.author.for_website?(@website) %>
   - author
diff --git a/config/locales/university/en.yml b/config/locales/university/en.yml
index 9660c466a..52fd1f628 100644
--- a/config/locales/university/en.yml
+++ b/config/locales/university/en.yml
@@ -34,7 +34,7 @@ en:
         communication_website_posts: Posts
         contacts: Contact information
         country: Country
-        description: Meta Description
+        description: Meta description
         description_short: Lead text
         education_programs: Programs
         email: Email
@@ -83,7 +83,8 @@ en:
       university/organization:
         name: Name
         long_name: Long name
-        description: Meta Description
+        description: Meta description
+        description_short: Lead text
         text: Text
         contact: Contact information
         legal: Legal information
diff --git a/config/locales/university/fr.yml b/config/locales/university/fr.yml
index 50d45dc51..f97f306a5 100644
--- a/config/locales/university/fr.yml
+++ b/config/locales/university/fr.yml
@@ -34,7 +34,7 @@ fr:
         communication_website_posts: Actualités
         contacts: Coordonnées
         country: Pays
-        description: Meta Description
+        description: Meta description
         description_short: Chapô
         education_programs: Formations
         email: Email
@@ -83,7 +83,8 @@ fr:
       university/organization:
         name: Nom
         long_name: Nom complet
-        description: Meta Description
+        description: Meta description
+        description_short: Chapô
         text: Texte
         contact: Informations de contact
         legal: Informations légales
diff --git a/db/migrate/20230102173952_add_description_short_to_university_organization.rb b/db/migrate/20230102173952_add_description_short_to_university_organization.rb
new file mode 100644
index 000000000..6daddf342
--- /dev/null
+++ b/db/migrate/20230102173952_add_description_short_to_university_organization.rb
@@ -0,0 +1,5 @@
+class AddDescriptionShortToUniversityOrganization < ActiveRecord::Migration[7.0]
+  def change
+    add_column :university_organizations, :description_short, :text
+  end
+end
diff --git a/db/schema.rb b/db/schema.rb
index dd8b5176e..72f4fdcef 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: 2022_12_29_103238) do
+ActiveRecord::Schema[7.0].define(version: 2023_01_02_173952) do
   # These are extensions that must be enabled in order to support this database
   enable_extension "pgcrypto"
   enable_extension "plpgsql"
@@ -713,6 +713,7 @@ ActiveRecord::Schema[7.0].define(version: 2022_12_29_103238) do
     t.string "slug"
     t.text "text"
     t.string "nic"
+    t.text "description_short"
     t.index ["university_id"], name: "index_university_organizations_on_university_id"
   end
 
diff --git a/test/fixtures/university/organizations.yml b/test/fixtures/university/organizations.yml
index e69202206..664399044 100644
--- a/test/fixtures/university/organizations.yml
+++ b/test/fixtures/university/organizations.yml
@@ -2,26 +2,27 @@
 #
 # Table name: university_organizations
 #
-#  id            :uuid             not null, primary key
-#  active        :boolean          default(TRUE)
-#  address       :string
-#  city          :string
-#  country       :string
-#  description   :text
-#  email         :string
-#  kind          :integer          default("company")
-#  long_name     :string
-#  name          :string
-#  nic           :string
-#  phone         :string
-#  siren         :string
-#  slug          :string
-#  text          :text
-#  url           :string
-#  zipcode       :string
-#  created_at    :datetime         not null
-#  updated_at    :datetime         not null
-#  university_id :uuid             not null, indexed
+#  id                :uuid             not null, primary key
+#  active            :boolean          default(TRUE)
+#  address           :string
+#  city              :string
+#  country           :string
+#  description       :text
+#  description_short :text
+#  email             :string
+#  kind              :integer          default("company")
+#  long_name         :string
+#  name              :string
+#  nic               :string
+#  phone             :string
+#  siren             :string
+#  slug              :string
+#  text              :text
+#  url               :string
+#  zipcode           :string
+#  created_at        :datetime         not null
+#  updated_at        :datetime         not null
+#  university_id     :uuid             not null, indexed
 #
 # Indexes
 #
diff --git a/test/models/university/organization_test.rb b/test/models/university/organization_test.rb
index a57d401f9..bb3781c18 100644
--- a/test/models/university/organization_test.rb
+++ b/test/models/university/organization_test.rb
@@ -2,26 +2,27 @@
 #
 # Table name: university_organizations
 #
-#  id            :uuid             not null, primary key
-#  active        :boolean          default(TRUE)
-#  address       :string
-#  city          :string
-#  country       :string
-#  description   :text
-#  email         :string
-#  kind          :integer          default("company")
-#  long_name     :string
-#  name          :string
-#  nic           :string
-#  phone         :string
-#  siren         :string
-#  slug          :string
-#  text          :text
-#  url           :string
-#  zipcode       :string
-#  created_at    :datetime         not null
-#  updated_at    :datetime         not null
-#  university_id :uuid             not null, indexed
+#  id                :uuid             not null, primary key
+#  active            :boolean          default(TRUE)
+#  address           :string
+#  city              :string
+#  country           :string
+#  description       :text
+#  description_short :text
+#  email             :string
+#  kind              :integer          default("company")
+#  long_name         :string
+#  name              :string
+#  nic               :string
+#  phone             :string
+#  siren             :string
+#  slug              :string
+#  text              :text
+#  url               :string
+#  zipcode           :string
+#  created_at        :datetime         not null
+#  updated_at        :datetime         not null
+#  university_id     :uuid             not null, indexed
 #
 # Indexes
 #
-- 
GitLab