Store SCO attempts in Activity Profile
creighton opened this issue · 9 comments
To make it easier to figure out the number of attempts on an Activity and to remove semantic meaning from the URI, update the Activity State attempts property with a new attempt IRI.
ex.
New Attempt
- generate new attempt IRI (possibly like how it's already described in this doc)
- get the Activity State for this Activity
- add the new attempt IRI to the end of the 'attempts' array property in the profile
- save the profile to the LRS
- add the new attempt IRI to the context activities grouping array for all statements in this attempt
In Activity Profile put
- comments_from_lms
- completion_threshold
- launch_data
- max_time_allowed
- scaled_passing_score
- time_limit_action
In Activity<->UserID - Activity State put
- attempts (array of uris)
In Attempt <-> UserID - Activity State put
- location
- preferences ---> preference object (also in Agent Profile for default settings)
- credit
- mode
- suspend_data
- total_time
- adl_data
FYI, the Moodle launch plugin does something similar, where a list of attempts for a user is stored in the state API: https://github.com/garemoko/moodle-mod_tincanlaunch/blob/master/tincanlaunch/view.php#L103
Good to know Andrew. Thanks
add attempt-state id, since activity-state document is different from attempt-state
activity-state: http://adlnet.gov/xapi/profile/scorm/activity-state
attempt-state: http://adlnet.gov/xapi/profile/scorm/attempt-state
In what will be "attempt state", need to update "lesson_mode" to "mode" in order to standardize on the SCORM 2004 terminology. "lesson_mode" was SCORM 1.2 and other elements used adhere to the SCORM 2004 convention. Change "lesson_mode" to "mode" in state object.
In the agent profile and state object (for an attempt, not activity)... you have the name of the data model element as "preference". Is it more correct as "preferences" since its an object with multiple user preference values?
This could be an xAPI spec issue rather than a SCORM profile issue so I've raised it above.