From 7ef16bf927f0d9e3ba2a88ed622a78377c93541f Mon Sep 17 00:00:00 2001 From: piers Date: Thu, 21 Aug 2008 03:12:08 +0000 Subject: [PATCH] MDL-16111 - SCORM grade not updated in Grader Report. Thanks John Macklin. --- mod/scorm/datamodels/scorm_12lib.php | 4 +++- mod/scorm/datamodels/scorm_13lib.php | 4 +++- mod/scorm/lib.php | 10 +++++++--- mod/scorm/locallib.php | 4 +++- 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/mod/scorm/datamodels/scorm_12lib.php b/mod/scorm/datamodels/scorm_12lib.php index 1fa06728b3..cc08cb4964 100644 --- a/mod/scorm/datamodels/scorm_12lib.php +++ b/mod/scorm/datamodels/scorm_12lib.php @@ -248,7 +248,9 @@ function scorm_get_toc($user,$scorm,$liststyle,$currentorg='',$scoid='',$mode='n } $strsuspended = get_string('suspended','scorm'); if (isset($usertrack->{'cmi.core.exit'}) && ($usertrack->{'cmi.core.exit'} == 'suspend')) { - $statusicon = ''.$strstatus.' - '.$strsuspended.''; + if($usertrack->status !='completed') { + $statusicon = ''.$strstatus.' - '.$strsuspended.''; + } } } else { if ($play && empty($scoid)) { diff --git a/mod/scorm/datamodels/scorm_13lib.php b/mod/scorm/datamodels/scorm_13lib.php index d6be35cd49..598228a626 100644 --- a/mod/scorm/datamodels/scorm_13lib.php +++ b/mod/scorm/datamodels/scorm_13lib.php @@ -140,7 +140,9 @@ function scorm_get_toc($user,$scorm,$liststyle,$currentorg='',$scoid='',$mode='n } $strsuspended = get_string('suspended','scorm'); if (isset($usertrack->{'cmi.core.exit'}) && ($usertrack->{'cmi.core.exit'} == 'suspend')) { - $statusicon = ''.$strstatus.' - '.$strsuspended.''; + if($usertrack->status !='completed') { + $statusicon = ''.$strstatus.' - '.$strsuspended.''; + } } } else { if ($play && empty($scoid)) { diff --git a/mod/scorm/lib.php b/mod/scorm/lib.php index eeebbf0416..e384de4e5c 100755 --- a/mod/scorm/lib.php +++ b/mod/scorm/lib.php @@ -124,7 +124,8 @@ function scorm_update_instance($scorm) { } if ($result = $DB->update_record('scorm', $scorm)) { - scorm_grade_item_update($scorm); + scorm_grade_item_update(stripslashes_recursive($scorm)); + //scorm_grade_item_update($scorm); // John Macklins fix - dont think this is needed } return $result; @@ -505,8 +506,11 @@ function scorm_grade_item_update($scorm, $grades=NULL) { require_once($CFG->libdir.'/gradelib.php'); } - $params = array('itemname'=>$scorm->name, 'idnumber'=>$scorm->cmidnumber); - + $params = array('itemname'=>$scorm->name); + if (isset($scorm->cmidnumber)) { + $params['idnumber'] = $scorm->cmidnumber; + } + if (($scorm->grademethod % 10) == 0) { // GRADESCOES if ($maxgrade = $DB->count_records_select('scorm_scoes', 'scorm = ? AND launch <> ?', array($scorm->id, ''))) { $params['gradetype'] = GRADE_TYPE_VALUE; diff --git a/mod/scorm/locallib.php b/mod/scorm/locallib.php index 6fdc9d25fb..8e9133f736 100755 --- a/mod/scorm/locallib.php +++ b/mod/scorm/locallib.php @@ -368,7 +368,9 @@ function scorm_grade_user_attempt($scorm, $userid, $attempt=1, $time=false) { break; case GRADESCOES: $score = $attemptscore->scoes; - break; + break; + default: + $score = $attemptscore->max; // Remote Learner GRADEHIGHEST is default } if ($time) { -- 2.39.5