This is sort of a DEPR, but it also a more general usage question. Studio allows you to set some dates at the section and subsection levels, but it is technically possible to set these dates at any level of the hierarchy if you’re editing the OLX directly. You can set a global due date at the root Course block and have it inherit down to every problem in the course. You can also make it so that individual Units or problems within those Units have different start and due dates. I don’t believe this is documented anywhere.
Historically, I believe there were a few reasons for this:
- The initial XModule design was a prototype that used inheritance to push data where it needed to go because it was faster than thinking through a firmer boundary between Assignments and Problems.
- The “turtles, turtles, all the way down” philosophy of XModule also made those boundaries especially fuzzy to think about–you could make Sequences inside of Units for instance.
- In those early prototype days, content was being built just-in-time, and we would actually be releasing individual Units of content for the same assignment over the course of the week, as we got those particular simulations working correctly.
I don’t believe these reasons hold up any longer, and the costs are:
- Up to a 100X increase in the size of our scheduling data.
- Performance penalties for many repeated and redundant date checking.
- Complexity from invoking date checking at all levels in sometimes inconsistent ways (and potential bugs here).
I would like to get rid of this to further simplify the platform. Would anyone miss this if it was removed? If so, what use cases are you using it for?