From f5e5abc27efd00a84d9af7c321d80032b5686bc7 Mon Sep 17 00:00:00 2001 From: Liam Morley Date: Thu, 28 Oct 2021 09:22:24 -0400 Subject: [PATCH] Use public score_for_measure method instead of private 'for_measure' scope --- app/models/survey_item_response.rb | 3 +-- app/presenters/measure_presenter.rb | 5 +---- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/app/models/survey_item_response.rb b/app/models/survey_item_response.rb index f108ecfc..0dc2e3f5 100644 --- a/app/models/survey_item_response.rb +++ b/app/models/survey_item_response.rb @@ -6,8 +6,6 @@ class SurveyItemResponse < ActiveRecord::Base belongs_to :school belongs_to :survey_item - scope :for_measure, ->(measure) { joins(:survey_item).where('survey_items.measure_id': measure.id) } - def self.score_for_subcategory(subcategory:, school:, academic_year:) measures = subcategory.measures.select { |measure| sufficient_data?(measure: measure, school: school, academic_year: academic_year) } @@ -26,6 +24,7 @@ class SurveyItemResponse < ActiveRecord::Base private + scope :for_measure, ->(measure) { joins(:survey_item).where('survey_items.measure_id': measure.id) } scope :for_measures, ->(measures) { joins(:survey_item).where('survey_items.measure_id': measures.map(&:id)) } scope :teacher_responses_for_measure, ->(measure) { for_measure(measure).where("survey_items.survey_item_id LIKE 't-%'") } scope :student_responses_for_measure, ->(measure) { for_measure(measure).where("survey_items.survey_item_id LIKE 's-%'") } diff --git a/app/presenters/measure_presenter.rb b/app/presenters/measure_presenter.rb index 6a4c2446..c42a9f44 100644 --- a/app/presenters/measure_presenter.rb +++ b/app/presenters/measure_presenter.rb @@ -14,10 +14,7 @@ class MeasurePresenter end def gauge_presenter - average_score = SurveyItemResponse.for_measure(@measure) - .where(academic_year: @academic_year, school: @school) - .average(:likert_score) - + average_score = SurveyItemResponse.score_for_measure(measure: @measure, academic_year: @academic_year, school: @school) GaugePresenter.new(scale: scale, score: average_score) end