[FIX] stock,mrp: Create ir.model.data with _update, not create
Purpose ======= As the 'function' tag is re-evaluated on the module update (even when noupdate="1"), the ir.model.data will be created a second time with the function 'create'. This leads to the record deletion after the update when calling '_process_end'. Specification ============= Use '_update' instead of 'create' and '_update_dummy'. - _update won't create another ir.model.data if it already exists. - _update already calls _update_dummy to avoid the record deletion.
This commit is contained in:
@@ -83,21 +83,17 @@
|
||||
<field name="sequence">0</field>
|
||||
</record>
|
||||
|
||||
<function model="ir.model.data" name="create">
|
||||
<value model="stock.warehouse" eval="{
|
||||
'name': 'picking_type_manufacturing',
|
||||
'module':'mrp',
|
||||
'model': 'stock.picking.type',
|
||||
'res_id': obj().env.ref('stock.warehouse0').manu_type_id.id,
|
||||
}"/>
|
||||
</function>
|
||||
|
||||
<!-- avoid the xml id and the associated resource being dropped by the orm by manually making a hit on it -->
|
||||
<function model="ir.model.data" name="_update_dummy">
|
||||
<function model="ir.model.data" name="_update">
|
||||
<value>stock.picking.type</value>
|
||||
<value>mrp</value>
|
||||
<value eval="{}"/>
|
||||
<value>picking_type_manufacturing</value>
|
||||
<value eval="True"/>
|
||||
<value eval="True"/>
|
||||
<value>init</value>
|
||||
<value model="stock.warehouse" eval="obj().env.ref('stock.warehouse0').manu_type_id.id"/>
|
||||
</function>
|
||||
|
||||
</data>
|
||||
|
||||
</odoo>
|
||||
|
||||
@@ -149,98 +149,75 @@
|
||||
</record>
|
||||
|
||||
<!-- create xml ids for demo data that are widely used in tests or in other codes, for more convenience -->
|
||||
<function model="ir.model.data" name="create">
|
||||
<value model="stock.warehouse" eval="{
|
||||
'name': 'stock_location_stock',
|
||||
'module':'stock',
|
||||
'model': 'stock.location',
|
||||
'res_id': obj().env.ref('stock.warehouse0').lot_stock_id.id,
|
||||
}"/>
|
||||
</function>
|
||||
<function model="ir.model.data" name="create">
|
||||
<value model="stock.warehouse" eval="{
|
||||
'name': 'stock_location_company',
|
||||
'module':'stock',
|
||||
'model': 'stock.location',
|
||||
'res_id': obj().env.ref('stock.warehouse0').wh_input_stock_loc_id.id,
|
||||
}"/>
|
||||
</function>
|
||||
<function model="ir.model.data" name="create">
|
||||
<value model="stock.warehouse" eval="{
|
||||
'name': 'stock_location_output',
|
||||
'module':'stock',
|
||||
'model': 'stock.location',
|
||||
'res_id': obj().env.ref('stock.warehouse0').wh_output_stock_loc_id.id,
|
||||
}"/>
|
||||
</function>
|
||||
<function model="ir.model.data" name="create">
|
||||
<value model="stock.warehouse" eval="{
|
||||
'name': 'location_pack_zone',
|
||||
'module':'stock',
|
||||
'model': 'stock.location',
|
||||
'res_id': obj().env.ref('stock.warehouse0').wh_pack_stock_loc_id.id,
|
||||
}"/>
|
||||
</function>
|
||||
<function model="ir.model.data" name="create">
|
||||
<value model="stock.warehouse" eval="{
|
||||
'name': 'picking_type_internal',
|
||||
'module':'stock',
|
||||
'model': 'stock.picking.type',
|
||||
'res_id': obj().env.ref('stock.warehouse0').int_type_id.id,
|
||||
}"/>
|
||||
</function>
|
||||
<function model="ir.model.data" name="create">
|
||||
<value model="stock.warehouse" eval="{
|
||||
'name': 'picking_type_in',
|
||||
'module':'stock',
|
||||
'model': 'stock.picking.type',
|
||||
'res_id': obj().env.ref('stock.warehouse0').in_type_id.id,
|
||||
}"/>
|
||||
</function>
|
||||
<function model="ir.model.data" name="create">
|
||||
<value model="stock.warehouse" eval="{
|
||||
'name': 'picking_type_out',
|
||||
'module':'stock',
|
||||
'model': 'stock.picking.type',
|
||||
'res_id': obj().env.ref('stock.warehouse0').out_type_id.id,
|
||||
}"/>
|
||||
</function>
|
||||
|
||||
<!-- avoid the xml id and the associated resource being dropped by the orm by manually making a hit on it -->
|
||||
<function model="ir.model.data" name="_update_dummy">
|
||||
<function model="ir.model.data" name="_update">
|
||||
<value>stock.location</value>
|
||||
<value>stock</value>
|
||||
<value eval="{}"/>
|
||||
<value>stock_location_stock</value>
|
||||
<value eval="True"/>
|
||||
<value eval="True"/>
|
||||
<value>init</value>
|
||||
<value model="stock.warehouse" eval="obj().env.ref('stock.warehouse0').lot_stock_id.id"/>
|
||||
</function>
|
||||
<function model="ir.model.data" name="_update_dummy">
|
||||
<function model="ir.model.data" name="_update">
|
||||
<value>stock.location</value>
|
||||
<value>stock</value>
|
||||
<value eval="{}"/>
|
||||
<value>stock_location_company</value>
|
||||
<value eval="True"/>
|
||||
<value eval="True"/>
|
||||
<value>init</value>
|
||||
<value model="stock.warehouse" eval="obj().env.ref('stock.warehouse0').wh_input_stock_loc_id.id"/>
|
||||
</function>
|
||||
<function model="ir.model.data" name="_update_dummy">
|
||||
<function model="ir.model.data" name="_update">
|
||||
<value>stock.location</value>
|
||||
<value>stock</value>
|
||||
<value eval="{}"/>
|
||||
<value>stock_location_output</value>
|
||||
<value eval="True"/>
|
||||
<value eval="True"/>
|
||||
<value>init</value>
|
||||
<value model="stock.warehouse" eval="obj().env.ref('stock.warehouse0').wh_output_stock_loc_id.id"/>
|
||||
</function>
|
||||
<function model="ir.model.data" name="_update_dummy">
|
||||
<function model="ir.model.data" name="_update">
|
||||
<value>stock.location</value>
|
||||
<value>stock</value>
|
||||
<value eval="{}"/>
|
||||
<value>location_pack_zone</value>
|
||||
<value eval="True"/>
|
||||
<value eval="True"/>
|
||||
<value>init</value>
|
||||
<value model="stock.warehouse" eval="obj().env.ref('stock.warehouse0').wh_pack_stock_loc_id.id"/>
|
||||
</function>
|
||||
<function model="ir.model.data" name="_update_dummy">
|
||||
<function model="ir.model.data" name="_update">
|
||||
<value>stock.picking.type</value>
|
||||
<value>stock</value>
|
||||
<value eval="{}"/>
|
||||
<value>picking_type_internal</value>
|
||||
<value eval="True"/>
|
||||
<value eval="True"/>
|
||||
<value>init</value>
|
||||
<value model="stock.warehouse" eval="obj().env.ref('stock.warehouse0').int_type_id.id"/>
|
||||
</function>
|
||||
<function model="ir.model.data" name="_update_dummy">
|
||||
<function model="ir.model.data" name="_update">
|
||||
<value>stock.picking.type</value>
|
||||
<value>stock</value>
|
||||
<value eval="{}"/>
|
||||
<value>picking_type_in</value>
|
||||
<value eval="True"/>
|
||||
<value eval="True"/>
|
||||
<value>init</value>
|
||||
<value model="stock.warehouse" eval="obj().env.ref('stock.warehouse0').in_type_id.id"/>
|
||||
</function>
|
||||
<function model="ir.model.data" name="_update_dummy">
|
||||
<function model="ir.model.data" name="_update">
|
||||
<value>stock.picking.type</value>
|
||||
<value>stock</value>
|
||||
<value eval="{}"/>
|
||||
<value>picking_type_out</value>
|
||||
<value eval="True"/>
|
||||
<value eval="True"/>
|
||||
<value>init</value>
|
||||
<value model="stock.warehouse" eval="obj().env.ref('stock.warehouse0').out_type_id.id"/>
|
||||
</function>
|
||||
|
||||
<!-- create the transit location for each company existing -->
|
||||
|
||||
@@ -1,47 +1,35 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data noupdate="1">
|
||||
|
||||
<!-- create xml ids for demo data that are widely used in tests or in other codes, for more convenience -->
|
||||
<function model="ir.model.data" name="create">
|
||||
<value model="stock.warehouse" eval="{
|
||||
'name': 'chi_picking_type_in',
|
||||
'module':'stock',
|
||||
'model': 'stock.picking.type',
|
||||
'res_id': obj().env.ref('stock.stock_warehouse_shop0').in_type_id.id,
|
||||
}"/>
|
||||
</function>
|
||||
<function model="ir.model.data" name="create">
|
||||
<value model="stock.warehouse" eval="{
|
||||
'name': 'chi_picking_type_out',
|
||||
'module':'stock',
|
||||
'model': 'stock.picking.type',
|
||||
'res_id': obj().env.ref('stock.stock_warehouse_shop0').out_type_id.id,
|
||||
}"/>
|
||||
</function>
|
||||
<function model="ir.model.data" name="create">
|
||||
<value model="stock.warehouse" eval="{
|
||||
'name': 'stock_location_shop0',
|
||||
'module':'stock',
|
||||
'model': 'stock.location',
|
||||
'res_id': obj().env.ref('stock.stock_warehouse_shop0').lot_stock_id.id,
|
||||
}"/>
|
||||
</function>
|
||||
<!-- avoid the xml id and the associated resource being dropped by the orm by manually making a hit on it -->
|
||||
<function model="ir.model.data" name="_update_dummy">
|
||||
<function model="ir.model.data" name="_update">
|
||||
<value>stock.picking.type</value>
|
||||
<value>stock</value>
|
||||
<value eval="{}"/>
|
||||
<value>chi_picking_type_in</value>
|
||||
<value eval="True"/>
|
||||
<value eval="True"/>
|
||||
<value>init</value>
|
||||
<value model="stock.warehouse" eval="obj().env.ref('stock.stock_warehouse_shop0').in_type_id.id"/>
|
||||
</function>
|
||||
<function model="ir.model.data" name="_update_dummy">
|
||||
<function model="ir.model.data" name="_update">
|
||||
<value>stock.picking.type</value>
|
||||
<value>stock</value>
|
||||
<value eval="{}"/>
|
||||
<value>chi_picking_type_out</value>
|
||||
<value eval="True"/>
|
||||
<value eval="True"/>
|
||||
<value>init</value>
|
||||
<value model="stock.warehouse" eval="obj().env.ref('stock.stock_warehouse_shop0').out_type_id.id"/>
|
||||
</function>
|
||||
<function model="ir.model.data" name="_update_dummy">
|
||||
<value>stock.location</value>
|
||||
<function model="ir.model.data" name="_update">
|
||||
<value>stock.picking.type</value>
|
||||
<value>stock</value>
|
||||
<value eval="{}"/>
|
||||
<value>stock_location_shop0</value>
|
||||
<value eval="True"/>
|
||||
<value eval="True"/>
|
||||
<value>init</value>
|
||||
<value model="stock.warehouse" eval="obj().env.ref('stock.stock_warehouse_shop0').lot_stock_id.id"/>
|
||||
</function>
|
||||
|
||||
<record id="location_refrigerator_small" model="stock.location">
|
||||
|
||||
Reference in New Issue
Block a user