Skip to content
Snippets Groups Projects
Commit 1778a2c1 authored by Thibault Delavallée's avatar Thibault Delavallée
Browse files

[FIX] sms: correctly render body in mass sms


When sending SMS on several records in comment mode (aka: post sms message
in batch) the body is sent as it is. This does not happen frequently as
default usage is either

  * comment on a single record -> body is rendered by onchange / compute;
  * mass SMS on several records -> body is rendered for all records then
    sent to all recipients;

Using comment mode in mass is not common, and is mainly achieved through
handcrafted actions. However this can be fixed by correctly rendering the
body before posting on all records.

Use addition of records instead of OR to keep ordering of created
messages when using SMS composer.

Spotted during Task-2613245 (Server actions mail update / cleaning)

closes odoo/odoo#97734

Signed-off-by: default avatarThibault Delavallee (tde) <tde@openerp.com>
parent d5a1c576
Branches
Tags
No related merge requests found
......@@ -180,9 +180,12 @@ class SendSMS(models.TransientModel):
subtype_id = self.env['ir.model.data'].xmlid_to_res_id('mail.mt_note')
messages = self.env['mail.message']
all_bodies = self._prepare_body_values(records)
for record in records:
messages |= record._message_sms(
self.body, subtype_id=subtype_id,
messages += record._message_sms(
all_bodies[record.id],
subtype_id=subtype_id,
partner_ids=self.partner_ids.ids or False,
number_field=self.number_field_name,
sms_numbers=self.sanitized_numbers.split(',') if self.sanitized_numbers else None)
......
......@@ -157,11 +157,11 @@ class TestSMSComposerBatch(test_mail_full_common.BaseFunctionalTest, sms_common.
with self.mockSMSGateway():
messages = composer._action_send_sms()
for record in self.records:
for record, message in zip(self.records, messages):
self.assertSMSNotification(
[{'partner': record.customer_id}],
'Hello ${object.name} zizisse an SMS.',
messages
'Hello %s zizisse an SMS.' % record.name,
message
)
def test_composer_batch_active_ids(self):
......@@ -177,11 +177,11 @@ class TestSMSComposerBatch(test_mail_full_common.BaseFunctionalTest, sms_common.
with self.mockSMSGateway():
messages = composer._action_send_sms()
for record in self.records:
for record, message in zip(self.records, messages):
self.assertSMSNotification(
[{'partner': record.customer_id}],
'Hello ${object.name} zizisse an SMS.',
messages
'Hello %s zizisse an SMS.' % record.name,
message
)
def test_composer_batch_domain(self):
......@@ -198,11 +198,11 @@ class TestSMSComposerBatch(test_mail_full_common.BaseFunctionalTest, sms_common.
with self.mockSMSGateway():
messages = composer._action_send_sms()
for record in self.records:
for record, message in zip(self.records, messages):
self.assertSMSNotification(
[{'partner': record.customer_id}],
'Hello ${object.name} zizisse an SMS.',
messages
'Hello %s zizisse an SMS.' % record.name,
message
)
def test_composer_batch_res_ids(self):
......@@ -218,11 +218,11 @@ class TestSMSComposerBatch(test_mail_full_common.BaseFunctionalTest, sms_common.
with self.mockSMSGateway():
messages = composer._action_send_sms()
for record in self.records:
for record, message in zip(self.records, messages):
self.assertSMSNotification(
[{'partner': record.customer_id}],
'Hello ${object.name} zizisse an SMS.',
messages
'Hello %s zizisse an SMS.' % record.name,
message
)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment