social/mail_private/models/res_partner.py

44 lines
1.5 KiB
Python

# Copyright 2020 Creu Blanca
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from odoo import api, models
class ResPartner(models.Model):
_inherit = 'res.partner'
@api.multi
def _notify(self, message, force_send=False, send_after_commit=True,
user_signature=True):
if not message.mail_group_id:
return super(ResPartner, self)._notify(
message, force_send=force_send,
send_after_commit=send_after_commit,
user_signature=user_signature
)
accepted_users = message.mail_group_id.mapped(
'group_ids.users')
partners = self.browse()
for partner in self:
if partner.user_ids in accepted_users:
partners |= partner
return super(ResPartner, partners)._notify(
message, force_send=force_send,
send_after_commit=send_after_commit, user_signature=user_signature
)
@api.multi
def _notify_by_chat(self, message):
if not message.mail_group_id:
return super()._notify_by_chat(message)
accepted_users = message.mail_group_id.mapped(
'group_ids.users')
partners = self.browse()
for partner in self:
if partner.user_ids in accepted_users:
partners |= partner
elif partner.user_ids:
message.sudo(partner.user_ids[0]).set_message_done()
return super(ResPartner, partners)._notify_by_chat(message)