odoo18/addons/sms_twilio/models/mail_notification.py

46 lines
1.6 KiB
Python

from odoo import api, fields, models
class MailNotification(models.Model):
_inherit = 'mail.notification'
failure_type = fields.Selection(
selection_add=[
('twilio_authentication', 'Authentication Error"'),
('twilio_callback', 'Incorrect callback URL'),
('twilio_from_missing', 'Missing From Number'),
('twilio_from_to', 'From / To identic'),
],
)
# CRUD
# ------------------------------------------------------------
@api.model
def fields_get(self, allfields=None, attributes=None):
# As we are adding keys in stable, better be sure no-one is getting crashes
# due to missing translations
# TODO: remove in master
res = super().fields_get(allfields=allfields, attributes=attributes)
existing_selection = res.get('failure_type', {}).get('selection')
if existing_selection is None:
return res
updated_stable = {
'twilio_authentication', 'twilio_callback',
'twilio_from_missing', 'twilio_from_to',
}
need_update = updated_stable - set(dict(self._fields['failure_type'].selection))
if need_update:
self.env['ir.model.fields'].invalidate_model(['selection_ids'])
self.env['ir.model.fields.selection']._update_selection(
self._name,
'failure_type',
self._fields['failure_type'].selection,
)
self.env.registry.clear_cache()
return super().fields_get(allfields=allfields, attributes=attributes)
return res