[MERGE] sms: apply various fixes

Purpose of this merge is to provide several small fixes related to
SMS module. Those are mainly corner cases incorrectly supported
by current code.

Related to task 1922163

closes odoo/odoo#33567

Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
This commit is contained in:
Robot Odoo
2019-05-23 11:28:34 +02:00
committed by GitHub
2 changed files with 11 additions and 12 deletions
+2 -2
View File
@@ -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:
+9 -10
View File
@@ -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)