mirror of
https://github.com/edcommonwealth/sqm-dashboards.git
synced 2026-03-07 13:38:18 -08:00
39 lines
1.4 KiB
Ruby
39 lines
1.4 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
module Analyze
|
|
module Graph
|
|
module Column
|
|
module Parent
|
|
class SocioEconomicStatus < Base
|
|
attr_reader :socio_economic_status, :label
|
|
|
|
def initialize(socio_economic_status:, label:, show_irrelevancy_message:)
|
|
@socio_economic_status = socio_economic_status
|
|
@label = label
|
|
@show_irrelevancy_message = show_irrelevancy_message
|
|
end
|
|
|
|
def n_size(construct:, school:, academic_year:)
|
|
SurveyItemResponse.joins(:parent).where(parent: { socio_economic_status: }, survey_item: construct.parent_survey_items, school:, academic_year:).select(:parent_id).distinct.count
|
|
end
|
|
|
|
def score(construct:, school:, academic_year:)
|
|
return Score::NIL_SCORE if n_size(construct:, school:, academic_year:) < 10
|
|
|
|
averages = SurveyItemResponse.averages_for_socio_economic_status(construct.parent_survey_items, school, academic_year,
|
|
socio_economic_status)
|
|
average = bubble_up_averages(construct:, averages:).round(2)
|
|
Score.new(average:,
|
|
meets_teacher_threshold: false,
|
|
meets_student_threshold: true,
|
|
meets_admin_data_threshold: false)
|
|
end
|
|
|
|
def designations
|
|
language.map(&:designation)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|