From ac77c78980bfb63758141f44e4c1f72f84127691 Mon Sep 17 00:00:00 2001 From: Oliver Foster Date: Tue, 2 Jul 2024 17:24:44 +0100 Subject: [PATCH 1/3] Fix: Ensure question number is configured when restoring (fixes #200) --- js/adapt-assessmentArticleModel.js | 1 + 1 file changed, 1 insertion(+) diff --git a/js/adapt-assessmentArticleModel.js b/js/adapt-assessmentArticleModel.js index 54730e0..59cf45e 100644 --- a/js/adapt-assessmentArticleModel.js +++ b/js/adapt-assessmentArticleModel.js @@ -184,6 +184,7 @@ const AssessmentModel = { quizModels = quizModels.concat(outsideModels); } this.getChildren().reset(quizModels); + this._setAssessmentOwnershipOnChildrenModels(); this.setupCurrentQuestionComponents(); if (shouldResetAssessment || shouldResetQuestions) { this._resetFilter(); From 934aec3618ebac4d8decec5dda935561ac2dd611 Mon Sep 17 00:00:00 2001 From: Oliver Foster Date: Tue, 2 Jul 2024 17:58:47 +0100 Subject: [PATCH 2/3] Setup question number on restore last attempt also --- js/adapt-assessmentArticleModel.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/js/adapt-assessmentArticleModel.js b/js/adapt-assessmentArticleModel.js index 59cf45e..fb40942 100644 --- a/js/adapt-assessmentArticleModel.js +++ b/js/adapt-assessmentArticleModel.js @@ -749,6 +749,8 @@ const AssessmentModel = { if (_isAssessmentComplete) this._checkIsPass(); + this._setAssessmentOwnershipOnChildrenModels(); + Adapt.trigger('assessments:restored', this.getState(), this); }, From 7e58bb4336086a326441f2ea22385e76ef5dbf2b Mon Sep 17 00:00:00 2001 From: Oliver Foster Date: Wed, 3 Jul 2024 14:53:22 +0100 Subject: [PATCH 3/3] Ensure specific subject models are set as partofassessment only --- js/adapt-assessmentArticleModel.js | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/js/adapt-assessmentArticleModel.js b/js/adapt-assessmentArticleModel.js index fb40942..e114156 100644 --- a/js/adapt-assessmentArticleModel.js +++ b/js/adapt-assessmentArticleModel.js @@ -87,7 +87,7 @@ const AssessmentModel = { } // save original children this._originalChildModelsStore = this.getChildren().models; - this._setAssessmentOwnershipOnChildrenModels(); + this._setAssessmentOwnershipOnChildrenModels(this._originalChildModelsStore); return this._originalChildModelsStore; } }); @@ -108,7 +108,7 @@ const AssessmentModel = { }); }, - _setAssessmentOwnershipOnChildrenModels() { + _setAssessmentOwnershipOnChildrenModels(childModels) { // mark all children components as belonging to an assessment const assessmentConfig = this.get('_assessment'); const childConfig = { @@ -116,10 +116,10 @@ const AssessmentModel = { _assessmentId: assessmentConfig._id }; - for (const blockModel of this._originalChildModels) { - blockModel.set(childConfig); + for (const childModel of childModels) { + childModel.set(childConfig); // make sure components are set to _isPartOfAssessment for plp checking - blockModel.setOnChildren(childConfig); + childModel.setOnChildren(childConfig); } }, @@ -184,7 +184,7 @@ const AssessmentModel = { quizModels = quizModels.concat(outsideModels); } this.getChildren().reset(quizModels); - this._setAssessmentOwnershipOnChildrenModels(); + this._setAssessmentOwnershipOnChildrenModels(quizModels); this.setupCurrentQuestionComponents(); if (shouldResetAssessment || shouldResetQuestions) { this._resetFilter(); @@ -749,7 +749,7 @@ const AssessmentModel = { if (_isAssessmentComplete) this._checkIsPass(); - this._setAssessmentOwnershipOnChildrenModels(); + this._setAssessmentOwnershipOnChildrenModels(blocks); Adapt.trigger('assessments:restored', this.getState(), this);