Warn before overwriting page content if that page has been updated since current edit started

Jump to solution
davidsocha
Community Member

I am a professor who teaches and researches about software engineering.

I often co-teach courses. This leads to problems because Canvas does not warn if multiple people are editing the same content (e.g., the same page) at the same time and overwrite each other's edits.

For instance, consider the following sequence of events:

  1. At 10:00 am Pacific time, person A starts editing page P.
  2. At 10:10 am Pacific time, person B starts editing the same page. P.
  3. At 10:20 am Pacific time, person A saves their changes to P.
  4. At 10:30 am Pacific time, person B saves their changes to P. 

The result is that B's changes will overwrite A's changes without any warning. I cannot speak to how irritated I and my colleagues been when that has happened. It causes confusion, leads to inconsistencies, and loses potentially valuable content. And I have no idea how often this might have happened!

Here's what I'd like to see, informed by the Pages API https://canvas.instructure.com/doc/api/pages.html:

  1. Assume that the Page object for page P has version_id == 7.
  2. At 10:00 am Pacific time, person A starts editing page P with version_id == 7.
  3. At 10:10 am Pacific time, person B starts editing the same page. P with version_id == 7.
  4. At 10:20 am Pacific time, person A tries to save their changes to P. This causes their Canvas session to first check the current version_id of page P in the cloud. It is still 7, so the changes get saved. The version_id of page P in the cloud is now 8.
  5. At 10:30 am Pacific time, person B tries to save their changes to P. This causes their Canvas session to check the current version_id of page P in the cloud. It is now 8, which is different from what it was when B started their editing session. Canvas warns B that person A (available in Page P's object's last_edited_by person value) saved changes at 10:20 am Pacific time (available in Page P's object's updated_at value) that will be overwritten if B saves their changes. Person B may choose to cancel their edits (I'd first copy the changes to file on my computer so I could compare them with the new version), or overwrite A's edits. 

This change would dramatically reduce the likelihood of changes silently being lost.

Based upon my 20+ years in software development, it seems like a fairly low-cost and low-risk change to make.

Labels (1)
0 Likes
1 Solution
Chris_Hofer
Community Coach
Community Coach

Hello there, @davidsocha ...

Canvas does not have the ability to have multiple people editing the same page simultaneously.   In searching the Community, I found a posting from 2020 that I had helped respond to that had a similar question: Simultaneous assignment editing - Instructure Community.  The scenario you've posted should probably be submitted here in the Canvas Community as a new Feature Idea.  That way, other Community members can evaluate it and decide if it is also something they would like to see developed by Canvas software engineers.  You'll want to take a look at these documents as you create your Feature Idea:

I know this isn't the answer you might have been looking for, but I hope it's helped in some way to answer your question.  Please let Community members know if you have any other questions about this...thanks!

View solution in original post