From 316acd036676529b36526568b487dba323a97022 Mon Sep 17 00:00:00 2001 From: Martin Filser Date: Fri, 3 Mar 2023 20:32:18 +0100 Subject: [PATCH] ReactiveMiniMongoIndex, added getChecklistItemsWithChecklistId --- imports/reactiveCache.js | 22 ++++++++++++++++++++++ models/checklists.js | 9 ++------- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/imports/reactiveCache.js b/imports/reactiveCache.js index 8fc0c6f88..f4a102dd1 100644 --- a/imports/reactiveCache.js +++ b/imports/reactiveCache.js @@ -1129,6 +1129,28 @@ ReactiveMiniMongoIndex = { } } return ret; + }, + getChecklistItemsWithChecklistId(checklistId, addSelect = {}, options) { + let ret = [] + if (checklistId) { + const select = {addSelect, options} + if (!this.__checklistItemsWithId) { + this.__checklistItemsWithId = new DataCache(_select => { + const __select = Jsons.parse(_select); + const _checklistItems = ReactiveCache.getChecklistItems( + { checklistId: { $exists: true }, + ...__select.addSelect, + }, __select.options); + const _ret = _.groupBy(_checklistItems, 'checklistId') + return _ret; + }); + } + ret = this.__checklistItemsWithId.get(Jsons.stringify(select)); + if (ret) { + ret = ret[checklistId] || []; + } + } + return ret; } } diff --git a/models/checklists.js b/models/checklists.js index 372dd4650..c07a97e04 100644 --- a/models/checklists.js +++ b/models/checklists.js @@ -1,4 +1,4 @@ -import { ReactiveCache } from '/imports/reactiveCache'; +import { ReactiveCache, ReactiveMiniMongoIndex } from '/imports/reactiveCache'; Checklists = new Mongo.Collection('checklists'); @@ -87,12 +87,7 @@ Checklists.helpers({ return ret; }, items() { - const ret = ReactiveCache.getChecklistItems( - { - checklistId: this._id, - }, - { sort: ['sort'] }, - ); + const ret = ReactiveMiniMongoIndex.getChecklistItemsWithChecklistId(this._id, {}, { sort: ['sort'] }); return ret; },