You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
from odoo import api, fields, models
class MailMessage(models.Model): _inherit = "mail.message"
sent = fields.Boolean( "Sent", compute="_compute_sent", help="Was message sent to someone", store=True )
@api.depends("author_id", "partner_ids", "channel_ids") def _compute_sent(self): for r in self: r_sudo = r.sudo() recipient_ids = r_sudo.partner_ids author_id = r_sudo.author_id res_id = ( r_sudo.model and r_sudo.res_id and r_sudo.env[r_sudo.model].browse(r_sudo.res_id) ) sent = author_id and ( len(recipient_ids) > 1 or (len(recipient_ids) == 1 and recipient_ids[0].id != author_id.id) or (len(r_sudo.channel_ids)) or (res_id and len(res_id.message_partner_ids - author_id) > 0) ) r.sent = sent
def message_format(self): message_values = super(MailMessage, self).message_format() message_index = {message["id"]: message for message in message_values} for item in self: msg = message_index.get(item.id) if msg: msg["sent"] = item.sent return message_values
class MailComposeMessage(models.TransientModel):
_inherit = "mail.compose.message" sent = fields.Boolean("Sent", help="dummy field to fix inherit error")
|