Monday, April 13, 2026
19 changes · master
Enhancements to existing features
This update clarifies the tooltip for the cross-company toggle in Odoo Enterprise, explaining that its behavior depends on the selected companies. The change improves user understanding in both Manual and Automated modes, ensuring consistent and accurate data processing.
Original PR description
The tooltip in the cross-company toggle was unclear and did not properly indicate that its behavior depends on the selected companies. This change updates the tooltip to make it more explicit in Manual and Automated modes. task-6111985
This update enhances the web_studio report creation process by automatically including an address block in newly designed external reports. Previously, this block was not automatically generated. This change improves the presentation of reports by providing a standard location for address information.
Original PR description
When creating a new report with external layout, an address block is created in the report and rendered in html, which was not the case before this commit. task-6072302
Resolved issues and error corrections
This update resolves an issue where Odoo displayed a misleading 'This message has been removed' message in the chatter when an approval request was canceled before a purchase order was created. The fix ensures that chatter messages are only logged when there's actual information to display, improving the user experience and clarity.
Original PR description
Steps to reproduce: ------------------------------------ 1. Install `approvals_purchase` module with demo 2. Approvals > New Request in Borrow Items 3. Create request with any product 4. Click on the Submit button 5. Click on the Cancel button Observation: ------------------------------------ In chatter there's a message stating: 'This message has been removed' Issue: ------------------------------------ When you cancel an approval request that has no purchase orders created yet, the `_log_po_cancellation_to_chatter` method is called with an empty `cancellation_log_msg` string, which causes Odoo to display 'This message has been removed' in the chatter. Solution: ------------------------------------ Only log to chatter if there's actually a message to log opw-6063998 Forward-Port-Of: odoo/enterprise#112454
This update hides provider-specific journals from the accounting dashboard, addressing a previous issue where they cluttered the view. This change simplifies the dashboard, making it easier for users to manage their financial data and improving overall usability. It's a routine improvement to the accounting interface.
Original PR description
**: platform_order, urban_piper In this commit: --- - Journals are created for each provider, which mess the accounting dashboard. - Hide these journals from the dashboard to improve visibility and usability. task-6047042
This update corrects a visual issue in the mobile dark mode of the Customer screen. Previously, secondary buttons within dropdown menus appeared as labels. This change ensures buttons consistently appear as buttons in dark mode, improving the user experience and visual consistency.
Original PR description
In mobile dark mode, the secondary button inside the dropdown menu on the Customer screen appeared as a label instead of a button due to a CSS issue. Task-5945915 Related PR-https://github.com/odoo/odoo/pull/249400 Before | After :-------------------------:|:-------------------------: <img width="393" height="549" alt="image" src="https://github.com/user-attachments/assets/0cc6c433-39c5-45fb-8365-9a526b675379" /> | <img width="385" height="552" alt="image" src="https://github.com/user-attachments/assets/a69486ff-d9b7-4f3c-ad78-6558854bfaed" />
This update enhances the logging of Stripe expense rejections by now including the MCC code alongside the name. This provides more detailed information for troubleshooting and resolving issues related to expense processing, ultimately improving the efficiency of our finance team.
Original PR description
Before this commit: - Only the MCC name was logged when Stripe refused an MCC. After this commit: - The MCC code is now logged along with the MCC name for better clarity and debugging. task-6084569 Forward-Port-Of: odoo/enterprise#112599
This update fixes a visual issue where text and checkboxes related to the mobility budget were misaligned when viewing the employee details. The fix ensures consistent formatting across different screen sizes, improving the user experience and readability of this important information. This change addresses a minor layout problem.
Original PR description
Step to reproduce: play with the width of the window, at some point text splits and item are unaligned. Cause: the text is splitted on 2 lines, which makes it unaligned with the checkbox. Solution: force text on same line using style="white-space: nowrap" and use the new o_input_box_overlay_end for units. Task: 6069017
This update corrects a misleading warning message displayed during payslip generation when contract dates partially overlapped with the payslip period. The change ensures that users can continue generating payslips even with minor overlaps, aligning with the functionality introduced in version 19. This improves user experience and avoids unnecessary alerts.
Original PR description
[FIX] hr_payroll: fix payslip warning bug Bug reproduction: 1 - Select Hong Kong (actually there is nothing about Hong Kong, you can select other companies as well) 2 - Create an employee and make…
[FIX] hr_payroll: fix payslip warning bug
Bug reproduction:
1 - Select Hong Kong (actually there is nothing about Hong Kong, you can select other companies as well)
2 - Create an employee and make its contract from 01-01-2025 to 05-03-2026 (DD/MM/YYYY) format.
3 - Generate payslip for March, the warning of "The period selected does not match the contract validity period" popups.
4 - But we do not want that, even though there is 1 overlapping day in contract with payslip we can continue.
Bug cause:
1 - In >= v.17 (not in v.19), there was a warning, when the contract dates do not fully contains the payslip dates, the warning was appearing.
2 - In v.19 it is not the case, when there is a contract that overlaps at least one dat of the payslip then we are fine, if no overlap then no contract on payslip warning should appear
Bug solution:
1 - I replaced old warning "The period selected does not match the contract validity period" with the one in v.19 "No running contract over payslip period"
Tests:
1 - There was a unit test about old warning (test_payslip_warnings), I changed that parts.
2 - I added further steps to the existing test about the new warning that should appear (No running contract over payslip period)
Note: Implemented feature: need to check what happens after v.17, should be removed in v.19 latest, maybe before as well.
task - 6006693
Forward-Port-Of: odoo/enterprise#109791This update resolves a technical problem that was preventing our payroll performance tests from running correctly. The change ensures that time off types are properly initialized during test setup, restoring the test suite's functionality without impacting normal business operations.
Original PR description
Description of the issue this commit addresses: A constraint forbids changing requires_allocation on time off types once related leaves exist. The payroll performance test setup still toggled that field directly so the class crashes during initialization. --- Desired behavior after this commit is merged: This commit makes the performance test setup update seeded time off types in install context. The class initializes correctly again and the broken payroll test suite runs without changing normal business behavior. --- runbot-240729 Forward-Port-Of: odoo/enterprise#110821
This update allows HR administrators to designate specific leave types (like vacation or personal time) as selectable for time off reporting. Previously, certain leave types weren't visible within the holiday schedule Gantt chart, making it difficult to accurately track employee time off. This change enhances reporting and provides a more complete view of employee availability.
Original PR description
task-6089849
This update resolves an issue where the HSBC Net file export was generating incorrect data due to a problem with binary field handling. The fix ensures the export produces accurate data, and the test case has been updated to reflect this change.
Original PR description
Following recent changes on binary fields, the hsbcnet export was writing binary data into the txt file, making the export incorrect. This fixes the issue and update the test in a way where it doesn't pass even though the export was wrong. task-6104863
This update fixes a misleading warning in the payroll system that appeared when payslips overlapped slightly with employee contract dates. The change ensures the system correctly handles overlapping periods, preventing unnecessary warnings and improving user experience. This resolves a previous inconsistency between versions 17 and 19.
Original PR description
Bug reproduction: 1 - Select Hong Kong (actually there is nothing about Hong Kong, you can select other companies as well) 2 - Create an employee and make its contract from 01-01-2025 to 05-03-2026…
Bug reproduction:
1 - Select Hong Kong (actually there is nothing about Hong Kong, you can select other companies as well)
2 - Create an employee and make its contract from 01-01-2025 to 05-03-2026 (DD/MM/YYYY) format.
3 - Generate payslip for March, the warning of "The period selected does not match the contract validity period" popups.
4 - But we do not want that, even though there is 1 overlapping day in contract with payslip we can continue.
Bug cause:
1 - In >= v.17 (not in v.19), there was a warning, when the contract dates do not fully contains the payslip dates, the warning was appearing.
2 - In v.19 it is not the case, when there is a contract that overlaps at least one dat of the payslip then we are fine, if no overlap then no contract on payslip warning should appear
Bug solution:
1 - I replaced old warning "The period selected does not match the contract validity period" with the one in v.19 "No running contract over payslip period"
Tests:
1 - There was a unit test about old warning (test_payslip_warnings), I changed that parts.
2 - I added further steps to the existing test about the new warning that should appear (No running contract over payslip period)
Last Test Update:
1 - I noticed that contract date changes was not affecting the warning appearance directly
2 - Unit test is expanded with contract date change and observing the warning appearance
Note: Implemented feature: need to check what happens after v.17, should be removed in v.19 latest, maybe before as well.
task - 6006693
Forward-Port-Of: odoo/enterprise#113566
Forward-Port-Of: odoo/enterprise#112758This update fixes a confusing error message when using system alias emails in sign requests, which previously caused the application to crash. Now, users receive a clear 'Invalid email address' message, improving the user experience and making the sign process more reliable. The change includes a new check and test to ensure proper functionality.
Original PR description
Before this commit, using a system alias email (like a catchall address) as a signer in a sign request would crash with a confusing ValidationError about an "empty partner", making it hard to understand what went wrong. The error message also had a grammar mistake ("request's").
After this commit, a clear UserError saying "Invalid email address. Please try another one." is raised instead. A check using `_find_aliases` was added and also a test to cover the fix.
task-5904159This update ensures that account moves are automatically created when closing a POS session containing Urban Piper future orders (orders with a delivery date). Previously, these orders were excluded, preventing proper accounting record generation. This change improves financial reporting accuracy for orders processed through the Urban Piper integration.
Original PR description
Before this commit, when all orders coming from Urban Piper in a POS session are paid future orders (i.e. have a delivery_datetime), closing the session would not generate an account move. The cause was that the code was excluding future orders when creating the account move. The fix is to exclude only unpaid orders instead. How to reproduce: - Set up Urban Piper (a test account needed). - Place an order from the Urban Piper platform. - Receive the order, accept it, and mark it as ready. - Close the session. - The session will not have an account move. opw-5995985 Forward-Port-Of: odoo/enterprise#113092 Forward-Port-Of: odoo/enterprise#111137
This update fixes a potential issue in the account reports module's testing process. By using Python objects instead of string IDs in assertions, the tests are now more reliable and less prone to errors when comparing data. This ensures the accuracy of financial reporting.
Original PR description
Steps to reproduce: - create a test using the assertLinesValues using two lines having the same id. Forward-Port-Of: odoo/enterprise#112569
This update simplifies the synchronization wizard by reducing overwhelming error messages for users. Instead of detailed error lists, the wizard now provides a summary count of problematic databases. Error details are now logged in a separate location for technical review, minimizing user alarm and improving the overall workflow.
Original PR description
This commit reduces the verbosity of error messages displayed in the synchronization wizard to avoid creating an unnecessary sense of alarm for users. Instead of showing a detailed list of errors,…
This commit reduces the verbosity of error messages displayed in the synchronization wizard to avoid creating an unnecessary sense of alarm for users. Instead of showing a detailed list of errors, the wizard now displays a single summary message indicating the number of databases that encountered an issue. A new Unreachable project tag is introduced (loaded from project_tags.xml if missing). It is automatically assigned to failing databases and removed upon the next successful synchronization. Detailed error information is no longer shown in the wizard and is instead logged in the chatter of the corresponding database settings for further inspection. Previously displayed non-blocking warnings for already-configured SaaS databases are now omitted to reduce noise, as they would otherwise generate chatter messages at each synchronization. Task-id: [5945269](https://www.odoo.com/odoo/project.task/5945269) Forward-Port-Of: odoo/enterprise#113617 Forward-Port-Of: odoo/enterprise#107975
This update fixes an issue where duplicate checks were being triggered during tax return generation, leading to error messages. The change ensures that only one 'draft entries' check is run, streamlining the return generation process and preventing unnecessary errors. This improves the reliability of tax reporting.
Original PR description
Steps to reproduce:
- Go to Accounting → Configuration → Accounting → Return Types.
- Open the standard Annual Closing: Corporate Tax return type.
- Select Generic Tax Report as a report in the Report field.
- Navigate to Accounting → Accounting → Closing → Tax Returns.
- Generate the tax return for the selected period.
Issue:
- Duplicate checks with code check_draft_entries are created for the same return, raising:
'You can only have a unique check code for each return.'
This happens because:
- `_check_suite_common_vat_report` adds a Draft entries check.
- `_check_suite_annual_closing` also adds a similar check (No draft entries) with the same code.
- Both run together, causing duplication.
Solution:
- Added `check_codes_to_ignore.add('check_draft_entries')`
in _check_suite_common_vat_report to ensure the check is not generated twice.
opw-6066030
Forward-Port-Of: odoo/enterprise#113393This update fixes a visual inconsistency in the Odoo Enterprise subscription interface. Specifically, the 'Recurring Plan' and 'Until' display labels are now aligned and share the same width for a cleaner and more user-friendly experience. This improves readability and overall presentation.
Original PR description
Go to Subscription and open a subscription. => "Recurring Plan" & "Until" should share the width and be on the same line. task-6033618
This update enhances the user experience within the Odoo form editor by adding padding to the grouping of fields. Previously, these groups were difficult to see and access. This change improves clarity and usability for users creating and editing forms.
Original PR description
Before this commit, and consequently to odoo/enterprise#8489b760dd601d2a5196c8323eb0e1929c0f2132 the "groups" in the form editor were not easily visible or accessible because they lacked some padding. After this commit, we reintroduce some padding. task-6072333 Forward-Port-Of: odoo/enterprise#112439