mirror of
https://github.com/edcommonwealth/sqm-dashboards.git
synced 2026-03-10 16:00:33 -07:00
feat: add special education disaggregation
This commit is contained in:
parent
a9b4f97a84
commit
acfdaf5587
23 changed files with 379 additions and 52 deletions
|
|
@ -7,8 +7,9 @@ class DemographicLoader
|
|||
CSV.parse(File.read(filepath), headers: true) do |row|
|
||||
process_race(row:)
|
||||
process_gender(row:)
|
||||
process_income(row:)
|
||||
process_ell(row:)
|
||||
create_from_column(column: "Income", row:, model: Income)
|
||||
create_from_column(column: "ELL", row:, model: Ell)
|
||||
create_from_column(column: "Special Ed Status", row:, model: Sped)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
@ -33,18 +34,11 @@ class DemographicLoader
|
|||
gender.save
|
||||
end
|
||||
|
||||
def self.process_income(row:)
|
||||
designation = row["Income"]
|
||||
def self.create_from_column(column:, row:, model:)
|
||||
designation = row[column]
|
||||
return unless designation
|
||||
|
||||
Income.find_or_create_by!(designation:)
|
||||
end
|
||||
|
||||
def self.process_ell(row:)
|
||||
designation = row["ELL"]
|
||||
return unless designation
|
||||
|
||||
Ell.find_or_create_by!(designation:)
|
||||
model.find_or_create_by!(designation:)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -62,6 +62,10 @@ class SurveyResponsesDataLoader
|
|||
@ells ||= Ell.by_designation
|
||||
end
|
||||
|
||||
def speds
|
||||
@speds ||= Sped.by_designation
|
||||
end
|
||||
|
||||
def process_row(row:, rules:)
|
||||
return unless row.dese_id?
|
||||
return unless row.school.present?
|
||||
|
|
@ -91,12 +95,14 @@ class SurveyResponsesDataLoader
|
|||
grade = row.grade
|
||||
income = incomes[row.income.parameterize]
|
||||
ell = ells[row.ell]
|
||||
sped = speds[row.sped]
|
||||
if survey_item_response.present?
|
||||
survey_item_response.update!(likert_score:, grade:, gender:, recorded_date: row.recorded_date, income:, ell:)
|
||||
survey_item_response.update!(likert_score:, grade:, gender:, recorded_date: row.recorded_date, income:, ell:,
|
||||
sped:)
|
||||
[]
|
||||
else
|
||||
SurveyItemResponse.new(response_id: row.response_id, academic_year: row.academic_year, school: row.school, survey_item:,
|
||||
likert_score:, grade:, gender:, recorded_date: row.recorded_date, income:, ell:)
|
||||
likert_score:, grade:, gender:, recorded_date: row.recorded_date, income:, ell:, sped:)
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue