1e19842303ff0a75fb7fdeb1db6371001b3b5039
When using the keyboard to switch records (e.g.: Leads records), we can use keyboard shortcuts (ALT + N / P) to travel from records to records. However, when using these shortcuts, the changes on the current record are not applied when switch. Step to reproduce the issue: 1. Install CRM module and activate Lead 2. Ensure that there are multiple Lead already created 3. Go on one Lead and edit its title WITHOUT clicking outside the box 4. Press ALT+N on your keyboard to switch to the next record 5. Press ALT+P to come back to the initial record You will see that the initial record's changes have not been saved. Solution: The issue is a racing condition. Somehow, when we use the keyboard shortcuts, the `mutex.exec` from the `applyChanges` function (cfr. Line [1]) is not prioritized and the `isDirty` check from `saveChanges` is executed first ( cfr. [2]). We can check this with the debugger, we stop on the `mutex.exec` then we execute the `isDirty` then we execute the callback of the initial mutex. The issue is that, it is the callback of the mutex that allows to set the `_isDirty` flag to True which in return allows the `saveChanges` to save the record as he spot some changes. [1]: https://github.com/odoo/odoo/blob/ef789170ce2f1553b325b379aac4452e473de1e9/addons/web/static/src/legacy/js/views/basic/basic_controller.js#L281 [2]: https://github.com/odoo/odoo/blob/ef789170ce2f1553b325b379aac4452e473de1e9/addons/web/static/src/legacy/js/views/basic/basic_controller.js#L180 opw-2824986 closes odoo/odoo#96696 X-original-commit: d9ec7b4b4a9f3cc8caa4c7f5fade8ce1fb8baaea Signed-off-by: Desausoi Laurent (lade) <lade@odoo.com> Signed-off-by: Simon Genin (ges@odoo) <ges@odoo.com>
…
…
…
Odoo
Odoo is a suite of web based open source business apps.
The main Odoo Apps include an Open Source CRM, Website Builder, eCommerce, Warehouse Management, Project Management, Billing & Accounting, Point of Sale, Human Resources, Marketing, Manufacturing, ...
Odoo Apps can be used as stand-alone applications, but they also integrate seamlessly so you get a full-featured Open Source ERP when you install several Apps.
Getting started with Odoo
For a standard installation please follow the Setup instructions from the documentation.
To learn the software, we recommend the Odoo eLearning, or Scale-up, the business game. Developers can start with the developer tutorials
Languages
Python
49.6%
JavaScript
47.8%
SCSS
2%
CSS
0.3%
HTML
0.2%