feat: Show parent scales on browse page

rpp-main
Nelson Jovel 1 year ago
parent 300530caf4
commit 9e97dced7b

@ -16,6 +16,10 @@ class MeasurePresenter
"Measure #{measure_id}" "Measure #{measure_id}"
end end
def title
"Measure #{measure_id}"
end
def gauge_presenter def gauge_presenter
GaugePresenter.new(zones:, score: score.average) GaugePresenter.new(zones:, score: score.average)
end end

@ -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

@ -1,7 +1,7 @@
# frozen_string_literal: true # frozen_string_literal: true
class ParentScalePresenter class ParentScalePresenter < MeasurePresenter
attr_reader :scale, :academic_year, :school, :name, :description, :id attr_reader :scale, :academic_year, :school, :name, :description
def initialize(scale:, academic_year:, school:) def initialize(scale:, academic_year:, school:)
@scale = scale @scale = scale
@ -9,7 +9,6 @@ class ParentScalePresenter
@school = school @school = school
@name = scale.name @name = scale.name
@description = scale.description @description = scale.description
@id = scale.scale_id
end end
def title def title

@ -1,10 +1,11 @@
# frozen_string_literal: true # frozen_string_literal: true
class ParentSurveyPresenter < DataItemPresenter 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:) def initialize(scale_id:, survey_items:, has_sufficient_data:, school:, academic_year:)
super(measure_id:, 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 @survey_items = survey_items
end end
@ -13,7 +14,7 @@ class ParentSurveyPresenter < DataItemPresenter
end end
def id def id
"parent-survey-items-#{measure_id}" "parent-survey-items-#{scale_id}"
end end
def reason_for_insufficiency def reason_for_insufficiency

@ -39,13 +39,8 @@ class SubcategoryPresenter
def measure_presenters def measure_presenters
@subcategory.measures.sort_by(&:measure_id).map do |measure| @subcategory.measures.sort_by(&:measure_id).map do |measure|
out = [MeasurePresenter.new(measure:, academic_year: @academic_year, school: @school)] MeasurePresenter.new(measure:, academic_year: @academic_year, school: @school)
if parent_gauges_have_displayable_score?(measure:) end
out << ParentMeasurePresenter.new(measure:, academic_year: @academic_year,
school: @school)
end
out
end.flatten
end end
def scale_presenters def scale_presenters
@ -60,13 +55,20 @@ class SubcategoryPresenter
end end
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:) def show_scale_presenters?
measure.includes_parent_survey_items? && measure.parent_score(school: @school, scale_presenters.any? do |scale_presenter|
academic_year: @academic_year).average.positive? subcategory.scales.parent_scales.count.positive? && scale_presenter.score.positive?
end
end end
private
def admin_data_values_count def admin_data_values_count
@subcategory.measures.map do |measure| @subcategory.measures.map do |measure|
measure.scales.map do |scale| measure.scales.map do |scale|

Loading…
Cancel
Save