sqm-dashboards/lib/tasks/one_off.rake
Nelson Jovel ac5c1edfbf feat: Split academic year into seasons if the academic year's range is
initialized with a season, i.e. "2024-25 Fall".  Update scapers for
admin data, enrollment and staffing to use the new range standard
correctly.   Update the loaders for admin data, enrollment and staffing
so that it populates all seasons in a given year.  So admin data for
2024-25 gets loaded into "2024-25 Fall" and "2024-25 Spring".  Add tests
for the new range format.  Set the default cutoff for the start of Spring season will be the last Sunday in February
2024-04-27 14:24:05 -07:00

73 lines
2.7 KiB
Ruby

namespace :one_off do
desc "list survey_items that have no survey responses by district"
task list_survey_items_that_lack_responses: :environment do
output = AcademicYear.all.map do |academic_year|
District.all.map do |district|
SurveyItem.all.map do |survey_item|
[academic_year.range, survey_item.survey_item_id,
survey_item.survey_item_responses.joins(:school).where("school.district": district, academic_year:).count, district.name]
end
end
end
output = output.map do |year|
year.map do |district|
district.reject do |survey_item|
survey_item[2] > 0 || survey_item[1].starts_with?("a-")
end
end
end
pp output
end
desc "list the most recent admin data values"
task list_recent_admin_data_values: :environment do
range = 4.weeks.ago..1.second.ago
values = AdminDataValue.where(updated_at: range).group(:admin_data_item).count.map do |item|
[item[0].admin_data_item_id, item[0].scale.measure.measure_id]
end
puts values
end
desc "change dese id of Minot Forest Elementary School"
task change_dese_id: :environment do
school = School.find_by_name "Minot Forest Elementary School"
school.dese_id = 310_001_799
school.save
school = School.find_by_name "Wareham Elementary School"
school.slug = school.name.parameterize
school.dese_id = 310_001_7
school.save
end
desc "delete measures we don't want to show"
task delete_library_measure: :environment do
measure = Measure.find_by_measure_id("3B-iv")
measure.scales.each { |scale| scale.survey_items.each { |survey_item| survey_item.delete } }
measure.scales.each { |scale| scale.delete }
measure.delete
end
desc "delete last year of respondent data and reseed numbers"
task reseed_respondents: :environment do
Respondent.delete_all
seeder = Seeder.new
seeder.seed_enrollment Rails.root.join("data", "enrollment", "enrollment.csv")
seeder.seed_enrollment Rails.root.join("data", "enrollment", "nj_enrollment.csv")
seeder.seed_enrollment Rails.root.join("data", "enrollment", "wi_enrollment.csv")
seeder.seed_staffing Rails.root.join("data", "staffing", "staffing.csv")
seeder.seed_staffing Rails.root.join("data", "staffing", "nj_staffing.csv")
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
end
end