From 0d4cb52b9dcd56cb463f2168eaea7a0e8fc2d9a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Theys?= Date: Fri, 31 Jul 2020 13:48:31 +0000 Subject: [FIX] mail: batch create/insert of JS model for performance MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR: #55261 Part of task-2308312 closes odoo/odoo#55266 X-original-commit: eded5f6372d4f1cffd1a361bd8fa7fd8f1f8ae9e Signed-off-by: Alexandre Kühn (aku) --- addons/mail/static/src/models/thread/thread.js | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) (limited to 'addons/mail/static/src/models/thread') diff --git a/addons/mail/static/src/models/thread/thread.js b/addons/mail/static/src/models/thread/thread.js index cf3ce78b955..ceb4a366ec3 100644 --- a/addons/mail/static/src/models/thread/thread.js +++ b/addons/mail/static/src/models/thread/thread.js @@ -363,19 +363,14 @@ function factory(dependencies) { } return list; }, []); - const messagePreviews = await this.env.services.rpc({ + const channelPreviews = await this.env.services.rpc({ model: 'mail.channel', method: 'channel_fetch_preview', args: [channelIds], }, { shadow: true }); - for (const preview of messagePreviews) { - const messageData = preview.last_message; - if (messageData) { - this.env.models['mail.message'].insert( - this.env.models['mail.message'].convertData(messageData) - ); - } - } + this.env.models['mail.message'].insert(channelPreviews.filter(p => p.last_message).map( + channelPreview => this.env.models['mail.message'].convertData(channelPreview.last_message) + )); } /** -- cgit v1.2.3