46 lines
1.8 KiB
Python
46 lines
1.8 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import fields, models
|
|
|
|
|
|
class EventTypeMail(models.Model):
|
|
_inherit = 'event.type.mail'
|
|
|
|
notification_type = fields.Selection(selection_add=[('sms', 'SMS')])
|
|
template_ref = fields.Reference(ondelete={'sms.template': 'cascade'}, selection_add=[('sms.template', 'SMS')])
|
|
|
|
def _compute_notification_type(self):
|
|
super()._compute_notification_type()
|
|
sms_schedulers = self.filtered(lambda scheduler: scheduler.template_ref and scheduler.template_ref._name == 'sms.template')
|
|
sms_schedulers.notification_type = 'sms'
|
|
|
|
|
|
class EventMailScheduler(models.Model):
|
|
_inherit = 'event.mail'
|
|
|
|
notification_type = fields.Selection(selection_add=[('sms', 'SMS')])
|
|
template_ref = fields.Reference(ondelete={'sms.template': 'cascade'}, selection_add=[('sms.template', 'SMS')])
|
|
|
|
def _compute_notification_type(self):
|
|
super()._compute_notification_type()
|
|
sms_schedulers = self.filtered(lambda scheduler: scheduler.template_ref and scheduler.template_ref._name == 'sms.template')
|
|
sms_schedulers.notification_type = 'sms'
|
|
|
|
def _execute_event_based_for_registrations(self, registrations):
|
|
if self.notification_type == "sms":
|
|
self._send_sms(registrations)
|
|
return super()._execute_event_based_for_registrations(registrations)
|
|
|
|
def _send_sms(self, registrations):
|
|
""" SMS action: send SMS to attendees """
|
|
registrations._message_sms_schedule_mass(
|
|
template=self.template_ref,
|
|
mass_keep_log=True
|
|
)
|
|
|
|
def _template_model_by_notification_type(self):
|
|
info = super()._template_model_by_notification_type()
|
|
info["sms"] = "sms.template"
|
|
return info
|