diff --git a/app/models/annotation.rb b/app/models/annotation.rb index c235d0b..d8053c5 100644 --- a/app/models/annotation.rb +++ b/app/models/annotation.rb @@ -8,7 +8,7 @@ ## # Possibly needed for active_admin # -relies on protected_attributes gem as syntax depricated in rails 4.2 - attr_accessible :org_id, :question_id, :text, + attr_accessible :org_id, :question_id, :text, :type, :org, :question, :as => [:default, :admin] diff --git a/db/migrate/20170421121528_combine_question_guidance_and_suggested_answers_into_annotations.rb b/db/migrate/20170421121528_combine_question_guidance_and_suggested_answers_into_annotations.rb new file mode 100644 index 0000000..cad2d7c --- /dev/null +++ b/db/migrate/20170421121528_combine_question_guidance_and_suggested_answers_into_annotations.rb @@ -0,0 +1,40 @@ +class CombineQuestionGuidanceAndSuggestedAnswersIntoAnnotations < ActiveRecord::Migration + def change + # create table for annotations + create_table :annotations do |t| + t.integer "question_id" + t.integer "org_id" + t.text "text" + t.column :type, :integer, default: 0, null: false + t.timestamps + end + + # migrate data from suggested_answers + SuggestedAnswer.all.each do |sa| + a = Annotation.new + a.question_id = sa.question_id + a.org_id = sa.org_id + a.text = sa.text + a.example_answer! + a.save! + end + # migrate data from question.guidance + Question.includes(section: [phase: [:template]]).all.each do |q| + if q.guidance.present? + a = Annotation.new + a.question_id = q.id + if q.section.modifiable? + a.org_id = q.section.phase.template.org_id + else + a.org_id = Template.where(dmptemplate_id: q.section.phase.template.customization_of).first.org_id + end + a.text = q.guidance + a.guidance! + a.save + end + end + + delete_table :suggested_answers + remove_column :question, :guidance + end +end