The goal here is to decouple objects and fulfillments, and to break calls to getTracker(), getFulfillment(), and remove getUser() on non-user content.
A long time ago, we didn't require the user to be passed to these methods, the user would be stored with the object or course instance.
We have to change these so that performance could be improved - separating a Course and its objects from its own users (fulfillments). Previously we were caching both the course and the user together, which made cache busting hard since in order to do something for a different user, you had to reload the course and all of its objects. Think: course relationships.
This new method means that we can cache courses and objects without their fulfillments which significantly improves performance as only fulfillments need to be loaded.
There was a deprecation notice previously and it is fixed in most places, but some still remain.
There will be breaking changes with this update if deprecation notices were not followed. Custom course objects may have to be updated.
Draft change notice
| Comment | File | Size | Author |
|---|---|---|---|
| #13 | 3002050-decouple-course-object-fulfillments.patch | 115.88 KB | djdevin |
Comments
Comment #2
djdevinComment #4
djdevinComment #5
djdevinComment #7
djdevinComment #9
djdevinComment #11
djdevinComment #13
djdevinComment #15
djdevinThis became the 7.x-2.x branch as there were changes that would definitely break BC.