Monday, February 2, 2026
12 changes · master
Resolved issues and error corrections
This fix makes deletion of linked mail records work correctly when several related records are involved instead of just one. It helps prevent errors or incomplete cleanup in specific inherited data relationships, improving reliability without changing normal user workflows.
Original PR description
Usually (always?) the "inverse" for an inherited field will be a one2many. Even if in practice it is a one2one. The cascade deletion of the inverse should thus handle RecordList instead of assuming they're always single records. related: 478647c4526f42a2455a599555748c844a6f20cf task-5013894 Forward-Port-Of: odoo/odoo#246488
Avatar cards now hide the local time zone when it is the same as the current user's time zone. This reduces unnecessary information and keeps contact cards easier to read while still showing time zone differences when they matter.
Original PR description
Before this commit, the local time zone was shown on avatar card even when this is the same as current user. The intent of showing of local timezone is to see when it differs. When this is the same, this just adds noise to the card. This commit hides the showing of local timezone when this is the same as current user. Part of Task-5867464 Before / After <img width="310" height="206" alt="Screenshot 2026-01-30 at 17 24 04" src="https://github.com/user-attachments/assets/c47f885d-fb98-48f8-91fb-24d6a33e4c9a" /> <img width="311" height="193" alt="Screenshot 2026-01-30 at 17 23 50" src="https://github.com/user-attachments/assets/26fe6cf8-f2b1-40a3-b478-065ea88e01af" /> Forward-Port-Of: odoo/odoo#246570
This fixes how Odoo Discuss applies mixed updates to list-style data, preventing updates from being applied in the wrong order or format. Business users should see more reliable chat and messaging behavior when records are refreshed or changed.
Original PR description
Many fields can be updated in the discuss store in different modes: `ADD`, `DELETE`, `REPLACE`. The `REPLACE` case is the most frequent one, so the server doesn't bother sending it wrapped up as a command but instead return the array that should replace the current field value. However, the client doesn't handle well replace being mixed up with other commands. This commit ensures many commands are normalized on the client side. This also allows to simplify the `updateRelationMany` function since we only have one command format. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
New timesheet entries on tasks will once again be added at the bottom of the list, keeping the view in chronological order. This makes time tracking easier to follow and avoids confusion when reviewing recent work logs.
Original PR description
Steps to Reproduce: - Open the Task form view - Add a new Timesheet entry - Notice that the newly created timesheet appears at the top of the list Cause: - The timesheet list view was configured with editable="top", which forces newly created records to be inserted at the top of the list instead of following the chronological order. Solution: - Restore the list view configuration to use editable="bottom" and apply default_order="date", ensuring new timesheet entries are consistently added at the bottom of the list. task-5309676
This update fixes an issue where users wouldn't receive a warning when entering invalid email addresses during shared sign request declines. Now, the system validates email formats and displays a clear warning message, preventing incorrect data entry and improving the overall user experience. This ensures data integrity and reduces potential errors.
Original PR description
Version: - saas-18.4 Steps to reproduce: - Create a shared sign request. - Try to decline the sign request. - Enter an email address in an invalid format. Issue: - No warning is shown to the user for an invalid email and An RPC_ERROR appears in the console. - This happens because the _check_signer_email_validity constraint fails when signer_email is not valid. Solution: - Validate the email format when the user submits the refusal request. - Show a warning message if the email format is invalid. task-5454929 Forward-Port-Of: odoo/enterprise#103146
This update resolves an issue where new appointments were sometimes created with duplicate default time slots. The fix ensures that default slots are only created once, preventing confusion and ensuring accurate appointment scheduling. This improves the user experience and data integrity.
Original PR description
Steps to reproduce: - Install website_appointment - Go to the frontend and create a new appointment from there - The appointment created has its default slots duplicated When creating an appointment type, it's possible that we end up creating the default slots two times by passing in the compute of the category and then the onchange linked to category_slot_scheduling. Technically, when we were in the onchange after the compute, slot_ids was populated by NewId records. So when assigning and creating a second time the default slots, the NewId would at the end become real records and the new one were added on top. Now we add a check on the previous category to create the default slot only when we came from a custom appointment and reset them if it is now a custom one. task-5499200 Forward-Port-Of: odoo/enterprise#104482
This update corrects a technical issue within the IoT module where the ORM import was incorrectly configured. By switching to `useService` for importing the ORM, the system now functions correctly, ensuring data integrity and stability. This resolves a potential error reported in the system.
Original PR description
In odoo/enterprise#104794, we moved the test button logic from the form controller to a widged. The orm should now be imported through `useService` instead of the now undefined `model`.
This update corrects a visual issue where newly added timesheet entries were incorrectly appearing at the top of the helpdesk ticket list. The fix restores the default list view setting to add new entries at the bottom, ensuring a consistent and user-friendly experience. This improves the clarity and organization of timesheet data.
Original PR description
Steps to Reproduce: - Open the helpdesk ticket form view - Add a new Timesheet entry - Notice that the newly created timesheet appears at the top of the list Cause: The timesheet list view was configured with editable="top", which forces newly created records to be inserted at the top. Solution: Restore the list view configuration to use editable="bottom" ensuring new timesheet entries are consistently added at the bottom of the list. task-5309676
This update refines the bill auto-complete feature within the Enterprise accounting module. Previously, the feature could suggest bills and purchase orders, but it has now been restricted to only suggesting purchase orders. This change ensures data consistency and accuracy in purchase order processing.
Original PR description
Adjust a few test cases to reflect the change in how the auto-complete feature works, it used to be able to auto-complete from pruchase orders or bills, now it can only auto-complete form purchase orders task-5258726
This update resolves an issue where the default packaging type for service products in the Odoo Enterprise system was incorrectly configured. The previous XML ID no longer functioned, preventing proper EDI processing. This fix ensures service products are correctly packaged for electronic invoicing in Kenya.
Original PR description
Update the xmlid for the default packaging type for service products, the previous one `l10n_ke_edi_oscu.packaging_type_ou` seems to have never existed. opw-5220129 Forward-Port-Of: odoo/enterprise#105905
This update fixes an issue where document actions would fail when multiple languages were enabled and then one was disabled. The change ensures that actions are now filtered to only include those linked to currently active languages, preventing errors and improving stability. This impacts the Documents module.
Original PR description
Filter Embedded Actions Based on Active Languages ### Impacted versions: 18.0 and later ### Steps to reproduce: - Install at least 2 languages - Install documents and accounting or other app to have actions on select - Uninstall one language - You will get an error when trying to activate again actions on select (also appears on network interface) ### Current behavior: When a language is deactivated, its corresponding translations may still appear in server actions, leading to errors when trying to add them to the context. This issue is now resolved by filtering actions to only include those linked to active languages. Task: [5420820](https://www.odoo.com/odoo/project/49/tasks/5420820) Forward-Port-Of: odoo/enterprise#102938
This update fixes an issue where the UrbanPiper store identifier field was visually overflowing its container. The changes include wrapping the field and button in a container with flexible width and overflow-hidden styling, resulting in a cleaner and more user-friendly display for users interacting with the UrbanPiper POS integration.
Original PR description
Before this commit: --- - The UrbanPiper store identifier field could overflow its container. After this commit: --- - Wrap the store identifier field and action button in a container. - Apply `overflow-hidden` and flexible width to the store identifier field. task-5472992 Forward-Port-Of: odoo/enterprise#106075 Forward-Port-Of: odoo/enterprise#103464