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
Flutterwave
Implementation details
Supported features
- Payment with redirection flow
- Tokenization
- Several payment methods such as credit cards, M-Pesa, and others.
- Webhook.
In addition, Flutterwave also allows to implement refunds and pre-authorizations.
API and gateway
We choose to integrate with Flutterwave standard as it is the gateway that covers the best our needs, out of the three that Flutterwave offers as of May 2022. See the task's dev notes for the details on the other gateways.
The version of the API implemented by this module is v3.
Merge details
The first version of the module was specified in task
2759117 and merged with PR
odoo/odoo#84820 in saas-15.4.
Testing instructions
https://developer.flutterwave.com/docs/integration-guides/testing-helpers