From 1aebc23721a67f4008a53d804af14ad211d7b62c Mon Sep 17 00:00:00 2001 From: rebuilt Date: Tue, 13 Jun 2023 09:21:06 -0700 Subject: [PATCH] chore: remove unneeded tasks --- lib/tasks/one_off.rake | 331 ----------------------------------------- 1 file changed, 331 deletions(-) diff --git a/lib/tasks/one_off.rake b/lib/tasks/one_off.rake index cb4ac63b..722b77c3 100644 --- a/lib/tasks/one_off.rake +++ b/lib/tasks/one_off.rake @@ -40,56 +40,6 @@ namespace :one_off do end end - desc 'load stoklosa results for 2022-23' - task load_stoklosa: :environment do - survey_item_response_count = SurveyItemResponse.count - school = School.find_by_dese_id(1_600_360) - academic_year = AcademicYear.find_by_range('2022-23') - - ['2022-23_stoklosa_student_survey_responses.csv', - '2022-23_stoklosa_teacher_survey_responses.csv'].each do |filepath| - filepath = Rails.root.join('data', 'survey_responses', filepath) - puts "=====================> Loading data from csv at path: #{filepath}" - SurveyResponsesDataLoader.load_data filepath: - end - puts "=====================> Completed loading #{SurveyItemResponse.count - survey_item_response_count} survey responses. #{SurveyItemResponse.count} total responses in the database" - - puts 'Resetting response rates' - ResponseRateLoader.reset(schools: [school], - academic_years: [academic_year]) - - Dir.glob(Rails.root.join('data', 'survey_responses', - '2022-23_stoklosa_student_survey_responses.csv')).each do |file| - puts "=====================> Loading student data from csv at path: #{file}" - StudentLoader.load_data filepath: file, rules: [Rule::SkipNonLowellSchools] - end - puts 'Resetting race scores' - RaceScoreLoader.reset(fast_processing: true, schools: [school], academic_years: [academic_year]) - puts "=====================> Completed recalculating #{ResponseRate.count} response rates" - end - - desc 'load butler results for 2022-23' - task load_butler: :environment do - ['2022-23_butler_student_survey_responses.csv', - '2022-23_butler_teacher_survey_responses.csv'].each do |filepath| - filepath = Rails.root.join('data', 'survey_responses', filepath) - puts "=====================> Loading data from csv at path: #{filepath}" - SurveyResponsesDataLoader.load_data filepath: - end - puts 'Resetting response rates' - ResponseRateLoader.reset - puts "=====================> Completed recalculating #{ResponseRate.count} response rates" - end - - desc 'reset race score calculations' - task reset_race_scores_2021: :environment do - puts 'Resetting race scores' - academic_years = [AcademicYear.find_by_range('2021-22')] - RaceScoreLoader.reset(academic_years:, fast_processing: true) - Rails.cache.clear - puts "=====================> Completed loading #{RaceScore.count} race scores" - end - desc 'list scales that have no survey responses' task list_scales_that_lack_survey_responses: :environment do output = AcademicYear.all.map do |academic_year| @@ -191,285 +141,4 @@ namespace :one_off do SurveyItemResponse.where(response_id: 'R_27fKhVfyeKGMF5q').delete_all SurveyItemResponse.where(response_id: 'R_2cjPX1Ngxr2Hc4c').delete_all end - desc "Generate CSV report of teacher survey item responses" - task teacher_survey_questions_csv: :environment do - headers = ['School ID', 'Academic Year', 'Survey Item','Prmpt', 'Count','Percentage_diff'] - output_rows = [] - counts={} - avg=0 - School.all.each do |sc| - AcademicYear.all.each do |ay| - sum=0 - nof_si=0 - threshold = Respondent.where(school: sc, academic_year: ay).pluck(:total_teachers) - SurveyItem.teacher_survey_items.all.each do |si| - c = SurveyItemResponse.where(school: sc, academic_year: ay, survey_item: si).group(:school_id).count - if c.any? - counts[[sc.id, ay.id, si.id]] = c - sum+=c.values.first - nof_si+=1 - end - end - - - avg = sum.to_f/ nof_si - counts.each do |key, value| - if key[0] == sc.id && key[1] == ay.id - count = value.values.first - percentage_diff = ((count-avg) / avg) * 100 - counts[key] = { count: count, percentage_diff: percentage_diff } - end - end - end end - - counts.each do |key, value| - output_rows << [School.where(id:key[0]).pluck(:name) , AcademicYear.where(id:key[1]).pluck(:range) , SurveyItem.where(id:key[2]).pluck(:survey_item_id), SurveyItem.where(id:key[2]).pluck(:prompt), value[:count], value[:percentage_diff]] - end - - file = File.new('teacher_survey_questions.csv', 'w') - CSV.open(file, 'w', write_headers: true, headers: headers) do |csv| - output_rows.each do |row| - csv << row - end - end - - file.close - puts "CSV report of teacher survey item responses with removed stray responses.csv" - end - - desc "Generate CSV report of regular survey item responses" - task regular_survey_questions_csv: :environment do - headers = ['School ID', 'Academic Year', 'Survey Item','Prompt', 'Count','Percentage_diff'] - output_rows = [] - counts={} - avg=0 - temp=0 - count_response_grades_not_in_grades=0 - School.all.each do |sc| - AcademicYear.all.each do |ay| - if Respondent.where(school: sc,academic_year:ay).any? - grades_count=Respondent.where(school:sc,academic_year:ay).first.counts_by_grade - grades= grades_count.keys - else - grades=[] - end - sum=0 - nof_si=0 - threshold=0 - threshold = Respondent.where(school: sc, academic_year: ay).pluck(:total_students) - SurveyItem.where.not(on_short_form:true).where.not("survey_items.survey_item_id LIKE '%-%-es%'").where.not("survey_items.survey_item_id LIKE 't-%'").all.each do |si| - c = SurveyItemResponse.where(school: sc, academic_year: ay, survey_item: si).group(:school_id).count - response_grades = SurveyItemResponse.where(school: sc, academic_year: ay, survey_item: si).pluck(:grade) - t = response_grades.count { |grade| !grades.include?(grade) } - count_response_grades_not_in_grades+=t - response_grades=[] - if c.any? - c[c.keys.first] = c.values.first - t - end - - if threshold.any? - if c.any? && (c.values.first >= 10 || c.values.first > threshold.first/4) - counts[[sc.id, ay.id, si.id]] = c - sum+=c.values.first - nof_si+=1 - end - end - end - - - avg = sum.to_f/ nof_si - counts.each do |key, value| - if key[0] == sc.id && key[1] == ay.id - count = value.values.first - percentage_diff = ((count-avg) / avg) * 100 - counts[key] = { count: count, percentage_diff: percentage_diff } - end - end - end end - - counts.each do |key, value| - output_rows << [School.where(id:key[0]).pluck(:name) , AcademicYear.where(id:key[1]).pluck(:range) , SurveyItem.where(id:key[2]).pluck(:survey_item_id), SurveyItem.where(id:key[2]).pluck(:prompt), value[:count], value[:percentage_diff]] - end - - file = File.new('regular_survey_questions.csv', 'w') - CSV.open(file, 'w', write_headers: true, headers: headers) do |csv| - output_rows.each do |row| - csv << row - end - end - - file.close - puts "CSV report of regular survey item responses with removed stray responses.csv" - end - - desc "Generate CSV report of short survey item responses" - task short_survey_questions_csv: :environment do - headers = ['School ID', 'Academic Year', 'Survey Item','Prompt', 'Count','Percentage_diff'] - output_rows = [] - counts={} - avg=0 - temp=0 - count_response_grades_not_in_grades=0 - School.all.each do |sc| - AcademicYear.all.each do |ay| - if Respondent.where(school: sc,academic_year:ay).any? - grades_count=Respondent.where(school:sc,academic_year:ay).first.counts_by_grade - grades= grades_count.keys - else - grades=[] - end - sum=0 - nof_si=0 - threshold=0 - threshold = Respondent.where(school: sc, academic_year: ay).pluck(:total_students) - SurveyItem.short_form_items.all.each do |si| - c = SurveyItemResponse.where(school: sc, academic_year: ay, survey_item: si).group(:school_id).count - response_grades = SurveyItemResponse.where(school: sc, academic_year: ay, survey_item: si).pluck(:grade) - t = response_grades.count { |grade| !grades.include?(grade) } - count_response_grades_not_in_grades+=t - response_grades=[] - if c.any? - c[c.keys.first] = c.values.first - t - end - - if threshold.any? - if c.any? && (c.values.first >= 10 || c.values.first > threshold.first/4) - counts[[sc.id, ay.id, si.id]] = c - sum+=c.values.first - nof_si+=1 - end - end - end - - - avg = sum.to_f/ nof_si - counts.each do |key, value| - if key[0] == sc.id && key[1] == ay.id - count = value.values.first - percentage_diff = ((count-avg) / avg) * 100 - counts[key] = { count: count, percentage_diff: percentage_diff } - end - end - end end - - counts.each do |key, value| - output_rows << [School.where(id:key[0]).pluck(:name) , AcademicYear.where(id:key[1]).pluck(:range) , SurveyItem.where(id:key[2]).pluck(:survey_item_id), SurveyItem.where(id:key[2]).pluck(:prompt), value[:count], value[:percentage_diff]] - end - - file = File.new('short_survey_questions.csv', 'w') - CSV.open(file, 'w', write_headers: true, headers: headers) do |csv| - output_rows.each do |row| - csv << row - end - end - - file.close - puts "CSV report of short survey item responses with removed stray responses.csv" - end - - - desc "Generate CSV report of early_education_surveysitem responses" - task early_education_survey_questions_csv: :environment do - headers = ['School ID', 'Academic Year', 'Survey Item','Prompt', 'Count','Percentage_diff'] - output_rows = [] - counts={} - avg=0 - temp=0 - count_response_grades_not_in_grades=0 - School.all.each do |sc| - AcademicYear.all.each do |ay| - if Respondent.where(school: sc,academic_year:ay).any? - grades_count=Respondent.where(school:sc,academic_year:ay).first.counts_by_grade - grades= grades_count.keys - else - grades=[] - end - sum=0 - nof_si=0 - threshold=0 - threshold = Respondent.where(school: sc, academic_year: ay).pluck(:total_students) - SurveyItem.early_education_surveys.all.each do |si| - c = SurveyItemResponse.where(school: sc, academic_year: ay, survey_item: si).group(:school_id).count - response_grades = SurveyItemResponse.where(school: sc, academic_year: ay, survey_item: si).pluck(:grade) - t = response_grades.count { |grade| !grades.include?(grade) } - count_response_grades_not_in_grades+=t - response_grades=[] - if c.any? - c[c.keys.first] = c.values.first - t - end - - if threshold.any? - if c.any? && (c.values.first >= 10 || c.values.first > threshold.first/4) - counts[[sc.id, ay.id, si.id]] = c - sum+=c.values.first - nof_si+=1 - end - end - end - - - avg = sum.to_f/ nof_si - counts.each do |key, value| - if key[0] == sc.id && key[1] == ay.id - count = value.values.first - percentage_diff = ((count-avg) / avg) * 100 - counts[key] = { count: count, percentage_diff: percentage_diff } - end - end - end end - - counts.each do |key, value| - output_rows << [School.where(id:key[0]).pluck(:name) , AcademicYear.where(id:key[1]).pluck(:range) , SurveyItem.where(id:key[2]).pluck(:survey_item_id), SurveyItem.where(id:key[2]).pluck(:prompt), value[:count], value[:percentage_diff]] - end - - file = File.new('early_education_surveys_questions.csv', 'w') - CSV.open(file, 'w', write_headers: true, headers: headers) do |csv| - output_rows.each do |row| - csv << row - end - end - - file.close - puts "CSV report of early_education_surveys items with removed stray responses.csv" - end - - - desc "Generate CSV report of survey item responses" - task stray_responses: :environment do - - headers = ['School ID', 'Academic Year', 'Survey Item', 'Count','SurveyItemResponse ids'] - - - output_rows = [] - sir_ids=[] - - - School.all.each do |sc| - AcademicYear.all.each do |ay| - SurveyItem.all.each do |si| - count = SurveyItemResponse.where(school: sc, academic_year: ay, survey_item: si).count - sir_ids= SurveyItemResponse.where(school: sc, academic_year: ay, survey_item: si).pluck(:response_id) - - if count > 0 && count < 10 - - output_rows << [sc.name, ay.range, si.survey_item_id, count,sir_ids] - end - end - end - end - - - file = File.new('stray_responses.csv', 'w') - - CSV.open(file, 'w', write_headers: true, headers: headers) do |csv| - output_rows.each do |row| - csv << row - end - end - - - file.close - - puts "CSV report of survey item responses created in stray_responses.csv" - end end