Daily updates from Odoo
Thursday, April 23, 2026
12 changes · master
New functionality added to Odoo
This update adds tracking functionality to key fields within work entry types across multiple Odoo localization modules (l10n_au, l10n_be, etc.). This enhancement provides better visibility and control over work entry types, streamlining reporting and ensuring accurate payroll processing for various international business operations.
Original PR description
task-6123873
Enhancements to existing features
The Ecuador invoice report now places customer information in a separate table to avoid layout issues when there is more data to display. This makes the invoice easier to read and helps prevent overlapping or cramped information on printed reports.
Original PR description
EC invoice custom report had some visual issues due to the limited space where customer information is shown, which was more obvious once the customer information started to grow. To fix this, the customer info is moved to a new table. task-6093976
Resolved issues and error corrections
This update corrects a typo and adjusts the visual styling in the VOIP dashboard. It improves readability and polish without changing how the dashboard works.
Original PR description
task-6132220 Forward-Port-Of: odoo/enterprise#114324
This change fixes an unstable automated test in Belgian payroll by freezing the date used during the test. It prevents the test from randomly passing or failing as the calendar year changes, improving reliability of nightly builds.
Original PR description
The test was failing intermittently in nightly builds that run at a date in the next year (e.g.: 2027-04-20). The issue was that the student's age is calculated at runtime using : - When the student is age 19 (2026): min wage = 2057.87 < 2100 → PASS - When the student is age 20 (2027): min wage = 2136.84 > 2100 → FAIL task-6144986 Forward-Port-Of: odoo/enterprise#114594
This update ensures that changes to salary information within the salary configurator correctly update related calculations for mobility budgets. Previously, changes outside this specific context could cause inconsistencies. This change improves the accuracy of budget calculations and avoids unexpected behavior.
Original PR description
For consistency purposes, we only trigger the inverse on the mobility budget computation if we are in the context of the salary configurator. Changing the wage in the back end or changing the employer cost should only touch the wage and not other benefits Forward-Port-Of: odoo/enterprise#112510 Forward-Port-Of: odoo/enterprise#111828
This update adds a test to ensure the asynchronous export of DAS2 reports functions correctly. This follows up on a previous fix (oondo/enterprise#114449) to improve the reliability of this important reporting feature. Adding this test provides additional assurance of the fix's stability.
Original PR description
Following odoo/enterprise#114449, we're safeguarding this fix by adding a test. No task ID
This update resolves inconsistencies in translations for the account asset and account reports modules, specifically for French (Belgium, Canada, and France) locales. The team removed outdated or incorrect translation overrides, ensuring users see accurate and consistent labels within the Odoo Enterprise application. This improves the overall user experience and data integrity.
Original PR description
There were some translation overrides for `fr_BE` and `fr_CA` that were incorrect or unnecessary. We are deleting these files so they use the correct translations in `fr` instead. In the `nl_BE` translation, we are fixing a menu item so it is shorter, but still correct. task-5921458 Forward-Port-Of: odoo/enterprise#114469 Forward-Port-Of: odoo/enterprise#106998
This update resolves an issue where missing tracking data from orders could cause shipping validation failures and incorrect tracking URLs. The fix handles cases where the 'tracker' object is null, preventing errors and ensuring accurate shipping confirmations. Easypost support suggested a delay between order creation and tracking retrieval as a potential workaround.
Original PR description
Problem: 'tracker' object in response from GET /orders/:id request can sometimes be null. This means that when the mail template 'mail_template_data_delivery_confirmation' is sent, a traceback occurs…
Problem: 'tracker' object in response from GET /orders/:id request can sometimes be null. This means that when the mail template 'mail_template_data_delivery_confirmation' is sent, a traceback occurs with error: TypeError: 'NoneType' object is not subscriptable. As a result the picking is not validated in odoo but a shipping has succesfully been created in the easypost backend. Solution: Prevent traceback form happening, picking gets correctly validated and carrier_tracking_url field is empty. Transcript from Easypost support: << I'm also seeing the tracker showing as null when reviewing the response. I'll go ahead and create a ticket for the engineering team to investigate. I can see that the tracking code is being returned in the request, but the full tracking object is not. Since this appears to be happening on a case-by-case basis, you may want to allow more time between the BUY and the GET requests, as I noticed they are being triggered very close together. I'm not certain if that's related, but it may be worth trying as a troubleshooting step while we have this under review. >> opw-5402415 Forward-Port-Of: odoo/enterprise#111833
This update streamlines how payslips are generated within the Odoo Enterprise system. Previously, the salary configurator would inadvertently create and modify payslip lines. Now, a more efficient method, `_get_payslip_lines`, is used to retrieve necessary data, preventing unnecessary changes and improving system performance. This change ensures accurate and reliable payslip generation.
A recent update resolved a bug that caused the annual tax report to crash when comparing it to a previous period. This issue stemmed from the report occasionally containing string values, leading to incorrect conditional checks and a failed calculation. This fix ensures the report functions correctly under all comparison scenarios.
Original PR description
To reproduce: - Create a company in LU - Open the annual tax report for LU - Click on the comparison filter, compare with 1 period in the past ==> Traceback. This happens because that report contains a string value (an editable one, but it's not important here). Since there are only 2 comparison periods, we try creating the "%" column, comparing their amounts. The condition checking whether or not to display "N/A" was wrong, as it considered the values could only be int/float or None. Here, they are strings, so we don't enter that condition and crash when trying to evaluate float_is_zero on a string. Forward-Port-Of: odoo/enterprise#114296 Forward-Port-Of: odoo/enterprise#112619
Features or functions removed from Odoo
This update removes the outdated jQuery library from the HR Contract Salary module, addressing a technical dependency that was being phased out. This change improves the stability and maintainability of the module, ensuring it aligns with modern web development practices.
Original PR description
Community PR (odoo/odoo#257919) removes jQuery from `assets_frontend` as it's deprecated. This commit removes its use. task-5187485
Code cleanup and technical improvements
This change modernizes parts of the web editing experience by removing reliance on an older JavaScript library in most add-ons. It helps keep the codebase easier to maintain and better prepared for future updates, with no expected impact on everyday business use.