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.

 

CompSci.rocks Newsletter

Want to stay in touch and keep up to date with the latest posts @ CompSci.rocks?

2 thoughts on “How to copy multiple questions in Canvas

  1. This is amazing, thank you so much!! Don’t suppose a similar solution would work to get the “show question details” checkbox back on a question bank with more than 50 questions?

    1. Doubt it, although I haven’t played around with that one.

      My guess is that it won’t load more than 50 because it might take too much time. Not sure the data is even there. Although, might be something fun to play with.

Leave a Reply

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