You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Exercise resources have mastery criteria and historically it lives in the ContentNode.extra_fields JSON object
With the addition of completion criteria, we've created something similar to mastery for all other content kinds, and completion criteria can also contain mastery criteria
We should consolidate the existing mastery criteria into completion criteria in a runtime migration of sorts, but pulling it from the existing location and serving it within the completion criteria until saved in this way
When serializing, and if those fields are set in the source data and completion criteria is unset, the serializer should return those fields instead as properly formatted completion criteria in ContentNode.extra_fields.options.completion_criteria (see for more details), which will essentially migrate it to the new format when saved
Locations querying against the old mastery criteria should be updated such that if those fields no longer exist, it checks the completion_criteria for the new format. Examples:
The frontend should be updated separately as we'll be consolidating the mastery criteria form inputs into the new completion criteria handling, but have discretion on whether to wait until that's completed to merge this if it significantly breaks resource editing
The text was updated successfully, but these errors were encountered:
Background
ContentNode.extra_fields
JSON objectDesired behavior
ExtraFieldsSerializer
should no longer acceptmastery_model
,m
, orn
fields:ContentNode.extra_fields.options.completion_criteria
(see for more details), which will essentially migrate it to the new format when savedcompletion_criteria
for the new format. Examples:fix_exercise_completion.py
mark_complete.py
publish.py
Out of scope
The text was updated successfully, but these errors were encountered: