diff --git a/addons/im_livechat/static/src/models/messaging_initializer/messaging_initializer.js b/addons/im_livechat/static/src/models/messaging_initializer/messaging_initializer.js index 4780cf041a4..6a98302e668 100644 --- a/addons/im_livechat/static/src/models/messaging_initializer/messaging_initializer.js +++ b/addons/im_livechat/static/src/models/messaging_initializer/messaging_initializer.js @@ -20,9 +20,14 @@ registerInstancePatchModel('mail.messaging_initializer', 'im_livechat/static/src // there might be a lot of channels, insert each of them one by // one asynchronously to avoid blocking the UI await this.async(() => new Promise(resolve => setTimeout(resolve))); - this.env.models['mail.thread'].insert( + const channel = this.env.models['mail.thread'].insert( this.env.models['mail.thread'].convertData(data), ); + // flux specific: channels received at init have to be + // considered pinned. task-2284357 + if (!channel.isPinned) { + channel.update({ isPendingPinned: true }); + } } }, }); 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 b258e5502a3..6272baf9c84 100644 --- a/addons/mail/static/src/models/messaging_initializer/messaging_initializer.js +++ b/addons/mail/static/src/models/messaging_initializer/messaging_initializer.js @@ -153,9 +153,14 @@ function factory(dependencies) { // there might be a lot of channels, insert each of them one by // one asynchronously to avoid blocking the UI await this.async(() => new Promise(resolve => setTimeout(resolve))); - this.env.models['mail.thread'].insert( + const channel = this.env.models['mail.thread'].insert( this.env.models['mail.thread'].convertData(channelData) ); + // flux specific: channels received at init have to be + // considered pinned. task-2284357 + if (!channel.isPinned) { + channel.update({ isPendingPinned: true }); + } } } diff --git a/addons/mail/static/src/models/thread/thread.js b/addons/mail/static/src/models/thread/thread.js index 837de254d9d..cfc0672df93 100644 --- a/addons/mail/static/src/models/thread/thread.js +++ b/addons/mail/static/src/models/thread/thread.js @@ -164,13 +164,6 @@ function factory(dependencies) { } if ('is_pinned' in data) { data2.isServerPinned = data.is_pinned; - // FIXME: The following is admittedly odd. - // Fixing it should entail a deeper reflexion on the group_based_subscription - // and is_pinned functionalities, especially in python. - // task-2284357 - if ('group_based_subscription' in data && data.group_based_subscription) { - data2.isServerPinned = true; - } } if ('last_message' in data && data.last_message) { data2.messagesAsServerChannel.push(['insert', { id: data.last_message.id }]);