sqm-dashboards/app/models/survey_item.rb
2022-05-11 11:22:05 -07:00

26 lines
736 B
Ruby

class SurveyItem < ActiveRecord::Base
belongs_to :scale
has_one :measure, through: :scale
has_one :subcategory, through: :measure
has_many :survey_item_responses
def score(school:, academic_year:)
@score ||= Hash.new do |memo|
memo[[school, academic_year]] = survey_item_responses.where(school:,
academic_year:).exclude_boston.average(:likert_score).to_f
end
@score[[school, academic_year]]
end
scope :student_survey_items, lambda {
where("survey_item_id LIKE 's-%'")
}
scope :teacher_survey_items, lambda {
where("survey_item_id LIKE 't-%'")
}
scope :short_form_items, lambda {
where(on_short_form: true)
}
end