From c2c5c2f8c7673d6c39000d7b2e0e952fe3dfa784 Mon Sep 17 00:00:00 2001 From: Dan Marsden Date: Mon, 25 Jun 2012 12:22:55 +1200 Subject: [PATCH] MDL-33978 SCORM activity completion - don't tiggere completion update state on creation of SCORM --- mod/scorm/lib.php | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/mod/scorm/lib.php b/mod/scorm/lib.php index 7b395f55465..822d3e2e950 100644 --- a/mod/scorm/lib.php +++ b/mod/scorm/lib.php @@ -150,7 +150,7 @@ function scorm_add_instance($scorm, $mform=null) { scorm_parse($record, true); - scorm_grade_item_update($record); + scorm_grade_item_update($record, null, false); return $record->id; } @@ -646,9 +646,10 @@ function scorm_upgrade_grades() { * @uses GRADE_TYPE_NONE * @param object $scorm object with extra cmidnumber * @param mixed $grades optional array/object of grade(s); 'reset' means reset grades in gradebook + * @param boolean $updatecompletion set whether to update completion stuff * @return object grade_item */ -function scorm_grade_item_update($scorm, $grades=null) { +function scorm_grade_item_update($scorm, $grades=null, $updatecompletion=true) { global $CFG, $DB; require_once($CFG->dirroot.'/mod/scorm/locallib.php'); if (!function_exists('grade_update')) { //workaround for buggy PHP versions @@ -680,15 +681,16 @@ function scorm_grade_item_update($scorm, $grades=null) { } // Update activity completion if applicable - // Get course info - $course = new object(); - $course->id = $scorm->course; + if ($updatecompletion) { + // Get course info + $course = new stdClass(); + $course->id = $scorm->course; - $cm = get_coursemodule_from_instance('scorm', $scorm->id, $course->id); - // CM will be false if this has been run from scorm_add_instance - if ($cm) { - $completion = new completion_info($course); - $completion->update_state($cm, COMPLETION_COMPLETE); + $cm = get_coursemodule_from_instance('scorm', $scorm->id, $course->id); + if (!empty($cm)) { + $completion = new completion_info($course); + $completion->update_state($cm, COMPLETION_COMPLETE); + } } return grade_update('mod/scorm', $scorm->course, 'mod', 'scorm', $scorm->id, 0, $grades, $params);