From 964febee46fd5af651c0006c65ed20df99634e1b Mon Sep 17 00:00:00 2001 From: Nelson Jovel Date: Wed, 25 Sep 2024 12:08:24 -0700 Subject: [PATCH] feat: rename export reports --- app/controllers/exports_controller.rb | 60 +++++++++++++++------------ 1 file changed, 33 insertions(+), 27 deletions(-) diff --git a/app/controllers/exports_controller.rb b/app/controllers/exports_controller.rb index 1186b206..7cf054d5 100644 --- a/app/controllers/exports_controller.rb +++ b/app/controllers/exports_controller.rb @@ -26,21 +26,10 @@ class ExportsController < ApplicationController year_params = params.select { |param| param.start_with?("academic_year") }.values academic_years = AcademicYear.where(range: year_params) group = params["school_group"] - - if group == "district" - district_id ||= params[:district]&.to_i if params[:district].present? - district = District.find(district_id) if district_id.present? - district ||= District.first - schools = district.schools - elsif group == "school" - schools = [School.find_by_name(params["school"])] - elsif group == "all" - schools = School.all - end - + schools = schools_for_group(group) report = params[:report] - if ["Survey Item - By Item", "Survey Item - By Grade", "Survey Item Response"].include?(report) + if ["Survey Item - By Item", "Survey Item - By Grade", "Survey Entries - by Measure"].include?(report) use_student_survey_items = student_survey_types[params[:student_survey_type]] reports[report].call(schools, academic_years, use_student_survey_items) else @@ -52,20 +41,37 @@ class ExportsController < ApplicationController private + def schools_for_group(group) + if group == "district" + district_id ||= params[:district]&.to_i if params[:district].present? + district = District.find(district_id) if district_id.present? + district ||= District.first + district.schools + elsif group == "school" + [School.find_by_name(params["school"])] + elsif group == "all" + School.all + end + end + def reports - { "Subcategory" => lambda { |schools, academic_years| - data = Report::Subcategory.to_csv(schools:, academic_years:) - send_data data, disposition: "attachment", filename: "subcategory_#{Date.today}.csv" - }, - "Measure Summary" => lambda { |schools, academic_years| - data = Report::MeasureSummary.to_csv(schools:, academic_years:, measures: Measure.all) - send_data data, disposition: "attachment", - filename: "measure_summary_#{Date.today}.csv" - }, - "Measure Detailed" => lambda { |schools, academic_years| - data = Report::Measure.to_csv(schools:, academic_years:, measures: ::Measure.all) - send_data data, disposition: "attachment", filename: "measure_detailed_#{Date.today}.csv" - }, + { "Subcategory - School & District" => lambda { |schools, academic_years| + data = Report::Subcategory.to_csv(schools:, academic_years:) + send_data data, disposition: "attachment", + filename: "subcategory_#{Date.today}.csv" + }, + "Measure - District only" => lambda { |schools, academic_years| + data = Report::MeasureSummary.to_csv(schools:, academic_years:, + measures: Measure.all) + send_data data, disposition: "attachment", + filename: "measure_summary_#{Date.today}.csv" + }, + "Measure - School & District" => lambda { |schools, academic_years| + data = Report::Measure.to_csv(schools:, academic_years:, + measures: ::Measure.all) + send_data data, disposition: "attachment", + filename: "measure_detailed_#{Date.today}.csv" + }, "Beyond Learning Loss" => lambda { |schools, academic_years| measure_ids = %w[2A-i 2A-ii 2B-i 2B-ii 2C-i 2C-ii 4B-i 5B-i 5B-ii 5D-i] scales = measure_ids.map do |measure_id| @@ -88,7 +94,7 @@ class ExportsController < ApplicationController disposition: "attachment", filename: "survey_item_by_grade_#{Date.today}.csv" }, - "Survey Item Response" => lambda { |schools, academic_years, use_student_survey_items| + "Survey Entries - by Measure" => lambda { |schools, academic_years, use_student_survey_items| data = Report::SurveyItemResponse.to_csv(schools:, academic_years:, use_student_survey_items:) send_data data, disposition: "attachment", filename: "survey_item_response_#{Date.today}.csv" } }