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.
 
 
 
 

52 lines
1.9 KiB

# -*- coding: utf-8 -*-
# © 2016 Sunflower IT (http://sunflowerweb.nl)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
from openerp import api, fields, models
class MailMessage(models.Model):
_inherit = "mail.message"
@api.model
def _get_model_selection(self):
"""Get allowed models and their names."""
model_objs = self.env["res.request.link"].search(
[("mail_edit", "=", True)],
order="name")
return [(m.object, m.name) for m in model_objs]
@api.one
@api.onchange("destination_object_id")
def change_destination_object(self):
"""Update some fields for the new message."""
# pylint: disable=api-one-deprecated
if self.destination_object_id:
self.model = self.destination_object_id._name
self.res_id = self.destination_object_id.id
model_name = self.env["ir.model"].search([
("model", "=", self.model)]).name
display_name = self.destination_object_id.display_name
if model_name:
display_name = "%s %s" % (model_name, display_name)
self.record_name = display_name
else:
self.model = self.res_id = self.record_name = False
destination_object_id = fields.Reference(
_get_model_selection,
"Destination object",
help="Object where the message will be moved to")
@api.model
def _message_read_dict_postprocess(self, messages, message_tree):
res = super(MailMessage, self)._message_read_dict_postprocess(
messages, message_tree)
for message_dict in messages:
# Check if current user is a superuser
superuser_group = 'mail_edit.group_mail_edit_superuser'
message_dict.update(
{'is_superuser': self.env.user.has_group(superuser_group)})
return res