Remove sufficient_data parameter from MeasureGraphRowPresenter

pull/1/head
Alex Basson 4 years ago
parent 10e70557bd
commit b4a6ae0bd7

@ -23,18 +23,7 @@ class DashboardController < SqmApplicationController
end end
def presenter_for_measure(measure) def presenter_for_measure(measure)
sufficient_data = SurveyItemResponse.sufficient_data?(measure: measure, academic_year: academic_year, school: school) score = sufficient_data?(measure: measure) ? score(measure: measure) : nil
unless sufficient_data
return MeasureGraphRowPresenter.new(
measure: measure,
sufficient_data: false
)
end
score = SurveyItemResponse.for_measure(measure)
.where(academic_year: academic_year, school: school)
.average(:likert_score)
MeasureGraphRowPresenter.new( MeasureGraphRowPresenter.new(
measure: measure, measure: measure,
@ -42,4 +31,14 @@ class DashboardController < SqmApplicationController
) )
end end
def sufficient_data?(measure:)
SurveyItemResponse.sufficient_data?(measure: measure, academic_year: academic_year, school: school)
end
def score(measure:)
SurveyItemResponse.for_measure(measure)
.where(academic_year: academic_year, school: school)
.average(:likert_score)
end
end end

@ -44,6 +44,6 @@ module VarianceHelper
end end
def measures_with_insufficient_data(presenters:) def measures_with_insufficient_data(presenters:)
presenters.filter { |presenter| !presenter.sufficient_data? } presenters.filter { |presenter| presenter.score == nil }
end end
end end

@ -1,13 +1,15 @@
class MeasureGraphRowPresenter class MeasureGraphRowPresenter
include Comparable include Comparable
def initialize(measure:, score: 0, sufficient_data: true)
attr_reader :score
def initialize(measure:, score:)
@measure = measure @measure = measure
@score = score @score = score
@sufficient_data = sufficient_data
end end
def sufficient_data? def sufficient_data?
@sufficient_data @score != nil
end end
def measure_name def measure_name

@ -16,10 +16,10 @@ describe 'dashboard/index.html.erb' do
context 'when there are measures for which, in the given academic year, the school has insufficient responses' do context 'when there are measures for which, in the given academic year, the school has insufficient responses' do
let(:measure_graph_row_presenters) { let(:measure_graph_row_presenters) {
[ [
MeasureGraphRowPresenter.new(measure: support_for_teaching, score: 0, sufficient_data: false), MeasureGraphRowPresenter.new(measure: support_for_teaching, score: nil),
MeasureGraphRowPresenter.new(measure: create(:measure), score: 0, sufficient_data: true), MeasureGraphRowPresenter.new(measure: create(:measure), score: rand),
MeasureGraphRowPresenter.new(measure: effective_leadership, score: 0, sufficient_data: false), MeasureGraphRowPresenter.new(measure: effective_leadership, score: nil),
MeasureGraphRowPresenter.new(measure: professional_qualifications, score: 0, sufficient_data: false) MeasureGraphRowPresenter.new(measure: professional_qualifications, score: nil)
] ]
} }
@ -31,7 +31,7 @@ describe 'dashboard/index.html.erb' do
context 'when there are no measures for which, in the given academic year, the school has insufficient responses' do context 'when there are no measures for which, in the given academic year, the school has insufficient responses' do
let(:measure_graph_row_presenters) { let(:measure_graph_row_presenters) {
[ [
MeasureGraphRowPresenter.new(measure: create(:measure), score: 0, sufficient_data: true) MeasureGraphRowPresenter.new(measure: create(:measure), score: rand)
] ]
} }

Loading…
Cancel
Save