Daily updates from Odoo
Monday, October 20, 2025
11 changes · saas-18.2
Resolved issues and error corrections
Starshipit shipping requests now include the customer city or suburb when checking available delivery services. This prevents carriers such as NZ Post Domestic from failing service selection because required address information was missing.
Original PR description
Current behaviour: --- When using Starshipit, city is not included in the payload sent to the API. This causes an error for some delivery services. Steps to reproduce: --- 1. Install delivery_starshipit 2. Create starshipit Shipping Method (using Starshipit API key) 3. Set up only "NZ Post Domestic" in Starshipit portal. 4. Click on "Select a service linked to your starshipit account" 5. Error: There are no shipping services available Cause of the issue: --- Some delivery services (like NZ Post Domestic) require a city/suburb field. In Australia/New Zealand suburb is used in the city field. opw-5155401 Forward-Port-Of: odoo/enterprise#97212
The customer preview for shared projects now matches what portal customers actually see when billing is limited to validated timesheets. This prevents internal draft or unvalidated timesheet entries from appearing in the preview, giving staff a more accurate view before sharing with customers.
Original PR description
### Issue: Due to this issue, in the project sharing, the customer preview doesn't reflect the actual behaviour of the portal view. It shows non-validated timesheets even if invoicing policy is…
### Issue: Due to this issue, in the project sharing, the customer preview doesn't reflect the actual behaviour of the portal view. It shows non-validated timesheets even if invoicing policy is validated timesheets only. #### To reproduce: 1- Create a db with sale_project and sale_timesheet_enterprise 2- Configure invoicing policy to validated timesheets only 3- Create a service product: - Create on Order: Project & Task - Invoicing policy: Based on Timesheets 4- Create a Quotation for the product and confirm it 5- Open project from smart button 6- Share project with a portal user with Edit access 7- Open tasks, and add two timesheets to the task 8- Open timesheet app, and validate one of the timesheets 9- From project page, click on Customer preview 10- In preview, open the task. You can see both timesheets which is a different behaviour if you view the project using portal user. Using portal user, only validated timesheets are shown. ### Cause: The timesheets are filtered here to only show validated timesheets: https://github.com/odoo/enterprise/blob/8223ed0765c6064b88280656a5ab6b13ca9a431f/sale_timesheet_enterprise/models/project_task.py#L73-L91 However, it is filtered only if user is portal. In customer preview the user is still the internal user, as a result the timesheets will not be filtered. To fix that we can check if project_sharing_id exist in context to filter timesheets. opw-5093339 Forward-Port-Of: odoo/enterprise#97470
This fix restores a required payment component so users can select a bank account when creating NACHA payments. It prevents confusion and blocked payment processing caused by the missing bank account field.
Original PR description
Accidentally removed in a061a2b82a967ca2 which caused the bank account selection field to not show when doing a NACHA payment. (Found when working on task 5052996) Forward-Port-Of: odoo/enterprise#97319
Fixed an issue that could cause an error when refreshing appointment availability for bookings assigned to a staff member. This helps customers and staff see appointment slots reliably without interruptions.
Original PR description
This commit fixes an issue where the refresh with appointment based on staff user was raising a traceback as it also tried to compute the max capacity possible. Related commit 3cca7e47ab58f8a7d4e9196dbf60f7068348216b task-5118860 Forward-Port-Of: odoo/enterprise#95862
App icons created in Studio are now automatically resized before being saved. This prevents unnecessarily large icon files from increasing database size, cache usage, and request payloads.
Original PR description
Before this commit, the IconCreator images were sent as is in their full size. Downstream it was problematic because apps' icons were bigger than necessary, bloating the different caches, the database, and the request. After this commit, icon are resized to a max of 64x64 pixels. Forward-Port-Of: odoo/enterprise#97050 Forward-Port-Of: odoo/enterprise#94480
Fixes automatic printing during delivery validation so shipping labels and related documents are included in the normal validation flow. This helps ensure connected IoT printers receive all required documents reliably, avoiding missed prints caused by a page reload.
Original PR description
The `button_validate` method called clicking "Validate" returns a list of client actions to call. After these clients actions are executed, the page reloads. This reload makes our broadcasted action not to be caught by the client if there is only one connected. Anyway, this flow was overcomplicated and has been simplified overriding the method returning the client actions, adding the "shipping labels" and "shipping documents" to it. Forward-Port-Of: odoo/enterprise#97524 Forward-Port-Of: odoo/enterprise#97462
Down payment invoices for subscription upsell orders now show the actual partial payment amount instead of zero. This gives customers and businesses accurate invoice totals when only part of an upsell order is paid online.
Original PR description
Version- 17.0 ### Issue: - When an upsell order is partially paid (e.g., 10% of the original amount), the generated downpayment invoice incorrectly displayed an invoiced amount of 0. ### Steps to reproduce: - Make an Upsell order of subscription. - Update the condition of Online Payment from 100% to 10% (in this case). - Make the payment of 10% from portal view. - The invoice amount will be shown as $0. ### Fix: - Updated `_get_subscription_qty_to_invoice` to correctly determine the invoiced quantity and amount for downpayment invoices on upsell orders. ### Impact: - The downpayment invoices for upsell orders now correctly reflect the actual invoiced amount. Forward-Port-Of: odoo/enterprise#97412 Forward-Port-Of: odoo/enterprise#96719
This fix prevents spreadsheet field synchronization in Sales from crashing when users use undo or redo. It improves reliability for users working with synced sales data in spreadsheets and helps avoid interruptions while editing.
Original PR description
Fix an issue where field sync would crash when used with UNDO/REDO. Task: 4854879 Forward-Port-Of: odoo/enterprise#92883
This change removes an unnecessary browser option from IoT device requests. It avoids errors in older Chrome versions while keeping IoT and point-of-sale hardware connections working as before.
Original PR description
This reverts commit 6d09dc6 which added the `"targetAddressSpace": local` option to IoT fetch requests. This is because of two reasons: 1. It caused errors on older versions of Chrome that implemented the obsoleted 'Private Network Access' standard. 2. It was not actually required in the first place, it is only needed in situations where a HTTP resource is accessed from HTTPS using a domain that resolves to a local IP. In Odoo we only ever do this for HTTPS -> HTTPS requests, where it works automatically. task-5157145 Forward-Port-Of: odoo/enterprise#97543 Forward-Port-Of: odoo/enterprise#97500
The main menu search field was adjusted so browser extensions like Bitwarden no longer show an unnecessary popup over the menu. This keeps the menu cleaner and avoids distracting users while preserving the existing search autocomplete behavior.
Original PR description
Bitwarden pops up small form on top of the main menu for no reason. It is because of the hidden input created to trigger search when you type. Put `autocomplete="off"` to avoid these popups, as the search feature handle its own autocompletion. Note: this commit is a backport of odoo/odoo@403d7b70ab16b8b70ea46aa692883c7b4a6e83b7 Forward-Port-Of: odoo/enterprise#97506
This fix ensures Swiss payroll ELM transmission employee views behave correctly when businesses operate with multiple companies. It helps prevent configuration or visibility issues for Swiss payroll data in multi-company environments.
Original PR description
task-5159023 Forward-Port-Of: odoo/enterprise#97489 Forward-Port-Of: odoo/enterprise#96733