Add New Jersey enrollment and staffing data

pull/1/head
rebuilt 3 years ago
parent 93d087a5de
commit a30921ce06

@ -4,23 +4,17 @@ require 'csv'
class EnrollmentLoader
def self.load_data(filepath:)
schools = []
enrollments = []
CSV.parse(File.read(filepath), headers: true) do |row|
row = EnrollmentRowValues.new(row:)
next unless row.school.present? && row.academic_year.present?
schools << row.school
enrollments << create_enrollment_entry(row:)
end
# It's possible that instead of updating all columns on duplicate key, we could just update the student columns and leave total_teachers alone. Right now enrollment data loads before staffing data so it works correctly.
Respondent.import enrollments, batch_size: 1000,
on_duplicate_key_update: %i[pk k one two three four five six seven eight nine ten eleven twelve total_students]
Respondent.where.not(school: schools).destroy_all
end
private
@ -126,6 +120,6 @@ class EnrollmentRowValues
end
def total_students
row['Total'].gsub(',', '').to_i
row['Total'].delete(',').to_i
end
end

@ -4,19 +4,15 @@ require 'csv'
class StaffingLoader
def self.load_data(filepath:)
schools = []
respondents = []
CSV.parse(File.read(filepath), headers: true) do |row|
row = StaffingRowValues.new(row:)
next unless row.school.present? && row.academic_year.present?
schools << row.school
respondents << create_staffing_entry(row:)
end
Respondent.import respondents, batch_size: 1000, on_duplicate_key_update: [:total_teachers]
Respondent.where.not(school: schools).destroy_all
end
def self.clone_previous_year_data

@ -0,0 +1,4 @@
Academic Year,School Name,DESE ID,PK,K,1,2,3,4,5,6,7,8,9,10,11,12,SP,Total
2022-23,John P. Faber School,50,37,94,80,89,103,104,99,,,,,,,,,569
2022-23,Lincoln Middle School,60,,,,,,,,102,94,93,,,,,,289
2022-23,Dunellen High School,40,,,,,,,,,,,109,85,82,76,,352
1 Academic Year School Name DESE ID PK K 1 2 3 4 5 6 7 8 9 10 11 12 SP Total
2 2022-23 John P. Faber School 50 37 94 80 89 103 104 99 569
3 2022-23 Lincoln Middle School 60 102 94 93 289
4 2022-23 Dunellen High School 40 109 85 82 76 352

@ -0,0 +1,4 @@
Academic Year,School Name,DESE ID,FTE Count
2022-23,John P. Faber School,50,57
2022-23,Lincoln Middle School,60,33
2022-23,Dunellen High School,40,40
1 Academic Year School Name DESE ID FTE Count
2 2022-23 John P. Faber School 50 57
3 2022-23 Lincoln Middle School 60 33
4 2022-23 Dunellen High School 40 40

@ -7,4 +7,6 @@ seeder.seed_districts_and_schools Rails.root.join('data', 'master_list_of_school
seeder.seed_sqm_framework Rails.root.join('data', 'sqm_framework.csv')
seeder.seed_demographics Rails.root.join('data', 'demographics.csv')
seeder.seed_enrollment Rails.root.join('data', 'enrollment', 'enrollment.csv')
seeder.seed_enrollment Rails.root.join('data', 'enrollment', 'nj_enrollment.csv')
seeder.seed_staffing Rails.root.join('data', 'staffing', 'staffing.csv')
seeder.seed_staffing Rails.root.join('data', 'staffing', 'nj_staffing.csv')

Loading…
Cancel
Save