Wednesday, August 6, 2025
3 changes · 17.0
Resolved issues and error corrections
This update prevents an error that could appear when users quickly added and removed carousel slides in the website editor. It makes carousel editing more stable by ensuring the selected slide still exists before the editor acts on it.
Original PR description
Previously, when rapidly adding and removing slides in the Carousel snippet (s_carousel), a JavaScript traceback would occur under certain conditions. Step to reproduce: 1. Drag and Drop a Carousel Snippet (s_carousel) on the page. 2. Rapidly `add -> remove -> add` slides button in editor. 3. Traceback occurs. Cause: - The issue occurred because the currently active slide was passed as the target to activate a snippet. During rapid DOM changes, the active slide could be destroyed or not yet rendered, resulting in a race condition and JavaScript error. Solution: - Additional guards have been added in the `_activateSnippet` function to ensure the `editorToEnable` target is still present in the DOM. task-4270369 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Upsell-related expirations now keep the standard expiration message instead of being treated like renewal expirations. This avoids showing customers the wrong renewal-specific wording and keeps subscription messaging clearer.
Original PR description
Upsell expiration are not handled the same way as renewal expiration, so we can keep the default expiration message for any expiration reasons other than a renewal Forward-Port-Of: odoo/enterprise#91730
The VoIP call timer now uses consistent client-side timing instead of mixing server and user device clocks. This prevents calls from briefly showing a negative duration when clocks are slightly out of sync, making the call experience clearer for users.
Original PR description
It was reported that the timer for the call would sometimes start as a negative number. Examining the code that computes it suggests that the timestamp sent by the server was a few seconds in the future compared to luxon.DateTime.now() (client time). This discrepancy is most likely due to the clock skew between the client and the server. This commit adapts the code so that it only computes time based on client-side values, effectively preventing clock skew issues. Task-4930666