From fa9cdafdc61c8617b37232e27465e2440b5a65e6 Mon Sep 17 00:00:00 2001 From: James Williams Date: Tue, 13 May 2014 09:05:18 -0600 Subject: [PATCH] only export active learning outcomes and groups test plan: * create a course with multiple learning outcomes * delete one of them * copy the course * the deleted outcome should not re-appear in the copy fixes #CNVS-4358 Change-Id: I2ec16a250d2bcaf70ab0e06d5711e18a2839c415 Reviewed-on: https://gerrit.instructure.com/34798 Tested-by: Jenkins Reviewed-by: Jeremy Stanley Product-Review: Jeremy Stanley QA-Review: Clare Strong --- lib/cc/learning_outcomes.rb | 4 ++-- spec/models/content_migration_spec.rb | 20 ++++++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/lib/cc/learning_outcomes.rb b/lib/cc/learning_outcomes.rb index ec85a26b17d..81f0f142a51 100644 --- a/lib/cc/learning_outcomes.rb +++ b/lib/cc/learning_outcomes.rb @@ -56,11 +56,11 @@ module CC end def process_outcome_group_content(node, group) - group.child_outcome_groups.each do |item| + group.child_outcome_groups.active.each do |item| next unless export_object?(item, 'learning_outcomes') || export_object?(item, 'learning_outcome_groups') process_outcome_group(node, item) end - group.child_outcome_links.each do |item| + group.child_outcome_links.active.each do |item| item = item.content next unless export_object?(item, 'learning_outcomes') process_learning_outcome(node, item, group) diff --git a/spec/models/content_migration_spec.rb b/spec/models/content_migration_spec.rb index 31f7a0530fb..10aaf9d12ae 100644 --- a/spec/models/content_migration_spec.rb +++ b/spec/models/content_migration_spec.rb @@ -780,6 +780,26 @@ describe ContentMigration do lo3_new.data.should == lo3.data end + it "should not copy deleted learning outcomes into the new course" do + old_root = @copy_from.root_outcome_group + + log = @copy_from.learning_outcome_groups.new + log.context = @copy_from + log.title = "An outcome group" + log.description = "

Groupage

" + log.save! + old_root.adopt_outcome_group(log) + + lo = create_outcome(@copy_from, log) + lo2 = create_outcome(@copy_from, log) + lo2.destroy + + run_course_copy + + @copy_to.created_learning_outcomes.count.should == 1 + @copy_to.created_learning_outcomes.first.migration_id.should == mig_id(lo) + end + it "should relink to external outcomes" do account = @copy_from.account a_group = account.root_outcome_group