diff --git a/docsource/modules180-190.rst b/docsource/modules180-190.rst index 75cff9999460..ee0decd86626 100644 --- a/docsource/modules180-190.rst +++ b/docsource/modules180-190.rst @@ -812,7 +812,7 @@ Module coverage 18.0 -> 19.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | |del| payment_razorpay_oauth | | | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| |new| payment_redsys | | | +| |new| payment_redsys |Done | | +---------------------------------------------------+----------------------+-------------------------------------------------+ | payment_stripe |Nothing to do | | +---------------------------------------------------+----------------------+-------------------------------------------------+ diff --git a/openupgrade_scripts/scripts/payment_redsys/19.0.1.0/post-migration.py b/openupgrade_scripts/scripts/payment_redsys/19.0.1.0/post-migration.py new file mode 100644 index 000000000000..1d704d2ed785 --- /dev/null +++ b/openupgrade_scripts/scripts/payment_redsys/19.0.1.0/post-migration.py @@ -0,0 +1,37 @@ +# Copyright 2026 Tecnativa - Pedro M. Baeza +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from openupgradelib import openupgrade + +from odoo import Command + +PAY_METHOD_MAPPING = { + "T": "payment.payment_method_card", + "z": " payment.payment_method_bizum", +} + + +def _adjust_payment_methods(env): + """On the OCA module, done before the payment refactoring, the payment method of + Redsys was defined through a specific field, instead of using payment_method_ids + field. + + We need to convert existing payment providers to this new way, as the Odoo module + handles it through it. + """ + if not openupgrade.column_exists(env.cr, "payment_provider", "redsys_pay_method"): + return # No previous OCA module installed + env.cr.execute( + "SELECT id, redsys_pay_method FROM payment_provider " + "WHERE code='redsys' AND redsys_pay_method IS NOT NULL" + ) + for provider_id, redsys_pay_method in env.cr.fetchall(): + provider = env["payment.provider"].browse(provider_id) + provider.payment_method_ids = [ + Command.set(env.ref(PAY_METHOD_MAPPING[redsys_pay_method]).ids) + ] + + +@openupgrade.migrate() +def migrate(env, version): + _adjust_payment_methods(env) diff --git a/openupgrade_scripts/scripts/payment_redsys/19.0.1.0/pre-migration.py b/openupgrade_scripts/scripts/payment_redsys/19.0.1.0/pre-migration.py new file mode 100644 index 000000000000..0fbb1682f16d --- /dev/null +++ b/openupgrade_scripts/scripts/payment_redsys/19.0.1.0/pre-migration.py @@ -0,0 +1,27 @@ +# Copyright 2026 Tecnativa - Pedro M. Baeza +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from openupgradelib import openupgrade + + +@openupgrade.migrate() +def migrate(env, version): + openupgrade.rename_fields( + env, + ( + "payment.provider", + "payment_provider", + "redsys_terminal", + "redsys_merchant_terminal", + ), + ) + openupgrade.rename_xmlids( + env.cr, + [ + ( + "payment_redsys.provider_form_redsys", + "payment_redsys.payment_provider_form", + ), + ("payment_redsys.redsys_form", "payment_redsys.redirect_form"), + ], + ) diff --git a/openupgrade_scripts/scripts/payment_redsys/19.0.1.0/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/payment_redsys/19.0.1.0/upgrade_analysis_work.txt new file mode 100644 index 000000000000..9db457d82edb --- /dev/null +++ b/openupgrade_scripts/scripts/payment_redsys/19.0.1.0/upgrade_analysis_work.txt @@ -0,0 +1,16 @@ +---Models in module 'payment_redsys'--- +---Fields in module 'payment_redsys'--- +payment_redsys / payment.provider / code (False) : NEW selection_keys: ['adyen', 'aps', 'asiapay', 'authorize', 'buckaroo', 'custom', 'demo', 'dpo', 'ecpay', 'flutterwave', 'iyzico', 'mercado_pago', 'mollie', 'none', 'nuvei', 'paymob', 'paypal', 'payu', 'razorpay', 'redsys'], mode: modify +# NOTHING TO DO: the value is the same for the OCA and this one + +payment_redsys / payment.provider / redsys_merchant_code (char) : NEW +payment_redsys / payment.provider / redsys_secret_key (char) : NEW +# NOTHING TO DO: Same field name + +payment_redsys / payment.provider / redsys_merchant_terminal (char): NEW +# DONE: pre-migration: Rename field + +---XML records in module 'payment_redsys'--- +NEW ir.ui.view: payment_redsys.payment_provider_form +NEW ir.ui.view: payment_redsys.redirect_form +# DONE: pre-migration: Rename OCA XML-IDs