Skip to content
Snippets Groups Projects
Unverified Commit ecb1a88c authored by Sébastien Gaya's avatar Sébastien Gaya
Browse files

association

parent 23908b5f
No related branches found
No related tags found
No related merge requests found
......@@ -66,8 +66,9 @@ module Communication::Website::WithAbouts
@people ||= begin
people = authors
if about_school?
people += about.university_people_through_involvements
people += about.university_people_through_roles
people += about.university_people_through_role_involvements
people += about.university_people_through_program_involvements
people += about.university_people_through_program_role_involvements
elsif about_journal?
people += about.people
end
......@@ -79,10 +80,12 @@ module Communication::Website::WithAbouts
@people_with_facets ||= begin
people = authors + authors.compact.map(&:author)
if about_school?
people += about.university_people_through_involvements
people += about.university_people_through_involvements.map(&:teacher)
people += about.university_people_through_roles
people += about.university_people_through_roles.map(&:administrator)
people += about.university_people_through_role_involvements
people += about.university_people_through_role_involvements.map(&:administrator)
people += about.university_people_through_program_involvements
people += about.university_people_through_program_involvements.map(&:teacher)
people += about.university_people_through_program_role_involvements
people += about.university_people_through_program_role_involvements.map(&:administrator)
elsif about_journal?
people += about.people
people += about.people.map(&:researcher)
......
......@@ -46,9 +46,15 @@ class Education::School < ApplicationRecord
has_many :university_roles, class_name: 'University::Role', as: :target, dependent: :destroy
has_many :involvements_through_roles, through: :university_roles, source: :involvements
has_many :university_people_through_involvements,
has_many :university_people_through_role_involvements,
through: :involvements_through_roles,
source: :person
has_many :university_people_through_program_involvements,
through: :programs,
source: :university_people_through_involvements
has_many :university_people_through_program_role_involvements,
through: :programs,
source: :university_people_through_role_involvements
validates :name, :address, :city, :zipcode, :country, presence: true
......@@ -64,7 +70,7 @@ class Education::School < ApplicationRecord
def git_dependencies(website)
[self] +
university_people_through_involvements +
university_people_through_involvements.map(&:administrator)
university_people_through_role_involvements +
university_people_through_role_involvements.map(&:administrator)
end
end
......@@ -39,6 +39,9 @@ class University::Person::Administrator < University::Person
end
def for_website?(website)
is_administration && website.about_school? && Education::School::Administrator.where(school_id: website.about_id, person_id: id).any?
is_administration && website.about_school? && (
website.about.university_people_through_role_involvements.find_by(id: id).present? ||
website.programs.published.joins(:involvements_through_roles).where(university_person_involvements: { person_id: id }).any?
)
end
end
......@@ -41,8 +41,8 @@ class University::Person::Teacher < University::Person
def for_website?(website)
is_teacher && website.about_school? && website.programs
.published
.joins(:teachers)
.where(education_program_teachers: { person_id: id })
.joins(:university_person_involvements)
.where(university_person_involvements: { person_id: id })
.any?
end
end
......@@ -18,6 +18,6 @@ administrators:
administrators_description:
<% @school.involvements_through_roles.includes(:person).ordered.each do |involvement| %>
"<%= involvement.person.slug %>": >
<%= involvement.best_description %>
<%= involvement.description %>
<% end %>
---
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment