cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
cesbrandt
Community Champion

Blueprint Additional Restrictions and Date Offset

Jump to solution

The situation is fairly simple: we have growing concerns regarding some content being deleted, unpublished, or moved to an ungraded gradebook category that skews any metrics we pull regarding activities. To mitigate this in the future, we are looking at converting our "Master shells" into blueprint courses. While this would prevent the deletion of activities, it does not appear to prevent unpublishing them or changing their gradebook categories. We also noticed an issue with dates.

Are any of these possible to address?

  1. Can we offset the dates of a blueprint course when copying/linking shells to match a new range, different from the actual blueprint shell, without having to go back through updating each date after the copy/link is done?

    When we link a new course to the blueprint, it copies the content but uses the date range of the blueprint shell, not the shell the content is being copied into. Our best idea for how to deal with this is to go back through after the link/copy is complete and adjust all the dates manually.

  2. Can we restrict the ability to publish/unpublish blueprint-locked content?
  3. Can we restrict the ability to change the gradebook category of blueprint-locked content?
1 Solution

Accepted Solutions
kblack
Community Champion

Hi cesbrandt - Unfortunately, the answer is "no" to each of these...and least through the standard GUI interface.  While it's possible that some higher-level things can be done via an API call (though a quick look at the calls possible seem to indicate the answer is also "no" there), the interface does not currently allow for any of these.  It must be said that I don't even see a current Feature Idea that might address these.  (https://community.canvaslms.com/ideas/9548-blueprint-make-modules-lockable appears to be the closest to even being remotely in the general neighborhood.) 

Depending on the number of due dates you have to ultimately adjust on the associated courses, have you ever given the James Jones Canvancement Adjust All Assignment Dates on One Page  a try?  This will depend on your numbers, but it's a cool tool, as all of James' tools are.

View solution in original post

9 Replies
kblack
Community Champion

Hi cesbrandt - Unfortunately, the answer is "no" to each of these...and least through the standard GUI interface.  While it's possible that some higher-level things can be done via an API call (though a quick look at the calls possible seem to indicate the answer is also "no" there), the interface does not currently allow for any of these.  It must be said that I don't even see a current Feature Idea that might address these.  (https://community.canvaslms.com/ideas/9548-blueprint-make-modules-lockable appears to be the closest to even being remotely in the general neighborhood.) 

Depending on the number of due dates you have to ultimately adjust on the associated courses, have you ever given the James Jones Canvancement Adjust All Assignment Dates on One Page  a try?  This will depend on your numbers, but it's a cool tool, as all of James' tools are.

View solution in original post

cesbrandt
Community Champion

Thank you,  @kblack  for taking a look. I was afraid we hadn't missed anything.

While James' spreadsheet is useful for individual courses being updated manually, we would be looking at updating hundreds at a time. There was never a doubt that we'd need to use automation to pull it off, but we were hoping there was a "proper" way to do it as part of the sync/link process that would spare us having to setup and execute the API calls.

For the rest, it's quite disappointing to hear that they're not even ideas (I hadn't found them when I searched, either). Well, they are now:

James
Community Champion

cesbrandt,

Canvas Live Events might be able to help with the automation so that you don't have to remember to run another script when a blueprint sync happens. There is a event when an assignment is changed, including a due date change. I don't use blueprint courses (or Canvas Live Events), so I cannot tell you whether a sync triggers the event, but if it did, you could watch the event queue for a date change and if it's not inside the dates of the course, run the script that changes it.

On the other hand, you can use Live Events to enforce things without using blueprint courses. If an instructor changes an assignment group (question 3), it also fires the assignment_update event. You could listen for that and force it back to the one where you want it to be. Unfortunately, it doesn't say that it gets fired when an assignment is published, but sometimes documentation is incomplete. I quick a took look at the source code and it looks like it just fired when the assignment is updated, rather than when one of the conditions listed on the page are met. So there might be hope for question 2.

Some of the event types have better documentation than others.

robotcars
Community Champion

Adding to the conversation, since neither of you have LE...

Without investigating further here's the job_tags I have on 4 likely event types.

query results respectively

315573_Screen Shot 2019-06-18 at 3.36.53 PM.png

James
Community Champion

Do you happen to know if a live event occurs when an assignment is published / unpublished?

robotcars
Community Champion

Pretty sure every workflow_state expected is fired, but there may be some differences between IMS and Canvas.

Tableau comes in handy here, I will check in the morning.

robotcars
Community Champion

Yes, events are published when an assignments workflow_state is changed. With respect to differences in Caliper and Canvas formats.

Probably better ways of doing this, but my noobish Tableau skills are still better than queries and counts when it comes to seeing what's what. Here's what's available in both streams.

315610_Screen Shot 2019-06-19 at 9.45.26 AM.png

315609_Screen Shot 2019-06-19 at 9.45.15 AM.png

315620_Screen Shot 2019-06-19 at 9.48.14 AM.png

315621_Screen Shot 2019-06-19 at 9.48.09 AM.png

I've spent about 10 minutes now making sure that I'm not missing workflow_state in Caliper assignment_created, and nothing indicates that I've ever seen that column. Caliper implementation is a bit frustrating when we so enjoy the compatibility of the API and CD.

James
Community Champion

Thank you for checking on this, carroll-ccsd

As people look to lock down certain behaviors, it looks like the live events hold a lot of potential. If you change things back as soon as they change it, it will either (1) go unnoticed because they're convinced they changed it, (2) file a help ticket because they changed it and it didn't get changed, or (3) eventually give up and leave things the way you want it.

robotcars
Community Champion

My code could have been missing something and "not seen" was bugging me.

I had to make sure, so I manually added it and tested.

Comparison of Caliper and Canvas Raw assignment_created Live Event and availability of workflow_state.

315684_Screen Shot 2019-06-20 at 7.52.02 AM.png