Skip to content

Update: Include associated contentObjects with cmi.interactions.n.objectives#332

Merged
joe-allen-89 merged 10 commits intomasterfrom
issue/331
Jul 28, 2025
Merged

Update: Include associated contentObjects with cmi.interactions.n.objectives#332
joe-allen-89 merged 10 commits intomasterfrom
issue/331

Conversation

@danielghost
Copy link
Copy Markdown
Contributor

@danielghost danielghost commented Feb 25, 2025

Fixes #330.
Fixes #331.

Update

  • Include associated contentObjects for recorded interactions via cmi.interactions.n.objectives.
  • Amended logic so unavailable contentObjects objectives are recorded with a completion_status of 'unknown' for SCORM 2004 and a status reuse of 'not attempted' for SCORM 1.2. Any previously recorded scores are maintained unless the associated model has been reset.

Dependency

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👀

@oliverfoster
Copy link
Copy Markdown
Member

oliverfoster commented Mar 26, 2025

As discussed on call.

  1. Remove dependency on adapt.scoring by having plugins register their applicable objectives onto the questionmodel before recordInteraction. Spoor can then pick up the objectives from the question model
  2. When registering course-wide objectives, extensions should register all objectives initially and use completion_status to indicate their applicability later

This allows the objectives to be derived and attached at appropriate times with meaningful reported states.

Question objectives as follow:

  • Add api to questionmodel to add and keep objectives
  • Move questionView recordinteraction to after the submitted event https://github.com/adaptlearning/adapt-contrib-core/blob/master/js/views/questionView.js#L214
  • Use the submitted event for plugins (adapt-scoring) to register their applicable objectives onto the question model
  • Use recordinteraction in spoor to pass the question model objectives to the scorm 2004 api
  • Restore objectives to questionmodels if loaded submitted

Course-wide objective completion_status as follows:

Status Required Started Finished Description
completed Y Y Y Is required, has been started and finished
incomplete Y Y N Is required, has been started but not finished
not attempted Y N N Is required, has not been started
unknown N N N Is not required

Following scorm 2004 rte:
https://github.com/adaptlearning/scorm_docs/tree/master/SCORM%202004/4th%20Edition
image

@danielghost
Copy link
Copy Markdown
Contributor Author

This requires further work before going through another round of reviews and ultimately a release.

…ended `_isAvailable` logic for content object objectives. Fixed an issue with scores when resetting objectives. Added the ability to exclude content object objectives via JSON config.
@danielghost danielghost moved this from Assigned to Needs Reviewing in adapt_framework: The TODO Board Jun 16, 2025
Comment thread js/adapt-stateful-session.js Outdated
Comment thread js/adapt-stateful-session.js Outdated
Comment thread js/scorm/wrapper.js Outdated
Comment thread js/scorm/wrapper.js Outdated
Comment thread js/adapt-stateful-session.js
… Ideally would only do this once regardless, but `isFirstSession` is not always accurate due to LMS implementations of `cmi.entry` not always returning "ab-initio" for the first entry.
Copy link
Copy Markdown
Member

@oliverfoster oliverfoster left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

@joe-allen-89 joe-allen-89 merged commit 4e4e621 into master Jul 28, 2025
@joe-allen-89 joe-allen-89 deleted the issue/331 branch July 28, 2025 13:36
@github-project-automation github-project-automation bot moved this from Needs Reviewing to Recently Released in adapt_framework: The TODO Board Jul 28, 2025
github-actions bot pushed a commit that referenced this pull request Jul 28, 2025
# [5.14.0](v5.13.1...v5.14.0) (2025-07-28)

### Update

* Include associated contentObjects with `cmi.interactions.n.objectives` (fixes #332) ([4e4e621](4e4e621)), closes [#332](#332)
@github-actions
Copy link
Copy Markdown

🎉 This PR is included in version 5.14.0 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Include associated contentObjects to cmi.interactions.n.objectives Initialise objectives for _isAvailable content only?

4 participants