summaryrefslogtreecommitdiff
path: root/addons/portal_rating/models/mail_message.py
diff options
context:
space:
mode:
Diffstat (limited to 'addons/portal_rating/models/mail_message.py')
-rw-r--r--addons/portal_rating/models/mail_message.py28
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