You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
sqm-dashboards/app/models/subcategory.rb

30 lines
916 B

class Subcategory < ActiveRecord::Base
belongs_to :category
has_many :measures
def score(school:, academic_year:)
scores = measures.includes([:survey_items]).map do |measure|
measure.score(school:, academic_year:).average
end
scores = scores.reject(&:nil?)
scores.average
end
def student_response_rate(school:, academic_year:)
@student_response_rate ||= Hash.new do |memo, (school, academic_year)|
memo[[school, academic_year]] = StudentResponseRate.new(subcategory: self, school:, academic_year:)
end
@student_response_rate[[school, academic_year]]
end
def teacher_response_rate(school:, academic_year:)
@teacher_response_rate ||= Hash.new do |memo, (school, academic_year)|
memo[[school, academic_year]] = TeacherResponseRate.new(subcategory: self, school:, academic_year:)
end
@teacher_response_rate[[school, academic_year]]
end
end