64 lines
2.6 KiB
Python
64 lines
2.6 KiB
Python
|
# -*- coding: utf-8 -*-
|
||
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||
|
|
||
|
import datetime
|
||
|
|
||
|
from odoo import _, fields, models
|
||
|
from odoo.exceptions import UserError
|
||
|
|
||
|
|
||
|
class ResConfigSettings(models.TransientModel):
|
||
|
""" Inherit the base settings to add a counter of failed email + configure
|
||
|
the alias domain. """
|
||
|
_inherit = 'res.config.settings'
|
||
|
|
||
|
fail_counter = fields.Integer('Fail Mail', compute="_compute_fail_counter")
|
||
|
alias_domain = fields.Char(
|
||
|
'Alias Domain', config_parameter='mail.catchall.domain',
|
||
|
help="If you have setup a catch-all email domain redirected to the Odoo server, enter the domain name here.")
|
||
|
module_google_gmail = fields.Boolean('Support Gmail Authentication')
|
||
|
module_microsoft_outlook = fields.Boolean('Support Outlook Authentication')
|
||
|
restrict_template_rendering = fields.Boolean(
|
||
|
'Restrict Template Rendering',
|
||
|
config_parameter='mail.restrict.template.rendering',
|
||
|
help='Users will still be able to render templates.\n'
|
||
|
'However only Mail Template Editors will be able to create new dynamic templates or modify existing ones.')
|
||
|
use_twilio_rtc_servers = fields.Boolean(
|
||
|
'Use Twilio ICE servers',
|
||
|
help="If you want to use twilio as TURN/STUN server provider",
|
||
|
config_parameter='mail.use_twilio_rtc_servers',
|
||
|
)
|
||
|
twilio_account_sid = fields.Char(
|
||
|
'Twilio Account SID',
|
||
|
config_parameter='mail.twilio_account_sid',
|
||
|
)
|
||
|
twilio_account_token = fields.Char(
|
||
|
'Twilio Account Auth Token',
|
||
|
config_parameter='mail.twilio_account_token',
|
||
|
)
|
||
|
primary_color = fields.Char(related='company_id.primary_color', string="Header Color", readonly=False)
|
||
|
secondary_color = fields.Char(related='company_id.secondary_color', string="Button Color", readonly=False)
|
||
|
|
||
|
def _compute_fail_counter(self):
|
||
|
previous_date = fields.Datetime.now() - datetime.timedelta(days=30)
|
||
|
|
||
|
self.fail_counter = self.env['mail.mail'].sudo().search_count([
|
||
|
('date', '>=', previous_date),
|
||
|
('state', '=', 'exception'),
|
||
|
])
|
||
|
|
||
|
def open_email_layout(self):
|
||
|
layout = self.env.ref('mail.mail_notification_layout', raise_if_not_found=False)
|
||
|
if not layout:
|
||
|
raise UserError(_("This layout seems to no longer exist."))
|
||
|
return {
|
||
|
'type': 'ir.actions.act_window',
|
||
|
'name': _('Mail Layout'),
|
||
|
'view_mode': 'form',
|
||
|
'res_id': layout.id,
|
||
|
'res_model': 'ir.ui.view',
|
||
|
}
|
||
|
|
||
|
def open_mail_templates(self):
|
||
|
return self.env['ir.actions.actions']._for_xml_id('mail.action_email_template_tree_all')
|