From 7b28f470bc0f3be7b2daa6c72696abe3ece42063 Mon Sep 17 00:00:00 2001 From: Arnaud Levy <contact@arnaudlevy.com> Date: Tue, 10 May 2022 07:38:44 +0200 Subject: [PATCH] universities, static needs fixing --- .../imports_controller.rb | 8 +++--- .../alumni}/imports_controller.rb | 10 ++++--- .../{person => people}/alumni_controller.rb | 4 +-- app/models/communication/website/git_file.rb | 6 ++++- .../admin/education/cohorts/show.html.erb | 2 +- .../imports/index.html.erb | 7 +++-- .../imports/new.html.erb | 3 ++- .../imports/show.html.erb | 0 .../university/organizations/index.html.erb | 2 +- .../university/organizations/show.html.erb | 26 ++++++++++++++----- .../administrators/static.html.erb | 0 .../{person => people}/alumni/_list.html.erb | 2 +- .../alumni}/imports/index.html.erb | 7 +++-- .../alumni}/imports/new.html.erb | 3 ++- .../alumni}/imports/show.html.erb | 0 .../{person => people}/alumni/index.html.erb | 6 ++--- .../{person => people}/alumni/show.html.erb | 0 .../authors/static.html.erb | 0 .../researchers/static.html.erb | 0 .../teachers/static.html.erb | 0 config/admin_navigation.rb | 2 +- config/routes/admin/university.rb | 11 ++++---- 22 files changed, 65 insertions(+), 34 deletions(-) rename app/controllers/admin/university/{organization => organizations}/imports_controller.rb (72%) rename app/controllers/admin/university/{person/alumnus => people/alumni}/imports_controller.rb (68%) rename app/controllers/admin/university/{person => people}/alumni_controller.rb (89%) rename app/views/admin/university/{organization => organizations}/imports/index.html.erb (63%) rename app/views/admin/university/{organization => organizations}/imports/new.html.erb (94%) rename app/views/admin/university/{organization => organizations}/imports/show.html.erb (100%) rename app/views/admin/university/{person => people}/administrators/static.html.erb (100%) rename app/views/admin/university/{person => people}/alumni/_list.html.erb (93%) rename app/views/admin/university/{person/alumnus => people/alumni}/imports/index.html.erb (57%) rename app/views/admin/university/{person/alumnus => people/alumni}/imports/new.html.erb (96%) rename app/views/admin/university/{person/alumnus => people/alumni}/imports/show.html.erb (100%) rename app/views/admin/university/{person => people}/alumni/index.html.erb (69%) rename app/views/admin/university/{person => people}/alumni/show.html.erb (100%) rename app/views/admin/university/{person => people}/authors/static.html.erb (100%) rename app/views/admin/university/{person => people}/researchers/static.html.erb (100%) rename app/views/admin/university/{person => people}/teachers/static.html.erb (100%) diff --git a/app/controllers/admin/university/organization/imports_controller.rb b/app/controllers/admin/university/organizations/imports_controller.rb similarity index 72% rename from app/controllers/admin/university/organization/imports_controller.rb rename to app/controllers/admin/university/organizations/imports_controller.rb index 493f55a44..608d208ac 100644 --- a/app/controllers/admin/university/organization/imports_controller.rb +++ b/app/controllers/admin/university/organizations/imports_controller.rb @@ -1,4 +1,4 @@ -class Admin::University::Organization::ImportsController < Admin::University::ApplicationController +class Admin::University::Organizations::ImportsController < Admin::University::ApplicationController load_and_authorize_resource class: University::Organization::Import, through: :current_university, through_association: :organization_imports @@ -32,8 +32,10 @@ class Admin::University::Organization::ImportsController < Admin::University::Ap add_breadcrumb University::Organization.model_name.human(count: 2), admin_university_organizations_path add_breadcrumb University::Organization::Import.model_name.human(count: 2), - admin_university_organization_imports_path - breadcrumb_for @import + admin_university_organizations_imports_path + return unless @import + @import.persisted? ? add_breadcrumb(@import, admin_university_organizations_import_path(@import)) + : add_breadcrumb(t('create')) end def import_params diff --git a/app/controllers/admin/university/person/alumnus/imports_controller.rb b/app/controllers/admin/university/people/alumni/imports_controller.rb similarity index 68% rename from app/controllers/admin/university/person/alumnus/imports_controller.rb rename to app/controllers/admin/university/people/alumni/imports_controller.rb index b8f7b52a1..66b44d749 100644 --- a/app/controllers/admin/university/person/alumnus/imports_controller.rb +++ b/app/controllers/admin/university/people/alumni/imports_controller.rb @@ -1,4 +1,4 @@ -class Admin::University::Person::Alumnus::ImportsController < Admin::University::ApplicationController +class Admin::University::People::Alumni::ImportsController < Admin::University::ApplicationController load_and_authorize_resource class: University::Person::Alumnus::Import, through: :current_university, through_association: :person_alumnus_imports @@ -30,10 +30,12 @@ class Admin::University::Person::Alumnus::ImportsController < Admin::University: def breadcrumb super add_breadcrumb University::Person::Alumnus.model_name.human(count: 2), - admin_university_person_alumni_path + admin_university_people_alumni_path add_breadcrumb University::Person::Alumnus::Import.model_name.human(count: 2), - admin_university_person_alumnus_imports_path - breadcrumb_for @import + admin_university_people_alumni_imports_path + return unless @import + @import.persisted? ? add_breadcrumb(@import, admin_university_people_alumni_import_path(@import)) + : add_breadcrumb(t('create')) end def import_params diff --git a/app/controllers/admin/university/person/alumni_controller.rb b/app/controllers/admin/university/people/alumni_controller.rb similarity index 89% rename from app/controllers/admin/university/person/alumni_controller.rb rename to app/controllers/admin/university/people/alumni_controller.rb index 80931367b..2fd91f16d 100644 --- a/app/controllers/admin/university/person/alumni_controller.rb +++ b/app/controllers/admin/university/people/alumni_controller.rb @@ -1,4 +1,4 @@ -class Admin::University::Person::AlumniController < Admin::University::ApplicationController +class Admin::University::People::AlumniController < Admin::University::ApplicationController load_and_authorize_resource class: University::Person::Alumnus, through: :current_university, through_association: :people @@ -38,7 +38,7 @@ class Admin::University::Person::AlumniController < Admin::University::Applicati def breadcrumb super add_breadcrumb University::Person::Alumnus.model_name.human(count: 2), - admin_university_person_alumni_path + admin_university_people_alumni_path breadcrumb_for @alumnus end diff --git a/app/models/communication/website/git_file.rb b/app/models/communication/website/git_file.rb index 7e3dae0e4..aaee596bc 100644 --- a/app/models/communication/website/git_file.rb +++ b/app/models/communication/website/git_file.rb @@ -63,7 +63,7 @@ class Communication::Website::GitFile < ApplicationRecord def to_s @to_s ||= ApplicationController.render( - template: "admin/#{about.class.name.underscore.pluralize}/static", + template: template_static, layout: false, assigns: { about: about, @@ -74,6 +74,10 @@ class Communication::Website::GitFile < ApplicationRecord protected + def template_static + "admin/#{about.class.name.underscore.pluralize}/static" + end + # Real sha on the git repo def git_sha_for(path) website.git_repository.git_sha path diff --git a/app/views/admin/education/cohorts/show.html.erb b/app/views/admin/education/cohorts/show.html.erb index 1a73e37ce..f6e8735f6 100644 --- a/app/views/admin/education/cohorts/show.html.erb +++ b/app/views/admin/education/cohorts/show.html.erb @@ -12,4 +12,4 @@ <h2><%= University::Person::Alumnus.model_name.human(count: 2) %></h2> -<%= render 'admin/university/person/alumni/list', alumni: @cohort.people.ordered %> +<%= render 'admin/university/people/alumni/list', alumni: @cohort.people.ordered %> diff --git a/app/views/admin/university/organization/imports/index.html.erb b/app/views/admin/university/organizations/imports/index.html.erb similarity index 63% rename from app/views/admin/university/organization/imports/index.html.erb rename to app/views/admin/university/organizations/imports/index.html.erb index f06991e44..898580ffa 100644 --- a/app/views/admin/university/organization/imports/index.html.erb +++ b/app/views/admin/university/organizations/imports/index.html.erb @@ -10,7 +10,7 @@ <tbody> <% @imports.each do |import| %> <tr> - <td><%= link_to import, [:admin, import] %></td> + <td><%= link_to import, admin_university_organizations_import_path(import) %></td> <td><%= import.lines %></td> </tr> <% end %> @@ -18,5 +18,8 @@ </table> <% content_for :action_bar_right do %> - <%= create_link University::Organization::Import %> + <%= link_to_if can?(:create, University::Organization::Import), + t('create'), + new_admin_university_organizations_import_path, + class: button_classes %> <% end %> diff --git a/app/views/admin/university/organization/imports/new.html.erb b/app/views/admin/university/organizations/imports/new.html.erb similarity index 94% rename from app/views/admin/university/organization/imports/new.html.erb rename to app/views/admin/university/organizations/imports/new.html.erb index 18e5d067f..579fe470d 100644 --- a/app/views/admin/university/organization/imports/new.html.erb +++ b/app/views/admin/university/organizations/imports/new.html.erb @@ -10,7 +10,8 @@ Les caractères doivent être encodés en UTF-8.<br> Les valeurs possibles pour kind sont : company, non_profit, government. </p> - <%= simple_form_for [:admin, @import] do |f| %> + <%= simple_form_for @import, + url: admin_university_organizations_imports_path do |f| %> <%= f.error_notification %> <%= f.error_notification message: f.object.errors[:base].to_sentence if f.object.errors[:base].present? %> diff --git a/app/views/admin/university/organization/imports/show.html.erb b/app/views/admin/university/organizations/imports/show.html.erb similarity index 100% rename from app/views/admin/university/organization/imports/show.html.erb rename to app/views/admin/university/organizations/imports/show.html.erb diff --git a/app/views/admin/university/organizations/index.html.erb b/app/views/admin/university/organizations/index.html.erb index 6fc56c6f7..ad22a22de 100644 --- a/app/views/admin/university/organizations/index.html.erb +++ b/app/views/admin/university/organizations/index.html.erb @@ -7,7 +7,7 @@ <% content_for :action_bar_left do %> <%= link_to t('import'), - new_admin_university_organization_import_path, + new_admin_university_organizations_import_path, class: button_classes if can? :manage, University::Organization::Import %> <% end %> diff --git a/app/views/admin/university/organizations/show.html.erb b/app/views/admin/university/organizations/show.html.erb index 7b3fbe417..4cc66d50f 100644 --- a/app/views/admin/university/organizations/show.html.erb +++ b/app/views/admin/university/organizations/show.html.erb @@ -24,16 +24,30 @@ <div class="row"> <div class="col-md-6"> <% [:address, :zipcode, :city, :country].each do |property| %> - <h3 class="h5"><%= University::Organization.human_attribute_name(property) %></h3> - <p><%= @organization.send property %></p> + <% value = @organization.send property %> + <% next if value.blank? %> + <h3 class="h5"> + <%= University::Organization.human_attribute_name(property) %> + </h3> + <p><%= value %></p> <% end %> </div> <div class="col-md-6"> - <h3 class="h5"><%= University::Organization.human_attribute_name(:url) %></h3> - <p><%= link_to @organization.url, @organization.url, target: :_blank %></p> + <% unless @organization.url.blank? %> + <h3 class="h5"> + <%= University::Organization.human_attribute_name(:url) %> + </h3> + <p><%= link_to @organization.url, + @organization.url, + target: :_blank %></p> + <% end %> <% [:phone, :email].each do |property| %> - <h3 class="h5"><%= University::Organization.human_attribute_name(property) %></h3> - <p><%= @organization.send property %></p> + <% value = @organization.send property %> + <% next if value.blank? %> + <h3 class="h5"> + <%= University::Organization.human_attribute_name(property) %> + </h3> + <p><%= value %></p> <% end %> </div> </div> diff --git a/app/views/admin/university/person/administrators/static.html.erb b/app/views/admin/university/people/administrators/static.html.erb similarity index 100% rename from app/views/admin/university/person/administrators/static.html.erb rename to app/views/admin/university/people/administrators/static.html.erb diff --git a/app/views/admin/university/person/alumni/_list.html.erb b/app/views/admin/university/people/alumni/_list.html.erb similarity index 93% rename from app/views/admin/university/person/alumni/_list.html.erb rename to app/views/admin/university/people/alumni/_list.html.erb index bf9a289c1..fca4f7824 100644 --- a/app/views/admin/university/person/alumni/_list.html.erb +++ b/app/views/admin/university/people/alumni/_list.html.erb @@ -8,7 +8,7 @@ </thead> <tbody> <% alumni.each do |alumnus| %> - <% path = admin_university_person_alumnus_path(alumnus) %> + <% path = admin_university_people_alumnus_path(alumnus) %> <tr> <td><%= link_to alumnus.last_name, path %></td> <td><%= link_to alumnus.first_name, path %></td> diff --git a/app/views/admin/university/person/alumnus/imports/index.html.erb b/app/views/admin/university/people/alumni/imports/index.html.erb similarity index 57% rename from app/views/admin/university/person/alumnus/imports/index.html.erb rename to app/views/admin/university/people/alumni/imports/index.html.erb index 952d52da4..a376df884 100644 --- a/app/views/admin/university/person/alumnus/imports/index.html.erb +++ b/app/views/admin/university/people/alumni/imports/index.html.erb @@ -9,12 +9,15 @@ <tbody> <% @imports.each do |import| %> <tr> - <td><%= link_to import, [:admin, import] %></td> + <td><%= link_to import, admin_university_people_alumni_import_path(import) %></td> </tr> <% end %> </tbody> </table> <% content_for :action_bar_right do %> - <%= create_link University::Person::Alumnus::Import %> + <%= link_to_if can?(:create, University::Person::Alumnus::Import), + t('create'), + new_admin_university_people_alumni_import_path, + class: button_classes %> <% end %> diff --git a/app/views/admin/university/person/alumnus/imports/new.html.erb b/app/views/admin/university/people/alumni/imports/new.html.erb similarity index 96% rename from app/views/admin/university/person/alumnus/imports/new.html.erb rename to app/views/admin/university/people/alumni/imports/new.html.erb index dfdf89c5e..0749b75c5 100644 --- a/app/views/admin/university/person/alumnus/imports/new.html.erb +++ b/app/views/admin/university/people/alumni/imports/new.html.erb @@ -10,7 +10,8 @@ Les caractères doivent être encodés en UTF-8.<br> Les valeurs pour gender peuvent être m (masculin), f (féminin) et n (non binaire). </p> - <%= simple_form_for [:admin, @import] do |f| %> + <%= simple_form_for @import, + url: admin_university_people_alumni_imports_path do |f| %> <%= f.error_notification %> <%= f.error_notification message: f.object.errors[:base].to_sentence if f.object.errors[:base].present? %> diff --git a/app/views/admin/university/person/alumnus/imports/show.html.erb b/app/views/admin/university/people/alumni/imports/show.html.erb similarity index 100% rename from app/views/admin/university/person/alumnus/imports/show.html.erb rename to app/views/admin/university/people/alumni/imports/show.html.erb diff --git a/app/views/admin/university/person/alumni/index.html.erb b/app/views/admin/university/people/alumni/index.html.erb similarity index 69% rename from app/views/admin/university/person/alumni/index.html.erb rename to app/views/admin/university/people/alumni/index.html.erb index fcc1509bd..db95e616d 100644 --- a/app/views/admin/university/person/alumni/index.html.erb +++ b/app/views/admin/university/people/alumni/index.html.erb @@ -1,14 +1,14 @@ <% content_for :title, "#{University::Person::Alumnus.model_name.human(count: 2)} (#{@alumni.total_count})" %> -<%= render 'filters', current_path: admin_university_person_alumni_path, filters: @filters if @filters.any? %> +<%= render 'filters', current_path: admin_university_people_alumni_path, filters: @filters if @filters.any? %> -<%= render 'admin/university/person/alumni/list', alumni: @alumni %> +<%= render 'admin/university/people/alumni/list', alumni: @alumni %> <%= paginate @alumni, theme: 'bootstrap-5' %> <% content_for :action_bar_left do %> <%= link_to t('import'), - new_admin_university_person_alumnus_import_path, + new_admin_university_people_alumni_import_path, class: button_classes if can? :manage, University::Person::Alumnus::Import %> <% end %> diff --git a/app/views/admin/university/person/alumni/show.html.erb b/app/views/admin/university/people/alumni/show.html.erb similarity index 100% rename from app/views/admin/university/person/alumni/show.html.erb rename to app/views/admin/university/people/alumni/show.html.erb diff --git a/app/views/admin/university/person/authors/static.html.erb b/app/views/admin/university/people/authors/static.html.erb similarity index 100% rename from app/views/admin/university/person/authors/static.html.erb rename to app/views/admin/university/people/authors/static.html.erb diff --git a/app/views/admin/university/person/researchers/static.html.erb b/app/views/admin/university/people/researchers/static.html.erb similarity index 100% rename from app/views/admin/university/person/researchers/static.html.erb rename to app/views/admin/university/people/researchers/static.html.erb diff --git a/app/views/admin/university/person/teachers/static.html.erb b/app/views/admin/university/people/teachers/static.html.erb similarity index 100% rename from app/views/admin/university/person/teachers/static.html.erb rename to app/views/admin/university/people/teachers/static.html.erb diff --git a/config/admin_navigation.rb b/config/admin_navigation.rb index 4fccef355..fa7f7f9f1 100644 --- a/config/admin_navigation.rb +++ b/config/admin_navigation.rb @@ -10,7 +10,7 @@ SimpleNavigation::Configuration.run do |navigation| primary.item :university, University.model_name.human, nil, { kind: :header } primary.item :university, University::Person.model_name.human(count: 2), admin_university_people_path, { icon: 'users-cog' } primary.item :university, University::Organization.model_name.human(count: 2), admin_university_organizations_path, { icon: 'building' } - primary.item :communication_alumni, University::Person::Alumnus.model_name.human(count: 2), admin_university_person_alumni_path, { icon: 'users' } + primary.item :communication_alumni, University::Person::Alumnus.model_name.human(count: 2), admin_university_people_alumni_path, { icon: 'users' } end if can?(:read, Education::Program) diff --git a/config/routes/admin/university.rb b/config/routes/admin/university.rb index dedeb7272..fc1b270ad 100644 --- a/config/routes/admin/university.rb +++ b/config/routes/admin/university.rb @@ -1,12 +1,13 @@ namespace :university do - resources :people, :organizations - namespace :organization do + # Resources must come after namespaces, otherwise there is a confusion with ids + namespace :organizations do resources :imports, only: [:index, :show, :new, :create] end - namespace :person do - resources :alumni - namespace :alumnus do + namespace :people do + namespace :alumni do resources :imports, only: [:index, :show, :new, :create] end + resources :alumni end + resources :people, :organizations end -- GitLab