diff options
| author | Romain Derie <rde@odoo.com> | 2021-01-12 18:40:46 +0000 |
|---|---|---|
| committer | Romain Derie <rde@odoo.com> | 2021-02-11 10:24:48 +0000 |
| commit | 3f96cff0aa5097a386c289cf9fd2aeb3048376ab (patch) | |
| tree | 9e4b113775e09771d5cd7cac9c84e94c30fc2e60 /CONTRIBUTING.md | |
| parent | 156f35de1bafd5982812bc216a9daf3405a9b724 (diff) | |
[FIX] base, website: replicate inherit_id update on cow view
Before this commit, only whitelisted fields would be updated on cow views
during a module update.
A field would be whitelisted if he had the same value than the original view,
see it as a heuristic to not write on modified fields.
But `inherit_id` is not that simple, even if the cow view has a different value
than its original view, it doesn't mean it was modified by the user, it is just
because of the cow mechanism that assigned a copied view as inherit_id, which
is just a copy ofthe original one.
We can thus consider `inherit_id` as unchanged and whitelist it if the `key` is
the same.
In practice, it means that cow'd views did not receive the `inherit_id` updates
as in commit https://github.com/odoo/odoo/commit/c8577568a1e39f6692889b3e21652fa3b8df06b2#diff-823e5db841dca1798ff1300e243059a4e1c93343598d2be5a1d1dcd1d2d0c273R537
where `portal.my_account_link` had its `inherit_id` changed from
`portal.frontend_layout` to `portal.user_dropdow`, see https://github.com/odoo/upgrade/pull/2059:
Considering a module update changing `inherit_id` of D from A to B, the
following use cases are expected. Without this fix, D' never move:
CASE 1
A A' B A A' B
| | => / \
D D' D D'
CASE 2
A A' B B' A A' B B'
| | => | |
D D' D D'
CASE 3
A B A B
/ \ => / \
D D' D D'
CASE 4
A B B' A B B'
/ \ => | |
D D' D D'
Opw: 2422773
Opw: 2422727
Opw: 2422770
Opw: 2423406
Opw: 2423859
X-original-commit: 2951ed681aa5e31563e501de691716806ddb46bd
Diffstat (limited to 'CONTRIBUTING.md')
0 files changed, 0 insertions, 0 deletions
