[FIX] web: do not lose onchange info in some rare cases
Here is a situation where we had a problem: - a form view with a one2many field, which has no inline views - the (non inline) list view has a field A, and is not editable - the (non inline) sub form view has fields A and B, with an onchange on B which modifies A In that case, the user could do this: - go to edit mode - click on 'add' a new one2many line - change the value of B in the form view, this changes the value of A - click on save to close the modal form view - click on the new o2m record to reopen the modal form view - rechange B => the onchange does not work The explanation is that when we reopen the modal, we update the known fields information, but we had to perform a fieldviewget to fetch the list view, so we have a full knowledge of the fields. However, the code did not update the fields info (because it uses _.default), which means that the onchange information contained in the form view is lost. Note: the test system had to be adapted to more closely simulate what actually happens. In particular, the onchange flag is no longer added by the mock server, since it should be done by the data manager, like 'real' code. This change broke the basic model tests, which had to be modified accordingly, by setting manually the onchange flag.
Showing
- addons/web/static/src/js/views/basic/basic_model.js 2 additions, 2 deletionsaddons/web/static/src/js/views/basic/basic_model.js
- addons/web/static/tests/fields/relational_fields_tests.js 40 additions, 0 deletionsaddons/web/static/tests/fields/relational_fields_tests.js
- addons/web/static/tests/helpers/mock_server.js 1 addition, 4 deletionsaddons/web/static/tests/helpers/mock_server.js
- addons/web/static/tests/views/basic_model_tests.js 8 additions, 0 deletionsaddons/web/static/tests/views/basic_model_tests.js
Loading
Please register or sign in to comment