diff --git a/CHANGELOG.md b/CHANGELOG.md index 75dc4486..4e3cbdb8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -67,6 +67,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Read survey results from sftp - add admin data for 3A-i and 3B-i - Fix bug where cultural responsiveness gives a false score of 1 when there is actually no data for that year +- Add multiple surveys per year + + `bundle exec rake one_off:delete_2022_24` + + `bundle exec rake db:seed` + + `bundle exec rake data:load_survey_responses_from_path SFTP_PATH=/data/survey_responses/clean/2022_23_Pre` + + `bundle exec rake data:load_survey_responses_from_path SFTP_PATH=/data/survey_responses/clean/2022_23_Post` + + `bundle exec rake data:load_survey_responses_from_path SFTP_PATH=/data/survey_responses/clean/2023_24_Pre` + + `bundle exec rake data:load_survey_responses_from_path SFTP_PATH=/data/survey_responses/clean/2023_24_Post` + + `bundle exec rake data:load_admin_data` ## [Unreleased] diff --git a/app/services/survey_item_values.rb b/app/services/survey_item_values.rb index 268799bb..dee586e2 100644 --- a/app/services/survey_item_values.rb +++ b/app/services/survey_item_values.rb @@ -193,12 +193,12 @@ class SurveyItemValues def value_from(pattern:) output = nil - matches = headers.select do |header| - pattern.match(header) - end.map { |item| item.delete("\n") } + matches = headers + .select { |header| pattern.match(header) } + .map { |item| item.delete("\n") } - matches.each do |match| - output ||= row[match]&.strip + output = matches.find do |match| + row[match]&.strip == nil? end return nil if output&.match?(%r{^#*N/*A$}i) || output.blank? diff --git a/db/seeds.rb b/db/seeds.rb index cfb7a5ba..c3f2b261 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -2,8 +2,9 @@ require "#{Rails.root}/app/lib/seeder" seeder = Seeder.new -seeder.seed_academic_years "2016-17", "2017-18", "2018-19", "2019-20", "2020-21", "2021-22", "2022-23", "2023-24", - "2024-25" +seeder.seed_academic_years "2016-17", "2017-18", "2018-19", "2019-20", "2020-21", "2021-22", + "2022-23 Fall", "2022-23 Spring", "2023-24 Fall", "2023-24 Spring" + seeder.seed_districts_and_schools Rails.root.join("data", "master_list_of_schools_and_districts.csv") seeder.seed_sqm_framework Rails.root.join("data", "sqm_framework.csv") seeder.seed_demographics Rails.root.join("data", "demographics.csv") diff --git a/lib/tasks/one_off.rake b/lib/tasks/one_off.rake index 73b71f07..048428a5 100644 --- a/lib/tasks/one_off.rake +++ b/lib/tasks/one_off.rake @@ -127,12 +127,15 @@ namespace :one_off do seeder.seed_staffing Rails.root.join("data", "staffing", "wi_staffing.csv") end - desc "delete 2023-24 AcademicYear and all responses, admin data, enrollment numbers and staffing numbers" - task delete_2023_24: :environment do - academic_year = AcademicYear.find_by_range "2023-24" - AdminDataValue.where(academic_year:).delete_all - Respondent.where(academic_year:).delete_all - SurveyItemResponse.where(academic_year:).delete_all - academic_year.delete + desc "delete 2022-24 AcademicYear and all responses, admin data, enrollment numbers and staffing numbers" + task delete_2022_24: :environment do + academic_years = AcademicYear.where(range: ["2022-23", "2023-24", "2024-25", "2022-23 Fall", "2022-23 Spring", "2023-24 Fall", + "2023-24 Spring"]) + academic_years.each do |academic_year| + AdminDataValue.where(academic_year:).delete_all + Respondent.where(academic_year:).delete_all + SurveyItemResponse.where(academic_year:).delete_all + academic_year.delete + end end end