summaryrefslogtreecommitdiff
path: root/addons/mail/models/res_company.py
diff options
context:
space:
mode:
Diffstat (limited to 'addons/mail/models/res_company.py')
-rw-r--r--addons/mail/models/res_company.py37
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 = ''