diff options
| author | Arnold Moyaux <arm@odoo.com> | 2021-02-16 14:47:25 +0000 |
|---|---|---|
| committer | Arnold Moyaux <arm@odoo.com> | 2021-02-16 17:11:31 +0000 |
| commit | 53422e1c75e231436ba2928d80ebdfaa875dcf0e (patch) | |
| tree | 1911ea5558ddee32b880138dc834276c0e199cac | |
| parent | 918218dee752a365b3071370dc75ea53067eecc6 (diff) | |
[FIX] mrp, mrp_subcontracting: traceback during unistall
The unlink fail in __init__.py uninstall hook is managed, however
when it fail, the error is catch but the cursor is not rollback and
do not accept additional transaction. That result in a traceback at
uninstall.
opw-2453939
closes odoo/odoo#66296
X-original-commit: 66d9dce9b6e6e65000ba0b62efcb153f2d3eec15
Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
| -rw-r--r-- | addons/mrp/__init__.py | 5 | ||||
| -rw-r--r-- | addons/mrp_subcontracting/__init__.py | 3 |
2 files changed, 5 insertions, 3 deletions
diff --git a/addons/mrp/__init__.py b/addons/mrp/__init__.py index 01c44c4b198..2a4bc331171 100644 --- a/addons/mrp/__init__.py +++ b/addons/mrp/__init__.py @@ -30,12 +30,13 @@ def _create_warehouse_data(cr, registry): def uninstall_hook(cr, registry): env = api.Environment(cr, SUPERUSER_ID, {}) warehouses = env["stock.warehouse"].search([]) - subcontracting_routes = warehouses.mapped("pbm_route_id") + pbm_routes = warehouses.mapped("pbm_route_id") warehouses.write({"pbm_route_id": False}) # Fail unlink means that the route is used somewhere (e.g. route_id on stock.rule). In this case # we don't try to do anything. try: - subcontracting_routes.unlink() + with env.cr.savepoint(): + pbm_routes.unlink() except: pass diff --git a/addons/mrp_subcontracting/__init__.py b/addons/mrp_subcontracting/__init__.py index 276d3a48dbf..abbc8a489ee 100644 --- a/addons/mrp_subcontracting/__init__.py +++ b/addons/mrp_subcontracting/__init__.py @@ -14,6 +14,7 @@ def uninstall_hook(cr, registry): # Fail unlink means that the route is used somewhere (e.g. route_id on stock.rule). In this case # we don't try to do anything. try: - subcontracting_routes.unlink() + with env.cr.savepoint(): + subcontracting_routes.unlink() except: pass |
