Friday, October 24, 2025
16 changes · master
Enhancements to existing features
The option to create batch payments is now available to users working in invoicing, rather than being limited by a narrower access group. This makes payment processing easier for finance teams by allowing the right invoicing users to perform the action directly.
Original PR description
This commit will change the security group of the create batch payment action, to be available in invoicing. task-5187435 Forward-Port-Of: odoo/enterprise#97884
Amazon stock synchronization logs now include the related account ID. This gives support teams clearer context when investigating customer stock sync issues and should help speed up troubleshooting.
Original PR description
Based on feedback from the support team, additional information has been added to the stock sync logging messages. This enhancement includes the account ID for better traceability and to help the team understand customer issues more effectively. Forward-Port-Of: odoo/enterprise#97940
This update aligns Enterprise modules with recent core access-control performance changes. Knowledge now refreshes its permission cache after members are invited, helping ensure access updates take effect correctly while keeping permission checks faster.
Original PR description
odoo/odoo#204996
Resolved issues and error corrections
Belgian point-of-sale receipts now show the original unit price before discounts using the correct pricing method. This helps customers and businesses see discount information accurately on receipts.
Original PR description
Use dedicated method `getUnitDisplayPriceBeforeDiscount()` to display the line old (before discount) unit price on the receipt. task-id: 5011427 Forward-Port-Of: odoo/enterprise#97273
The Field Service task list now shows only open tasks in the To Schedule view. This prevents completed or cancelled work from appearing as still needing planning, helping teams focus on actionable tasks.
Original PR description
**steps to reproduce:** Go to field service Go to all tasks > to schedule **issue:** The To Schedule filter was also displaying tasks in cancelled or done state, whereas it should only show open tasks that need to be scheduled or assigned. **cause:** The filter domain did not exclude cancelled/done state, causing closed tasks to appear in the filtered view. **fix:** Updated the filter domain to exclude cancelled/done state, to ensure only open tasks are shown under the To Schedule filter. task-5138590 Forward-Port-Of: odoo/enterprise#96600
This fixes an issue where printing PDF documents through IoT in manufacturing work orders could fail with an error. The change ensures document identifiers are passed in the expected format, making printing more reliable for shop floor operations.
Original PR description
Due to `active_ids` being provided with a `list[list]` instead of just `list`, pdf document rendering was returning a traceback. This commit fixes the issue by flattening the list passed to the context of the client action. (e.g. `res_ids` was provided `[[21, 22], [21, 22]] instead of [21, 22, 21, 22]`). opw-5190570 Forward-Port-Of: odoo/enterprise#98003
Spreadsheet files in Documents now show their proper thumbnail on kanban cards instead of a plain text preview. This makes it easier for users to recognize and open the right spreadsheet at a glance.
Original PR description
## Description Spreadsheets (stored as `application/json`) were matched by the textual preview, so the kanban card showed a text iframe instead of the sheet thumbnail. Now the spreadsheet preview is prioritized so the correct thumbnail displays. Task: [4963284](https://www.odoo.com/odoo/project/2328/tasks/4963284) Forward-Port-Of: odoo/enterprise#96963
The employee offer signature button now works correctly when an offer has been signed more than once. HR users are shown all related signature requests instead of hitting an incorrect single-request view, making follow-up smoother and avoiding confusion.
Original PR description
Steps to reproduce: - Go to an employee and create an offer - Sign the offer with the employee twice - Log as the HR responsible and use the "Requested signature" smartbutton on the offer This has been fixed by opening a kanban view of all sign requests, if multiple. task-5053624 Forward-Port-Of: odoo/enterprise#94053
This fixes an issue where HTML content created through AI fields could appear as escaped text instead of rendering properly. The change ensures sanitized AI-generated content is handled correctly, improving the display experience without affecting standard HTML fields.
Original PR description
Bug === Since odoo/odoo@560fca7e94b232a7e2c9ad452a9772367c34204b , `fixInvalidHTML` escape the content if it's not a markup object. All place have been updated, except when computing an HTML with AI. So we make the object a markup, so it's not escaped by `fixInvalidHTML`. The content is sanitized in `parse_ai_response`. Task-5092600 Forward-Port-Of: odoo/enterprise#95038
The French VAT reporting export now sends address and location details in the format expected by ASPOne. This reduces the risk of report submission errors caused by invalid address fields or outdated templates.
Original PR description
This commit check that all the information that we send to aspone follow the constraint. By checking the xsd file, here what has been modified: - AdresseType is depreciated so we add AdresseRepetabilite - Adding a comment to remove a template not used in master - postal_code needs to have maximum 17 character - city needs to have maximum 35 character task-5169258 Forward-Port-Of: odoo/enterprise#97346
This update corrects how attachment fields are handled in several Odoo Enterprise areas so users can find and use related files as intended. It helps prevent avoidable issues when working with return reports or social post templates that include attachments.
Original PR description
Follow-up of fd4fcb1bd87, we should set `bypass_search_access` on `ir.attachment` many2many fields. Forward-Port-Of: odoo/enterprise#97390
Point of Sale sessions now use the currently signed-in user when starting payments through a Six terminal. This prevents payment startup failures when a different employee opens or continues a POS session in another browser tab.
Original PR description
This commit fixes an undefined `user_id` on the pos session when trying to start a payment with a Six terminal from another user than the one that started the session. Before this commit: - open a pos session with Mitchell Admin, - check the value of `pos.session.user_id` (it will be `2`), - open another tab and connect as Marc Demo, - check the value of `pos.session.user_id` again: it should be `6`, but instead is `undefined`. After this commit: We use `pos.user.id` instead of `pos.session.user_id.id` to get the user ID. opw-5055977 Forward-Port-Of: odoo/enterprise#98021 Forward-Port-Of: odoo/enterprise#97975
Users whose contact record is linked to multiple user accounts can now create spreadsheets from the Documents app without triggering an error. This prevents a blocking crash in a specific contact-sharing or contact-merge situation, improving reliability for affected users.
Original PR description
Before this commit: 1. connect with a user, the partner_id of which is linked to multiple users via the user_ids field (this can be done by manually setting it, or by merging contacts, for example) 2. go to the Documents app, click new, then spreadsheet --> expected singleton Traceback opw-5133850 Forward-Port-Of: odoo/enterprise#97767
This update corrects how fixed taxes are calculated when an accounting line has a negative price, such as refunds or reversals. It helps ensure tax amounts remain accurate in bank statement and accounting workflows, reducing the risk of incorrect financial records.
Original PR description
opw-5128767 Forward-Port-Of: odoo/enterprise#97980
Code cleanup and technical improvements
Discuss-related files for WhatsApp messaging were moved into a clearer sidebar location. This is an internal cleanup that helps maintain the messaging codebase without changing the user experience.
This update modernizes automated tests across several enterprise modules by replacing older testing methods with the current supported approach. It does not change customer-facing features, but helps keep future development reliable and easier to maintain.