|
|
|
@ -1,7 +1,11 @@
|
|
|
|
# PSQL: /Applications/Postgres.app/Contents/Versions/9.6/bin/psql -h localhost
|
|
|
|
# PSQL: /Applications/Postgres.app/Contents/Versions/9.6/bin/psql -h localhost
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# aws s3 presign s3://irrationaldesign/beta-data-080719a.dump
|
|
|
|
|
|
|
|
# sudo heroku pg:backups:restore 'https://irrationaldesign.s3.amazonaws.com/beta-data-080719a.dump?AWSAccessKeyId=AKIAIDGE3EMQEWUQZUJA&Signature=KrabUOeggEd5wrjLQ4bvgd9eZGU%3D&Expires=1565267251' DATABASE_URL -a mciea-beta
|
|
|
|
|
|
|
|
|
|
|
|
# LOAD DATA
|
|
|
|
# LOAD DATA
|
|
|
|
# RAILS_ENV=development rails db:environment:set db:drop db:create db:migrate; /Applications/Postgres.app/Contents/Versions/9.6/bin/pg_restore --verbose --clean --no-acl --no-owner -h localhost -d mciea_development latest.dump; rake db:migrate;
|
|
|
|
# RAILS_ENV=development rails db:environment:set db:drop db:create db:migrate; /Applications/Postgres.app/Contents/Versions/9.6/bin/pg_restore --verbose --clean --no-acl --no-owner -h localhost -d mciea_development beta-data-08092019.dump; rake db:migrate;
|
|
|
|
# rails c -> SchoolCategory.update_all(year: '2017')
|
|
|
|
# rails c -> SchoolCategory.update_all(year: '2017')
|
|
|
|
# rake data:load_questions_csv; rake data:load_responses
|
|
|
|
# rake data:load_questions_csv; rake data:load_responses
|
|
|
|
|
|
|
|
|
|
|
|
@ -435,7 +439,7 @@ namespace :data do
|
|
|
|
|
|
|
|
|
|
|
|
desc 'Load in nonlikert values for each school'
|
|
|
|
desc 'Load in nonlikert values for each school'
|
|
|
|
task load_nonlikert_values: :environment do
|
|
|
|
task load_nonlikert_values: :environment do
|
|
|
|
csv_string = File.read(File.expand_path("../data/MCIEA_17-18AdminData.csv", __FILE__))
|
|
|
|
csv_string = File.read(File.expand_path("../../../data/MCIEA_18-19AdminData_Final.csv", __FILE__))
|
|
|
|
# csv_string = File.read(File.expand_path("../../../data/MCIEA_16-17_SGP.csv", __FILE__))
|
|
|
|
# csv_string = File.read(File.expand_path("../../../data/MCIEA_16-17_SGP.csv", __FILE__))
|
|
|
|
csv = CSV.parse(csv_string, :headers => true)
|
|
|
|
csv = CSV.parse(csv_string, :headers => true)
|
|
|
|
puts("LOADING NONLIKERT CSV: #{csv.length} ROWS")
|
|
|
|
puts("LOADING NONLIKERT CSV: #{csv.length} ROWS")
|
|
|
|
@ -477,14 +481,14 @@ namespace :data do
|
|
|
|
|
|
|
|
|
|
|
|
school = district.schools.where(name: row["School"]).first
|
|
|
|
school = district.schools.where(name: row["School"]).first
|
|
|
|
if school.blank?
|
|
|
|
if school.blank?
|
|
|
|
row["reason"] = "SCHOOL NOT FOUND: #{row["School"]}"
|
|
|
|
row["reason"] = "SCHOOL NOT FOUND: #{row["School"]} (#{district.name})"
|
|
|
|
errors << row
|
|
|
|
errors << row
|
|
|
|
next
|
|
|
|
next
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
school_category = school.school_categories.find_or_create_by(category: nonlikert_category, year: "#{@year}")
|
|
|
|
school_category = school.school_categories.find_or_create_by(category: nonlikert_category, year: "#{@year}")
|
|
|
|
if school_category.blank?
|
|
|
|
if school_category.blank?
|
|
|
|
row["reason"] = "SCHOOL CATEGORY NOT FOUND: #{school.name} #{nonlikert_category.name}"
|
|
|
|
row["reason"] = "SCHOOL CATEGORY NOT FOUND: #{school.name} (#{district.name}) #{nonlikert_category.name}"
|
|
|
|
errors << row
|
|
|
|
errors << row
|
|
|
|
next
|
|
|
|
next
|
|
|
|
end
|
|
|
|
end
|
|
|
|
@ -682,10 +686,13 @@ end
|
|
|
|
|
|
|
|
|
|
|
|
# min_response_rate = 0.3
|
|
|
|
# min_response_rate = 0.3
|
|
|
|
# level = 1
|
|
|
|
# level = 1
|
|
|
|
# categories = Category.joins(:questions).uniq.all
|
|
|
|
# # categories = Category.joins(:questions).uniq.all
|
|
|
|
# # categories = [Category.find_by_slug("student-emotional-safety-scale")]
|
|
|
|
# # categories = [Category.find_by_slug("student-emotional-safety-scale")]
|
|
|
|
|
|
|
|
# questions = Question.created_in(2019).where(reverse: true, target_group: "for_students")
|
|
|
|
|
|
|
|
# categories = questions.map(&:category).uniq
|
|
|
|
|
|
|
|
#
|
|
|
|
# categories.each do |category|
|
|
|
|
# categories.each do |category|
|
|
|
|
# category.school_categories.joins(school: :district).where("districts.name = 'Boston'").each do |school_category|
|
|
|
|
# category.school_categories.in(2019).joins(school: :district).where("districts.name = 'Boston'").each do |school_category|
|
|
|
|
# # category.school_categories.joins(school: :district).where("districts.name = 'Boston' and schools.slug = 'boston-community-leadership-academy'").each do |school_category|
|
|
|
|
# # category.school_categories.joins(school: :district).where("districts.name = 'Boston' and schools.slug = 'boston-community-leadership-academy'").each do |school_category|
|
|
|
|
# school_question_data = school_category.
|
|
|
|
# school_question_data = school_category.
|
|
|
|
# school_questions.
|
|
|
|
# school_questions.
|
|
|
|
@ -699,8 +706,8 @@ end
|
|
|
|
# student_questions = school_questions.merge(Question.for_students)
|
|
|
|
# student_questions = school_questions.merge(Question.for_students)
|
|
|
|
# teacher_questions = school_questions.merge(Question.for_teachers)
|
|
|
|
# teacher_questions = school_questions.merge(Question.for_teachers)
|
|
|
|
# if (student_questions.count > 0 && teacher_questions.count > 0)
|
|
|
|
# if (student_questions.count > 0 && teacher_questions.count > 0)
|
|
|
|
# NEED TO CHECK IF STUDENT OR TEACHER QUESTIONS EXIST
|
|
|
|
# # NEED TO CHECK IF STUDENT OR TEACHER QUESTIONS EXIST
|
|
|
|
|
|
|
|
#
|
|
|
|
# if (student_questions.where("response_rate > #{min_response_rate}").count == 0 ||
|
|
|
|
# if (student_questions.where("response_rate > #{min_response_rate}").count == 0 ||
|
|
|
|
# teacher_questions.where("response_rate > #{min_response_rate}").count == 0)
|
|
|
|
# teacher_questions.where("response_rate > #{min_response_rate}").count == 0)
|
|
|
|
# valid_child_count = 0
|
|
|
|
# valid_child_count = 0
|
|
|
|
@ -782,25 +789,21 @@ end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# [
|
|
|
|
# [
|
|
|
|
# "hennigan-elementary",
|
|
|
|
# "next-wave-full-circle"
|
|
|
|
# "henderson-k-12",
|
|
|
|
|
|
|
|
# "mattahunt",
|
|
|
|
|
|
|
|
# "lyndon-k-8"
|
|
|
|
|
|
|
|
# ].each do |slug|
|
|
|
|
# ].each do |slug|
|
|
|
|
# year = 2019
|
|
|
|
|
|
|
|
# school = School.find_by_slug(slug)
|
|
|
|
# school = School.find_by_slug(slug)
|
|
|
|
# base_categories = Category.joins(:questions).to_a.flatten.uniq
|
|
|
|
# base_categories = Category.all.to_a.flatten.uniq
|
|
|
|
# base_categories.each do |category|
|
|
|
|
# base_categories.each do |category|
|
|
|
|
# SchoolCategory.for(school, category).in(year).each do |school_category|
|
|
|
|
# SchoolCategory.for(school, category).in(2018).each do |school_category|
|
|
|
|
# dup_school_categories = SchoolCategory.for(school, category).in(year)
|
|
|
|
# dup_school_categories = SchoolCategory.for(school, category).in(school_category.year)
|
|
|
|
# if dup_school_categories.count > 1
|
|
|
|
# if dup_school_categories.count > 1
|
|
|
|
# puts dup_school_categories.first.inspect
|
|
|
|
# puts dup_school_categories.first.inspect
|
|
|
|
# dup_school_categories.each { |dsc| dsc.destroy unless dsc.id == school_category.id }
|
|
|
|
# dup_school_categories.each { |dsc| dsc.destroy unless dsc.id == school_category.id }
|
|
|
|
# school_category.sync_aggregated_responses
|
|
|
|
# school_category.sync_aggregated_responses
|
|
|
|
# parent = category.parent_category
|
|
|
|
# parent = category.parent_category
|
|
|
|
# while parent != nil
|
|
|
|
# while parent != nil
|
|
|
|
# SchoolCategory.for(school, parent).in(year).valid.each do |parent_school_category|
|
|
|
|
# SchoolCategory.for(school, parent).in(school_category.year).valid.each do |parent_school_category|
|
|
|
|
# parent_dup_school_categories = SchoolCategory.for(school, parent).in(year)
|
|
|
|
# parent_dup_school_categories = SchoolCategory.for(school, parent).in(school_category.year)
|
|
|
|
# if parent_dup_school_categories.count > 1
|
|
|
|
# if parent_dup_school_categories.count > 1
|
|
|
|
# parent_dup_school_categories.each { |pdsc| pdsc.destroy unless pdsc.id == parent_school_category.id }
|
|
|
|
# parent_dup_school_categories.each { |pdsc| pdsc.destroy unless pdsc.id == parent_school_category.id }
|
|
|
|
# parent_school_category.sync_aggregated_responses
|
|
|
|
# parent_school_category.sync_aggregated_responses
|
|
|
|
@ -938,3 +941,22 @@ end
|
|
|
|
# school_category.sync_aggregated_responses
|
|
|
|
# school_category.sync_aggregated_responses
|
|
|
|
# end
|
|
|
|
# end
|
|
|
|
# end
|
|
|
|
# end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# questions = Question.created_in(2019).where(reverse: true, target_group: "for_students")
|
|
|
|
|
|
|
|
# categories = questions.map(&:category).uniq
|
|
|
|
|
|
|
|
# schools = District.find_by_name("Boston").schools
|
|
|
|
|
|
|
|
# schools.each_with_index do |school, si|
|
|
|
|
|
|
|
|
# ENV['BULK_PROCESS'] = 'true'
|
|
|
|
|
|
|
|
#
|
|
|
|
|
|
|
|
# questions.each_with_index do |question, qi|
|
|
|
|
|
|
|
|
# attempts = Attempt.for_school(school).for_question(question)
|
|
|
|
|
|
|
|
# puts "XXXXX School #{si}/#{schools.length}, Question #{qi}/#{questions.length}, Attempts: #{attempts.length}"
|
|
|
|
|
|
|
|
# attempts.each do |attempt|
|
|
|
|
|
|
|
|
# attempt.update(answer_index: attempt.answer_index_with_reverse)
|
|
|
|
|
|
|
|
# end
|
|
|
|
|
|
|
|
#
|
|
|
|
|
|
|
|
# SchoolQuestion.for(school, question).in(2019).each { |sq| sq.sync_attempts() }
|
|
|
|
|
|
|
|
# end
|
|
|
|
|
|
|
|
#
|
|
|
|
|
|
|
|
# ENV.delete('BULK_PROCESS')
|
|
|
|
|
|
|
|
# end
|
|
|
|
|