Monday, October 20, 2025
19 changes · master
Enhancements to existing features
Chat contact information is now handled through the channel member record for AI and WhatsApp conversations. This keeps conversation behavior more consistent across messaging features and reduces the risk of mismatched contact details.
Original PR description
task-4675831 PR community: https://github.com/odoo/odoo/pull/230067
WhatsApp discussions now align with the updated way Odoo tracks offline members in chat channels. This keeps WhatsApp-related conversations consistent with the main messaging system and helps avoid display or availability mismatches after the underlying platform change.
Original PR description
This commit adapt the whatsapp code to the move of offlineMembers to discuss channel model. PR community: https://github.com/odoo/odoo/pull/231395
Spreadsheet border handling has been reorganized to make spreadsheet editing behavior more reliable and easier to maintain. This supports consistent autofill behavior in list and pivot spreadsheet views, reducing the chance of formatting issues as the feature evolves.
The Monster recruitment integration apps now use updated icons that match company icon guidelines and Monster's official brand colors. This improves visual consistency and makes the related apps easier to recognize in Odoo.
Original PR description
*: hr_recruitment_integration_skills_monster, hr_recruitment_integration_website_monster Prior to this change, the module icons did not comply with our icon guidelines. They have now been updated to use the Monster logo with official branding colors. task-4724804 | Before | After | |--------|--------| | <img width="1021" height="162" alt="image" src="https://github.com/user-attachments/assets/baf8bff0-deca-49f7-999e-750617302331" /> | <img width="1040" height="184" alt="Capture d’écran 2025-09-29 à 15 45 31" src="https://github.com/user-attachments/assets/9edd5023-9a1e-40c0-806f-01def0c84462" /> |
The Hong Kong payroll form now shows the employer return year only for Original forms. This reduces confusion by hiding an unnecessary field when other form types are selected.
Original PR description
- made the field `year_of_employer_return` only visible when `type_of_form` is Original task-id: 5050409
The payroll menu previously labeled “Resume” has been renamed to “Salary Summary” so users can more easily understand its purpose. This improves clarity and consistency when navigating salary-related information.
Original PR description
The 'Resume' menu label was misleading, as it did not accurately reflect its purpose. It has been renamed to 'Salary Summary' for better clarity and consistency. task-5172597
The IoT module now uses a clearer and consistent name for request session identifiers. This reduces ambiguity in internal communication between IoT components and supports easier maintenance across related systems.
Original PR description
In order to standardize the session id (id to the request received), we renamed all occurrences of old "owner" key to "session_id" Community PR: odoo/odoo#225190
WhatsApp conversations now use the dedicated channel loading method directly. This is a small internal improvement that should make the code path clearer and help maintain reliable access to WhatsApp chats without changing the user experience.
Original PR description
This PR use `discuss.channel` getOrFetch method directly instead of `mail.thread`
Links entered in the mail composer are now recognized and highlighted more reliably. The update also simplifies the underlying editor setup, making future maintenance easier without changing the user workflow.
Original PR description
This commit enables the link plugin in the mail composer so that the link will be properly parsed and hightlighted. This commit also improves the plugin set and clean up the duplicated plugin lists. task-5172795 backport - https://github.com/odoo/enterprise/pull/97504 https://github.com/odoo/odoo/pull/232347 Forward-Port-Of: odoo/enterprise#97666
Resolved issues and error corrections
The project customer preview now hides non-validated timesheets when the invoicing policy only allows validated timesheets. This prevents internal preview users from seeing a different task view than customers see in the portal, improving billing transparency and consistency.
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 update adjusts many enterprise module tests so legacy installation behavior is set automatically. It helps keep post-install checks consistent by default, reducing maintenance work and avoiding mismatches in automated validation.
Reference and selection field values are now sorted in test simulations the same way they are defined, rather than alphabetically by the stored value. This makes automated Gantt-related tests more reliable and better aligned with real expected behavior.
Original PR description
selection and reference fields are not sorted according to the selection value index, but using the value itself. Note: this could be fixed in earlier version, but since it's an API change (of the mock server, but still...), it could break tests of existing custom modules built by the community. Task: 5102923
Fixed an issue where opening a tax report from a Luxembourg return for a previous month incorrectly reset the date filter to the current month. This helps users review and file past-period returns with the correct reporting dates.
Original PR description
This commit solve an issue when being on the Luxembourg and doing a return on a previous month like may and clicking on the link to the tax report on the return, the date filter was wrongly set to this month. no task id
Asset names can now be shown and imported in the user's selected language. This improves usability for companies operating in multilingual environments and helps keep asset records understandable across teams.
Original PR description
To support multilingual environments, this commit refactors the 'name' field on the asset model with `translate=True`, converting it to a standard, translatable text field. This allows asset names to be imported and displayed in the user's selected language. task-5122900
The asset list was changed back so users can open the full creation form when they click New. This restores the expected workflow and avoids confusion when creating new assets.
Original PR description
The previous change to make the asset list view editable caused a problem where the "New" button no longer opens the form view. This commit reverts that change to restore the intended functionality. Forward-Port-Of: odoo/enterprise#97483
Error messages in US payroll and NACHA payment flows now use the same bank field label that users see on the form. This makes it easier for users to identify which bank detail needs to be completed or corrected.
Original PR description
The label shown in the res.partner.bank form view depends on the show_aba_routing field. If we don't show the correct label in these error messages it's not clear to the user what field they have to fill. task-5052996 Forward-Port-Of: odoo/enterprise#97510 Forward-Port-Of: odoo/enterprise#97318
This update makes IoT payment terminal logs more complete and consistent. Each transaction step now includes identifying details, making it easier for support teams to trace issues and resolve payment problems faster.
Original PR description
This PR improves the logging of terminals used with iot box. We will now get a log for every step of a transaction along with some information identifying the transaction Forward-Port-Of: odoo/enterprise#97216
Code cleanup and technical improvements
AI agents are now identified separately from regular user activity, so they no longer appear as if they have a live presence status. This keeps availability indicators focused on real users while still allowing the interface to recognize AI agents correctly.
Original PR description
The `im_status` field should only hold information regarding the activity of a user, and AI agents don't have activity in that sense as they are always online. We therefore set the `im_status` of ai agents to `bot` (signifies opting out of the activity tracking) and pass the `agent_ids` field client side as a mean of identifying AI agent partners.
The Knowledge app no longer uses a custom attachment-sharing step for article discussions because that token handling is now covered by the standard platform behavior. This reduces duplicated logic and helps keep access handling consistent for public and portal users.
Original PR description
This commit removes the `_to_store` override on `ir_attachment` which adds an access_token for public/portal users in knowledge article threads. Token handling is managed by the _to_store_defaults raw_access_token since [1]. [1] https://github.com/odoo/odoo/pull/204830 task-4676413