Files
odoo_source/addons/account_payment/__init__.py
T
Denis Ledoux b4a7996e96 [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.

Part-of: odoo/odoo#108254
2023-02-01 10:25:01 +01:00

23 lines
889 B
Python

# Part of Odoo. See LICENSE file for full copyright and licensing details.
from . import controllers
from . import models
from . import wizards
def post_init_hook(env):
""" Create `account.payment.method` records for the installed payment providers. """
PaymentProvider = env['payment.provider']
installed_providers = PaymentProvider.search([('module_id.state', '=', 'installed')])
for code in set(installed_providers.mapped('code')):
PaymentProvider._setup_payment_method(code)
def uninstall_hook(env):
""" Delete `account.payment.method` records created for the installed payment providers. """
installed_providers = env['payment.provider'].search([('module_id.state', '=', 'installed')])
env['account.payment.method'].search([
('code', 'in', installed_providers.mapped('code')),
('payment_type', '=', 'inbound'),
]).unlink()