diff --git a/app/models/administration/location.rb b/app/models/administration/location.rb index cbe75a9a162ddd27175e7c3dfff22933f7999f54..8908cd91886441cd8e8cf3d7ff3f0dca4fe9ca8c 100644 --- a/app/models/administration/location.rb +++ b/app/models/administration/location.rb @@ -28,8 +28,8 @@ # class Administration::Location < ApplicationRecord include AsIndirectObject - include Sanitizable include Contentful + include Sanitizable include Sluggable include WebsitesLinkable include WithBlobs @@ -43,11 +43,18 @@ class Administration::Location < ApplicationRecord class_name: 'Education::School', foreign_key: :education_school_id, association_foreign_key: :administration_location_id + alias_method :education_schools, :schools has_and_belongs_to_many :programs, class_name: 'Education::Program', foreign_key: :education_program_id, association_foreign_key: :administration_location_id - + alias_method :education_programs, :programs + has_many :diplomas, + -> { distinct }, + through: :programs, + source: :diploma + alias_method :education_diplomas, :diplomas + scope :ordered, -> { order(:name) } @@ -72,8 +79,41 @@ class Administration::Location < ApplicationRecord [] end - # Un site n'a pas de site dépendant + # WebsitesLinkable + + def has_administrators? + # TODO les administrateurs du site + false + end + + def has_researchers? + # TODO les chercheurs du site + false + end + + def has_teachers? + # TODO les enseignants du site + false + end + + def has_education_programs? + programs.any? + end + + def has_education_diplomas? + diplomas.any? + end + + def has_research_papers? + false + end + + def has_research_volumes? + false + end + def has_administration_locations? + # Un site (location) n'a pas de site (location) dépendant false end end