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.
84 lines
2.2 KiB
84 lines
2.2 KiB
module Report
|
|
class Pillar
|
|
attr_reader :period, :measures, :indicator, :school, :academic_year
|
|
|
|
def initialize(school:, period:, measures:, indicator:, academic_year:)
|
|
@school = school
|
|
@measures = measures
|
|
@indicator = indicator
|
|
@period = period
|
|
@academic_year = academic_year
|
|
end
|
|
|
|
def school_name
|
|
school.name
|
|
end
|
|
|
|
def pillar
|
|
PILLARS[indicator.to_sym]
|
|
end
|
|
|
|
def score
|
|
measures.map do |measure|
|
|
measure.score(school:, academic_year:).average
|
|
end.flatten.compact.average
|
|
end
|
|
|
|
def category
|
|
measures.first.category.name
|
|
end
|
|
|
|
def measure_ids
|
|
measures.map(&:measure_id).join(' & ')
|
|
end
|
|
|
|
def zone
|
|
zones = Zones.new(watch_low_benchmark:,
|
|
growth_low_benchmark:,
|
|
approval_low_benchmark:,
|
|
ideal_low_benchmark:)
|
|
|
|
zones.zone_for_score(score).type.to_s.capitalize
|
|
end
|
|
|
|
private
|
|
|
|
PILLARS =
|
|
{ "Teaching Environment": 'Operational Efficiency',
|
|
"Safety": 'Safe and Welcoming Environment',
|
|
"Relationships": 'Safe and Welcoming Environment',
|
|
"Academic Orientation": 'Safe and Welcoming Environment',
|
|
"Facilities & Personnel": 'Operational Efficiency',
|
|
"Family-School Relationships": 'Family and Community Engagement',
|
|
"Community Involvement & External Partners": 'Family and Community Engagement',
|
|
"Perception of Performance": 'Academics and Student Achievement',
|
|
"Student Commitment To Learning": 'Academics and Student Achievement',
|
|
"Critical Thinking": 'Academics and Student Achievement',
|
|
"College & Career Readiness": 'Academics and Student Achievement' }
|
|
|
|
def watch_low_benchmark
|
|
measures.map do |measure|
|
|
measure.watch_low_benchmark
|
|
end.average
|
|
end
|
|
|
|
def growth_low_benchmark
|
|
measures.map do |measure|
|
|
measure.growth_low_benchmark
|
|
end.average
|
|
end
|
|
|
|
def approval_low_benchmark
|
|
measures.map do |measure|
|
|
measure.approval_low_benchmark
|
|
end.average
|
|
end
|
|
|
|
def ideal_low_benchmark
|
|
measures.map do |measure|
|
|
measure.ideal_low_benchmark
|
|
end.average
|
|
end
|
|
end
|
|
end
|