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

https://www.drupal.org/node/2997275

Comments

djdevin created an issue. See original summary.

djdevin’s picture

Status: Needs review » Needs work

The last submitted patch, 2: 3002050-decouple-course-object-fulfillments.patch, failed testing. View results

djdevin’s picture

Status: Needs work » Needs review
StatusFileSize
new90.74 KB
djdevin’s picture

Issue summary: View changes

Status: Needs review » Needs work

The last submitted patch, 4: 3002050-decouple-course-object-fulfillments.patch, failed testing. View results

djdevin’s picture

Status: Needs work » Needs review
StatusFileSize
new104.81 KB

Status: Needs review » Needs work

The last submitted patch, 7: 3002050-decouple-course-object-fulfillments.patch, failed testing. View results

djdevin’s picture

Status: Needs work » Needs review
StatusFileSize
new106.86 KB

Status: Needs review » Needs work

The last submitted patch, 9: 3002050-decouple-course-object-fulfillments.patch, failed testing. View results

djdevin’s picture

Status: Needs work » Needs review
StatusFileSize
new116.58 KB

Status: Needs review » Needs work

The last submitted patch, 11: 3002050-decouple-course-object-fulfillments.patch, failed testing. View results

djdevin’s picture

Status: Needs work » Needs review
StatusFileSize
new115.88 KB

Status: Needs review » Needs work

The last submitted patch, 13: 3002050-decouple-course-object-fulfillments.patch, failed testing. View results
- codesniffer_fixes.patch Interdiff of automated coding standards fixes only.

djdevin’s picture

Status: Needs work » Fixed

This became the 7.x-2.x branch as there were changes that would definitely break BC.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.