From 9e97dced7b8eb60d07215b42a0f77a9e06df9b41 Mon Sep 17 00:00:00 2001 From: Nelson Jovel Date: Wed, 25 Sep 2024 11:45:16 -0700 Subject: [PATCH] feat: Show parent scales on browse page --- app/presenters/measure_presenter.rb | 4 ++++ app/presenters/parent_measure_presenter.rb | 24 ---------------------- app/presenters/parent_scale_presenter.rb | 5 ++--- app/presenters/parent_survey_presenter.rb | 9 ++++---- app/presenters/subcategory_presenter.rb | 24 ++++++++++++---------- 5 files changed, 24 insertions(+), 42 deletions(-) delete mode 100644 app/presenters/parent_measure_presenter.rb diff --git a/app/presenters/measure_presenter.rb b/app/presenters/measure_presenter.rb index 0067769a..0e15d096 100644 --- a/app/presenters/measure_presenter.rb +++ b/app/presenters/measure_presenter.rb @@ -16,6 +16,10 @@ class MeasurePresenter "Measure #{measure_id}" end + def title + "Measure #{measure_id}" + end + def gauge_presenter GaugePresenter.new(zones:, score: score.average) end diff --git a/app/presenters/parent_measure_presenter.rb b/app/presenters/parent_measure_presenter.rb deleted file mode 100644 index 97c0f1fc..00000000 --- a/app/presenters/parent_measure_presenter.rb +++ /dev/null @@ -1,24 +0,0 @@ -# frozen_string_literal: true - -class ParentMeasurePresenter < MeasurePresenter - def measure_id - "#{measure.measure_id} (Parent)" - end - - def score_for_measure - @measure.parent_score(school: @school, academic_year: @academic_year) - end - - def data_item_presenters - [].tap do |array| - array << parent_survey_presenter if measure.parent_survey_items.any? - end - end - - private - - def parent_survey_presenter - ParentSurveyPresenter.new(measure_id: measure.measure_id, survey_items: measure.parent_survey_items, - has_sufficient_data: true, school:, academic_year:) - end -end diff --git a/app/presenters/parent_scale_presenter.rb b/app/presenters/parent_scale_presenter.rb index 96dc0435..c8dbf319 100644 --- a/app/presenters/parent_scale_presenter.rb +++ b/app/presenters/parent_scale_presenter.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true -class ParentScalePresenter - attr_reader :scale, :academic_year, :school, :name, :description, :id +class ParentScalePresenter < MeasurePresenter + attr_reader :scale, :academic_year, :school, :name, :description def initialize(scale:, academic_year:, school:) @scale = scale @@ -9,7 +9,6 @@ class ParentScalePresenter @school = school @name = scale.name @description = scale.description - @id = scale.scale_id end def title diff --git a/app/presenters/parent_survey_presenter.rb b/app/presenters/parent_survey_presenter.rb index 60551589..89f9da61 100644 --- a/app/presenters/parent_survey_presenter.rb +++ b/app/presenters/parent_survey_presenter.rb @@ -1,10 +1,11 @@ # frozen_string_literal: true class ParentSurveyPresenter < DataItemPresenter - attr_reader :survey_items + attr_reader :survey_items, :scale_id - def initialize(measure_id:, survey_items:, has_sufficient_data:, school:, academic_year:) - super(measure_id:, has_sufficient_data:, school:, academic_year:) + def initialize(scale_id:, survey_items:, has_sufficient_data:, school:, academic_year:) + super(measure_id: scale_id, has_sufficient_data:, school:, academic_year:) + @scale_id = scale_id @survey_items = survey_items end @@ -13,7 +14,7 @@ class ParentSurveyPresenter < DataItemPresenter end def id - "parent-survey-items-#{measure_id}" + "parent-survey-items-#{scale_id}" end def reason_for_insufficiency diff --git a/app/presenters/subcategory_presenter.rb b/app/presenters/subcategory_presenter.rb index b6c2d14e..5d16d7ed 100644 --- a/app/presenters/subcategory_presenter.rb +++ b/app/presenters/subcategory_presenter.rb @@ -39,13 +39,8 @@ class SubcategoryPresenter def measure_presenters @subcategory.measures.sort_by(&:measure_id).map do |measure| - out = [MeasurePresenter.new(measure:, academic_year: @academic_year, school: @school)] - if parent_gauges_have_displayable_score?(measure:) - out << ParentMeasurePresenter.new(measure:, academic_year: @academic_year, - school: @school) - end - out - end.flatten + MeasurePresenter.new(measure:, academic_year: @academic_year, school: @school) + end end def scale_presenters @@ -60,13 +55,20 @@ class SubcategoryPresenter end end - private + def scale_presenters + subcategory.scales.parent_scales.map do |scale| + ParentScalePresenter.new(scale:, academic_year:, school:) + end + end - def parent_gauges_have_displayable_score?(measure:) - measure.includes_parent_survey_items? && measure.parent_score(school: @school, - academic_year: @academic_year).average.positive? + def show_scale_presenters? + scale_presenters.any? do |scale_presenter| + subcategory.scales.parent_scales.count.positive? && scale_presenter.score.positive? + end end + private + def admin_data_values_count @subcategory.measures.map do |measure| measure.scales.map do |scale|