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) --- .../messaging_initializer/messaging_initializer.js | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'addons/mail/static/src/models/messaging_initializer') diff --git a/addons/mail/static/src/models/messaging_initializer/messaging_initializer.js b/addons/mail/static/src/models/messaging_initializer/messaging_initializer.js index 5bcebff0af5..6da45ac49ca 100644 --- a/addons/mail/static/src/models/messaging_initializer/messaging_initializer.js +++ b/addons/mail/static/src/models/messaging_initializer/messaging_initializer.js @@ -143,11 +143,10 @@ function factory(dependencies) { channel_direct_message = [], channel_private_group = [], } = {}) { - for (const data of channel_channel.concat(channel_direct_message, channel_private_group)) { - this.env.models['mail.thread'].insert( - this.env.models['mail.thread'].convertData(data), - ); - } + const channelsData = channel_channel.concat(channel_direct_message, channel_private_group); + this.env.models['mail.thread'].insert(channelsData.map( + channelData => this.env.models['mail.thread'].convertData(channelData) + )); } /** @@ -203,10 +202,10 @@ function factory(dependencies) { * @param {Object} mailFailuresData */ _initMailFailures(mailFailuresData) { - for (const messageData of mailFailuresData) { - const message = this.env.models['mail.message'].insert( - this.env.models['mail.message'].convertData(messageData) - ); + const messages = this.env.models['mail.message'].insert(mailFailuresData.map( + messageData => this.env.models['mail.message'].convertData(messageData) + )); + for (const message of messages) { // implicit: failures are sent by the server at initialization // only if the current partner is author of the message if (!message.author && this.messaging.currentPartner) { -- cgit v1.2.3