From 78fb737f5a2d7c2867812d8060cd5bf564f0a097 Mon Sep 17 00:00:00 2001 From: Nelson Jovel Date: Tue, 29 Mar 2022 14:02:43 -0700 Subject: [PATCH] Make measure titles clickable on the variance chart --- .../variance_chart_row_presenter.rb | 13 +- .../categories/_measures_section.html.erb | 2 +- app/views/overview/_variance_chart.html.erb | 281 +++++++++--------- spec/views/overview/index.html.erb_spec.rb | 5 +- .../overview/variance_chart.html.erb_spec.rb | 6 + 5 files changed, 155 insertions(+), 152 deletions(-) diff --git a/app/presenters/variance_chart_row_presenter.rb b/app/presenters/variance_chart_row_presenter.rb index 75e6e294..2c9dfa29 100644 --- a/app/presenters/variance_chart_row_presenter.rb +++ b/app/presenters/variance_chart_row_presenter.rb @@ -1,27 +1,22 @@ class VarianceChartRowPresenter include Comparable - attr_reader :score + attr_reader :score, :measure_name, :measure_id, :category def initialize(measure:, score:) @measure = measure @score = score.average @meets_teacher_threshold = score.meets_teacher_threshold? @meets_student_threshold = score.meets_student_threshold? + @measure_name = @measure.name + @measure_id = @measure.measure_id + @category = @measure.subcategory.category end def sufficient_data? @score != nil end - def measure_name - @measure.name - end - - def measure_id - @measure.measure_id - end - def bar_color "fill-#{zone.type}" end diff --git a/app/views/categories/_measures_section.html.erb b/app/views/categories/_measures_section.html.erb index d9e534c8..562b4a87 100644 --- a/app/views/categories/_measures_section.html.erb +++ b/app/views/categories/_measures_section.html.erb @@ -1,4 +1,4 @@ -
+

Measure <%= measure_presenter.id %>

<%= measure_presenter.name %>

diff --git a/app/views/overview/_variance_chart.html.erb b/app/views/overview/_variance_chart.html.erb index 1e754913..a48aa780 100644 --- a/app/views/overview/_variance_chart.html.erb +++ b/app/views/overview/_variance_chart.html.erb @@ -2,165 +2,164 @@ <% not_displayed_presenters = presenters - displayed_presenters %> <% if displayed_presenters.none? %> -

Note: No measures can be displayed due to limited availability of school admin data and/or low survey response rates.

+

Note: No measures can be displayed due to limited availability of school admin data and/or low survey response rates.

<% elsif not_displayed_presenters.present? %> -

Note: The following measures are not displayed due to limited availability of school admin data and/or low survey response rates: <%= not_displayed_presenters.map(&:measure_name).join('; ') %>.

+

Note: The following measures are not displayed due to limited availability of school admin data and/or low survey response rates: <%= not_displayed_presenters.map(&:measure_name).join('; ') %>.

<% end %> xmlns="http://www.w3.org/2000/svg"> - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - <% zones.each_with_index do |zone, index| %> - - <%= zone.capitalize %> - - <% end %> - + + + <% zones.each_with_index do |zone, index| %> + + <%= zone.capitalize %> + + <% end %> + - - <% zones.each_with_index do |zone, index| %> - - <% end %> - - + + <% zones.each_with_index do |zone, index| %> + + <% end %> + + - - - <% displayed_presenters.each_with_index do |presenter, index| %> - <% if presenter.show_partial_data_indicator? %> - - - - <% end %> - <% end %> - + + + <% displayed_presenters.each_with_index do |presenter, index| %> + <% if presenter.show_partial_data_indicator? %> + + + + <% end %> + <% end %> + - > - <% displayed_presenters.each_with_index do |presenter, index| %> - -

- <%= presenter.measure_name %> -

-
- <% end %> + > + <% displayed_presenters.each_with_index do |presenter, index| %> + - <% if displayed_presenters.none? %> - - Insufficient data - - <% end %> - + <%= link_to(presenter.measure_name, district_school_category_path( @district, @school, presenter.category, {year: @academic_year.range, anchor: "#{presenter.measure_id}"}), class: "measure-row-label") %> + + <% end %> - + - <% displayed_presenters.each_with_index do |presenter, index| %> - - <% end %> - -
+ Insufficient data + + <% end %> +
- - - + <% displayed_presenters.each_with_index do |presenter, index| %> + + <% end %> + - - + + - Benchmark - - + transform="translate(-1, 0)" + y="0" + width="4" + height="100%" + fill="black" + /> + + + + + + Benchmark + + diff --git a/spec/views/overview/index.html.erb_spec.rb b/spec/views/overview/index.html.erb_spec.rb index 2d103557..58968f48 100644 --- a/spec/views/overview/index.html.erb_spec.rb +++ b/spec/views/overview/index.html.erb_spec.rb @@ -42,7 +42,10 @@ describe 'overview/index' do before :each do assign :category_presenters, [] assign :variance_chart_row_presenters, variance_chart_row_presenters - assign :academic_years, [] + @academic_year = create(:academic_year) + assign :academic_years, [@academic_year] + @district = create(:district) + @school = create(:school) render end diff --git a/spec/views/overview/variance_chart.html.erb_spec.rb b/spec/views/overview/variance_chart.html.erb_spec.rb index efa5c515..d4ea21e5 100644 --- a/spec/views/overview/variance_chart.html.erb_spec.rb +++ b/spec/views/overview/variance_chart.html.erb_spec.rb @@ -1,6 +1,12 @@ require 'rails_helper' describe 'overview/_variance_chart.html.erb' do + before do + @academic_year = create(:academic_year) + @district = create(:district) + @school = create(:school) + end + context 'When there are scores to show' do subject { Nokogiri::HTML(rendered) }