diff options
Diffstat (limited to 'addons/mail/models/res_company.py')
| -rw-r--r-- | addons/mail/models/res_company.py | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/addons/mail/models/res_company.py b/addons/mail/models/res_company.py new file mode 100644 index 00000000..3572c903 --- /dev/null +++ b/addons/mail/models/res_company.py @@ -0,0 +1,37 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import api, models, fields, tools + + +class Company(models.Model): + _name = 'res.company' + _inherit = 'res.company' + + catchall_email = fields.Char(string="Catchall Email", compute="_compute_catchall") + catchall_formatted = fields.Char(string="Catchall", compute="_compute_catchall") + email_formatted = fields.Char(string="Formatted Email", compute="_compute_email_formatted") + + @api.depends('name') + def _compute_catchall(self): + ConfigParameter = self.env['ir.config_parameter'].sudo() + alias = ConfigParameter.get_param('mail.catchall.alias') + domain = ConfigParameter.get_param('mail.catchall.domain') + if alias and domain: + for company in self: + company.catchall_email = '%s@%s' % (alias, domain) + company.catchall_formatted = tools.formataddr((company.name, company.catchall_email)) + else: + for company in self: + company.catchall_email = '' + company.catchall_formatted = '' + + @api.depends('partner_id.email_formatted', 'catchall_formatted') + def _compute_email_formatted(self): + for company in self: + if company.partner_id.email_formatted: + company.email_formatted = company.partner_id.email_formatted + elif company.catchall_formatted: + company.email_formatted = company.catchall_formatted + else: + company.email_formatted = '' |
