diff --git a/app/controllers/admin/university/alumni_controller.rb b/app/controllers/admin/university/alumni_controller.rb index 08a4dcfba526994c1490a2a8839d8f67d3427d4b..c267f090afd414dc189d33fecfb7cbf0712e0674 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 297f779a745a0723ccd0fbbd5c138976a77b0a87..99c15cc16968a80397088529a64171cbbc1f2144 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 ad0f53c253ed0112cf31160e47c89b0a43518019..fec367846af24ff838282d58eb38449375bee766 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