summaryrefslogtreecommitdiff
path: root/odoo/tools/misc.py
diff options
context:
space:
mode:
authorJeremy Kersten <jke@odoo.com>2020-04-23 13:21:34 +0000
committerJeremy Kersten <jke@odoo.com>2020-04-27 13:49:01 +0000
commit9247c5e8fde001d9bd53ea2c7cf9144326eda6e0 (patch)
tree32c7fe802c19321e13e654b051285ac713a5fe11 /odoo/tools/misc.py
parent8e150d871e60ca6a011a65ed45070d6778e6c276 (diff)
[IMP] tools: avoid useless query on res.users
Without this commit, if `lang_code` or `env.context.get('lang')` was set, we would still access `env.user.company_id.partner_id.lang` to fill the loop array even if we break and don't need that value. Switching from loop to if conditions prevents that. task-2211013 Co-authored-by: Romain Derie <rde@odoo.com> Co-authored-by: Jeremy Kersten <jke@odoo.com>
Diffstat (limited to 'odoo/tools/misc.py')
-rw-r--r--odoo/tools/misc.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/odoo/tools/misc.py b/odoo/tools/misc.py
index 2e58ad9e012..ed81f6ccf86 100644
--- a/odoo/tools/misc.py
+++ b/odoo/tools/misc.py
@@ -1215,9 +1215,14 @@ def get_lang(env, lang_code=False):
:return res.lang: the first lang found that is installed on the system.
"""
langs = [code for code, _ in env['res.lang'].get_installed()]
- for code in [lang_code, env.context.get('lang'), env.user.company_id.partner_id.lang, langs[0]]:
- if code in langs:
- return env['res.lang']._lang_get(code)
+ lang = langs[0]
+ if lang_code and lang_code in langs:
+ lang = lang_code
+ elif env.context.get('lang') in langs:
+ lang = env.context.get('lang')
+ elif env.user.company_id.partner_id.lang in langs:
+ lang = env.user.company_id.partner_id.lang
+ return env['res.lang']._lang_get(lang)
def formatLang(env, value, digits=None, grouping=True, monetary=False, dp=False, currency_obj=False):