[FIX] mail: do not crash if a partner has more than one mail.channel.partner
It is assumed that there is a unique mail.channel.partner per (channel, partner) pair, yet there is nothing enforcing this restriction. As a result field access on the channel partner crashes on field access. closes odoo/odoo#31259
This commit is contained in:
committed by
Christophe Simonis
parent
fb01b7c952
commit
0f62a46320
@@ -730,7 +730,7 @@ class Channel(models.Model):
|
||||
self.ensure_one()
|
||||
if self.channel_message_ids.ids:
|
||||
last_message_id = self.channel_message_ids.ids[0] # zero is the index of the last message
|
||||
channel_partner = self.env['mail.channel.partner'].search([('channel_id', 'in', self.ids), ('partner_id', '=', self.env.user.partner_id.id)])
|
||||
channel_partner = self.env['mail.channel.partner'].search([('channel_id', 'in', self.ids), ('partner_id', '=', self.env.user.partner_id.id)], limit=1)
|
||||
if channel_partner.seen_message_id.id == last_message_id:
|
||||
# last message seen by user is already up-to-date
|
||||
return
|
||||
@@ -761,7 +761,7 @@ class Channel(models.Model):
|
||||
if channel.channel_type != 'chat':
|
||||
return
|
||||
last_message_id = channel.channel_message_ids.ids[0] # zero is the index of the last message
|
||||
channel_partner = self.env['mail.channel.partner'].search([('channel_id', '=', channel.id), ('partner_id', '=', self.env.user.partner_id.id)])
|
||||
channel_partner = self.env['mail.channel.partner'].search([('channel_id', '=', channel.id), ('partner_id', '=', self.env.user.partner_id.id)], limit=1)
|
||||
if channel_partner.fetched_message_id.id == last_message_id:
|
||||
# last message fetched by user is already up-to-date
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user