odoo/odoo#101419

Created by Hubert Van De Walle
label
odoo-dev:14.0-opw-2937444-huvw
head
f5e4dd6b2877471c0d7d4743bc6e4753933c84a8
target
14.0
merged
2 years ago by JavaScript, Aaron Bohy (aab)
forward-ports

[FIX] web: list view: don't rerender a row before the previous render…

… is done

Setup:

- Add a checkbox to the sublist view of quotations with studio and save
- In the chrome devtools, select a custom network throttling profile with 1s of latency

Steps to reproduce:

First example:

- Go to a quotation with at least two lines
- Enter edit mode
- Change the quantity of the first line
- Double click on the price field of the second line -> A traceback appears: `Cannot set properties of null (setting 'props')`

Second example:
- Go to a quotation with at least two lines
- Enter edit mode
- Change the quantity of the first line
- Click on the price field of the second line
- Click on Save → The same traceback is there

Cause of the issue:

The checkbox field is implemented in owl and thus the
owl_compatibility layer is used.
Mounted is not called on the checkbox if a new rendering is being done
cf: https://github.com/odoo/odoo/pull/75950
Currently, it is possible to set a row mode before the previous call
and rendering is done.

Solution:

Use a mutex for each record to prevent simultaneous render

opw-2937444