You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
2.4 KiB
67 lines
2.4 KiB
namespace :one_off do
|
|
task remove_dupes: :environment do
|
|
SurveyItemResponse.delete_all
|
|
SurveyItem.delete_all
|
|
AdminDataItem.delete_all
|
|
Measure.delete_all
|
|
|
|
csv_file = Rails.root.join('data', 'sqm_framework.csv')
|
|
CSV.parse(File.read(csv_file), headers: true) do |row|
|
|
category_name = row['Category'].strip
|
|
category_id = row['Category ID'].strip
|
|
|
|
category = SqmCategory.find_by!(name: category_name)
|
|
category.update! category_id: category_id
|
|
|
|
subcategory_name = row['Subcategory'].strip
|
|
subcategory_id = row['Subcategory ID'].strip
|
|
subcategory = Subcategory.find_by! name: subcategory_name, sqm_category: category
|
|
subcategory.update! subcategory_id: subcategory_id
|
|
end
|
|
|
|
puts "number of outstanding categories: #{SqmCategory.where(category_id: 'default-category-id').count}"
|
|
puts "number of outstanding subcategories: #{Subcategory.where(subcategory_id: 'default-subcategory-id').count}"
|
|
|
|
facilities_and_personnel = Subcategory.find_by name: 'Facilities and Personnel',
|
|
subcategory_id: 'default-subcategory-id'
|
|
if facilities_and_personnel.present?
|
|
facilities_and_personnel.destroy
|
|
puts "number of outstanding subcategories now: #{Subcategory.where(subcategory_id: 'default-subcategory-id').count}"
|
|
end
|
|
end
|
|
|
|
task add_dese_ids: :environment do
|
|
all_schools = School.all.includes(:district)
|
|
|
|
qualtrics_schools = {}
|
|
|
|
csv_file = Rails.root.join('data', 'master_list_of_schools_and_districts.csv')
|
|
CSV.parse(File.read(csv_file), headers: true) do |row|
|
|
district_id = row['District Code'].to_i
|
|
school_id = row['School Code'].to_i
|
|
|
|
if qualtrics_schools[[district_id, school_id]].present?
|
|
puts "Duplicate entry row #{row}"
|
|
next
|
|
end
|
|
|
|
qualtrics_schools[[district_id, school_id]] = row
|
|
end
|
|
|
|
qualtrics_schools.each do |(district_id, school_id), csv_row|
|
|
school = all_schools.find do |school|
|
|
school.qualtrics_code == school_id && school.district.qualtrics_code == district_id
|
|
end
|
|
|
|
if school.nil?
|
|
puts "Could not find school with district id: #{district_id}, school id: #{school_id}"
|
|
next
|
|
end
|
|
|
|
school.update!(dese_id: csv_row['DESE School ID'])
|
|
end
|
|
|
|
School.where(dese_id: -1).each {|school| puts "School with nil dese id: #{school.name}, id: #{school.id}"}
|
|
end
|
|
end
|