37db3903588026dc6ed73de8090dba59a7c473a6
When clicking on an action button, the following steps are performed: 1. Buttons are disabled 2. The button call is performed 3. At the end of the call, the buttons are enabled 4. Extra RPC are performed (`read`, `name_get`) 5. When the RPC calls are finished, the form is reloaded In the case of a validation of a SO, it means that the 'Confirm' button is enabled at step 3, but hidden at step 5. On a slow network (or an overloaded server), it means that the user has enough time (step 4) to click again on the 'Confirm' button and trigger the action more than once. The root cause is that we don't retrieve the promise of the `reload` mechanism (defined in `_callButtonAction`) when executing `on_close` (triggered after the button call). We return a promise which is resolved and enable the buttons too early. We make sure to retrieve the promise of the `reload` and return it, so that the promise of `saveAndExecuteAction` (defined in `_onButtonClicked`) is correctly linked to it. This way, `_enableButtons` is called when the reload is performed. Co-authored-by: Aaron Bohy <aab@odoo.com> (well, actually he did most of it) opw-1859027
…
…
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, Purchase Management, ...
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.
Then follow the developer tutorials
Languages
Python
49.6%
JavaScript
47.8%
SCSS
2%
CSS
0.3%
HTML
0.2%