# -*- coding: utf-8 -*-
# Copyright 2012-2016 Camptocamp SA
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)

from odoo import api, fields, models

from odoo.addons.server_environment import serv_config


class IrMailServer(models.Model):
    _inherit = "ir.mail_server"

    smtp_host = fields.Char(compute='_compute_server_env',
                            required=False,
                            readonly=True)
    smtp_port = fields.Integer(compute='_compute_server_env',
                               required=False,
                               readonly=True)
    smtp_user = fields.Char(compute='_compute_server_env',
                            required=False,
                            readonly=True)
    smtp_pass = fields.Char(compute='_compute_server_env',
                            required=False,
                            readonly=True)
    smtp_encryption = fields.Selection(compute='_compute_server_env',
                                       required=False,
                                       readonly=True)

    @api.depends()
    def _compute_server_env(self):
        for server in self:
            global_section_name = 'outgoing_mail'

            # default vals
            config_vals = {'smtp_port': 587}
            if serv_config.has_section(global_section_name):
                config_vals.update((serv_config.items(global_section_name)))

            custom_section_name = '.'.join((global_section_name, server.name))
            if serv_config.has_section(custom_section_name):
                config_vals.update(serv_config.items(custom_section_name))

            if config_vals.get('smtp_port'):
                config_vals['smtp_port'] = int(config_vals['smtp_port'])

            server.update(config_vals)