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.
51 lines
1.8 KiB
51 lines
1.8 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
|
|
if self.env.user.has_group('mail_edit.group_mail_edit_superuser'):
|
|
message_dict['is_superuser'] = True
|
|
return res
|