The `payment` module introduces a certain amount of payment acquirers, each one corresponding to a `payment_` module. When a `payment_` module is installed, this data is updated so that payments done with the corresponding acquirer change in behaviour using the provider installed by the `payment_` module. When a `payment_` module is uninstalled, this data should be reset to default, more especifically the `view_template_id` and the `provider` fields of `payment.acquirer`. This was not possible before this commit, and more importantly it would make the uninstallation of such `payment_` module impossible as the `view_template_id` is a required m2o ondelete='set null', which will make the registry crash. Even if the former wasn't a problem, the provider field would remain set to a non-existing selection option, which would make the registry crash (eventually, when checking a record with such a selection option). With this commit, we reset these fields to their default value upon module uninstall. In 13, the issue with `view_template_id` should be fixed, as required m2o that are ondelete='set null' are no longer possible. As for the provider Selection field, a fix should arrive in master soon. opw-2225333 closes odoo/odoo#48916 X-original-commit: 4f0c1c1bfd71dd1ff6793d0a91b49984c54d1351 Signed-off-by: Raphael Collet (rco) <rco@openerp.com> Signed-off-by: Adrian Torres (adt) <adt@odoo.com>
17 lines
517 B
Python
17 lines
517 B
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
from odoo import api, SUPERUSER_ID
|
|
|
|
from . import models
|
|
from . import controllers
|
|
from . import wizards
|
|
|
|
|
|
def reset_payment_provider(cr, registry, provider):
|
|
env = api.Environment(cr, SUPERUSER_ID, {})
|
|
acquirers = env['payment.acquirer'].search([('provider', '=', provider)])
|
|
acquirers.write({
|
|
'view_template_id': acquirers._get_default_view_template_id().id,
|
|
'provider': 'manual',
|
|
})
|