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.
28 lines
834 B
28 lines
834 B
module Dashboard
|
|
class Score < ApplicationRecord
|
|
belongs_to :measure, class_name: "Measure", foreign_key: :dashboard_measure_id
|
|
belongs_to :school, class_name: "School", foreign_key: :dashboard_school_id
|
|
belongs_to :academic_year, class_name: "AcademicYear", foreign_key: :dashboard_academic_year_id
|
|
|
|
NIL_SCORE = Score.new(average: nil, meets_teacher_threshold: false, meets_student_threshold: false,
|
|
meets_admin_data_threshold: false)
|
|
|
|
enum group: {
|
|
all_students: 0,
|
|
race: 1,
|
|
grade: 2,
|
|
gender: 3
|
|
}
|
|
|
|
def in_zone?(zone:)
|
|
return false if average.nil? || average.is_a?(Float) && average.nan?
|
|
|
|
average.between?(zone.low_benchmark, zone.high_benchmark)
|
|
end
|
|
|
|
def blank?
|
|
average.nil? || average.zero? || average.nan?
|
|
end
|
|
end
|
|
end
|