From 971fecb40b7c63b5e86e49be9d229ce7f665c8a2 Mon Sep 17 00:00:00 2001 From: "Louis Wicket (wil)" Date: Thu, 23 Dec 2021 13:41:52 +0000 Subject: [PATCH] [IMP] mail: test isMulti only once MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Move isMulti sooner in the flow so that the check is only done once. closes odoo/odoo#81863 Signed-off-by: Sébastien Theys (seb) --- addons/mail/static/src/model/model_manager.js | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/addons/mail/static/src/model/model_manager.js b/addons/mail/static/src/model/model_manager.js index 24594acae96..0deafac3297 100644 --- a/addons/mail/static/src/model/model_manager.js +++ b/addons/mail/static/src/model/model_manager.js @@ -321,9 +321,10 @@ export class ModelManager { * @returns {Model|Model[]} created or updated record(s). */ insert(Model, data) { - const res = this._insert(Model, data); + const isMulti = typeof data[Symbol.iterator] === 'function'; + const records = this._insert(Model, isMulti ? data : [data]); this._flushUpdateCycle(); - return res; + return isMulti ? records : records[0]; } /** @@ -1030,13 +1031,11 @@ export class ModelManager { /** * @private * @param {Model} - * @param {Object|Object[]} [data={}] - * @returns {Model|Model[]} + * @param {Object[]} dataList + * @returns {Model[]} */ - _insert(Model, data = {}) { + _insert(Model, dataList) { this._ensureNoLockingListener(); - const isMulti = typeof data[Symbol.iterator] === 'function'; - const dataList = isMulti ? data : [data]; const records = []; for (const data of dataList) { const localId = this._getRecordIndex(Model, data); @@ -1049,7 +1048,7 @@ export class ModelManager { } records.push(record); } - return isMulti ? records : records[0]; + return records; } /**