diff --git a/docsource/modules180-190.rst b/docsource/modules180-190.rst index e7f797ce0766..2a4194151b6b 100644 --- a/docsource/modules180-190.rst +++ b/docsource/modules180-190.rst @@ -904,9 +904,9 @@ Module coverage 18.0 -> 19.0 +---------------------------------------------------+----------------------+-------------------------------------------------+ | pos_stripe | |No DB layout changes. | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| |new| pos_viva_com | | | +| |new| pos_viva_com |Done |Renamed from pos_viva_wallet | +---------------------------------------------------+----------------------+-------------------------------------------------+ -| |del| pos_viva_wallet | | | +| |del| pos_viva_wallet |Done |Renamed to pos_viva_com | +---------------------------------------------------+----------------------+-------------------------------------------------+ | privacy_lookup | |No DB layout changes. | +---------------------------------------------------+----------------------+-------------------------------------------------+ diff --git a/openupgrade_scripts/scripts/pos_viva_com/19.0.1.0/pre-migration.py b/openupgrade_scripts/scripts/pos_viva_com/19.0.1.0/pre-migration.py new file mode 100644 index 000000000000..7fd268e2606a --- /dev/null +++ b/openupgrade_scripts/scripts/pos_viva_com/19.0.1.0/pre-migration.py @@ -0,0 +1,63 @@ +from openupgradelib import openupgrade + +_renamed_fields = [ + ( + "pos.payment.method", + "pos_payment_method", + "viva_wallet_api_key", + "viva_com_api_key", + ), + ( + "pos.payment.method", + "pos_payment_method", + "viva_wallet_bearer_token", + "viva_com_bearer_token", + ), + ( + "pos.payment.method", + "pos_payment_method", + "viva_wallet_client_id", + "viva_com_client_id", + ), + ( + "pos.payment.method", + "pos_payment_method", + "viva_wallet_client_secret", + "viva_com_client_secret", + ), + ( + "pos.payment.method", + "pos_payment_method", + "viva_wallet_latest_response", + "viva_com_latest_response", + ), + ( + "pos.payment.method", + "pos_payment_method", + "viva_wallet_merchant_id", + "viva_com_merchant_id", + ), + ( + "pos.payment.method", + "pos_payment_method", + "viva_wallet_terminal_id", + "viva_com_terminal_id", + ), + ( + "pos.payment.method", + "pos_payment_method", + "viva_wallet_test_mode", + "viva_com_test_mode", + ), + ( + "pos.payment.method", + "pos_payment_method", + "viva_wallet_webhook_verification_key", + "viva_com_webhook_verification_key", + ), +] + + +@openupgrade.migrate() +def migrate(env, version): + openupgrade.rename_fields(env, _renamed_fields) diff --git a/openupgrade_scripts/scripts/pos_viva_com/19.0.1.0/tests/test_pos_viva_com_migration.py b/openupgrade_scripts/scripts/pos_viva_com/19.0.1.0/tests/test_pos_viva_com_migration.py new file mode 100644 index 000000000000..0d19eba52491 --- /dev/null +++ b/openupgrade_scripts/scripts/pos_viva_com/19.0.1.0/tests/test_pos_viva_com_migration.py @@ -0,0 +1,28 @@ +from odoo.tests import TransactionCase + +from odoo.addons.openupgrade_framework import openupgrade_test + + +@openupgrade_test +class TestPosVivaComMigration(TransactionCase): + def test_credentials_preserved(self): + """All 9 viva_wallet_* fields renamed to viva_com_* with values preserved.""" + self.env.cr.execute( + """ + SELECT id FROM pos_payment_method + WHERE viva_com_api_key = 'seed_api_key' + AND viva_com_bearer_token = 'seed_bearer_token' + AND viva_com_client_id = 'seed_client_id' + AND viva_com_client_secret = 'seed_client_secret' + AND viva_com_latest_response::text = '{"seed": true}' + AND viva_com_merchant_id = 'seed_merchant' + AND viva_com_terminal_id = 'seed_terminal' + AND viva_com_test_mode IS TRUE + AND viva_com_webhook_verification_key = 'seed_webhook_key' + """ + ) + self.assertTrue( + self.env.cr.fetchone(), + "Expected one pos.payment.method with all 9 seeded " + "viva_wallet_* credentials migrated to viva_com_*.", + ) diff --git a/openupgrade_scripts/scripts/pos_viva_com/19.0.1.0/upgrade_analysis_work.txt b/openupgrade_scripts/scripts/pos_viva_com/19.0.1.0/upgrade_analysis_work.txt new file mode 100644 index 000000000000..ff8f884266a9 --- /dev/null +++ b/openupgrade_scripts/scripts/pos_viva_com/19.0.1.0/upgrade_analysis_work.txt @@ -0,0 +1,32 @@ +---Models in module 'pos_viva_com'--- + +# NOTHING TO DO + +---Fields in module 'pos_viva_com'--- +pos_viva_com / pos.payment / viva_com_session_id (char) : NEW +pos_viva_com / pos.payment.method / viva_com_api_key (char) : NEW +pos_viva_com / pos.payment.method / viva_com_bearer_token (char) : NEW hasdefault: default +pos_viva_com / pos.payment.method / viva_com_client_id (char) : NEW +pos_viva_com / pos.payment.method / viva_com_client_secret (char) : NEW +pos_viva_com / pos.payment.method / viva_com_latest_response (json): NEW +pos_viva_com / pos.payment.method / viva_com_merchant_id (char) : NEW +pos_viva_com / pos.payment.method / viva_com_terminal_id (char) : NEW +pos_viva_com / pos.payment.method / viva_com_test_mode (boolean) : NEW +pos_viva_com / pos.payment.method / viva_com_webhook_verification_key (char): NEW +pos_viva_wallet / pos.payment.method / viva_wallet_api_key (char) : DEL +pos_viva_wallet / pos.payment.method / viva_wallet_bearer_token (char): DEL +pos_viva_wallet / pos.payment.method / viva_wallet_client_id (char) : DEL +pos_viva_wallet / pos.payment.method / viva_wallet_client_secret (char): DEL +pos_viva_wallet / pos.payment.method / viva_wallet_latest_response (json): DEL +pos_viva_wallet / pos.payment.method / viva_wallet_merchant_id (char): DEL +pos_viva_wallet / pos.payment.method / viva_wallet_terminal_id (char): DEL +pos_viva_wallet / pos.payment.method / viva_wallet_test_mode (boolean): DEL +pos_viva_wallet / pos.payment.method / viva_wallet_webhook_verification_key (char): DEL + +# DONE: pre-migration: rename fields + +---XML records in module 'pos_viva_com'--- +NEW ir.ui.view: pos_viva_com.pos_payment_method_view_form_inherit_pos_viva_com +DEL ir.ui.view: pos_viva_wallet.pos_payment_method_view_form_inherit_pos_viva_wallet + +# NOTHING TO DO diff --git a/openupgrade_scripts/scripts/pos_viva_com/tests/data_pos_viva_com_migration.py b/openupgrade_scripts/scripts/pos_viva_com/tests/data_pos_viva_com_migration.py new file mode 100644 index 000000000000..d6cf09e8abdd --- /dev/null +++ b/openupgrade_scripts/scripts/pos_viva_com/tests/data_pos_viva_com_migration.py @@ -0,0 +1,34 @@ +env = locals().get("env") +method = env["pos.payment.method"].search([], limit=1) +if not method: + company = env.ref("base.main_company") + journal = env["account.journal"].search( + [("type", "in", ("cash", "bank")), ("company_id", "=", company.id)], + limit=1, + ) + if journal: + method = env["pos.payment.method"].create( + { + "name": "OpenUpgrade Viva Seed", + "journal_id": journal.id, + "company_id": company.id, + } + ) +if method: + env.cr.execute( + """ + UPDATE pos_payment_method SET + viva_wallet_api_key = 'seed_api_key', + viva_wallet_bearer_token = 'seed_bearer_token', + viva_wallet_client_id = 'seed_client_id', + viva_wallet_client_secret = 'seed_client_secret', + viva_wallet_latest_response = '{"seed": true}'::jsonb, + viva_wallet_merchant_id = 'seed_merchant', + viva_wallet_terminal_id = 'seed_terminal', + viva_wallet_test_mode = TRUE, + viva_wallet_webhook_verification_key = 'seed_webhook_key' + WHERE id = %s + """, + (method.id,), + ) +env.cr.commit()