MDL-46279 mod_scorm: Fix updating of scorm values on re-entry to scorm.

This commit is contained in:
Dan Marsden 2023-07-21 12:38:57 +12:00
parent 7f76e85397
commit a5ae5e6035
3 changed files with 6 additions and 4 deletions

View file

@ -173,7 +173,8 @@ class restore_scorm_activity_structure_step extends restore_activity_structure_s
}
protected function process_scorm_sco_track($data) {
global $DB;
global $DB, $CFG;
require_once($CFG->dirroot.'/mod/scorm/locallib.php');
$data = (object)$data;
$attemptobject = scorm_get_attempt($this->get_mappingid('user', $data->userid),
$this->get_new_parentid('scorm'),

View file

@ -55,7 +55,7 @@ if (confirm_sesskey() && (!empty($scoid))) {
$request = null;
if (has_capability('mod/scorm:savetrack', context_module::instance($cm->id))) {
// Preload all current tracking data.
$sql = "SELECT e.element, v.id, v.value, v.timemodified
$sql = "SELECT e.element, v.value, v.timemodified, v.id as valueid
FROM {scorm_scoes_value} v
JOIN {scorm_attempt} a ON a.id = v.attemptid
JOIN {scorm_element} e on e.id = v.elementid

View file

@ -542,9 +542,9 @@ function scorm_insert_track($userid, $scormid, $scoid, $attemptornumber, $elemen
$v->id = $track->valueid;
$v->value = $value;
$v->timemodified = time();
$DB->update_record('scorm_scoes_value', $track);
$DB->update_record('scorm_scoes_value', $v);
}
$id = $track->id;
$id = $track->valueid;
}
} else {
$track = new stdClass();
@ -593,6 +593,7 @@ function scorm_insert_track($userid, $scormid, $scoid, $attemptornumber, $elemen
// Missing fields are: scoid, attempt.
$track->scoid = $scoid;
$track->attempt = $attempt->id;
$track->id = $id;
// Trigger submitted event.
$event->add_record_snapshot('scorm_scoes_value', $track);
$event->add_record_snapshot('course_modules', $cm);