diff --git a/mod/scorm/locallib.php b/mod/scorm/locallib.php index 3e792492629..3986fe37fc7 100644 --- a/mod/scorm/locallib.php +++ b/mod/scorm/locallib.php @@ -450,6 +450,7 @@ function scorm_get_tracks($scoid, $userid, $attempt='') { // Defined in order to unify scorm1.2 and scorm2004 $usertrack->score_raw = ''; $usertrack->status = ''; + $usertrack->progress = ''; $usertrack->total_time = '00:00:00'; $usertrack->session_time = '00:00:00'; $usertrack->timemodified = 0; @@ -463,7 +464,15 @@ function scorm_get_tracks($scoid, $userid, $attempt='') { $track->value = 'notattempted'; } $usertrack->status = $track->value; - break; + break; + case 'cmi.success_status': + $usertrack->progress = $track->value; + break; + case 'cmi.progress_measure': + if(!empty($track->value) && (empty($usertrack->progress) || $usertrack->progress == 'unknown') ) { + $usertrack->progress = $track->value; + } + break; case 'cmi.core.score.raw': case 'cmi.score.raw': $usertrack->score_raw = (float) sprintf('%2.2f', $track->value); diff --git a/mod/scorm/userreport.php b/mod/scorm/userreport.php index 6d48cc10c10..9379c4f1d33 100644 --- a/mod/scorm/userreport.php +++ b/mod/scorm/userreport.php @@ -127,7 +127,11 @@ if ($scoes = $DB->get_records_select('scorm_scoes', "scorm=? ORDER BY id", array $score = $trackdata->score_raw; } if ($trackdata->status == '') { - $trackdata->status = 'notattempted'; + if (!empty($trackdata->progress)) { + $trackdata->status = $trackdata->progress; + } else { + $trackdata->status = 'notattempted'; + } } $detailslink = ''.get_string('details', 'scorm').'';