From 0f0d232aef9e11831c45186eaebc97f16ba64b4b Mon Sep 17 00:00:00 2001 From: Arnaud Levy <contact@arnaudlevy.com> Date: Wed, 27 Apr 2022 16:58:48 +0200 Subject: [PATCH] years --- .../extranet/academic_years_controller.rb | 5 +++- .../extranet/organizations_controller.rb | 2 +- .../extranet/persons_controller.rb | 3 +-- app/models/education/school.rb | 12 +++------ .../university/person/alumnus/facets.rb | 2 +- .../extranet/academic_years/_list.html.erb | 26 ------------------- .../extranet/academic_years/index.html.erb | 24 ++++++++++++++++- 7 files changed, 34 insertions(+), 40 deletions(-) delete mode 100644 app/views/extranet/academic_years/_list.html.erb diff --git a/app/controllers/extranet/academic_years_controller.rb b/app/controllers/extranet/academic_years_controller.rb index 5b7d80d9b..0ea87016e 100644 --- a/app/controllers/extranet/academic_years_controller.rb +++ b/app/controllers/extranet/academic_years_controller.rb @@ -4,7 +4,10 @@ class Extranet::AcademicYearsController < Extranet::ApplicationController through_association: :academic_years def index - @academic_years = current_extranet.about&.academic_years || @academic_years + @academic_years = about&.academic_years + .page(params[:page]) + .per(20) + @count = @academic_years.total_count breadcrumb end diff --git a/app/controllers/extranet/organizations_controller.rb b/app/controllers/extranet/organizations_controller.rb index ee06ab51e..1fd325c4a 100644 --- a/app/controllers/extranet/organizations_controller.rb +++ b/app/controllers/extranet/organizations_controller.rb @@ -4,7 +4,7 @@ class Extranet::OrganizationsController < Extranet::ApplicationController through_association: :organizations def index - @organizations = current_extranet.about&.alumni_organizations || @organizations + @organizations = about&.alumni_organizations @organizations = @organizations.ordered.page(params[:page]) @count = @organizations.total_count breadcrumb diff --git a/app/controllers/extranet/persons_controller.rb b/app/controllers/extranet/persons_controller.rb index e3975a7a7..866a2e30c 100644 --- a/app/controllers/extranet/persons_controller.rb +++ b/app/controllers/extranet/persons_controller.rb @@ -4,9 +4,8 @@ class Extranet::PersonsController < Extranet::ApplicationController through_association: :people def index - alumni = current_extranet.about&.alumni || @people.alumni @facets = University::Person::Alumnus::Facets.new params[:facets], { - model: alumni, + model: about&.alumni, about: current_extranet.about } @people = @facets.results diff --git a/app/models/education/school.rb b/app/models/education/school.rb index b7dc8fbd8..1e7483ce7 100644 --- a/app/models/education/school.rb +++ b/app/models/education/school.rb @@ -68,24 +68,20 @@ class Education::School < ApplicationRecord through: :published_programs, source: :university_people_through_role_involvements - has_many :alumni, - -> { distinct }, + has_many :alumni, -> { distinct }, through: :programs - has_many :alumni_experiences, - -> { distinct }, + has_many :alumni_experiences, -> { distinct }, class_name: 'University::Person::Experience', through: :alumni, source: :experiences alias_attribute :experiences, :alumni_experiences - has_many :alumni_organizations, - -> { distinct }, + has_many :alumni_organizations, -> { distinct }, class_name: 'University::Organization', through: :alumni_experiences, source: :organization - has_many :education_academic_years, - -> { distinct }, + has_many :education_academic_years, -> { distinct }, class_name: 'Education::AcademicYear', through: :programs alias_attribute :academic_years, :education_academic_years diff --git a/app/models/university/person/alumnus/facets.rb b/app/models/university/person/alumnus/facets.rb index cd98815f4..174244a87 100644 --- a/app/models/university/person/alumnus/facets.rb +++ b/app/models/university/person/alumnus/facets.rb @@ -15,7 +15,7 @@ class University::Person::Alumnus::Facets < FacetedSearch::Facets habtm: true } - filter_with_list :diploma_programs, { + filter_with_checkboxes :diploma_programs, { source: @about.programs.ordered, title: Education::Program.model_name.human(count: 2), habtm: true diff --git a/app/views/extranet/academic_years/_list.html.erb b/app/views/extranet/academic_years/_list.html.erb deleted file mode 100644 index 914824d30..000000000 --- a/app/views/extranet/academic_years/_list.html.erb +++ /dev/null @@ -1,26 +0,0 @@ -<% academic_years_paged = academic_years.ordered.page(params[:page]).per(60) %> -<div class="row"> - <% academic_years_paged.each do |year| %> - <% - cohorts = year.cohorts_in_context(current_context.about) - alumni = year.alumni_in_context(current_context.about) - %> - <div class="col-md-3"> - <article class="card mb-4"> - <div class="card-body"> - <h2 class="mb-5"> - <%= link_to year, year, class: 'stretched-link' %> - </h2> - <p class="text-end mb-0"> - <%= cohorts.count %> - <%= Education::Cohort.model_name.human(count: cohorts.count).downcase %> - <br> - <%= alumni.count %> - <%= University::Person::Alumnus.model_name.human(count: alumni.count).downcase %> - </p> - </div> - </article> - </div> - <% end %> -</div> -<%= paginate academic_years_paged, theme: 'bootstrap-5' %> diff --git a/app/views/extranet/academic_years/index.html.erb b/app/views/extranet/academic_years/index.html.erb index b524bf9aa..858a4e060 100644 --- a/app/views/extranet/academic_years/index.html.erb +++ b/app/views/extranet/academic_years/index.html.erb @@ -4,4 +4,26 @@ <h1><%= Education::AcademicYear.model_name.human(count: 2) %></h1> </header> -<%= render 'extranet/academic_years/list', academic_years: @academic_years %> +<% @academic_years.each do |year| %> + <% + cohorts = year.cohorts_in_context(current_context.about) + alumni = year.alumni_in_context(current_context.about) + %> + <div class="row"> + <div class="col-md-6"> + <b> + <%= link_to year, year, class: 'stretched-link' %> + </b> + </div> + <div class="col-md-3"> + <%= cohorts.count %> + <%= Education::Cohort.model_name.human(count: cohorts.count).downcase %> + </div> + <div class="col-md-3 text-end"> + <%= alumni.count %> + <%= University::Person::Alumnus.model_name.human(count: alumni.count).downcase %> + </div> + </div> + <hr> +<% end %> +<%= paginate @academic_years, theme: 'bootstrap-5' %> -- GitLab