bemade-addons/bemade_mailcow_integration/models/mail_alias.py
2023-07-21 13:26:07 -04:00

29 lines
1.1 KiB
Python

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')
@api.model
def create(self, vals):
alias = super(MailAlias, self).create(vals)
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"),
alias_domain = alias_domain[0]
catchall_alias = catchall_alias[0]
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,
})
return alias