From 0a2c227ed5361c78012a9d9e70df89734d688f4a Mon Sep 17 00:00:00 2001 From: Giovanni Francesco Capalbo Date: Tue, 2 May 2017 14:39:03 +0200 Subject: [PATCH 1/3] Add migration --- .../10.0.1.1/openupgrade_analysis.txt | 1 + .../10.0.1.1/openupgrade_analysis_work.txt | 5 +++-- .../migrations/10.0.1.1/post-migration.py | 17 +++++++++++++++++ .../migrations/10.0.1.1/pre-migration.py | 17 +++++++++++++++++ .../10.0.1.1/tests/analytic_data_v10.yml | 19 +++++++++++++++++++ 5 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 addons/analytic/migrations/10.0.1.1/post-migration.py create mode 100644 addons/analytic/migrations/10.0.1.1/pre-migration.py create mode 100644 addons/analytic/migrations/10.0.1.1/tests/analytic_data_v10.yml diff --git a/addons/analytic/migrations/10.0.1.1/openupgrade_analysis.txt b/addons/analytic/migrations/10.0.1.1/openupgrade_analysis.txt index 9c07d85b15f8..2a23622b3f67 100644 --- a/addons/analytic/migrations/10.0.1.1/openupgrade_analysis.txt +++ b/addons/analytic/migrations/10.0.1.1/openupgrade_analysis.txt @@ -7,3 +7,4 @@ DEL ir.actions.act_window: analytic.action_account_analytic_chart NEW ir.ui.view: analytic.account_analytic_tag_form_view NEW ir.ui.view: analytic.account_analytic_tag_tree_view DEL ir.ui.view: analytic.account_analytic_chart_view + diff --git a/addons/analytic/migrations/10.0.1.1/openupgrade_analysis_work.txt b/addons/analytic/migrations/10.0.1.1/openupgrade_analysis_work.txt index c4f2dafab848..fd90723642e3 100644 --- a/addons/analytic/migrations/10.0.1.1/openupgrade_analysis_work.txt +++ b/addons/analytic/migrations/10.0.1.1/openupgrade_analysis_work.txt @@ -1,8 +1,9 @@ ---Fields in module 'analytic'--- analytic / account.analytic.account / account_type (selection) : DEL required: required, selection_keys: ['closed', 'normal'], req_default: normal -# TODO: pre-migraton: copy to new column analytic / account.analytic.account / active (boolean) : NEW -# TODO: post-migraton: if account_type = closed, then set to False +#copied old account type field in pre and mapped to the new boolean in post +#(both closed = False and normal=True , this last map is a redundant because +#default is true) ---XML records in module 'analytic'--- NEW ir.actions.act_window: analytic.account_analytic_tag_action DEL ir.actions.act_window: analytic.action_account_analytic_chart diff --git a/addons/analytic/migrations/10.0.1.1/post-migration.py b/addons/analytic/migrations/10.0.1.1/post-migration.py new file mode 100644 index 000000000000..56ff277dba42 --- /dev/null +++ b/addons/analytic/migrations/10.0.1.1/post-migration.py @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- +# © 2017 Therp BV +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +from openupgradelib import openupgrade + +def deactivate_closed_accounts(cr): + # not using sql to restore account_type but map values + openupgrade.map_values( + cr, openupgrade.get_legacy_name('account_type'), + 'active', [('closed' , False) , ('normal', True)], + table='account_analytic_account', + write='sql' + ) + +@openupgrade.migrate(use_env=False) +def migrate(cr, version): + deactivate_closed_accounts(cr) diff --git a/addons/analytic/migrations/10.0.1.1/pre-migration.py b/addons/analytic/migrations/10.0.1.1/pre-migration.py new file mode 100644 index 000000000000..0c04342a2925 --- /dev/null +++ b/addons/analytic/migrations/10.0.1.1/pre-migration.py @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- +# © 2017 Therp BV +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +from openupgradelib import openupgrade + +@openupgrade.migrate(use_env=False) +def migrate(cr, version): + # copy columns good practice in pre-mig script format of colum_spec should + # be: { Table_name_in_db : [( old_column_name , new_column_name, type)] + # defaults of new columname are fetchable via method get_legacy_name + openupgrade.copy_columns( cr, { + 'account_analytic_account' : [ + ('account_type', None, None), + ], + }) + + diff --git a/addons/analytic/migrations/10.0.1.1/tests/analytic_data_v10.yml b/addons/analytic/migrations/10.0.1.1/tests/analytic_data_v10.yml new file mode 100644 index 000000000000..60e8c90c1fa9 --- /dev/null +++ b/addons/analytic/migrations/10.0.1.1/tests/analytic_data_v10.yml @@ -0,0 +1,19 @@ +- +this file contains data for automated testing the migration on travis +- + +- + create some account_analytic_account that have type == 'closed', in casde the db does not have them in order to verify that the script works and that it will transform those in v10.0 bool ean field active = False +- + !record {model: account.analytic.account, id: analytic.ou_analytic_account}: + name: 'OU Test closed' + type: 'closed' +- + !record {model: account.analytic.account, id: analytic.ou_analytic_account}: + name: 'OU Test closed 2' + type: 'closed' +- + !record {model: account.analytic.account, id: analytic.ou_analytic_account}: + name: 'OU Test normal 2' + type: 'normal' +- From 67ad384e22cf08b57dafbf9a69eccfcd081aa191 Mon Sep 17 00:00:00 2001 From: Giovanni Francesco Capalbo Date: Tue, 2 May 2017 14:41:26 +0200 Subject: [PATCH 2/3] Documentation --- odoo/openupgrade/doc/source/modules90-100.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/odoo/openupgrade/doc/source/modules90-100.rst b/odoo/openupgrade/doc/source/modules90-100.rst index 91ce5a35edc3..a50cb69155e4 100644 --- a/odoo/openupgrade/doc/source/modules90-100.rst +++ b/odoo/openupgrade/doc/source/modules90-100.rst @@ -49,7 +49,7 @@ Status : +-----------------------------------+-----------------------------------+ |account_voucher | | +-----------------------------------+-----------------------------------+ -|analytic | | +|analytic | Done +-----------------------------------+-----------------------------------+ |anonymization | | +-----------------------------------+-----------------------------------+ From c4d10d938f4fab2425af4217a3bb3de4807f3d43 Mon Sep 17 00:00:00 2001 From: Giovanni Francesco Capalbo Date: Fri, 5 May 2017 13:51:36 +0200 Subject: [PATCH 3/3] review fixes test code added to repo --- .../migrations/10.0.1.1/openupgrade_analysis.txt | 1 - .../analytic/migrations/10.0.1.1/post-migration.py | 5 +++-- .../analytic/migrations/10.0.1.1/pre-migration.py | 9 ++++----- .../migrations/10.0.1.1/tests/analytic_data_v10.yml | 8 ++------ .../migrations/10.0.1.1/tests/test_analytic.py | 13 +++++++++++++ 5 files changed, 22 insertions(+), 14 deletions(-) create mode 100644 addons/analytic/migrations/10.0.1.1/tests/test_analytic.py diff --git a/addons/analytic/migrations/10.0.1.1/openupgrade_analysis.txt b/addons/analytic/migrations/10.0.1.1/openupgrade_analysis.txt index 2a23622b3f67..9c07d85b15f8 100644 --- a/addons/analytic/migrations/10.0.1.1/openupgrade_analysis.txt +++ b/addons/analytic/migrations/10.0.1.1/openupgrade_analysis.txt @@ -7,4 +7,3 @@ DEL ir.actions.act_window: analytic.action_account_analytic_chart NEW ir.ui.view: analytic.account_analytic_tag_form_view NEW ir.ui.view: analytic.account_analytic_tag_tree_view DEL ir.ui.view: analytic.account_analytic_chart_view - diff --git a/addons/analytic/migrations/10.0.1.1/post-migration.py b/addons/analytic/migrations/10.0.1.1/post-migration.py index 56ff277dba42..11c7dcb15ee3 100644 --- a/addons/analytic/migrations/10.0.1.1/post-migration.py +++ b/addons/analytic/migrations/10.0.1.1/post-migration.py @@ -12,6 +12,7 @@ def deactivate_closed_accounts(cr): write='sql' ) -@openupgrade.migrate(use_env=False) -def migrate(cr, version): +@openupgrade.migrate(use_env=True) +def migrate(env, version): + cr = env.cr deactivate_closed_accounts(cr) diff --git a/addons/analytic/migrations/10.0.1.1/pre-migration.py b/addons/analytic/migrations/10.0.1.1/pre-migration.py index 0c04342a2925..78ffdf8adb7d 100644 --- a/addons/analytic/migrations/10.0.1.1/pre-migration.py +++ b/addons/analytic/migrations/10.0.1.1/pre-migration.py @@ -3,15 +3,14 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). from openupgradelib import openupgrade -@openupgrade.migrate(use_env=False) -def migrate(cr, version): +@openupgrade.migrate(use_env=True) +def migrate(env, version): + cr = env.cr # copy columns good practice in pre-mig script format of colum_spec should # be: { Table_name_in_db : [( old_column_name , new_column_name, type)] # defaults of new columname are fetchable via method get_legacy_name - openupgrade.copy_columns( cr, { + openupgrade.copy_columns(cr, { 'account_analytic_account' : [ ('account_type', None, None), ], }) - - diff --git a/addons/analytic/migrations/10.0.1.1/tests/analytic_data_v10.yml b/addons/analytic/migrations/10.0.1.1/tests/analytic_data_v10.yml index 60e8c90c1fa9..fab0e3247f4e 100644 --- a/addons/analytic/migrations/10.0.1.1/tests/analytic_data_v10.yml +++ b/addons/analytic/migrations/10.0.1.1/tests/analytic_data_v10.yml @@ -5,15 +5,11 @@ this file contains data for automated testing the migration on travis - create some account_analytic_account that have type == 'closed', in casde the db does not have them in order to verify that the script works and that it will transform those in v10.0 bool ean field active = False - - !record {model: account.analytic.account, id: analytic.ou_analytic_account}: + !record {model: account.analytic.account, id: analytic.ou_analytic_account_c1}: name: 'OU Test closed' type: 'closed' - - !record {model: account.analytic.account, id: analytic.ou_analytic_account}: - name: 'OU Test closed 2' - type: 'closed' -- - !record {model: account.analytic.account, id: analytic.ou_analytic_account}: + !record {model: account.analytic.account, id: analytic.ou_analytic_account_n1}: name: 'OU Test normal 2' type: 'normal' - diff --git a/addons/analytic/migrations/10.0.1.1/tests/test_analytic.py b/addons/analytic/migrations/10.0.1.1/tests/test_analytic.py new file mode 100644 index 000000000000..ee3f1d43c2ca --- /dev/null +++ b/addons/analytic/migrations/10.0.1.1/tests/test_analytic.py @@ -0,0 +1,13 @@ +# coding: utf-8 +from openerp.tests.common import TransactionCase + + +class TestAnalytic(TransactionCase) + + def test_analytic(self): + self.assertTrue( + self.env.ref('analytic.ou_analytic_account_c1').active == False + ) + self.assertTrue( + self.env.ref('analytic.ou_analytic_account_n1').active == True + )