Seed categories/subcategories based on their ID instead of their name

pull/1/head
Liam Morley 4 years ago
parent 4ee2345ba1
commit 556ff45117

@ -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)

@ -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

Loading…
Cancel
Save