From 1c29a29619a670c34da45a835f51189553f7f987 Mon Sep 17 00:00:00 2001 From: danielghost Date: Fri, 27 Jun 2025 13:56:41 +0100 Subject: [PATCH 1/2] Update: prevent superfluous set updates (fixes #17). --- js/adapt-contrib-scoring.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/js/adapt-contrib-scoring.js b/js/adapt-contrib-scoring.js index 60447ba..d7accca 100644 --- a/js/adapt-contrib-scoring.js +++ b/js/adapt-contrib-scoring.js @@ -83,9 +83,10 @@ class Scoring extends Backbone.Controller { * @fires Adapt#scoring:update */ update() { - const updateSubsets = !this._queuedChanges?.length + const queuedChanges = [...new Set(this._queuedChanges)]; + const updateSubsets = !queuedChanges?.length ? this.subsets - : this._queuedChanges.reduce((updateSubsets, model) => updateSubsets.concat(getSubsetsByModelId(model?.get('_id'))), []); + : queuedChanges.reduce((subsets, model) => subsets.concat(getSubsetsByModelId(model?.get('_id'))), []); updateSubsets.forEach(set => set.update()); this._queuedChanges = []; if (!updateSubsets.length) return; From 120d45597376abcbc5f80baef8bf936f572e0974 Mon Sep 17 00:00:00 2001 From: danielghost Date: Fri, 27 Jun 2025 14:23:04 +0100 Subject: [PATCH 2/2] Remove duplicate sets from intersection lookups. --- js/adapt-contrib-scoring.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/js/adapt-contrib-scoring.js b/js/adapt-contrib-scoring.js index d7accca..564de8c 100644 --- a/js/adapt-contrib-scoring.js +++ b/js/adapt-contrib-scoring.js @@ -86,7 +86,7 @@ class Scoring extends Backbone.Controller { const queuedChanges = [...new Set(this._queuedChanges)]; const updateSubsets = !queuedChanges?.length ? this.subsets - : queuedChanges.reduce((subsets, model) => subsets.concat(getSubsetsByModelId(model?.get('_id'))), []); + : [...new Set(queuedChanges.reduce((subsets, model) => subsets.concat(getSubsetsByModelId(model?.get('_id'))), []))]; updateSubsets.forEach(set => set.update()); this._queuedChanges = []; if (!updateSubsets.length) return;