diff options
Diffstat (limited to 'addons/portal_rating/models/mail_message.py')
| -rw-r--r-- | addons/portal_rating/models/mail_message.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/addons/portal_rating/models/mail_message.py b/addons/portal_rating/models/mail_message.py new file mode 100644 index 00000000..20716960 --- /dev/null +++ b/addons/portal_rating/models/mail_message.py @@ -0,0 +1,28 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import models + + +class MailMessage(models.Model): + _inherit = 'mail.message' + + def _portal_message_format(self, field_list): + # inlude rating value in data if requested + if self._context.get('rating_include'): + field_list += ['rating_value'] + return super(MailMessage, self)._portal_message_format(field_list) + + def _message_format(self, fnames): + """ Override the method to add information about a publisher comment + on each rating messages if requested, and compute a plaintext value of it. + """ + vals_list = super(MailMessage, self)._message_format(fnames) + + if self._context.get('rating_include'): + infos = ["id", "publisher_comment", "publisher_id", "publisher_datetime", "message_id"] + related_rating = self.env['rating.rating'].sudo().search([('message_id', 'in', self.ids)]).read(infos) + mid_rating_tree = dict((rating['message_id'][0], rating) for rating in related_rating) + for vals in vals_list: + vals["rating"] = mid_rating_tree.get(vals['id'], {}) + return vals_list |
