Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docsource/modules180-190.rst
Original file line number Diff line number Diff line change
Expand Up @@ -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. |
+---------------------------------------------------+----------------------+-------------------------------------------------+
Expand Down
63 changes: 63 additions & 0 deletions openupgrade_scripts/scripts/pos_viva_com/19.0.1.0/pre-migration.py
Original file line number Diff line number Diff line change
@@ -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)
Original file line number Diff line number Diff line change
@@ -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_*.",
)
Original file line number Diff line number Diff line change
@@ -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
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This one should be marked as NOTHING TO DO

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added # NOTHING TO DO after the empty Models section in d28c7e6.

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
Original file line number Diff line number Diff line change
@@ -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()
Loading