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.
17 lines
678 B
17 lines
678 B
# TODO inline me pls
|
|
class SurveyResponseAggregator
|
|
# Returns an average score for all SurveyItemResponses for the given AcademicYear, School, and Measure
|
|
def self.score(academic_year:, school:, measure:)
|
|
SurveyItemResponse.for_measure(measure)
|
|
.where(academic_year: academic_year, school: school)
|
|
.average(:likert_score)
|
|
end
|
|
|
|
# Returns an array of SurveyItemResponses for the given AcademicYear, School, and Measure
|
|
def self.find_responses_by_measure(academic_year:, school:, measure:)
|
|
SurveyItemResponse
|
|
.where(academic_year: academic_year, school: school)
|
|
.joins(:survey_item).where('survey_items.measure_id': measure.id)
|
|
end
|
|
end
|