28 lines
1022 B
Python
28 lines
1022 B
Python
from odoo import models
|
|
|
|
from odoo.addons.mail.tools.discuss import Store
|
|
|
|
|
|
class MailMessage(models.Model):
|
|
_inherit = 'mail.message'
|
|
|
|
def _to_store_defaults(self, target):
|
|
if (
|
|
any(m.model in self.env['account.report']._get_annotatable_models() for m in self)
|
|
and self.env['account.report.annotation'].has_access('read')
|
|
):
|
|
message_id_to_annotation_date = {
|
|
a['message_id'][0]: a['date']
|
|
for a in self.env['account.report.annotation'].search_read(
|
|
[('message_id', 'in', self.ids)],
|
|
['message_id', 'date'],
|
|
)
|
|
}
|
|
else:
|
|
message_id_to_annotation_date = {}
|
|
return super()._to_store_defaults(target) + [Store.Attr(
|
|
'account_reports_annotation_date',
|
|
value=lambda m: message_id_to_annotation_date.get(m.id),
|
|
predicate=lambda m: m.model in self.env['account.report']._get_annotatable_models(),
|
|
)]
|