diff --git a/addons/sms/wizard/sms_composer.py b/addons/sms/wizard/sms_composer.py index fa570734283..6bdaf0d03f6 100644 --- a/addons/sms/wizard/sms_composer.py +++ b/addons/sms/wizard/sms_composer.py @@ -210,7 +210,7 @@ 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 not self.number_field_name: + if not self.number_field_name or self.number_field_name not in records: 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}) diff --git a/addons/test_mail_sms/tests/test_sms_composer.py b/addons/test_mail_sms/tests/test_sms_composer.py index fbf05a81729..c03cc948eb9 100644 --- a/addons/test_mail_sms/tests/test_sms_composer.py +++ b/addons/test_mail_sms/tests/test_sms_composer.py @@ -121,6 +121,25 @@ class TestSMSComposerComment(SMSCommon, TestSMSRecipients): self.assertSMSNotification([{'partner': self.test_record.customer_id, 'number': self.test_record.mobile_nbr}], 'Dear %s this is an SMS.' % self.test_record.display_name, messages) + def test_composer_comment_invalid_field(self): + """ Test the Send Message in SMS Composer when a Model does not contain a number field name """ + test_record = self.env['mail.test.sms.partner'].create({ + 'name': 'Test', + 'customer_id': self.partner_1.id, + }) + sms_composer = self.env['sms.composer'].create({ + 'body': self._test_body, + 'number_field_name': 'phone_nbr', + 'recipient_single_number_itf': self.random_numbers_san[0], + 'res_id': test_record.id, + 'res_model': 'mail.test.sms.partner' + }) + + self.assertNotIn(','.join(test_record._fields), 'phone_nbr') + with self.mockSMSGateway(): + sms_composer._action_send_sms() + self.assertSMSNotification([{'number': self.random_numbers_san[0]}], self._test_body) + def test_composer_comment_nofield(self): """ Test the Send Message in SMS Composer when a Model does not contain any phone number related field """ test_record = self.env['mail.test.sms.partner'].create({'name': 'Test'})