mirror of
https://github.com/edcommonwealth/sqm-dashboards.git
synced 2026-03-08 23:18:18 -07:00
Add New Jersey enrollment and staffing data
This commit is contained in:
parent
93d087a5de
commit
a30921ce06
5 changed files with 11 additions and 11 deletions
|
|
@ -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
|
||||
|
|
|
|||
4
data/enrollment/nj_enrollment.csv
Normal file
4
data/enrollment/nj_enrollment.csv
Normal file
|
|
@ -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
|
||||
|
4
data/staffing/nj_staffing.csv
Normal file
4
data/staffing/nj_staffing.csv
Normal file
|
|
@ -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
|
||||
|
|
|
@ -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…
Add table
Add a link
Reference in a new issue