social/mail_tracking/models/mail_composer.py

41 lines
1.5 KiB
Python

# Copyright 2019 Alexandre Díaz
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import models, fields, api
class MailComposer(models.TransientModel):
_inherit = 'mail.compose.message'
hide_followers = fields.Boolean(string="Hide follower message",
default=False)
@api.multi
def send_mail(self, auto_commit=False):
"""This method marks as reviewed the message when using the 'Retry'
option in the mail_failed_message widget"""
message = self.env['mail.message'].browse(
self._context.get('message_id'))
if message.exists():
message.mail_tracking_needs_action = False
self.env['bus.bus'].sendone(
(self._cr.dbname, 'res.partner', self.env.user.partner_id.id),
{
'type': 'failed_updated',
'id': message.id,
'status': message.mail_tracking_needs_action,
})
return super().send_mail(auto_commit=auto_commit)
@api.model
def get_record_data(self, values):
"""Overwrite 'partner_ids' if enable 'hide_followers' on mail
composer"""
values = super(MailComposer, self).get_record_data(values)
# Only use selected partners without followers
if self._context.get('default_hide_followers', False):
values['partner_ids'] = [
(6, 0, self._context.get('default_partner_ids', list()))
]
return values