From 1c01209d326569cdfc201989395a25d4200795b5 Mon Sep 17 00:00:00 2001 From: Denis Ledoux Date: Mon, 30 Jan 2023 14:14:07 +0000 Subject: [PATCH] [IMP] base, *: change the API of init hooks to pass env This is mostly a cleaning/refactoring change. The current API for init hooks (pre, post, uninstall) is to pass `cr, registry`. But the first thing which was done by most post init and uninstall hooks was to create an env using the cr passed e.g. `env = api.Environment(cr, SUPERUSER_ID, {})` and the `registry` argument was unused in all these hooks, completely. By changing the API of hooks to pass `env` instead of `cr, registry`, we gain in average two lines in every hooks: - the line creating the env `env = api.Environment(cr, SUPERUSER_ID, {})` - the line importing `api` and `SUPERUSER_ID` Therefore removing ~250 lines of repeated code lines accross odoo/odoo and odoo/enterprise. In addition to these lines removed, it also ease the API of init hooks for Odoo developers, who are used to that `env` and not so much how to create an `env` from a cursor. closes odoo/design-themes#631 Related: odoo/enterprise#35084 Related: odoo/upgrade#4144 Related: odoo/odoo#108254 Signed-off-by: Denis Ledoux (dle) --- test_themes/__init__.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/test_themes/__init__.py b/test_themes/__init__.py index 30ace50a9..cbb4db35b 100644 --- a/test_themes/__init__.py +++ b/test_themes/__init__.py @@ -3,12 +3,9 @@ from . import models -from odoo import api, SUPERUSER_ID - -def post_init_hook(cr, registry): +def post_init_hook(env): ''' Create a new website for each theme and install the theme on it. ''' - env = api.Environment(cr, SUPERUSER_ID, {}) IrModule = env['ir.module.module'] themes = IrModule.search(IrModule.get_themes_domain(), order='name') assert len(themes) == len(env.ref('base.module_test_themes').dependencies_id)