Merge branch 'MDL-33702-master' of git://github.com/ankitagarwal/moodle

This commit is contained in:
Sam Hemelryk 2012-07-09 16:27:30 +12:00
commit 46bc0e2238
4 changed files with 56 additions and 43 deletions

View File

@ -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,19 +464,35 @@ 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);
break;
break;
case 'cmi.core.score.max':
case 'cmi.score.max':
$usertrack->score_max = (float) sprintf('%2.2f', $track->value);
break;
case 'cmi.core.score.min':
case 'cmi.score.min':
$usertrack->score_min = (float) sprintf('%2.2f', $track->value);
break;
case 'cmi.core.session_time':
case 'cmi.session_time':
$usertrack->session_time = $track->value;
break;
break;
case 'cmi.core.total_time':
case 'cmi.total_time':
$usertrack->total_time = $track->value;
break;
break;
}
if (isset($track->timemodified) && ($track->timemodified > $usertrack->timemodified)) {
$usertrack->timemodified = $track->timemodified;

View File

@ -66,16 +66,6 @@ $params = array();
list($usql, $params) = $DB->get_in_or_equal($allowedlist);
$params[] = $scoid;
// Determine Sco keys to be used
if (scorm_version_check($scorm->version, SCORM_13)) {
$maxkey = 'cmi.score.max';
$minkey = 'cmi.score.min';
$scorekey = 'cmi.score.raw';
} else {
$maxkey = 'cmi.core.score.max';
$minkey = 'cmi.core.score.min';
$scorekey = 'cmi.core.score.raw';
}
$bands = 11;
$bandwidth = 10;
@ -99,16 +89,16 @@ if(!$nostudents) {
foreach ($attempts as $attempt) {
if ($trackdata = scorm_get_tracks($scoid, $attempt->userid, $attempt->attempt)) {
if (isset($trackdata->$scorekey)) {
$score = $trackdata->$scorekey;
if (!isset($trackdata->$minkey) || empty($trackdata->$minkey)) {
$score = $trackdata->score_raw;
if (empty($trackdata->score_min)) {
$minmark = 0;
} else {
$minmark = $trackdata->$minkey;
$minmark = $trackdata->score_min;
}
if (!isset($trackdata->$maxkey) || empty($trackdata->$maxkey)) {
if (empty($trackdata->score_max)) {
$maxmark = 100;
} else {
$maxmark = $trackdata->$maxkey;
$maxmark = $trackdata->score_max;
}
$range = ($maxmark - $minmark);
if (empty($range)) {

View File

@ -456,13 +456,8 @@ class scorm_interactions_report extends scorm_default_report {
if ($trackdata->score_raw != '') {
$score = $trackdata->score_raw;
// add max score if it exists
if ($scorm->version == 'SCORM_1.3') {
$maxkey = 'cmi.score.max';
} else {
$maxkey = 'cmi.core.score.max';
}
if (isset($trackdata->$maxkey)) {
$score .= '/'.$trackdata->$maxkey;
if (isset($trackdata->score_max)) {
$score .= '/'.$trackdata->score_max;
}
// else print out status
} else {

View File

@ -127,11 +127,16 @@ 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 = '<a href="userreport.php?b='.$sco->id.'&amp;user='.$user.'&amp;attempt='.$attempt.'" title="'.
get_string('details', 'scorm').'">'.get_string('details', 'scorm').'</a>';
} else {
$trackdata = new stdClass();
$trackdata->status = 'notattempted';
$trackdata->total_time = '&nbsp;';
$detailslink = '&nbsp;';
@ -180,21 +185,12 @@ if (!empty($b)) {
$table->width = '100%';
$table->size = array('*', '*');
$existelements = false;
if (scorm_version_check($scorm->version, SCORM_13)) {
$elements = array(
'raw' => 'cmi.score.raw',
'min' => 'cmi.score.min',
'max' => 'cmi.score.max',
'status' => 'cmi.completion_status',
'time' => 'cmi.total_time');
} else {
$elements = array(
'raw' => 'cmi.core.score.raw',
'min' => 'cmi.core.score.min',
'max' => 'cmi.core.score.max',
'status' => 'cmi.core.lesson_status',
'time' => 'cmi.core.total_time');
}
$elements = array(
'min' => 'score_min',
'raw' => 'score_raw',
'max' => 'score_max',
'status' => 'status',
'time' => 'total_time');
$printedelements = array();
foreach ($elements as $key => $element) {
if (isset($trackdata->$element)) {
@ -281,11 +277,26 @@ if (!empty($b)) {
while (isset($trackdata->$objectiveid)) {
$existobjective = true;
$printedelements[]=$objectiveid;
// Merge 2004 and 1.2 SCORM formats
if (scorm_version_check($scorm->version, SCORM_13)) {
$sucstatuskey = 'cmi.objectives.'.$i.'.success_status';
$progstatuskey = 'cmi.objectives.'.$i.'.progress_measure';
$compstatuskey = 'cmi.objectives.'.$i.'.completion_status';
$statuskey = 'cmi.objectives.'.$i.'.status';
if (isset($trackdata->$sucstatuskey)) {
$trackdata->$statuskey = $trackdata->$sucstatuskey;
} elseif (isset($trackdata->$progstatuskey)) {
$trackdata->$statuskey = $trackdata->$progstatuskey;
} elseif (isset($trackdata->$compstatuskey)) {
$trackdata->$statuskey = $trackdata->$compstatuskey;
}
}
$elements = array(
$objectiveid,
'cmi.objectives.'.$i.'.status',
'cmi.objectives.'.$i.'.score.raw',
'cmi.objectives.'.$i.'.score.min',
'cmi.objectives.'.$i.'.score.raw',
'cmi.objectives.'.$i.'.score.max');
$row = array();
foreach ($elements as $element) {