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}"
end
def title
"Measure #{measure_id}"
end
def gauge_presenter
GaugePresenter.new(zones:, score: score.average)
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
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

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

@ -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)
MeasurePresenter.new(measure:, academic_year: @academic_year, school: @school)
end
out
end.flatten
end
def scale_presenters
@ -60,12 +55,19 @@ 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|

Loading…
Cancel
Save