From cc1c8c5b7dfab82fab2aa7c402fe3d389a1eb53f Mon Sep 17 00:00:00 2001 From: Brian Quinn Date: Wed, 3 Apr 2019 12:36:50 +0100 Subject: [PATCH 1/2] Resolves #2398, re-populates _assessmentState from 'assessments:register' This corrects an issue with incorrect course completion statuses being passed back when a course was being completed over multiple sessions. --- package.json | 2 +- src/core/js/tracking.js | 14 +++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index b2de57444..def1a2370 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "adapt_framework", - "version": "3.5.2", + "version": "3.5.3", "description": "Adapt Learning output framework", "repository": { "type": "git", diff --git a/src/core/js/tracking.js b/src/core/js/tracking.js index b67960a14..9a5d47ebf 100644 --- a/src/core/js/tracking.js +++ b/src/core/js/tracking.js @@ -20,7 +20,10 @@ define([ setupEventListeners: function() { // Check if completion requires passing an assessment. if (this._config._requireAssessmentCompleted) { - this.listenTo(Adapt, 'assessment:complete', this.onAssessmentComplete); + this.listenTo(Adapt, { + 'assessment:complete': this.onAssessmentComplete, + 'assessments:register': this.onAssessmentRestored + }); } // Check if completion requires completing all content. @@ -39,6 +42,15 @@ define([ this.checkCompletion(); }, + /** + * Restores the _assessmentState object when an assessment is registered. + * @param {object} state - An object representing the (intial) assessment state + * @param {assessmentModel} - A restored Assessment model + */ + onAssessmentRestored: function(state, assessmentModel) { + this._assessmentState = assessmentModel.getState(); + }, + /** * Evaluate the course and assessment completion. */ From a187283f39e8071aac470bd0eac0a9f56c96afc2 Mon Sep 17 00:00:00 2001 From: Brian Quinn Date: Thu, 4 Apr 2019 09:57:31 +0100 Subject: [PATCH 2/2] Added listener for 'assessment:restored' event to tracking.js This event is raised by Assessment v3.0.2. --- src/core/js/tracking.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/core/js/tracking.js b/src/core/js/tracking.js index 9a5d47ebf..033ce9189 100644 --- a/src/core/js/tracking.js +++ b/src/core/js/tracking.js @@ -22,7 +22,7 @@ define([ if (this._config._requireAssessmentCompleted) { this.listenTo(Adapt, { 'assessment:complete': this.onAssessmentComplete, - 'assessments:register': this.onAssessmentRestored + 'assessment:restored': this.onAssessmentRestored }); } @@ -44,11 +44,10 @@ define([ /** * Restores the _assessmentState object when an assessment is registered. - * @param {object} state - An object representing the (intial) assessment state - * @param {assessmentModel} - A restored Assessment model + * @param {object} assessmentState - An object representing the overall assessment state */ - onAssessmentRestored: function(state, assessmentModel) { - this._assessmentState = assessmentModel.getState(); + onAssessmentRestored: function(assessmentState) { + this._assessmentState = assessmentState; }, /**