From 3b77df6aa7c6fe7badda7528e7ef3b994d196638 Mon Sep 17 00:00:00 2001
From: pabois <pierreandre.boissinot@noesya.coop>
Date: Thu, 19 May 2022 13:15:39 +0200
Subject: [PATCH] close #390

---
 app/models/education/cohort.rb              |  6 ------
 app/models/education/program/with_alumni.rb | 20 ++++++++++----------
 app/models/education/school/with_alumni.rb  | 12 +++++++-----
 3 files changed, 17 insertions(+), 21 deletions(-)

diff --git a/app/models/education/cohort.rb b/app/models/education/cohort.rb
index 11ac56052..fff2ec382 100644
--- a/app/models/education/cohort.rb
+++ b/app/models/education/cohort.rb
@@ -40,7 +40,6 @@ class Education::Cohort < ApplicationRecord
 
   validates_associated :academic_year, :program
   validates :year, presence: true
-  # before_validation :set_university_id, on: :create
 
   scope :ordered, -> {
     includes(:academic_year).order('education_academic_years.year DESC')
@@ -58,9 +57,4 @@ class Education::Cohort < ApplicationRecord
     self.academic_year = Education::AcademicYear.where(university_id: university_id, year: val).first_or_create
   end
 
-  private
-
-  # def set_university_id
-  #   self.university_id = self.program.university_id
-  # end
 end
diff --git a/app/models/education/program/with_alumni.rb b/app/models/education/program/with_alumni.rb
index 475572935..5ec4ec189 100644
--- a/app/models/education/program/with_alumni.rb
+++ b/app/models/education/program/with_alumni.rb
@@ -21,25 +21,25 @@ module Education::Program::WithAlumni
                source: :organization
                alias_attribute :university_person_alumni_organizations, :alumni_organizations
 
-    # TODO: Find a fix for wrong table name on WHERE clause
+    # Dénormalisation des alumni pour le faceted search
+    has_and_belongs_to_many :university_people,
+               class_name: 'University::Person',
+               foreign_key: 'education_program_id',
+               association_foreign_key: 'university_person_id'
+
+    # NOTE: Find a fix for wrong table name on WHERE clause
     #   SELECT "education_academic_years".*
     #   FROM "education_academic_years"
     #   INNER JOIN "education_cohorts"
     #     ON "education_academic_years"."id" = "education_cohorts"."academic_year_id"
     #   WHERE "cohorts"."program_id" = '<uuid>'
     #
-    # has_many   :academic_years, -> { distinct },
+    # has_many   :academic_years,
     #            class_name: 'Education::AcademicYear',
-    #            through: :cohorts,
-    #            source: :academic_year
+    #            through: :education_cohorts,
+    #            source: :education_academic_year
     #            alias_attribute :education_academic_years, :academic_years
 
-    # Dénormalisation des alumni pour le faceted search
-    has_and_belongs_to_many :university_people,
-                            class_name: 'University::Person',
-                            foreign_key: 'education_program_id',
-                            association_foreign_key: 'university_person_id'
-
     def academic_years
       Education::AcademicYear.where(id: cohorts.pluck(:academic_year_id))
     end
diff --git a/app/models/education/school/with_alumni.rb b/app/models/education/school/with_alumni.rb
index a234267c3..d36438ec0 100644
--- a/app/models/education/school/with_alumni.rb
+++ b/app/models/education/school/with_alumni.rb
@@ -19,14 +19,16 @@ module Education::School::WithAlumni
                   source: :organization
                   alias_attribute :university_person_alumni_organizations, :alumni_organizations
 
-      has_many    :academic_years, -> { distinct },
-                  class_name: 'Education::AcademicYear',
-                  through: :programs
-                  alias_attribute :education_academic_years, :academic_years
-
       has_many    :cohorts, -> { distinct },
                   class_name: 'Education::Cohort',
                   through: :programs
                   alias_attribute :education_cohorts, :cohorts
+                  
+      has_many    :academic_years, -> { distinct },
+                  class_name: 'Education::AcademicYear',
+                  through: :cohorts,
+                  source: :academic_year
+                  alias_attribute :education_academic_years, :academic_years
+
   end
 end
-- 
GitLab