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 493f55a4459758e7c27afce60d0892f6c1268cd2..608d208acff9fe86b43d44d18a64f8ca6d8ac13e 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 b8f7b52a12ce18b78126eb3b1bb85297b2e4b143..66b44d7499842bcae400aa6f4585e915e3d05d46 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 80931367b97f1925831afcd2d3ddfae2999d0ecf..2fd91f16d7dfda0c6780f90fe583ca0cc5c7e2ce 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 7e3dae0e4c9c93cddf13c1af029c77c2a2277195..aaee596bc1651456486af21b69129a79394d4bbc 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 1a73e37ce088fb3dfccc7a2628cca237a581a291..f6e8735f6c31f4662dc5380956e0d970ea36fdbc 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 f06991e44d360ce2c18927d7cb4c75eda6ded0a5..898580ffa6ec4fbb2374f0eea399c40daf4b7396 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 18e5d067fd7682fdfaaaf5b1821f1b25388b740f..579fe470d478f87273a66d8369ebfd61d0f0adb4 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 6fc56c6f77804a3c133f498e254c1d3ffcb7c89e..ad22a22de0356ca972066dfc89ababd6373f8b3e 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 7b3fbe4179fcea5e2ecb77f7632081b7a7e8c406..4cc66d50f0999dcdb5c36316f72e614a8bc16189 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 bf9a289c1e349f67ce80813a331507a1cb36ad8a..fca4f7824a75544919aa69ffcda8f50f13325335 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 952d52da4e7b99f4c473186ebcbd5f28f6287a7c..a376df884a90ed95082a50df1e2f79464414da1d 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 dfdf89c5e8763b4e6cbe38af6cf55cfb8a883f2f..0749b75c5c3696a0b5d5dcf89b0d934cde8826b9 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 fcc1509bdbda12e2dbb7b5aea638b9de124b632a..db95e616de7f1b2e19a5312efc1eca39b3bd1e2a 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 4fccef35596f4b3505cad976350d55b20d6c6fdd..fa7f7f9f190e9a9728ce8fbcde1552895eb65e87 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 dedeb7272fe48278cfa7c9b4faae1b2eca7576af..fc1b270ad27b330583f7212c4015f9be007f5bdf 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