35 lines
1.4 KiB
Python
35 lines
1.4 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import _, api, fields, models
|
|
|
|
|
|
class CalendarAlarm(models.Model):
|
|
_inherit = 'calendar.alarm'
|
|
|
|
alarm_type = fields.Selection(selection_add=[
|
|
('sms', 'SMS Text Message')
|
|
], ondelete={'sms': 'set default'})
|
|
sms_template_id = fields.Many2one(
|
|
'sms.template', string="SMS Template",
|
|
domain=[('model', 'in', ['calendar.event'])],
|
|
compute='_compute_sms_template_id', readonly=False, store=True,
|
|
help="Template used to render SMS reminder content.")
|
|
sms_notify_responsible = fields.Boolean("Notify Responsible")
|
|
|
|
@api.depends('alarm_type', 'sms_template_id')
|
|
def _compute_sms_template_id(self):
|
|
for alarm in self:
|
|
if alarm.alarm_type == 'sms' and not alarm.sms_template_id:
|
|
alarm.sms_template_id = self.env['ir.model.data']._xmlid_to_res_id('calendar_sms.sms_template_data_calendar_reminder')
|
|
elif alarm.alarm_type != 'sms' or not alarm.sms_template_id:
|
|
alarm.sms_template_id = False
|
|
|
|
@api.onchange('duration', 'interval', 'alarm_type', 'sms_notify_responsible')
|
|
def _onchange_duration_interval(self):
|
|
super()._onchange_duration_interval()
|
|
if self.alarm_type != 'sms':
|
|
self.sms_notify_responsible = False
|
|
elif self.sms_notify_responsible:
|
|
self.name += " - " + _("Notify Responsible")
|