User Script to Bulk Copy Course Announcements

JamesSekcienski
Community Coach
Community Coach
4
176

This is a user script that allows teachers to bulk copy announcements from one of their courses to another course(s).  This process will create the announcements as the user using the script so the copied announcements will also show them as the author of the announcement rather than it showing as an unknown author.  This user script is based on our own feature, but has some slight modifications to make it more applicable to other schools.  You can get an overview of how the feature works by reviewing our documentation to Copy Announcements into a New Course. *Note: This user script was just updated to support selecting multiple courses to copy to after feedback from the Instructure Community Canvas Developers Meet-up.  We will update our documentation to include this after we launch this enhancement to our users too.

To use the user script, you will need to use a tool for loading user scripts (such as TamperMonkey Chrome Web Store Listing) or add it as a part of the theme in your Canvas environment (if you are an Account Admin).  If using a tool for loading user scripts, be sure to update the @match web address (as needed) on line 7 in the header comment.  Users using the Canvas hosted domain name shouldn't need to make any adjustments.  The Bulk Copy Announcements Raw Source Code will need to be installed for use with your tool for user scripts or added to your JavaScript Canvas theme file.  *Note: There are some config variables towards the beginning of the script that you can update if you need to personalize some of the colors/naming conventions more for your school.

Additional Details for Users

  • The same delayed post date/time setting is applied to all selected announcements.  You can edit this in the destination course(s) after you complete the copy.  I have it in my dev queue to enhance this further to provide an option to set a different delayed post date/time setting for each selected announcement.
  • The special copy process for embedded content temporarily creates a page in the current course with the content of the announcement message and uses the native Canvas copy feature to copy this to the destination course(s) to associate the embedded LTI content with the destination course(s).  These pages are deleted after they copy is complete. This requires permission to create/delete pages in the course for this process to work.
  • You will need to wait for the copy process to complete fully before closing the dialog and/or leaving the page.  Closing the dialog and/or leaving the page may cause the process to not complete fully and you will need to copy any content that didn't finish and clean-up any temporary pages that were created and not deleted.

This user script is part of the new Wilmington University Ed Tech Systems - Shared Custom Developments Repository.  It is recommended to review and test the code before using it.  Be sure to check with your school administration/IT staff before using any user scripts in case they have security and/or review guidelines that must be followed before use.

Change Log

  • v.2.1.0
    • After the copy process completes, it unchecks and hides the previously selected courses to copy to. This is to help avoid accidentally copying the same announcements to the same course(s) again.

 

4 Comments
ProfessorBeyrer
Community Coach
Community Coach

Thank you @JamesSekcienski for sharing this helpful script. I tested it and report the following so others are aware:

  • The delay posting date is applied to all of the announcements selected, so I changed the delay posting date for each as I checked them.
  • Canvas Studio videos do copy over and are added to the destination course's collection

I'm glad to see that the announcements can be copied over to multiple courses at the same time.

I have one request to make it a bit easier to use, and that is to close the dialog after the process completes. I'm worried that instructors will miss the alert and accidentally run the copy process again. This is something that likely won't happen more than once, and it is something I'll make sure to point out as I share this awesome script with others.

JamesSekcienski
Community Coach
Community Coach
Author

@ProfessorBeyrer 

You're welcome 😀  Thank you for testing it out as well and I'm glad to hear it worked for you.  That is good to know that Canvas Studio videos copy over successfully too!

Based on your feedback, I'll add a note in the original post about it the delayed date.  Currently it applies the same date to all of them, but that is another feature request I plan on developing in the future to allow for setting a different delayed date for each announcement, if desired.

I'll take that concern into consideration.  Currently I leave the dialog open due to the loading messages since it may include error messages for review.  However, perhaps I can clear the selected courses so that it will require them to select a course(s) again before they can copy again.  Before I modified it to allow for multiple course selections, it was also left open so users could use the same settings to copy the same selected announcements to another course.

JamesSekcienski
Community Coach
Community Coach
Author

@sblazer and @james_whalley 

This feature looks like it could help as a workaround for at least part of the Ideas you submitted.  If you are open to trying this out, I would appreciate your feedback.

[Announcements] Retaining Profile Image for recycled Announcements when copied 

[Course Import/Export] Retain Authorship on Announcement/Discussion Import 

JamesSekcienski
Community Coach
Community Coach
Author

v.2.1.0

  • After the copy process completes, it unchecks and hides the previously selected courses to copy to. This is to help avoid accidentally copying the same announcements to the same course(s) again.

@ProfessorBeyrer I implemented this change to help with your concern about instructors accidentally copying to the same course(s) again after the process completes.  The dialog remains open so the loading messages can still be reviewed if needed, but now users will need to select a course again before the copy button will do anything again.