Cap response rate at 100 for both students and teachers

pull/1/head
Nelson Jovel 4 years ago
parent 286e74b651
commit c0a8905fba

@ -1,6 +1,6 @@
module ResponseRate module ResponseRate
TEACHER_RATE_THRESHOLD = 0.25 TEACHER_RATE_THRESHOLD = 25
STUDENT_RATE_THRESHOLD = 0.25 STUDENT_RATE_THRESHOLD = 25
def initialize(subcategory:, school:, academic_year:) def initialize(subcategory:, school:, academic_year:)
@subcategory = subcategory @subcategory = subcategory
@ -15,14 +15,19 @@ module ResponseRate
return 0 unless total_possible_responses.positive? return 0 unless total_possible_responses.positive?
(average_responses_per_survey_item / total_possible_responses.to_f * 100).round response_rate = (average_responses_per_survey_item / total_possible_responses.to_f * 100).round
cap_at_100(response_rate)
end end
def meets_student_threshold? def meets_student_threshold?
rate >= STUDENT_RATE_THRESHOLD * 100 rate >= STUDENT_RATE_THRESHOLD
end end
def meets_teacher_threshold? def meets_teacher_threshold?
rate >= TEACHER_RATE_THRESHOLD * 100 rate >= TEACHER_RATE_THRESHOLD
end
def cap_at_100(response_rate)
response_rate > 100 ? 100 : response_rate
end end
end end

@ -1,16 +1,8 @@
class TeacherResponseRate class TeacherResponseRate
include ResponseRate include ResponseRate
def rate
cap_at_100(super)
end
private private
def cap_at_100(response_rate)
response_rate > 100 ? 100 : response_rate
end
def survey_item_count def survey_item_count
@survey_item_count ||= @subcategory.measures.map { |measure| measure.teacher_survey_items.count }.sum @survey_item_count ||= @subcategory.measures.map { |measure| measure.teacher_survey_items.count }.sum
end end

Loading…
Cancel
Save