[FIX] sms: use partners on record to send sms
To reproduce ============ - create sms template and apply it to a module different than `res.partner` for example Tasks - add context action - create a task and select a customer that has a phone number - from action try to send the sms, an error is displayed Problem ======= when computing the receipient info, the partner on the record is not taken into account. opw-3475456 closes odoo/odoo#137014 X-original-commit: 6e6a8c24c3ab1a6b3ff27564f4244ed3d6b4c022 Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
This commit is contained in:
@@ -135,7 +135,7 @@ class SendSMS(models.TransientModel):
|
||||
composer.recipient_single_number = ''
|
||||
continue
|
||||
records.ensure_one()
|
||||
res = records._sms_get_recipients_info(force_field=composer.number_field_name, partner_fallback=False)
|
||||
res = records._sms_get_recipients_info(force_field=composer.number_field_name, partner_fallback=True)
|
||||
composer.recipient_single_description = res[records.id]['partner'].name or records._mail_get_partners()[records[0].id].display_name
|
||||
composer.recipient_single_number = res[records.id]['number'] or ''
|
||||
|
||||
|
||||
@@ -154,6 +154,7 @@ class TestSMSComposerComment(SMSCommon, TestSMSRecipients):
|
||||
self.assertSMSNotification([{'number': self.random_numbers_san[0]}], self._test_body)
|
||||
|
||||
def test_composer_default_recipient(self):
|
||||
""" Test default description of SMS composer must be partner name"""
|
||||
self.test_record.write({
|
||||
'phone_nbr': '0123456789',
|
||||
})
|
||||
@@ -165,9 +166,21 @@ class TestSMSComposerComment(SMSCommon, TestSMSRecipients):
|
||||
'number_field_name': 'phone_nbr',
|
||||
})
|
||||
|
||||
self.assertFalse(composer.recipient_single_valid)
|
||||
self.assertEqual(composer.recipient_single_description, self.test_record.customer_id.display_name)
|
||||
|
||||
def test_composer_nofield_w_customer(self):
|
||||
""" Test SMS composer without number field, the number on partner must be used instead"""
|
||||
with self.with_user('employee'):
|
||||
composer = self.env['sms.composer'].with_context(
|
||||
default_res_model='mail.test.sms', default_res_id=self.test_record.id,
|
||||
).create({
|
||||
'body': self._test_body,
|
||||
})
|
||||
|
||||
self.assertTrue(composer.recipient_single_valid)
|
||||
self.assertEqual(composer.recipient_single_number, self.test_numbers[1])
|
||||
self.assertEqual(composer.recipient_single_number_itf, self.test_numbers[1])
|
||||
|
||||
def test_composer_internals(self):
|
||||
with self.with_user('employee'):
|
||||
composer = self.env['sms.composer'].with_context(
|
||||
|
||||
Reference in New Issue
Block a user