[FIX] sms: correctly support not mail.thread / void model in composer

SMS composer would like to support sending message to not mail.thread models
or support direct recipients as default / create. However issues in the code
prevent to effectively support that.

Related to task 1922163
Linked to PR #33567
This commit is contained in:
Thibault Delavallée
2019-05-22 12:30:21 +00:00
parent b9e5b243ac
commit 7b02b88645
+6 -7
View File
@@ -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') and not self.env.context.get('default_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 = []
@@ -86,9 +85,9 @@ class SendSMS(models.TransientModel):
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)