From 74f598cd7befaa19925e97469a2bdb7781396d13 Mon Sep 17 00:00:00 2001 From: pabois <pierreandre.boissinot@noesya.coop> Date: Thu, 19 May 2022 18:04:04 +0200 Subject: [PATCH] filter alumni --- app/controllers/admin/university/alumni_controller.rb | 1 + app/models/university/person/with_experiences.rb | 7 +++++++ app/services/filters/admin/university/alumni.rb | 8 +++++++- 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/app/controllers/admin/university/alumni_controller.rb b/app/controllers/admin/university/alumni_controller.rb index 08a4dcfba..c267f090a 100644 --- a/app/controllers/admin/university/alumni_controller.rb +++ b/app/controllers/admin/university/alumni_controller.rb @@ -4,6 +4,7 @@ class Admin::University::AlumniController < Admin::University::ApplicationContro through_association: :people has_scope :for_search_term + has_scope :for_alumni_organization has_scope :for_alumni_program has_scope :for_alumni_year diff --git a/app/models/university/person/with_experiences.rb b/app/models/university/person/with_experiences.rb index 297f779a7..99c15cc16 100644 --- a/app/models/university/person/with_experiences.rb +++ b/app/models/university/person/with_experiences.rb @@ -12,6 +12,13 @@ module University::Person::WithExperiences validates_associated :experiences + scope :for_alumni_organization, -> (organization_id) { + left_joins(:experiences) + .where(university_person_experiences: { organization_id: organization_id }) + .select("university_people.*") + .distinct + } + end end diff --git a/app/services/filters/admin/university/alumni.rb b/app/services/filters/admin/university/alumni.rb index ad0f53c25..fec367846 100644 --- a/app/services/filters/admin/university/alumni.rb +++ b/app/services/filters/admin/university/alumni.rb @@ -2,7 +2,12 @@ module Filters class Admin::University::Alumni < Filters::Base def initialize(user) super - add_search + add :for_alumni_organization, + user.university.organizations.ordered, + I18n.t( + 'filters.attributes.element', + element: University::Organization.model_name.human.downcase + ) add :for_alumni_program, user.university.education_programs, I18n.t( @@ -17,6 +22,7 @@ module Filters 'filters.attributes.element', element: Education::AcademicYear.model_name.human.downcase ) + add_search end end end -- GitLab