perf: reduce number of calls for student and teacher survey items in response rate calculators

speedup-admin-data
Nelson Jovel 2 years ago
parent ec53cc9ae4
commit 6558ed491a

@ -49,7 +49,7 @@ class StudentResponseRateCalculator < ResponseRateCalculator
value < threshold value < threshold
end end
ssi = @subcategory.survey_items.student_survey_items.map(&:id) ssi = @subcategory.student_survey_items.map(&:id)
grade_array = Array.new(ssi.length, grade) grade_array = Array.new(ssi.length, grade)
memo[grade] = si.slice(*grade_array.zip(ssi)) memo[grade] = si.slice(*grade_array.zip(ssi))

@ -91,4 +91,12 @@ class Subcategory < ActiveRecord::Base
Zones.new(watch_low_benchmark:, growth_low_benchmark:, Zones.new(watch_low_benchmark:, growth_low_benchmark:,
approval_low_benchmark:, ideal_low_benchmark:).zone_for_score(score) approval_low_benchmark:, ideal_low_benchmark:).zone_for_score(score)
end end
def student_survey_items
@student_survey_items ||= survey_items.student_survey_items
end
def teacher_survey_items
@teacher_survey_items ||= survey_items.teacher_survey_items
end
end end

@ -12,7 +12,7 @@ class TeacherResponseRateCalculator < ResponseRateCalculator
def survey_items_with_sufficient_responses def survey_items_with_sufficient_responses
@survey_items_with_sufficient_responses ||= SurveyItemResponse.teacher_survey_items_with_sufficient_responses( @survey_items_with_sufficient_responses ||= SurveyItemResponse.teacher_survey_items_with_sufficient_responses(
school:, academic_year: school:, academic_year:
).slice(*@subcategory.survey_items.teacher_survey_items.map(&:id)) ).slice(*@subcategory.teacher_survey_items.map(&:id))
end end
def response_count def response_count

Loading…
Cancel
Save