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.
sqm-dashboards/app/models/teacher_response_rate_calcu...

30 lines
870 B

# frozen_string_literal: true
class TeacherResponseRateCalculator < ResponseRateCalculator
def survey_item_count
@survey_item_count ||= survey_items_with_sufficient_responses.length
end
def survey_items_have_sufficient_responses?
survey_item_count.positive?
end
def survey_items_with_sufficient_responses
@survey_items_with_sufficient_responses ||= SurveyItemResponse.teacher_survey_items_with_sufficient_responses(
school:, academic_year:
).slice(*@subcategory.survey_items.teacher_survey_items.map(&:id))
end
def response_count
@response_count ||= survey_items_with_sufficient_responses&.values&.sum
end
def total_possible_responses
@total_possible_responses ||= respondents.total_teachers
end
def raw_response_rate
(average_responses_per_survey_item / total_possible_responses.to_f * 100).round
end
end