How to copy multiple questions in Canvas

This is a follow up to another post on copying multiple questions between banks in Canvas. Turns out there’s an easier way.

The technique on the linked page has you importing a question bank into the same course and then moving all of the questions from the copied import into the bank where you want it.  This one just takes a couple lines of JavaScript in the browser console.

Why?

When we finish up units I like to copy all of the test questions into a giant question bank. This big bank works really well for review. I use it with short quizzes to prep for AP exams but it would work equally well for reviewing for final exams.

Canvas makes this difficult. If you want to copy one question it’s easy enough. There’s a link under each question where you can move or copy the question.

Copy Question Link

Clicking that link brings up this dialog with the option to keep a copy in this bank as well.

Move / Copy Question

But if you click on the Move Multiple Questions button that checkbox isn’t there.

Move Multiple Questions

Missing Feature?

It seems that the missing checkbox isn’t as much a conscious decision but an oversight.

On a whim I looked at the HTML that builds the checkbox on the individual move/copy dialog. I then used a bit of jQuery the Chrome console to insert a checkbox with the same settings onto the move multiple dialog.  I picked a couple of questions, selected an existing bank, and clicked on the Move Questions button. When I clicked the Move Questions button changed to Copying. The questions weren’t removed from the current bank and copies were created in the destination bank.

How To

Now that I figured that out, it was just a matter of writing it up here so I don’t have to recreate the code every time.

With the move multiple dialog option up, press F12 in Chrome and it will bring up  the console. Type this line into the console.

$('.move_question_dialog_actions').append('<input type="checkbox" name="copy" id="copy_question" value="1" checked>');

Hit enter and a checkbox will show on on the dialog. It’s the checkbox next to the blue button. It’s not labeled because it just doesn’t matter if it’s labeled.

Now it’s time to copy.

Select the questions you want to copy. If you want to copy all of them and don’t feel like clicking all the checkboxes you can type this into the console and it will check them for you.

$('li.list_question input').prop('checked', true);

Select the bank you want to copy to and click the blue Move Questions button.

Button will say Copy while it’s copying and you’re done.

 

Related Posts

Leave a Reply

Your email address will not be published. Required fields are marked *