mirror of
https://github.com/moodle/moodle.git
synced 2025-03-14 04:30:15 +01:00
Merge branch 'MDL-33702-master' of git://github.com/ankitagarwal/moodle
This commit is contained in:
commit
46bc0e2238
@ -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;
|
||||
|
@ -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)) {
|
||||
|
@ -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 {
|
||||
|
@ -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.'&user='.$user.'&attempt='.$attempt.'" title="'.
|
||||
get_string('details', 'scorm').'">'.get_string('details', 'scorm').'</a>';
|
||||
} else {
|
||||
$trackdata = new stdClass();
|
||||
$trackdata->status = 'notattempted';
|
||||
$trackdata->total_time = ' ';
|
||||
$detailslink = ' ';
|
||||
@ -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) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user