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.

36 lines
1.2 KiB

9 years ago
  1. # -*- coding: utf-8 -*-
  2. from openerp import api, models, fields
  3. class MailMessage(models.Model):
  4. _inherit = 'mail.message'
  5. sent = fields.Boolean('Sent', compute="_compute_sent", help='Was message sent to someone', store=True)
  6. @api.depends('author_id', 'partner_ids')
  7. def _compute_sent(self):
  8. for r in self:
  9. r_sudo = r.sudo()
  10. sent = len(r_sudo.partner_ids) > 1 \
  11. or len(r_sudo.partner_ids) == 1 \
  12. and r_sudo.author_id \
  13. and r_sudo.partner_ids[0].id != r_sudo.author_id.id \
  14. or r_sudo.model == 'mail.channel' \
  15. and r_sudo.res_id
  16. r.sent = sent
  17. @api.multi
  18. def message_format(self):
  19. message_values = super(MailMessage, self).message_format()
  20. message_index = {message['id']: message for message in message_values}
  21. for item in self:
  22. msg = message_index.get(item.id)
  23. if msg:
  24. msg['sent'] = item.sent
  25. return message_values
  26. class MailComposeMessage(models.TransientModel):
  27. _inherit = 'mail.compose.message'
  28. sent = fields.Boolean('Sent', help='dummy field to fix inherit error')