[FIX] mrp, mrp_subcontracting: clean-up routes at uninstall
When `mrp` or `mrp_subcontracting` are uninstalled, the routes used as 'Picking Before Manufacturing Route' and 'Resupply Subcontractor' are kept active. When the modules are re-installed, the routes are created again, and appear duplicated. The routes should be deleted if they are not used anywhere else. opw-2222895 closes odoo/odoo#48206 X-original-commit: ce219b8375dc14daf9d380433d254b622a947773 Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
This commit is contained in:
@@ -16,3 +16,16 @@ def _create_warehouse_data(cr, registry):
|
||||
env = api.Environment(cr, SUPERUSER_ID, {})
|
||||
warehouse_ids = env['stock.warehouse'].search([('manufacture_pull_id', '=', False)])
|
||||
warehouse_ids.write({'manufacture_to_resupply': True})
|
||||
|
||||
def uninstall_hook(cr, registry):
|
||||
env = api.Environment(cr, SUPERUSER_ID, {})
|
||||
warehouses = env["stock.warehouse"].search([])
|
||||
subcontracting_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()
|
||||
except:
|
||||
pass
|
||||
|
||||
|
||||
@@ -47,4 +47,5 @@
|
||||
'test': [],
|
||||
'application': True,
|
||||
'post_init_hook': '_create_warehouse_data',
|
||||
'uninstall_hook': 'uninstall_hook',
|
||||
}
|
||||
|
||||
@@ -1,4 +1,19 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
from odoo import SUPERUSER_ID, api
|
||||
|
||||
from . import models
|
||||
from . import wizard
|
||||
|
||||
|
||||
def uninstall_hook(cr, registry):
|
||||
env = api.Environment(cr, SUPERUSER_ID, {})
|
||||
warehouses = env["stock.warehouse"].search([])
|
||||
subcontracting_routes = warehouses.mapped("subcontracting_route_id")
|
||||
warehouses.write({"subcontracting_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()
|
||||
except:
|
||||
pass
|
||||
|
||||
@@ -23,4 +23,5 @@
|
||||
'demo': [
|
||||
'data/mrp_subcontracting_demo.xml',
|
||||
],
|
||||
'uninstall_hook': 'uninstall_hook',
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user