mirror of
https://github.com/edcommonwealth/sqm-dashboards.git
synced 2026-03-11 00:10:35 -07:00
Merge branch 'rpp-response-rate' to bring in changes to test files
This commit is contained in:
commit
4c4ccc01cc
47 changed files with 48818 additions and 1354 deletions
|
|
@ -6,13 +6,18 @@ class Seeder
|
|||
end
|
||||
|
||||
def seed_academic_years(*academic_year_ranges)
|
||||
academic_years = []
|
||||
academic_year_ranges.each do |range|
|
||||
AcademicYear.find_or_create_by! range:
|
||||
academic_year = AcademicYear.find_or_initialize_by(range:)
|
||||
academic_years << academic_year
|
||||
end
|
||||
|
||||
AcademicYear.import academic_years, on_duplicate_key_update: :all
|
||||
end
|
||||
|
||||
def seed_districts_and_schools(csv_file)
|
||||
dese_ids = []
|
||||
schools = []
|
||||
CSV.parse(File.read(csv_file), headers: true) do |row|
|
||||
district_name = row['District'].strip
|
||||
next if rules.any? do |rule|
|
||||
|
|
@ -27,21 +32,26 @@ class Seeder
|
|||
hs = row['HS?']
|
||||
|
||||
district = District.find_or_create_by! name: district_name
|
||||
district.update! slug: district_name.parameterize, qualtrics_code: district_code
|
||||
district.slug = district_name.parameterize
|
||||
district.qualtrics_code = district_code
|
||||
district.save
|
||||
|
||||
school = School.find_or_initialize_by(dese_id:, district:)
|
||||
school.name = school_name
|
||||
school.qualtrics_code = school_code
|
||||
school.is_hs = marked? hs
|
||||
school.save!
|
||||
schools << school
|
||||
end
|
||||
|
||||
School.import schools, on_duplicate_key_update: :all
|
||||
|
||||
Respondent.joins(:school).where.not("school.dese_id": dese_ids).destroy_all
|
||||
Survey.joins(:school).where.not("school.dese_id": dese_ids).destroy_all
|
||||
School.where.not(dese_id: dese_ids).destroy_all
|
||||
end
|
||||
|
||||
def seed_surveys(csv_file)
|
||||
surveys = []
|
||||
CSV.parse(File.read(csv_file), headers: true) do |row|
|
||||
district_name = row['District'].strip
|
||||
next if rules.any? do |rule|
|
||||
|
|
@ -57,41 +67,11 @@ class Seeder
|
|||
survey = Survey.find_or_initialize_by(school:, academic_year:)
|
||||
is_short_form_school = marked?(short_form)
|
||||
survey.form = is_short_form_school ? Survey.forms[:short] : Survey.forms[:normal]
|
||||
survey.save!
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def seed_respondents(csv_file)
|
||||
schools = []
|
||||
CSV.parse(File.read(csv_file), headers: true) do |row|
|
||||
dese_id = row['DESE School ID'].strip.to_i
|
||||
|
||||
district_name = row['District'].strip
|
||||
next if rules.any? do |rule|
|
||||
rule.new(row:).skip_row?
|
||||
end
|
||||
|
||||
district = District.find_or_create_by! name: district_name
|
||||
|
||||
school = School.find_by(dese_id:, district:)
|
||||
schools << school
|
||||
|
||||
academic_years = AcademicYear.all
|
||||
academic_years.each do |academic_year|
|
||||
total_students = row["Total Students for Response Rate (#{academic_year.range})"]
|
||||
total_teachers = row["Total Teachers for Response Rate (#{academic_year.range})"]
|
||||
total_students = remove_commas(total_students)
|
||||
total_teachers = remove_commas(total_teachers)
|
||||
respondent = Respondent.find_or_initialize_by(school:, academic_year:)
|
||||
respondent.total_students = total_students
|
||||
respondent.total_teachers = total_teachers
|
||||
respondent.academic_year = academic_year
|
||||
respondent.save
|
||||
surveys << survey
|
||||
end
|
||||
end
|
||||
|
||||
Respondent.where.not(school: schools).destroy_all
|
||||
Survey.import surveys, on_duplicate_key_update: :all
|
||||
end
|
||||
|
||||
def seed_sqm_framework(csv_file)
|
||||
|
|
@ -164,6 +144,18 @@ class Seeder
|
|||
DemographicLoader.load_data(filepath: csv_file)
|
||||
end
|
||||
|
||||
def seed_enrollment(csv_file)
|
||||
EnrollmentLoader.load_data(filepath: csv_file)
|
||||
end
|
||||
|
||||
def seed_staffing(csv_file)
|
||||
StaffingLoader.load_data(filepath: csv_file)
|
||||
missing_staffing_for_current_year = Respondent.where(academic_year: AcademicYear.order(:range).last).none? do |respondent|
|
||||
respondent.total_teachers.present?
|
||||
end
|
||||
StaffingLoader.clone_previous_year_data if missing_staffing_for_current_year
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def marked?(mark)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue