From 16569974a6f6f775c8e98d16dfb85f98d3d2ee4c Mon Sep 17 00:00:00 2001 From: Nelson Jovel Date: Tue, 31 May 2022 15:49:59 -0700 Subject: [PATCH] Add checkboxes to select academic years for analyze page. Stimulus controller reads the state of the checkboxes and builds the correct link to route the user --- app/assets/stylesheets/partials/_colors.scss | 24 +++++++++++++++++++ app/controllers/analyze_controller.rb | 10 +++++++- .../controllers/analyze_controller.js | 14 ++++++++++- app/views/analyze/index.html.erb | 10 ++++++-- spec/views/analyze/index.html.erb_spec.rb | 3 +++ 5 files changed, 57 insertions(+), 4 deletions(-) diff --git a/app/assets/stylesheets/partials/_colors.scss b/app/assets/stylesheets/partials/_colors.scss index d1de3207..54dde4f1 100644 --- a/app/assets/stylesheets/partials/_colors.scss +++ b/app/assets/stylesheets/partials/_colors.scss @@ -61,6 +61,30 @@ $ideal: $purple; background-color: $blue; } +.bg-color-purple { + background-color: $purple; +} + +.bg-color-light-purple { + background-color: $light-purple; +} + +.bg-color-gold { + background-color: $gold; +} + +.bg-color-light-gold { + background-color: $light-gold; +} + +.bg-color-lime { + color: $lime; +} + +.bg-color-teal { + color: $teal; +} + .bg-color-white { background-color: $white; } diff --git a/app/controllers/analyze_controller.rb b/app/controllers/analyze_controller.rb index 2f94ef39..2bbd3f3b 100644 --- a/app/controllers/analyze_controller.rb +++ b/app/controllers/analyze_controller.rb @@ -8,6 +8,14 @@ class AnalyzeController < SqmApplicationController @subcategory ||= Subcategory.find_by_subcategory_id(params[:subcategory]) @subcategory ||= @subcategories.first - @measures = @subcategory.measures.order(:measure_id).includes(%i[scales admin_data_items]) + @measures = @subcategory.measures.order(:measure_id).includes(%i[scales admin_data_items subcategory]) + + @available_academic_years = AcademicYear.order(:range).all + @academic_year_params = params[:academic_years].split(',') if params[:academic_years] + @selected_academic_years = [] + @academic_year_params.each do |year| + @selected_academic_years << AcademicYear.find_by_range(year) + end + @selected_academic_years = [@academic_year] if @selected_academic_years.empty? end end diff --git a/app/javascript/controllers/analyze_controller.js b/app/javascript/controllers/analyze_controller.js index ed0d0ae2..7a1f0721 100644 --- a/app/javascript/controllers/analyze_controller.js +++ b/app/javascript/controllers/analyze_controller.js @@ -4,6 +4,18 @@ import { Controller } from "@hotwired/stimulus" export default class extends Controller { connect() { } refresh(event) { - window.location = event.target.value + let location = event.target.value+ "&academic_years="; + let year_checkboxes = document.getElementsByName("year-checkbox"); + let selected_years = []; + + let ending = ""; + year_checkboxes.forEach((item)=>{ + if(item.checked) { + selected_years.push(item.id) + } + }) + + console.log(location) + window.location = location + selected_years.join(",") } } diff --git a/app/views/analyze/index.html.erb b/app/views/analyze/index.html.erb index 89776bdb..1581fdcf 100644 --- a/app/views/analyze/index.html.erb +++ b/app/views/analyze/index.html.erb @@ -2,7 +2,6 @@

Analysis of <%= @school.name %>

<% end %> -
diff --git a/spec/views/analyze/index.html.erb_spec.rb b/spec/views/analyze/index.html.erb_spec.rb index f3c03ecc..8ce6594f 100644 --- a/spec/views/analyze/index.html.erb_spec.rb +++ b/spec/views/analyze/index.html.erb_spec.rb @@ -47,6 +47,8 @@ describe 'analyze/index' do # assign :category_presenters, [] # assign :grouped_bar_column_presenters, grouped_bar_column_presenters assign :academic_year, academic_year + assign :available_academic_years, [academic_year] + assign :selected_academic_years, [academic_year] # assign :academic_years, [academic_year] assign :district, create(:district) assign :school, create(:school) @@ -96,6 +98,7 @@ describe 'analyze/index' do expect(subject).to have_text 'Focus Area' expect(subject).to have_css '#select-category' expect(subject).to have_css '#select-subcategory' + expect(subject).to have_css "##{academic_year.range}" end end end