[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:
@@ -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:
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user