mirror of
https://github.com/edcommonwealth/sqm-dashboards.git
synced 2026-03-08 23:18:18 -07:00
44 lines
1.2 KiB
Ruby
44 lines
1.2 KiB
Ruby
class DashboardController < SqmApplicationController
|
|
|
|
def index
|
|
@measure_graph_row_presenters = measure_ids
|
|
.map { |measure_id| Measure.find_by_measure_id measure_id }
|
|
.map(&method(:presenter_for_measure))
|
|
.sort
|
|
.reverse
|
|
|
|
@category_presenters = SqmCategory.all.map { |sqm_category| CategoryPresenter.new(
|
|
category: sqm_category,
|
|
academic_year: academic_year,
|
|
school: school,
|
|
)}
|
|
|
|
end
|
|
|
|
|
|
private
|
|
|
|
def measure_ids
|
|
Measure.all.map(&:measure_id)
|
|
end
|
|
|
|
def presenter_for_measure(measure)
|
|
score = sufficient_data?(measure: measure) ? score(measure: measure) : nil
|
|
|
|
MeasureGraphRowPresenter.new(
|
|
measure: measure,
|
|
score: score
|
|
)
|
|
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
|