mirror of
https://github.com/edcommonwealth/sqm-dashboards.git
synced 2026-03-07 21:48:16 -08:00
chore: remove lowell seeding rules
This commit is contained in:
parent
880b438eb4
commit
56b512810c
5 changed files with 5 additions and 62 deletions
|
|
@ -1,14 +0,0 @@
|
|||
module Rule
|
||||
class SeedOnlyLowell
|
||||
attr_reader :row
|
||||
|
||||
def initialize(row:)
|
||||
@row = row
|
||||
end
|
||||
|
||||
def skip_row?
|
||||
district = row['District'].strip.downcase
|
||||
'lowell' != district
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -1,9 +0,0 @@
|
|||
module Rule
|
||||
class NoRule
|
||||
def initialize(row:); end
|
||||
|
||||
def skip_row?
|
||||
false
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -1,16 +0,0 @@
|
|||
module Rule
|
||||
class SkipNonLowellSchools
|
||||
attr_reader :row
|
||||
|
||||
def initialize(row:)
|
||||
@row = row
|
||||
end
|
||||
|
||||
def skip_row?
|
||||
return true if row.school.nil?
|
||||
return true if row.school.district.nil?
|
||||
|
||||
row.school.district.name != 'Lowell'
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class SurveyResponsesDataLoader
|
||||
def load_data(filepath:, rules: [Rule::NoRule])
|
||||
def load_data(filepath:)
|
||||
File.open(filepath) do |file|
|
||||
headers = file.first
|
||||
headers_array = CSV.parse(headers).first
|
||||
|
|
@ -9,15 +9,14 @@ class SurveyResponsesDataLoader
|
|||
|
||||
file.lazy.each_slice(500) do |lines|
|
||||
survey_item_responses = CSV.parse(lines.join, headers:).map do |row|
|
||||
process_row(row: SurveyItemValues.new(row:, headers: headers_array, survey_items: all_survey_items, schools:),
|
||||
rules:)
|
||||
process_row(row: SurveyItemValues.new(row:, headers: headers_array, survey_items: all_survey_items, schools:))
|
||||
end
|
||||
SurveyItemResponse.import survey_item_responses.compact.flatten, batch_size: 500, on_duplicate_key_update: :all
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def from_file(file:, rules: [])
|
||||
def from_file(file:)
|
||||
headers = file.gets
|
||||
headers_array = CSV.parse(headers).first
|
||||
all_survey_items = survey_items(headers:)
|
||||
|
|
@ -29,8 +28,7 @@ class SurveyResponsesDataLoader
|
|||
next unless line.present?
|
||||
|
||||
CSV.parse(line, headers:).map do |row|
|
||||
survey_item_responses << process_row(row: SurveyItemValues.new(row:, headers: headers_array, survey_items: all_survey_items, schools:),
|
||||
rules:)
|
||||
survey_item_responses << process_row(row: SurveyItemValues.new(row:, headers: headers_array, survey_items: all_survey_items, schools:))
|
||||
end
|
||||
|
||||
row_count += 1
|
||||
|
|
@ -70,14 +68,10 @@ class SurveyResponsesDataLoader
|
|||
@speds ||= Sped.by_designation
|
||||
end
|
||||
|
||||
def process_row(row:, rules:)
|
||||
def process_row(row:)
|
||||
return unless row.dese_id?
|
||||
return unless row.school.present?
|
||||
|
||||
rules.each do |rule|
|
||||
return if rule.new(row:).skip_row?
|
||||
end
|
||||
|
||||
process_survey_items(row:)
|
||||
end
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@ require "#{Rails.root}/app/lib/seeder"
|
|||
|
||||
describe Seeder do
|
||||
let(:seeder) { Seeder.new }
|
||||
let(:lowell_seeder) { Seeder.new rules: [Rule::SeedOnlyLowell] }
|
||||
|
||||
after :each do
|
||||
DatabaseCleaner.clean
|
||||
|
|
@ -98,17 +97,6 @@ describe Seeder do
|
|||
expect(SurveyItemResponse.where(id: removed_survey_item_response)).not_to exist
|
||||
end
|
||||
end
|
||||
|
||||
context 'when passing a rule to only load lowell schools' do
|
||||
it 'only loads lowell schools' do
|
||||
expect do
|
||||
lowell_seeder.seed_districts_and_schools sample_districts_and_schools_csv
|
||||
end.to change { District.count }.by(1)
|
||||
.and change {
|
||||
School.count
|
||||
}.by(1)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# context 'respondents' do
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue