From ec9d79cde31ec45834eb0388a161e0a4867bcd8d Mon Sep 17 00:00:00 2001 From: Oliver Foster Date: Thu, 24 Mar 2022 14:41:05 +0000 Subject: [PATCH 1/2] issue/2799 Removed redundant behaviour --- js/adapt-assessmentArticleModel.js | 20 ++++++++++++-------- js/adapt-assessmentArticleView.js | 5 +++-- js/adapt-assessmentQuestionBank.js | 4 ++-- js/assessment.js | 30 +++++++++++++++++------------- 4 files changed, 34 insertions(+), 25 deletions(-) diff --git a/js/adapt-assessmentArticleModel.js b/js/adapt-assessmentArticleModel.js index 632067d..95aaa00 100644 --- a/js/adapt-assessmentArticleModel.js +++ b/js/adapt-assessmentArticleModel.js @@ -1,4 +1,8 @@ import Adapt from 'core/js/adapt'; +import data from 'core/js/data'; +import logging from 'core/js/logging'; +import location from 'core/js/location'; +import router from 'core/js/router'; import QuestionBank from './adapt-assessmentQuestionBank'; let givenIdCount = 0; @@ -154,7 +158,7 @@ const AssessmentModel = { quizModels = this.getChildren().models; } else if (quizModels.length === 0) { quizModels = this.getChildren().models; - Adapt.log.warn('assessment: Not enough unique questions to create a fresh assessment, using last selection'); + logging.warn('assessment: Not enough unique questions to create a fresh assessment, using last selection'); } this.getChildren().models = quizModels; @@ -489,7 +493,7 @@ const AssessmentModel = { if (!this.canResetInPage()) return false; const parentId = this.getParent().get('_id'); - const currentLocation = Adapt.location._currentId; + const currentLocation = location._currentId; // check if on assessment page and should rerender page if (currentLocation !== parentId) return false; @@ -503,12 +507,12 @@ const AssessmentModel = { this._forceResetOnRevisit = true; this.listenToOnce(Adapt, 'pageView:ready', async () => { if (assessmentConfig._scrollToOnReset) { - await Adapt.navigateToElement(this.get('_id')); + await router.navigateToElement(this.get('_id')); } callback(); }); _.delay(() => { - Backbone.history.navigate('#/id/' + Adapt.location._currentId, { replace: true, trigger: true }); + Backbone.history.navigate('#/id/' + location._currentId, { replace: true, trigger: true }); }, 250); }, @@ -539,7 +543,7 @@ const AssessmentModel = { const questions = this.get('_questions'); for (const question of questions) { - const questionModel = Adapt.findById(question._id); + const questionModel = data.findById(question._id); if (questionModel.get('_isAvailable') && !questionModel.get('_isSubmitted')) { wereQuestionsRestored = false; break; @@ -631,7 +635,7 @@ const AssessmentModel = { // include presentation blocks in save state so that blocks without questions aren't removed blocks = this.findDescendantModels('block'); } else { - blocks = state.questions.map(question => Adapt.findById(question._id).getParent()); + blocks = state.questions.map(question => data.findById(question._id).getParent()); } blocks = [...new Set(blocks)] .filter(block => block.trackingPosition); @@ -677,9 +681,9 @@ const AssessmentModel = { const blocks = blockData[0].map(trackingPosition => { if (typeof trackingPosition === 'number') { // Backwards compability for courses which use _trackingId at block level - return Adapt.data.findWhere({ _trackingId: trackingPosition }); + return data.findWhere({ _trackingId: trackingPosition }); } - return Adapt.data.findByTrackingPosition(trackingPosition); + return data.findByTrackingPosition(trackingPosition); }); if (blocks.length) { diff --git a/js/adapt-assessmentArticleView.js b/js/adapt-assessmentArticleView.js index 34f1471..54471f4 100644 --- a/js/adapt-assessmentArticleView.js +++ b/js/adapt-assessmentArticleView.js @@ -1,4 +1,5 @@ import Adapt from 'core/js/adapt'; +import logging from 'core/js/logging'; import AdaptArticleView from 'core/js/views/articleView'; const AssessmentView = { @@ -34,13 +35,13 @@ const AssessmentView = { _onAssessmentComplete(state, model) { if (state.id !== this.model.get('_assessment')._id) return; - Adapt.log.info('assessment complete', state, model); + logging.info('assessment complete', state, model); }, _onAssessmentReset(state, model) { if (state.id !== this.model.get('_assessment')._id) return; - Adapt.log.info('assessment reset', state, model); + logging.info('assessment reset', state, model); }, diff --git a/js/adapt-assessmentQuestionBank.js b/js/adapt-assessmentQuestionBank.js index f8b9111..eb10bf0 100644 --- a/js/adapt-assessmentQuestionBank.js +++ b/js/adapt-assessmentQuestionBank.js @@ -1,4 +1,4 @@ -import Adapt from 'core/js/adapt'; +import logging from 'core/js/logging'; class QuestionBank { @@ -49,7 +49,7 @@ class QuestionBank { getRandomQuestion() { if (this.unUsedQuestionBlocks !== undefined && this.unUsedQuestionBlocks.length < 1) { - Adapt.log.warn('assessment:' + this._articleId + ' No more unique questions for _assessment._quizBankID ' + this._id); + logging.warn('assessment:' + this._articleId + ' No more unique questions for _assessment._quizBankID ' + this._id); return undefined; } diff --git a/js/assessment.js b/js/assessment.js index c4e43cd..a8c24ab 100644 --- a/js/assessment.js +++ b/js/assessment.js @@ -1,4 +1,8 @@ import Adapt from 'core/js/adapt'; +import offlineStorage from 'core/js/offlineStorage'; +import wait from 'core/js/wait'; +import data from 'core/js/data'; +import logging from 'core/js/logging'; /* * Here we setup a registry for all assessments @@ -32,7 +36,7 @@ class Assessment extends Backbone.Controller { if (assessmentId === undefined) return; if (!this._getStateByAssessmentId(assessmentId)) { - Adapt.log.warn('assessments: state was not registered when assessment was created'); + logging.warn('assessments: state was not registered when assessment was created'); } this.saveState(); @@ -46,12 +50,12 @@ class Assessment extends Backbone.Controller { _restoreModelState(assessmentModel) { if (!this._saveStateModel) { - this._saveStateModel = Adapt.offlineStorage.get('a'); + this._saveStateModel = offlineStorage.get('a'); } if (this._saveStateModel) { const state = assessmentModel.getState(); if (this._saveStateModel[state.id]) { - assessmentModel.setRestoreState(Adapt.offlineStorage.deserialize(this._saveStateModel[state.id])); + assessmentModel.setRestoreState(offlineStorage.deserialize(this._saveStateModel[state.id])); } } @@ -66,14 +70,14 @@ class Assessment extends Backbone.Controller { } // Check the 'id' passed is that of an article. - if (!Adapt.findById(id)) { + if (!data.findById(id)) { // The 'id' passed may have been the assessment _id/name, not the article _id. const assessment = Adapt.assessment._assessments._byAssessmentId[id]; if (assessment) { // Set 'id' to the article _id. id = assessment.get('_id'); } else { - Adapt.log.warn('Assessment not found with _id: ' + id); + logging.warn('Assessment not found with _id: ' + id); return; } } @@ -99,7 +103,7 @@ class Assessment extends Backbone.Controller { * Here we further hijack the router to ensure the asynchronous assessment * reset completes before routing completes */ - Adapt.wait.for(function resetAllAssessments(allAssessmentHaveReset) { + wait.for(function resetAllAssessments(allAssessmentHaveReset) { const numberOfAssessments = pageAssessmentModels.length; let numberOfResetAssessments = 0; @@ -208,7 +212,7 @@ class Assessment extends Backbone.Controller { } } - const pageModel = Adapt.findById(id); + const pageModel = data.findById(id); pageModel?.set({ _subProgressTotal: assessmentsTotal, _subProgressComplete: assessmentsPassed @@ -219,18 +223,18 @@ class Assessment extends Backbone.Controller { _addToAssessmentIdMap(id, model) { if (id === undefined) { - Adapt.log.warn('An assessment has been registered with an undefined value for "_id"'); + logging.warn('An assessment has been registered with an undefined value for "_id"'); return; } if (id === '') { - Adapt.log.warn('An assessment has been registered with an empty value for "_id"'); + logging.warn('An assessment has been registered with an empty value for "_id"'); } if (!this._assessments._byAssessmentId[id]) { this._assessments._byAssessmentId[id] = model; } else { - Adapt.log.warn('An assessment with an _id of "' + id + '" already exists!'); + logging.warn('An assessment with an _id of "' + id + '" already exists!'); } } @@ -300,10 +304,10 @@ class Assessment extends Backbone.Controller { this._saveStateModel = {}; for (const assessmentModel of this._assessments) { const state = assessmentModel.getState(); - this._saveStateModel[state.id] = Adapt.offlineStorage.serialize(assessmentModel.getSaveState()); + this._saveStateModel[state.id] = offlineStorage.serialize(assessmentModel.getSaveState()); } - Adapt.offlineStorage.set('a', this._saveStateModel); + offlineStorage.set('a', this._saveStateModel); } getConfig() { @@ -355,7 +359,7 @@ class Assessment extends Backbone.Controller { const correctAsPercent = (questionCount === 0) ? 0 : Math.round((correctCount / questionCount) * 100); if (assessmentsConfig._correctToPass === undefined) { - Adapt.log.warnOnce('Assessment course config is missing _correctToPass'); + logging.warnOnce('Assessment course config is missing _correctToPass'); } const scoreToPass = assessmentsConfig._scoreToPass; From 6209ae2dcee0174ec3de0fa0896df0042ab26745 Mon Sep 17 00:00:00 2001 From: Oliver Foster Date: Mon, 11 Apr 2022 11:38:03 +0100 Subject: [PATCH 2/2] issue/2799 Framework bump --- bower.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bower.json b/bower.json index 1c1ec7a..b8dbd7c 100644 --- a/bower.json +++ b/bower.json @@ -1,7 +1,7 @@ { "name": "adapt-contrib-assessment", "version": "4.6.0", - "framework": ">=5.11", + "framework": ">=5.19.1", "homepage": "https://github.com/adaptlearning/adapt-contrib-assessment", "bugs": "https://github.com/adaptlearning/adapt-contrib-assessment/issues", "extension": "assessment",