Monday, September 8, 2025
15 changes · saas-18.3
Resolved issues and error corrections
This update restores proper handling of order summary data in the Point of Sale by using the current supported method. It helps prevent errors caused by a removed internal method, improving reliability for POS users.
Original PR description
Replace usage of `serialize` (method that was previously removed) by `serializeForORM` in `OrderSummary`. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes flaky automated tests around sending chat messages after entering commands in Mail, CRM Live Chat, and IM Live Chat. The change makes tests click the send button instead of relying on timing-sensitive keyboard behavior, improving confidence in release validation without changing normal user workflows.
Original PR description
\* = crm_livechat, im_livechat Back-port of 3fc3e4fbbd846dc8f65938a0bfbddbebf2abc403 Enter after typing a command will either send the message when the suggestion list is not opened yet, or select the suggestion. This can either be fixed by waiting for the suggestion list to be opened, closing it, and then pressing enter, or by simply clicking on the send button which is what is done here as the way the message is sent is irrelevant for these tests. https://runbot.odoo.com/odoo/runbot.build.error/230977 Forward-Port-Of: odoo/odoo#225874
This fixes an issue where website submenus could become invisible when using a sidebar header with a dark background. The submenu colors now adapt to the selected theme, helping site editors keep navigation readable for visitors.
Original PR description
Steps to reproduce: - Install the "Website" app. - Go to the homepage. - Click on "Site > Menu Editor" in the backend navbar. - Create a submenu. - Save the dialog. - Enter edit mode. - Click on the header. - Choose a dark background in the header options. - Choose the "Sidebar" template in the header options. - Open the submenu. - Bug: The submenu is not visible because the background and text have the same light color, so nothing can be seen. The bug was introduced by commit [1], which made visual improvements to the menu. This commit fixes it by making sure the colors of the problematic elements adapt to the theme colors. [1]: https://github.com/odoo/odoo/commit/dc1a15539227c4c21837a7bce3fc4d81858d60b9 opw-5043010 Forward-Port-Of: odoo/odoo#224610
Calendar meeting views now update correctly when developer mode is enabled, without requiring users to refresh the page twice. This prevents stale cached screens from hiding debug-only options such as the Invitations tab.
Original PR description
**Steps to reproduce:** - Go to Calendar app - Go to any meeting - Invitations tab should be hidden (no debug mode) - Trigger developer mode (`?debug=1`) - Invitations tab should be displayed - The…
**Steps to reproduce:** - Go to Calendar app - Go to any meeting - Invitations tab should be hidden (no debug mode) - Trigger developer mode (`?debug=1`) - Invitations tab should be displayed - The tab only appears after a second refresh **Issue:** The new caching process uses a key based on the RPC parameters. In the case of the 'get_views' function, it produces a different result with the same parameters depending on whether debug mode is enabled. This means that two browser refreshes are needed to have the correct view. The first refresh renders the cached view (without the invitation tab) and updates the cache with the view returned by the RPC (with the invitation tab). The new cached view with the invitation tab will be rendered on the second browser refresh. **Fix:** Add the debug option to the RPC parameters to cache the different views separately (with and without the invitation tab). opw-4986038 related: https://github.com/odoo/odoo/commit/f3d955b3235cb256bda79e834df38da0f6a4ac1a
This fixes an issue where event pages with non-Latin titles, such as Chinese, could be matched to the wrong event when editing. The update improves reliability for multilingual event websites by reading the event ID from the URL more accurately.
Original PR description
Issue: The Website Event page uses a matching regex to get the event id from the url. URLs are formatted like: '/event/[event-title]-[event-id]/register' The event-id is recovered from the url by matching on the first number that is not followed by a word character. However, for non-latin event titles (e.g. Chinese), the characters are converted using '%' characters and numbers (e.g. '%E6%88%91%E'). The regex consistently fails to get the event id in this case, and returns incorrect IDs. Steps to reproduce: 1. Install `website_event` and go to the website view of any event. 2. Edit the event, to add a Chinese title 3. Save, and try to edit again the same title. Solution: The regex is modified to look for the first number that is followed by either a "/" or the end of a String. opw-5038334 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#224164
The wishlist checkout test now allows more time to finish, preventing false failures when the process runs slower than expected. This helps keep automated quality checks reliable without changing the customer-facing wishlist experience.
Original PR description
Increase timeout for wishlist tour. As it was taking too long to complete. runbot-229616 Forward-Port-Of: odoo/odoo#224277 Forward-Port-Of: odoo/odoo#219653
Customers using Argentina localization can now save billing address changes during ecommerce checkout without encountering an error. The fix keeps a required tax responsibility field available in the form behind the scenes when it cannot be edited, preventing checkout interruptions.
Original PR description
Scenario: - setup company with Argentina L10N - do a sale order from partner to Argentinian company and confirm it (to make the vat not editable) - do a checkout from ecommerce from same partner to same company, and at the checkout "address" step, click to edit the billing address - click to confirm the billing address change Result: a "Cannot read properties of undefined (reading 'classList')" error happen in customerAddress._onSaveAddress because the field l10n_ar_afip_responsibility_type_id is missing from the view. Solution: similarly to c10e77ac636243025004d9ebca61af0076691f2b, add the field as hidden if it is readonly. opw-5019253 Forward-Port-Of: odoo/odoo#225579
Website livechat agents now see recent visitor page visit times in their own timezone instead of UTC. This makes the visitor activity banner easier to understand and helps agents interpret customer browsing history accurately during chats.
Original PR description
Before this PR, when browsing a website livechat in the discuss app, the banner containing the 3 last pages browsed by the user showed the utc time instead of the time in the timezone of the agent. Now, the livechat agent is seeing the visit timings in his timezone. To achieve this, we now construct the visit string in the frontend and receive the page and datetime (utc) info from the backend task-4937769 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#225602 Forward-Port-Of: odoo/odoo#219113
This fixes an issue in the Mail app where messages could fail when the system tried to process an empty or invalid value. The change helps keep email-related operations running reliably and avoids unnecessary interruptions for users.
Original PR description
Browse breaks when given a bool, so the solution is to filter the list from false values before browsing --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes analytic accounting amounts so they are rounded according to the company currency, not a foreign currency used on the journal entry. Businesses will see more accurate analytic line amounts when foreign currencies have different rounding rules.
Original PR description
Steps to reproduce: - set the rounding of a foreign currency to 1.0 - have you company currency's rounding to 0.01 - create a move with a line with an analytic distribution - post it - go to analytic line Issue: The amount will be displayed with a rounding of 1.0 and not 0.01 opw-4997047 Forward-Port-Of: odoo/odoo#225503
Installing the online course sales module no longer fails if the default Services product category was previously deleted. This prevents setup interruptions and lets businesses enable course sales without manually restoring that category first.
Original PR description
Currently a `ParseError` arises when the user installs the modules after deleting the `Service` Category in Sales. **Steps to produce:-** - Install `Sales` module (without demo data). - Go to `Sales…
Currently a `ParseError` arises when the user installs the modules after deleting the `Service` Category in Sales.
**Steps to produce:-**
- Install `Sales` module (without demo data).
- Go to `Sales > Configuration > Products > Categories`.
- Delete `Services` category.
- Try to install `website_sale_slides` module.
**Error:-**
```py
ValueError: External ID not found in the system: product.product_category_services
ParseError: while parsing /home/odoo/src/odoo/saas-18.4/addons/website_sale_slides/data/product_data.xml:2, somewhere inside <record id='default_product_course' model='product.product'>
<field name='name'>Course Access</field>
<field name='standard_price'>99.99</field>
<field name='list_price'>99.99</field>
<field name='type'>service</field>
<field name='service_tracking'>course</field>
<field name='invoice_policy'>order</field>
<field name='is_published' eval='True'/>
<field name='image_1920' type='base64' file='website_sale_slides/static/img/default_course_product.jpg'/>
<field name='categ_id' ref='product.product_category_services'/>
</record>
```
- The error occurs because the user deleted the category, and then installed the modules, that reference the missing product category.
- This commit resolves the error by providing a False value for the field if the product category is missing.
**sentry-6823596992**
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#223669This fixes a timing issue that could affect sending messages with Command + Enter in enterprise discussion and live chat areas. The change helps prevent inconsistent behavior during automated checks and improves reliability for users relying on keyboard shortcuts.
Original PR description
\* = test_discuss_full_enterprise, website_helpdesk_livechat Back-port of 14b31a3631a97dd61ebd662fb768485e5a509c2c Enterprise counter-part. https://runbot.odoo.com/odoo/runbot.build.error/230977 Forward-Port-Of: odoo/enterprise#94078
The update adds a log warning when automated bank statement reconciliation is started in a way that ignores its intended time limit. This helps administrators spot configuration or integration issues that could otherwise make bank statement imports run longer than expected.
Original PR description
When calling `_cron_try_auto_reconcile_statement_lines` with a `limit_time` argument but without a `batch_size`, the time limit was silently ignored. With this commit, we display a warning in the logs, because this is probably not the desired behavior. Besides that, when the amount of statement lines become large, it might hang the import of bank statements longer than the expected 3 minutes. Task-id: None
This update cleans up how automated test helpers are referenced in Odoo Studio tests. It keeps the testing tools easier to maintain while limiting the change to internal unit tests, reducing risk for customers.
Original PR description
## Pull Request HOOT (PRHOOT) 36 This pull requests brings various improvements and fixes to Hoot and the Odoo unit test ecosystem. See the different commit messages for more details. Note: these changes are made in stable to avoid having to support multiple versions of the HOOT API. As such, these changes are intended to be strictly limited to unit tests as to not put the rest of the code base at risk. Community: https://github.com/odoo/odoo/pull/221367 Forward-Port-Of: odoo/enterprise#93950 Forward-Port-Of: odoo/enterprise#93167
Code cleanup and technical improvements
This update cleans up internal test code by routing shared web test helpers through a single intended access point. It does not change customer-facing features, but helps keep the codebase easier to maintain and reduces future test conflicts.
Original PR description
This commit reduces imports to the 'tests/_framework/' subfolder, which is meant to be accessed through the 'web_test_helpers' module as to reduce the amount of imports, as well as centralizing all web helpers to have a quick overview of the available helpers. Enterprise: https://github.com/odoo/enterprise/pull/94074 Originally contained within the following pull request: https://github.com/odoo/odoo/pull/225744 But has been separated for convenience sake since the original PR was involving security overrides, and would be consistently interrupted by conflicts ensuing from this specific commit. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr