Skip to content

Commit

Permalink
[IMP] mail: cache all mail-related config parameters in one query
Browse files Browse the repository at this point in the history
  • Loading branch information
tde-banana-odoo committed Mar 16, 2018
1 parent cd69ea8 commit 6b37760
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 0 deletions.
1 change: 1 addition & 0 deletions addons/mail/models/__init__.py
@@ -1,5 +1,6 @@
# -*- coding: utf-8 -*-

from . import ir_config_parameter
from . import mail_message_subtype
from . import mail_tracking_value
from . import mail_alias
Expand Down
29 changes: 29 additions & 0 deletions addons/mail/models/ir_config_parameter.py
@@ -0,0 +1,29 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.

from odoo import api, models
from odoo.tools import ormcache


class IrConfigParameter(models.Model):
_name = 'ir.config_parameter'
_inherit = 'ir.config_parameter'

_KEYS = ('mail.catchall.alias',
'mail.catchall.domain',
'mail.bounce.alias',
'mail.session.batch.size',
'mail.batch_size',
'web.base.url')

@api.model
def get_param(self, key, default=False):
if key in self._KEYS:
return self._get_mail_params().get(key, default)
return super(IrConfigParameter, self).get_param(key, default=default)

@ormcache('self.env.uid')
def _get_mail_params(self):
params = self.env['ir.config_parameter'].search_read([
('key', 'in', self._KEYS)], fields=['key', 'value'])
return dict((param['key'], param['value']) for param in params)

0 comments on commit 6b37760

Please sign in to comment.