summaryrefslogtreecommitdiff
path: root/addons/mail/static/src/models/messaging_initializer/messaging_initializer.js
diff options
context:
space:
mode:
authorSébastien Theys <seb@odoo.com>2020-07-31 13:48:31 +0000
committerSébastien Theys <seb@odoo.com>2020-07-31 14:43:15 +0000
commit0d4cb52b9dcd56cb463f2168eaea7a0e8fc2d9a8 (patch)
tree109758dce03461b2cc8e0327ab833f0dc19790cf /addons/mail/static/src/models/messaging_initializer/messaging_initializer.js
parent7a1bfa793a6e0d47b1574cd9cc44f6dd00d910f2 (diff)
[FIX] mail: batch create/insert of JS model for performance
PR: #55261 Part of task-2308312 closes odoo/odoo#55266 X-original-commit: eded5f6372d4f1cffd1a361bd8fa7fd8f1f8ae9e Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Diffstat (limited to 'addons/mail/static/src/models/messaging_initializer/messaging_initializer.js')
-rw-r--r--addons/mail/static/src/models/messaging_initializer/messaging_initializer.js17
1 files changed, 8 insertions, 9 deletions
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) {