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