[FIX] sms: don't get error when sending an sms on sale order

steps:
- Go to Rental app
- Open a rental Order
- Click on Action
-  Send an SMS text message
-  Fill phone number and message
- Sens SMS
Issue:
Traceback

Cause:
Sale order doesn't have a phone or mobile field so the sms.composer tries to write on it use "False"

Solution ensure the field name isn't false before writing

opw-3103232

closes odoo/odoo#110038

X-original-commit: 70a9995c9e02f36dc15d2723151ef0a205ebc12b
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
This commit is contained in:
Eteil Djoumatchoua (etdj)
2023-01-25 09:16:47 +01:00
parent ef67615e97
commit 6186dc2266
2 changed files with 20 additions and 1 deletions
+3 -1
View File
@@ -210,7 +210,9 @@ class SendSMS(models.TransientModel):
# on the numbers in the database.
records = records if records is not None else self._get_records()
records.ensure_one()
if self.recipient_single_number_itf and self.recipient_single_number_itf != self.recipient_single_number:
if not self.number_field_name:
self.numbers = self.recipient_single_number_itf or self.recipient_single_number
elif self.recipient_single_number_itf and self.recipient_single_number_itf != self.recipient_single_number:
records.write({self.number_field_name: self.recipient_single_number_itf})
return self._action_send_sms_comment(records=records)
@@ -220,6 +220,23 @@ class TestSMSComposerComment(TestSMSCommon, TestSMSRecipients):
self.assertNoSMS()
self.assertSMSIapSent(self.random_numbers_san, self._test_body)
def test_composer_sending_with_no_number_field(self):
test_record = self.env['mail.test.sms.partner'].create({'name': 'Test'})
sms_composer = self.env['sms.composer'].create({
'body': self._test_body,
'composition_mode': 'comment',
'mass_force_send': False,
'mass_keep_log': True,
'number_field_name': False,
'numbers': False,
'recipient_single_number_itf': self.random_numbers_san[0],
'res_id': test_record.id,
'res_model': 'mail.test.sms.partner'
})
with self.mockSMSGateway():
sms_composer._action_send_sms()
self.assertSMSNotification([{'number': self.random_numbers_san[0]}], self._test_body)
class TestSMSComposerBatch(TestSMSCommon):
@classmethod