From 0271ab45d89151673b6e706930a5e32bd8e5ea99 Mon Sep 17 00:00:00 2001 From: Quentin Groulard Date: Mon, 3 Nov 2025 16:53:02 +0100 Subject: [PATCH 1/2] [IMP] account_credit_control: multi-channel policies migration script --- account_credit_control/__manifest__.py | 2 +- .../migrations/18.0.3.0.0/post-migration.py | 30 +++++++++++++++++++ .../migrations/18.0.3.0.0/pre-migration.py | 18 +++++++++++ 3 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 account_credit_control/migrations/18.0.3.0.0/post-migration.py create mode 100644 account_credit_control/migrations/18.0.3.0.0/pre-migration.py diff --git a/account_credit_control/__manifest__.py b/account_credit_control/__manifest__.py index 3918fffa6..8e860489d 100644 --- a/account_credit_control/__manifest__.py +++ b/account_credit_control/__manifest__.py @@ -5,7 +5,7 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { "name": "Account Credit Control", - "version": "18.0.2.0.0", + "version": "18.0.3.0.0", "author": "Camptocamp," "Odoo Community Association (OCA)," "Okia," diff --git a/account_credit_control/migrations/18.0.3.0.0/post-migration.py b/account_credit_control/migrations/18.0.3.0.0/post-migration.py new file mode 100644 index 000000000..2bbff03e7 --- /dev/null +++ b/account_credit_control/migrations/18.0.3.0.0/post-migration.py @@ -0,0 +1,30 @@ +# Copyright 2025 ACSONE SA/NV +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from openupgradelib import openupgrade + + +@openupgrade.migrate() +def migrate(env, version): + cr = env.cr + openupgrade.map_values( + cr, + "channel_old", + "channel_letter", + [("letter", "t")], + table="credit_control_line", + ) + openupgrade.map_values( + cr, + "channel_old", + "channel_email", + [("email", "t")], + table="credit_control_line", + ) + openupgrade.map_values( + cr, + "channel_old", + "channel_phone", + [("phone", "t")], + table="credit_control_line", + ) diff --git a/account_credit_control/migrations/18.0.3.0.0/pre-migration.py b/account_credit_control/migrations/18.0.3.0.0/pre-migration.py new file mode 100644 index 000000000..8cb330da6 --- /dev/null +++ b/account_credit_control/migrations/18.0.3.0.0/pre-migration.py @@ -0,0 +1,18 @@ +# Copyright 2025 ACSONE SA/NV +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + + +from openupgradelib import openupgrade + + +@openupgrade.migrate() +def migrate(env, version): + # Preserve channel historic data from credit.control.line records + openupgrade.copy_columns( + env.cr, + { + "credit_control_line": [ + ("channel", "channel_old", None), + ] + }, + ) From 07c1ca72db5f4098ec4600575135bd86c26cfad9 Mon Sep 17 00:00:00 2001 From: Quentin Groulard Date: Tue, 4 Nov 2025 10:20:36 +0100 Subject: [PATCH 2/2] [IMP] account_credit_control: multi-channel policies migration script --- .../migrations/18.0.3.0.0/post-migration.py | 43 ++++++++++--------- .../migrations/18.0.3.0.0/pre-migration.py | 17 ++++---- 2 files changed, 31 insertions(+), 29 deletions(-) diff --git a/account_credit_control/migrations/18.0.3.0.0/post-migration.py b/account_credit_control/migrations/18.0.3.0.0/post-migration.py index 2bbff03e7..403485652 100644 --- a/account_credit_control/migrations/18.0.3.0.0/post-migration.py +++ b/account_credit_control/migrations/18.0.3.0.0/post-migration.py @@ -7,24 +7,25 @@ @openupgrade.migrate() def migrate(env, version): cr = env.cr - openupgrade.map_values( - cr, - "channel_old", - "channel_letter", - [("letter", "t")], - table="credit_control_line", - ) - openupgrade.map_values( - cr, - "channel_old", - "channel_email", - [("email", "t")], - table="credit_control_line", - ) - openupgrade.map_values( - cr, - "channel_old", - "channel_phone", - [("phone", "t")], - table="credit_control_line", - ) + if openupgrade.column_exists(cr, "credit_control_line", "channel"): + openupgrade.map_values( + cr, + "channel_old", + "channel_letter", + [("letter", "t")], + table="credit_control_line", + ) + openupgrade.map_values( + cr, + "channel_old", + "channel_email", + [("email", "t")], + table="credit_control_line", + ) + openupgrade.map_values( + cr, + "channel_old", + "channel_phone", + [("phone", "t")], + table="credit_control_line", + ) diff --git a/account_credit_control/migrations/18.0.3.0.0/pre-migration.py b/account_credit_control/migrations/18.0.3.0.0/pre-migration.py index 8cb330da6..fe901e7c6 100644 --- a/account_credit_control/migrations/18.0.3.0.0/pre-migration.py +++ b/account_credit_control/migrations/18.0.3.0.0/pre-migration.py @@ -8,11 +8,12 @@ @openupgrade.migrate() def migrate(env, version): # Preserve channel historic data from credit.control.line records - openupgrade.copy_columns( - env.cr, - { - "credit_control_line": [ - ("channel", "channel_old", None), - ] - }, - ) + if openupgrade.column_exists(env.cr, "credit_control_line", "channel"): + openupgrade.copy_columns( + env.cr, + { + "credit_control_line": [ + ("channel", "channel_old", None), + ] + }, + )