odoo/upgrade-util#329

Created by Upgrade, Christophe Simonis (chs)
Merged at 87c3e7eeab24b7aab9a7832a8d7d3cd4f21ef0bc

Statuses:

label
odoo-dev:master-translatable-facepalm-chs
head
62e04f82e38ea60fbe783e5707dd7ea14ba9ff28
merged
2 months ago by Upgrade, Christophe Simonis (chs)
odoo/upgrade-util
master #329

[FIX] util.convert_field_to_translatable

Make the function idempotent.

It was silently break the translations.

❯ psql -d test-19 -c 'select name from res_country where id=1;'
┌──────────────────────┐
│         name         │
├──────────────────────┤
│ {"en_US": "Andorra"} │
└──────────────────────┘
(1 row)

Time: 1.353 ms

❯ ./odoo-bin shell --upgrade-path ../../upgrade-util/src -d test-19 --log-handler=:CRITICAL
env: <odoo.orm.environments.Environment object at 0x1134feda0>
odoo: <module 'odoo' (<_frozen_importlib_external._NamespaceLoader object at 0x10e171060>)>
openerp: <module 'odoo' (<_frozen_importlib_external._NamespaceLoader object at 0x10e171060>)>
self: res.users(1,)

In [1]: from odoo.upgrade import util

In [2]: util.convert_field_to_translatable(env.cr, "res.country", "name")

In [3]: env.cr.commit()

In [4]:
Do you really want to exit ([y]/n)? ^D

❯ psql -d test-19 -c 'select name from res_country where id=1;'
┌─────────────────────────────────┐
│              name               │
├─────────────────────────────────┤
│ {"en_US": {"en_US": "Andorra"}} │
└─────────────────────────────────┘
(1 row)

Time: 1.360 ms

❯