From 556ff4511761224d5dadcb0db8fe9d0462488a90 Mon Sep 17 00:00:00 2001 From: Liam Morley Date: Thu, 4 Nov 2021 16:34:22 -0400 Subject: [PATCH] Seed categories/subcategories based on their ID instead of their name --- app/lib/seeder.rb | 23 +++++++++++------------ spec/lib/seeder_spec.rb | 10 +++++----- 2 files changed, 16 insertions(+), 17 deletions(-) diff --git a/app/lib/seeder.rb b/app/lib/seeder.rb index e51efcb3..b0ad029b 100644 --- a/app/lib/seeder.rb +++ b/app/lib/seeder.rb @@ -24,21 +24,20 @@ class Seeder def seed_sqm_framework csv_file CSV.parse(File.read(csv_file), headers: true) do |row| - category_name = row['Category'].strip - - category = SqmCategory.find_or_create_by!(name: category_name) + category_id = row['Category ID'].strip + category = SqmCategory.find_or_create_by!(category_id: category_id) category_slugs = { - 'Teachers & Leadership' => 'teachers-and-leadership', - 'School Culture' => 'school-culture', - 'Resources' => 'resources', - 'Academic Learning' => 'academic-learning', - 'Community & Wellbeing' => 'community-and-wellbeing', + '1' => 'teachers-and-leadership', + '2' => 'school-culture', + '3' => 'resources', + '4' => 'academic-learning', + '5' => 'community-and-wellbeing', } - category.update! description: row['Category Description'].strip, slug: category_slugs[category_name], sort_index: category_slugs.keys.index(category_name) + category.update! name: row['Category'].strip, description: row['Category Description'].strip, slug: category_slugs[category_id], sort_index: category_slugs.keys.index(category_id) - subcategory_name = row['Subcategory'].strip - subcategory = Subcategory.find_or_create_by! name: subcategory_name, sqm_category: category - subcategory.update! description: row['Subcategory Description'].strip + subcategory_id = row['Subcategory ID'].strip + subcategory = Subcategory.find_or_create_by! subcategory_id: subcategory_id, sqm_category: category + subcategory.update! name: row['Subcategory'].strip, description: row['Subcategory Description'].strip measure_id = row['Measure ID'].strip measure_name = row['Measures'].try(:strip) diff --git a/spec/lib/seeder_spec.rb b/spec/lib/seeder_spec.rb index db05cf12..4fbe9afd 100644 --- a/spec/lib/seeder_spec.rb +++ b/spec/lib/seeder_spec.rb @@ -87,11 +87,11 @@ describe Seeder do context 'the sqm framework' do before do - category = create(:sqm_category, name: 'School Culture', sort_index: -1) - subcategory = create(:subcategory, name: 'Safety', description: 'old description', sqm_category: category) - measure = create(:measure, name: 'Student Physical Safety?', measure_id: '2A-i', subcategory: subcategory) - create(:survey_item, survey_item_id: 's-phys-q1', measure: measure) - create(:admin_data_item, admin_data_item_id: 'a-phys-i1', measure: measure) + school_culture_category = create(:sqm_category, category_id: '2', sort_index: -1) + safety_subcategory = create(:subcategory, subcategory_id: '2A', sqm_category: school_culture_category) + student_physical_safety_measure = create(:measure, measure_id: '2A-i', subcategory: safety_subcategory) + create(:survey_item, survey_item_id: 's-phys-q1', measure: student_physical_safety_measure) + create(:admin_data_item, admin_data_item_id: 'a-phys-i1', measure: student_physical_safety_measure) end it 'creates new objects as necessary' do