Skip to content

Commit 0382fbb

Browse files
committed
omit deleted questions when exporting question banks
fixes #9816 test plan: create a question bank, add a couple questions, and delete at least one question. copy the course, verify that the new course doesn't have the deleted question in the bank, but has the others. Change-Id: Icdbe4cf4a8a98d04aa755e1f89b0f87538b08023 Reviewed-on: https://gerrit.instructure.com/12908 Reviewed-by: Simon Williams <simon@instructure.com> Reviewed-by: Bracken Mosbacker <bracken@instructure.com> Tested-by: Jenkins <jenkins@instructure.com>
1 parent 064629b commit 0382fbb

2 files changed

Lines changed: 22 additions & 6 deletions

File tree

lib/cc/qti/qti_generator.rb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -259,7 +259,7 @@ def generate_assessment(doc, quiz, migration_id, for_cc=true)
259259
end # assessment_node
260260
end # qti node
261261
end
262-
262+
263263
def generate_bank(doc, bank, migration_id)
264264
doc.instruct!
265265
doc.questestinterop("xmlns" => "http://www.imsglobal.org/xsd/ims_qtiasiv1p2",
@@ -269,19 +269,19 @@ def generate_bank(doc, bank, migration_id)
269269
qti_node.objectbank(
270270
:ident => migration_id
271271
) do |bank_node|
272-
272+
273273
bank_node.qtimetadata do |meta_node|
274274
meta_field(meta_node, 'bank_title', bank.title)
275275
end # meta_node
276-
277-
bank.assessment_questions.each do |aq|
276+
277+
bank.assessment_questions.active.each do |aq|
278278
add_question(bank_node, aq.data.with_indifferent_access)
279279
end
280-
280+
281281
end # bank_node
282282
end # qti node
283283
end
284-
284+
285285
def meta_field(node, label, entry)
286286
node.qtimetadatafield do |meta_node|
287287
meta_node.fieldlabel label

spec/models/content_migration_spec.rb

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -614,7 +614,23 @@ def mig_id(obj)
614614
g.assessment_question_bank_id.should == bank2.id
615615
g = q.quiz_groups[2]
616616
g.assessment_question_bank_id.should == nil
617+
end
618+
619+
it "should omit deleted questions in banks" do
620+
pending unless Qti.qti_enabled?
621+
bank1 = @copy_from.assessment_question_banks.create!(:title => 'bank')
622+
q1 = bank1.assessment_questions.create!(:question_data => {'name' => 'test question', 'answers' => [{'id' => 1}, {'id' => 2}]})
623+
q2 = bank1.assessment_questions.create!(:question_data => {'name' => 'test question 2', 'answers' => [{'id' => 3}, {'id' => 4}]})
624+
q3 = bank1.assessment_questions.create!(:question_data => {'name' => 'test question 3', 'answers' => [{'id' => 5}, {'id' => 6}]})
625+
q2.destroy
626+
627+
run_course_copy
617628

629+
bank2 = @copy_to.assessment_question_banks.first
630+
bank2.should be_present
631+
# we don't copy over deleted questions at all, not even marked as deleted
632+
bank2.assessment_questions.active.size.should == 2
633+
bank2.assessment_questions.size.should == 2
618634
end
619635

620636
it "should copy a discussion topic when assignment is selected" do

0 commit comments

Comments
 (0)