[FIX] mail, crm: do not display body in creation message when having a subtype
Right now on few business objects (like leads, invoices, tasks, helpdesk
tickets etc) creation message contains
* subtype description;
* generic creation message;
This looks like multiple creation message on chatter after creation of the
record as you generally have "Task Created - Task created" (subtype description
then generic message).
This happens when we provide custom subtype on creation by by overriding
`_creation_subtype` method.
This commit fixes the issue by only using provided creation subtype and
removing default body. If creation subtype is not provided default creation
message is posted as before.
In this commit we also fix subtype for Lead/Opportunity creation and make
it generic ('Lead/Opportunity created') to avoid inconsistent behavior.
Finally some cleaning is made in method naming. Semi followup of 92e9e84b63
LINKS
Task ID-2288458
PR odoo/odoo#56631
PR odoo/enterprise#12707
closes odoo/odoo#56688
X-original-commit: 2ebbeb4b5443c6405dd9a3b202a1eee9c5c67ebb
Related: odoo/enterprise#12728
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
This commit is contained in:
committed by
Thibault Delavallée
parent
1404af789c
commit
610ba98539
@@ -1795,10 +1795,10 @@ class AccountMove(models.Model):
|
||||
return self.env.ref('account.mt_invoice_validated')
|
||||
return super(AccountMove, self)._track_subtype(init_values)
|
||||
|
||||
def _get_creation_message(self):
|
||||
def _creation_message(self):
|
||||
# OVERRIDE
|
||||
if not self.is_invoice(include_receipts=True):
|
||||
return super()._get_creation_message()
|
||||
return super()._creation_message()
|
||||
return {
|
||||
'out_invoice': _('Invoice Created'),
|
||||
'out_refund': _('Credit Note Created'),
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<field name="hidden" eval="True"/>
|
||||
<field name="res_model">crm.lead</field>
|
||||
<field name="default" eval="False"/>
|
||||
<field name="description">Opportunity created</field>
|
||||
<field name="description">Lead/Opportunity created</field>
|
||||
</record>
|
||||
<record id="mt_lead_stage" model="mail.message.subtype">
|
||||
<field name="name">Stage Changed</field>
|
||||
|
||||
@@ -16,5 +16,5 @@ class BaseModel(models.AbstractModel):
|
||||
employee = self.env['hr.employee'].search([('user_id.email', 'ilike', email_address)], limit=1)
|
||||
if not employee:
|
||||
return _('restricted to employees')
|
||||
return True
|
||||
return False
|
||||
return super(BaseModel, self)._alias_get_error_message(message, message_dict, alias)
|
||||
|
||||
@@ -391,7 +391,7 @@ class Channel(models.Model):
|
||||
author = self.env['res.partner'].browse(message_dict.get('author_id', False))
|
||||
if not author or author not in self.channel_partner_ids:
|
||||
return _('restricted to channel members')
|
||||
return True
|
||||
return False
|
||||
return super(Channel, self)._alias_get_error_message(message, message_dict, alias)
|
||||
|
||||
def init(self):
|
||||
|
||||
@@ -284,14 +284,16 @@ class MailThread(models.AbstractModel):
|
||||
if not self._context.get('mail_create_nolog'):
|
||||
threads_no_subtype = self.env[self._name]
|
||||
for thread in threads:
|
||||
body = thread._get_creation_message()
|
||||
subtype = thread._creation_subtype()
|
||||
if subtype: # if we have a subtype, post message to notify users from _message_auto_subscribe
|
||||
thread.sudo().message_post(body=body, subtype_id=subtype.id, author_id=self.env.user.partner_id.id)
|
||||
thread.sudo().message_post(subtype_id=subtype.id, author_id=self.env.user.partner_id.id)
|
||||
else:
|
||||
threads_no_subtype += thread
|
||||
if threads_no_subtype:
|
||||
threads_no_subtype._message_log_batch(bodies={t.id: body for t in threads_no_subtype})
|
||||
bodies = dict(
|
||||
(thread.id, thread._creation_message())
|
||||
for thread in threads_no_subtype)
|
||||
threads_no_subtype._message_log_batch(bodies=bodies)
|
||||
|
||||
# post track template if a tracked field changed
|
||||
threads._discard_tracking()
|
||||
@@ -414,7 +416,7 @@ class MailThread(models.AbstractModel):
|
||||
"""
|
||||
return self.env['mail.message.subtype']
|
||||
|
||||
def _get_creation_message(self):
|
||||
def _creation_message(self):
|
||||
""" Get the creation message to log into the chatter at the record's creation.
|
||||
:returns: The message's body to log.
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user