@ -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
private
@ -126,6 +120,6 @@ class EnrollmentRowValues
def total_students
row['Total'].gsub(',', '').to_i
row['Total'].delete(',').to_i
@ -4,19 +4,15 @@ require 'csv'
class StaffingLoader
respondents = []
row = StaffingRowValues.new(row:)
respondents << create_staffing_entry(row:)
Respondent.import respondents, batch_size: 1000, on_duplicate_key_update: [:total_teachers]
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
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
@ -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')