bemade-addons/bemade_mailcow_integration/models/mail_alias.py

30 lines
1.1 KiB
Python
Raw Normal View History

2023-07-22 07:25:40 -04:00
from odoo import models, fields, api, _
from odoo.exceptions import ValidationError
class MailAlias(models.Model):
_inherit = 'mail.alias'
mailcow_id = fields.One2many('mail.mailcow.alias', 'alias_id')
2023-11-16 19:33:53 -05:00
@api.model_create_multi
def create(self, vals_list):
alias_list = super().create(vals_list)
for alias in alias_list:
2023-11-16 09:01:22 -05:00
if not alias.alias_name:
2023-11-16 19:33:53 -05:00
continue
alias_domain = self.env["ir.config_parameter"].sudo().get_param("mail.catchall.domain")
catchall_alias = self.env["ir.config_parameter"].sudo().get_param("mail.catchall.alias")
2023-07-22 07:25:40 -04:00
if alias_domain:
mailcow_alias = self.env['mail.mailcow.alias'].search([('address', '=', alias.alias_name + '@' + alias_domain)])
if mailcow_alias:
mailcow_alias.write({'active': True})
else:
self.env['mail.mailcow.alias'].create({
'address': alias.alias_name + '@' + alias_domain,
'goto': catchall_alias + '@' + alias_domain,
'alias_id': alias.id,
})
2023-11-16 19:33:53 -05:00
return alias_list