Saturday, August 1, 2026
8 changes · 19.0
Resolved issues and error corrections
The automated settlement test for Saudi POS invoicing no longer depends on a specific invoice year. This prevents test failures on shifted environments and helps keep validation stable across future dates.
Original PR description
Description of the issue this commit addresses: The settlement tour expects an invoice named with the year 2026. On time-shifted test instances, invoices use a later year, so the tour cannot find the invoice and fails at the settlement selection step. --- Desired behavior after this commit is merged: This commit matches settlement invoices using the stable journal prefix, so the tour works regardless of the year in which it runs. --- runbot-[242206](https://runbot.odoo.com/odoo/error/242206) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#278573
This fix ensures that when a customer changes their address to a country without states during checkout, any previously selected state is properly cleared. It prevents outdated address details from being saved in the backend, improving data accuracy for customer contacts and orders.
Original PR description
The state_id field was not cleared when editing an address and switching to a country without states — the state selector reset visually, but the stale state_id was still saved to the backend. Steps to reproduce: 1. Add a product to the cart. 2. Go to checkout and edit the address, selecting a country that has states. 3. Edit the address again, now selecting a country without states. 4. Save and check the contact in the backend: state_id still holds the state from the previous country. Solution: reset the state_id select options for the new country. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#278660 Forward-Port-Of: odoo/odoo#278125
The Project app now avoids an error that could occur when a portal user changed task subscriptions after the task had been archived. This prevents unexpected failure screens and keeps portal task interactions smoother for customers and collaborators.
Original PR description
Portal subscribe task can create tb because the task was archived before unsubscribing. opw-6397850 Forward-Port-Of: odoo/odoo#279071 Forward-Port-Of: odoo/odoo#278667
This fix prevents automated website builder tests from repeatedly requesting missing images and pages, which was slowing test runs and causing random failures. It updates test data to use valid images or lightweight placeholders, helping quality checks complete more reliably without affecting end users.
Original PR description
Backport of [1]. Builder image tests were flaky in full-suite runs because earlier tests left slow requests pending. Bogus snippet thumbnails, obsolete modify_image mock data, and made-up attachment URLs triggered expensive website 404 rendering and starved the browser connection pool. Avoid rendering missing thumbnails, use data URIs or existing static images in fixtures, return the current modify_image response shape, and give the CORS test image explicit dimensions. [1]: https://github.com/odoo/odoo/pull/277424 Forward-Port-Of: odoo/odoo#279314
This fixes an editor issue where styles such as underline or strikethrough could not be removed from links created inside a formatted selection. Users can now clear formatting consistently across an entire line, including links, which makes note editing behave as expected.
Original PR description
When a format is applied on an unsplittable node, removing it from a wider selection does not dare to touch that format to ensure it won't be split. Because of this, it becomes impossible to remove the format on such nodes. This commit slightly adapts the logic by so that instead of stopping when encountering an unsplittable node, it keeps looking higher in the hierarchy where the format is actually defined. Steps to reproduce: - Go to a "To do" note - Select a word - Apply a style (underscore, strikethrough...) - Type "odoo.com" - Press space to turn it into a link - Select the whole line - Try to remove the style => The style was not removed from the link. task-6322596 Forward-Port-Of: odoo/odoo#273922
This change adds helper support for testing cart line removal in the self-ordering point of sale flow. It helps ensure related checkout and cart behavior can be verified more reliably in linked work, with no direct change expected for end users.
Original PR description
Needed by linked PR. task-id: 6438820 enterprise PR: https://github.com/odoo/enterprise/pull/126378 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Customer view notifications are now only sent when a sales document is still an active quotation. This avoids confusing alerts after an order has already been confirmed or cancelled, helping sales teams focus on relevant customer activity.
Original PR description
Steps to reproduce: 1. Create a sales order. 2. Confirm or cancel the order. 3. Share the quotation link. 4. Open the quotation from an incognito window or the customer portal. Issue: - A 'Quotation Viewed by Customer' notification is sent even though the document is no longer an active quotation. Fix: - Only send the notification while the order is in quotation or quotation sent state. opw-6419364 Forward-Port-Of: odoo/odoo#278633
Basic users can now open the spreadsheet creation dialog in Documents even when they do not have access to spreadsheet templates. This removes an inconsistent limitation and lets them create empty spreadsheets from the kanban view like other document types.
Original PR description
A basic user can access the document app and create all types of documents from the kanban view except for the spreadsheets because it requires an access to the templates. While the user cannot interact with the templates, they should have the possibility to create an empty spreadsheet. Note that it can already be done coming from the view of a spreadsheet! This revision ensures that the user can indeed access the spreadsheet creation modal even if they don't have access to the spreadsheet templates. Task-6364964 Forward-Port-Of: odoo/enterprise#126231 Forward-Port-Of: odoo/enterprise#123003