From 5e91d6e18e00ebd46d8b3d3a7756028fe32be5ec Mon Sep 17 00:00:00 2001 From: Leonardo Pistone Date: Tue, 17 Mar 2015 17:30:57 +0100 Subject: [PATCH 1/3] fix #42: reserve location should be outside WH This has always been wrong on v8, but because of the very obscure odoo/odoo#5797, this seemed to work every time we had single-step reception. Please note that this block of XML is noupdate, so for existing installations you need to change the parent of the reservation location to something outside your warehouses manually. Incidentally, this makes the branch green independently of odoo/odoo#5797. --- stock_reserve/data/stock_data.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stock_reserve/data/stock_data.xml b/stock_reserve/data/stock_data.xml index be6e44224..d2dc81a49 100644 --- a/stock_reserve/data/stock_data.xml +++ b/stock_reserve/data/stock_data.xml @@ -3,7 +3,7 @@ Reservation Stock - + From 0c32fe267b22118c2743128d00db69b9cd0c1c04 Mon Sep 17 00:00:00 2001 From: Leonardo Pistone Date: Fri, 20 Mar 2015 11:41:17 +0100 Subject: [PATCH 2/3] bump and migrate --- stock_reserve/__openerp__.py | 2 +- .../migrations/0.2/post-migration.py | 42 +++++++++++++++++++ 2 files changed, 43 insertions(+), 1 deletion(-) create mode 100644 stock_reserve/migrations/0.2/post-migration.py diff --git a/stock_reserve/__openerp__.py b/stock_reserve/__openerp__.py index 23386630f..0788ed5c6 100644 --- a/stock_reserve/__openerp__.py +++ b/stock_reserve/__openerp__.py @@ -21,7 +21,7 @@ {'name': 'Stock Reservation', 'summary': 'Stock reservations on products', - 'version': '0.1', + 'version': '0.2', 'author': "Camptocamp,Odoo Community Association (OCA)", 'category': 'Warehouse', 'license': 'AGPL-3', diff --git a/stock_reserve/migrations/0.2/post-migration.py b/stock_reserve/migrations/0.2/post-migration.py new file mode 100644 index 000000000..148849bde --- /dev/null +++ b/stock_reserve/migrations/0.2/post-migration.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- +# Author: Leonardo Pistone +# Copyright 2015 Camptocamp SA +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + + +def migrate(cr, installed_version): + """Update a wrong location that is no_update in XML.""" + if installed_version == '8.0.0.1': + cr.execute(''' + UPDATE stock_location + SET location_id = ( + SELECT res_id + FROM ir_model_data + WHERE name = 'stock_location_locations' + AND model = 'stock.location' + ) + WHERE id = ( + SELECT res_id + FROM ir_model_data + WHERE name = 'stock_location_reservation' + AND model = 'stock.location' + ) + AND location_id = ( + SELECT res_id + FROM ir_model_data + WHERE name = 'stock_location_company' + AND model = 'stock.location' + ); + ''') From 1609f164a9d613e713f32568173c2f84200f9094 Mon Sep 17 00:00:00 2001 From: Leonardo Pistone Date: Tue, 24 Mar 2015 17:03:44 +0100 Subject: [PATCH 3/3] find XML id by module, name --- stock_reserve/migrations/0.2/post-migration.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/stock_reserve/migrations/0.2/post-migration.py b/stock_reserve/migrations/0.2/post-migration.py index 148849bde..40e439352 100644 --- a/stock_reserve/migrations/0.2/post-migration.py +++ b/stock_reserve/migrations/0.2/post-migration.py @@ -25,18 +25,18 @@ def migrate(cr, installed_version): SELECT res_id FROM ir_model_data WHERE name = 'stock_location_locations' - AND model = 'stock.location' + AND module = 'stock' ) WHERE id = ( SELECT res_id FROM ir_model_data WHERE name = 'stock_location_reservation' - AND model = 'stock.location' + AND module = 'stock_reserve' ) AND location_id = ( SELECT res_id FROM ir_model_data WHERE name = 'stock_location_company' - AND model = 'stock.location' + AND module = 'stock' ); ''')