Monday, June 30, 2025
15 changes · saas-18.4
New functionality added to Odoo
A new Live Chat - Ongoing Sessions dashboard helps teams monitor active conversations and track how sessions are progressing in real time. This gives managers better visibility into workload and service activity so they can respond faster when conversations need attention.
Original PR description
This commit introduces the "Live Chat - Ongoing Sessions" dashboard which allows to track progression of ongoing live chat sessions. task-4805308
Enhancements to existing features
Recent visitor page views are now shown in the live chat channel information panel instead of the banner. This keeps important browsing context available to operators while making the chat banner less cluttered.
Original PR description
This commit moves the recent page views from the banner to the livechat channel info panel. task-4889090 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Resolved issues and error corrections
This fixes an issue where using the Tab key in the color picker could preview or apply colors incorrectly, including changing more text than selected in the editor. Users can now navigate color options by keyboard more reliably, reducing accidental formatting changes.
Original PR description
Following [1], which introduced the preview when focusing color buttons inside a colorpicker (and revert when focusing out of them), tabbing on the color selector within html_editor stopped working as expected: 1. the reset button doesn't trigger a preview 2. For instance in the To-Do app: - Select a single word - Open the "Apply Font Color" picker and use tab to navigate => The color of the whole line is changed. [1]: https://github.com/odoo/odoo/commit/9fe45e2b7ddbbfd0445ffe25a859e67a316d02b2
The Search Panel now uses persistent caching so previously loaded options can be reused more reliably. This should make navigation and filtering feel faster while avoiding unnecessary refreshes when cached data has not really changed.
Original PR description
This commit will modify the search panel to use the new persistent cache introduced in [1] and [2]. [1] https://github.com/odoo/odoo/commit/f3d955b3235cb256bda79e834df38da0f6a4ac1a [2] https://github.com/odoo/odoo/commit/e5cee98d6ebbf318386ec4002007fbecc0fb3937 opw-4894490
This update aligns online rental, subscription, and appointment sales flows with recent shared platform changes. It helps keep product configuration and checkout behavior consistent across related sales features, reducing friction for customers and maintaining reliability after the backport.
Original PR description
Backport of 24e39d1a6169a36076e9dfcfba2200db8ab8748a (post-freeze) task-4485463
Australian payroll rule parameters have been updated for the 2025 period. This helps ensure payslip calculations stay aligned with current requirements, reducing manual adjustments for payroll teams.
Original PR description
Forward-Port-Of: odoo/enterprise#88323
This fix improves the range slider used in the website builder so keyboard navigation no longer triggers repeated updates that can confuse sidebar options. It also makes keyboard focus styling clearer, improving usability for people navigating with the keyboard.
Original PR description
1) This commit adds proper styling on focus-visible on the BuilderRange. 2) When using the arrows to modify its value, it commited after every keydown. If the action relies on a load, the behavior is buggy. This is for instance the case on image optimization options: - Select an image - Set a filter on top > the "Quality" option appears - Use tab to focus it - Press an arrow and stay pressed for a while => The sidebar options are wrongly computed. To avoid that, we debounce the commit just like what was already done in the BuilderNumberInput. Note that while it prevents unwanted UI flickers and doesn't commit until after you let go of the key, the preview doesn't happen: this is due to the fact that each preview is cancelled by the next, preventing the load to ever complete, and thus the apply from happening. task-4367641
Website editors can no longer accidentally submit forms or navigate away by clicking page content while the builder is open. This keeps users safely in editing mode and avoids disruptions such as login attempts or forum post navigation during page edits.
Original PR description
> [ROLE] Go to '/@/web/login' > Edit > > - Click on "Login" => instead of allowing to edit the label, it opens the warning that every field must be completed. > - Enter a login/password and clock on "Login" > you're logged in, redirected, and now out of the editor iframe (every link is clickable). > - (Another way to reproduce the same bug: go to Forum > Help > New Post, then edit)
This update fixes several issues in website image galleries, especially when all images are removed. Galleries now handle empty states safely, show the add-image prompt only when appropriate, and keep navigation controls intact for easier editing.
Original PR description
Miscellaneous fixes about the image gallery: - survive when empty - "Add images" message display conditions - "Remove all" detroying the navigation
This fixes an issue where Chrome could show a “too many redirects” error inside the website editor after translated page names changed. The editor now reloads the preview with a fresh URL when this browser cache behavior is detected, helping users continue editing without disruption.
Original PR description
Since [1], the fix introduced with [2] was lost. This commit adapts [2] to the new `WebsiteBuilderClientAction`. If you have the backend in a language A but the website in English only, you can: 1)…
Since [1], the fix introduced with [2] was lost.
This commit adapts [2] to the new `WebsiteBuilderClientAction`.
If you have the backend in a language A but the website in English only, you can:
1) modify a record's (event, product...) name in language A (say "New Name").
2) visit the page `/new-name-11` => the server will redirect you to the English page `/origin-11`, with the only slug that actually exists on the website. Chrome caches the redirection.
3) give the same name in English as in language A, try to visit
=> the server now wants to access `/new-name-11`
=> Chrome uses the cache to redirect `/new-name-11` to `/origin-11`,
=> the server tries to redirect to `/new-name-11`
=> infinite loop, Chrome puts an end to it after ± 20 redirects.
In effect, Chrome injects a "Too many redirects" layout inside the iframe, which in turn raises a CORS error when the app tries to update it.
At the time of this commit, the flow described here should be expected of users, because the translation UI in the backend is not clear: the default field displayed is in language A even though the website does not use it, and the way to update translations is not obvious (you have to click on the language tag, which doesn't look like a button).
After this commit, if we detect that behavior, we reload the iframe with a new query parameter, making the URL brand-new (and not cached) for Chrome.
Another way to artificially reproduce the issue would be:
- Create a website.redirect from /dog to /cat
- Same from /cat to /dog
- Go to /@/dog (Obviously, reproducing it that way is not fixed by this commit.)
[1]: https://github.com/odoo/odoo/commit/9fe45e2b7ddbbfd0445ffe25a859e67a316d02b2
[2]: https://github.com/odoo/odoo/commit/16d47ddf128f31f13e8d0d74597635faf7f9702a
task-4367641Fixes an issue where installing a missing app from a website snippet did not refresh the website builder afterward. The install dialog now shows the correct app name instead of the snippet name, making the process clearer for users.
Original PR description
This was forgotten in the website refactor [1]. The builder was not reloading after installing a new module via the "Install" button on a snippet. The install module dialog was showing the snippet name and not module name, because of a forgotten recent change [2]. Adapted tests to check presence of the module name and not snippet name. Steps to reproduce: - Install website - Click install on a snippet that's missing its module (e.g. Donation button) - Install module dialog appears - Dialog should show the module name - Builder should reload after clicking on "Save and Install" [1]: https://github.com/odoo/odoo/commit/9fe45e2b7ddbbfd0445ffe25a859e67a316d02b2 [2]: https://github.com/odoo/odoo/commit/dd33ab018db7aa0fe7ad5e636636b75aaadd5d7a Related to task-4367641 Related to task-4434981
This fixes a regression in the HTML builder where special handling for style options like text and background colors was lost during a previous refactoring. Restoring this behavior helps users apply visual styling in the builder as expected, reducing disruption when editing website content.
Original PR description
Following the refactoring introduced in [1], the `builder_style_actions` which defines custom behavior for specific CSS styles such as `background-color` and `color` was unintentionally omitted. This commit restores its implementation. The `border-radius` style implementation, that still remains untouched will be restored in another PR: [2] [1]: https://github.com/odoo/odoo/commit/b4b2153 [2]: https://github.com/odoo/odoo/pull/215371
Saving changes in the website menu editor now preserves any page edits already made in the website builder. This prevents users from losing their work when adjusting navigation menus during website editing.
Original PR description
This plugin fixes a bug where making changes on the editor, opening the menu editor and clicking save would cause the changes to be discarded. Steps to reproduce: - Open editor - Make any change - Click on any navbar element (like Home) to open the navbar popover - Click on the edit menu button in the popover - A modal will open, click save - All changes have been discarded After the fix the changes will be saved when clicking save in the menu editor modal
When an invoice submission to Kenya's eTIMS times out, the system now checks whether the government already received it before trying again. If it was received, Odoo restores the confirmation details such as the QR code, reducing duplicate submissions and manual follow-up.
Original PR description
When a timeout occurs during invoice submission to eTIMS, we had no way to know if the invoice was actually received. Retrying could lead to duplicate invoices being accepted by the government. With the release of the selectInvoiceDetails endpoint, we now check if the invoice was already submitted before retrying. If found, we treat it as successfully sent and retrieve its details (QR code, etc). If not, we proceed to resend. task-4863787 Forward-Port-Of: odoo/enterprise#88858 Forward-Port-Of: odoo/enterprise#88608
This fix ensures that when users save a website form, the related access setting is properly applied instead of being skipped. It also makes the option clearer with a tooltip and improves reliability by avoiding inconsistent handling of form model information.
Original PR description
When [1] converted the form access option to fit inside `html_builder`, the form access was supposed to be enabled upon saving a form, but the used selector was incorrect, which led to the form access not being enabled. Also, a `ModelCache` was created which kept track of the same model but according to various ways to write this key. This system was flawed and led to reaching distinct object depending on the used "synonym" key. This commit: - fixes the selector used during the save operation - removes `ModelCache` and uses a plain cache with the model name as key in all situations - makes changes to form access included in the history - adds a tooltip on that confusing option [1]: https://github.com/odoo/enterprise/commit/689a2186fbe3b932b90bef3b64716c8443bad551 task-4367641