diff --git a/addons/sms/models/mail_thread.py b/addons/sms/models/mail_thread.py index 1fb62a72de4..a439487e4e9 100644 --- a/addons/sms/models/mail_thread.py +++ b/addons/sms/models/mail_thread.py @@ -39,8 +39,8 @@ class MailThread(models.AbstractModel): if not partners: partners = self._get_default_sms_recipients() - # Collect numbers, we will consider the message to be sent if at least one number can be found - numbers = list(set([i.mobile for i in partners if i.mobile])) + # Collect numbers, we will consider the message to be sent if at least one number can be found + numbers = list(set([i.mobile for i in partners if i.mobile])) if numbers: try: diff --git a/addons/sms/wizard/send_sms.py b/addons/sms/wizard/send_sms.py index 15d284e0879..f25bedb72ab 100644 --- a/addons/sms/wizard/send_sms.py +++ b/addons/sms/wizard/send_sms.py @@ -44,8 +44,8 @@ class SendSMS(models.TransientModel): return number if not phonenumbers.is_possible_number(phone_nbr) or not phonenumbers.is_valid_number(phone_nbr): return number - phone_fmt = phonenumbers.PhoneNumberFormat.INTERNATIONAL - return phonenumbers.format_number(phone_nbr, phone_fmt).replace(' ', '') + phone_fmt = phonenumbers.PhoneNumberFormat.E164 + return phonenumbers.format_number(phone_nbr, phone_fmt) else: return number @@ -61,12 +61,11 @@ class SendSMS(models.TransientModel): @api.model def default_get(self, fields): result = super(SendSMS, self).default_get(fields) - active_model = self.env.context.get('active_model') - model = self.env[active_model] - records = self._get_records(model) - if getattr(records, '_get_default_sms_recipients'): + if not self.env.context.get('default_recipients') and active_model and hasattr(self.env[active_model], '_get_default_sms_recipients'): + model = self.env[active_model] + records = self._get_records(model) partners = records._get_default_sms_recipients() phone_numbers = [] no_phone_partners = [] @@ -83,12 +82,12 @@ class SendSMS(models.TransientModel): return result def action_send_sms(self): - numbers = self.recipients.split(',') + numbers = [number.strip() for number in self.recipients.split(',') if number.strip()] active_model = self.env.context.get('active_model') - model = self.env[active_model] - records = self._get_records(model) - if getattr(records, 'message_post_send_sms'): + if active_model and hasattr(self.env[active_model], 'message_post_send_sms'): + model = self.env[active_model] + records = self._get_records(model) records.message_post_send_sms(self.message, numbers=numbers) else: self.env['sms.api']._send_sms(numbers, self.message)