Wednesday, January 26, 2022
4 changes · master
Resolved issues and error corrections
This change ensures the reversal date chosen in the accrued orders wizard is kept when accounting entries are created. It prevents the date from being reset to a default value, helping users avoid inconsistent or incorrect reversal entries.
Original PR description
Before this commit, the field reversal_date was not stored, which lead to inconsistent behaviour when creating entries, as the reversal date was always recompute with the default value. opw-2722435 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This change makes automated test cleanup more reliable when multiple builds create databases at the same time. It reduces random test failures in the runbot environment, helping developers get clearer feedback from builds without affecting everyday users.
Original PR description
On runbot database can be create concurently by other builds, meaning that the teardown may fail randomly if a database is create between setup and teardown. Filtering on the dbfilter in all case may miss some errors but will be enough in this case.
Fixes an issue where saving website or email editor content could hang if background checks were still running while editor elements were being closed. This helps ensure edits are saved reliably, reducing the risk of users being blocked during content updates.
Original PR description
[FIX] web_editor: resolve ajax request of cleanForSave Upon save in website or in mass_mailing, if a `cleanForSave` of a `SnippetEditor` or a `SnippetOption` wait for the end of an `this._rpc()`…
[FIX] web_editor: resolve ajax request of cleanForSave
Upon save in website or in mass_mailing, if a `cleanForSave` of a
`SnippetEditor` or a `SnippetOption` wait for the end of an
`this._rpc()` request AND the `SnippetEditor` or the `SnippetEditor`
of the `SnippetOption` has a `SnippetEditor` ancestor, the
`cleanForSave` will never resolve.
Here is the scenario:
- **SnippetEditor B** has **SnippetEditor A** as its odoo widget parent
In `SnippetMenu` `_destroyEditors`:
- **SnippetEditor A** and **all its SnippetOption** call `cleanForSave`.
- **SnippetEditor B** and **all its SnippetOption** call `cleanForSave`.
One of the promise of **SnippetEditor B** includes the result of
`rpc()` in `ajax_service.js`.
- **SnippetEditor A** and **all its SnippetOption**
`cleanForSave promises` resolve (but not **SnippetEditor B**).
- **SnippetEditor A** get's destroyed (`snippetEditor.destroy()`). As
**SnippetEditor B** is a `Widget` child of **SnippetEditor A**:
- **SnippetEditor B** get's destroyed (here is where the problem start).
... in the mean time ...
The ajax request of a promise of **SnippetEditor B** ends. The promise
of the `rpc()` will never finish because **SnippetEditor B** is
destroyed and the condition in `rpc()` is:
```js
if (!target.isDestroyed()) {
resolve(result);
}
```
Because the promise will never finish for `_destroyEditors`, the save
action will never fully complete.
Task-2742008A small issue was corrected that could cause an error when users selected a disallowed expense from the chart of accounts. This helps keep accounting workflows smoother and prevents an unnecessary interruption during account setup or review.
Original PR description
This fixes a small bug in the `name_get()` method that was causing a traceback when selecting a disallowed expenses from the chart of accounts. Related: https://github.com/odoo/enterprise/commit/5be63b1c735a0b30cca166d2f7f4b97b4330439e