diff --git a/addons/mail/models/mail_channel_partner.py b/addons/mail/models/mail_channel_partner.py index e012f5ebb9e..f4f9ef998b1 100644 --- a/addons/mail/models/mail_channel_partner.py +++ b/addons/mail/models/mail_channel_partner.py @@ -34,6 +34,14 @@ class ChannelPartner(models.Model): def name_get(self): return [(record.id, record.partner_id.name or record.guest_id.name) for record in self] + def _name_search(self, name='', args=None, operator='ilike', limit=100, name_get_uid=None): + domain = [[('partner_id', operator, name)], [('guest_id', operator, name)]] + if '!' in operator or 'not' in operator: + domain = expression.AND(domain) + else: + domain = expression.OR(domain) + return self._search(expression.AND([domain, args]), limit=limit, access_rights_uid=name_get_uid) + def init(self): self.env.cr.execute("CREATE UNIQUE INDEX IF NOT EXISTS mail_channel_partner_partner_unique ON %s (channel_id, partner_id) WHERE partner_id IS NOT NULL" % self._table) self.env.cr.execute("CREATE UNIQUE INDEX IF NOT EXISTS mail_channel_partner_guest_unique ON %s (channel_id, guest_id) WHERE guest_id IS NOT NULL" % self._table)