Daily updates from Odoo
Thursday, March 19, 2026
18 changes · master
New functionality added to Odoo
This update adds comprehensive data for Joint Committees within Odoo Enterprise, addressing a previous issue where incorrect combinations of Joint Committee and Employer Category could lead to errors. The changes ensure accurate data encoding and provide a clearer system for managing these important employee details. This improves data integrity and reduces potential user errors.
Original PR description
In order to avoid encoding mistakes, we need to warn user if he encoded a wrong combination of Joint Committee and Employer Category (L10N Be Employer Category). So we need to have all the Joint Committee data encoded into out system - Add all the missing committee - update the committee display name Task: 6018469
This update introduces a voicemail button within the Odoo softphone interface. When a VoIP provider is configured with a voicemail code, a button appears on the keypad, allowing users to easily access voicemail. This improves the user experience by providing a direct dialing option for voicemail services.
Original PR description
This commit allows the configuration of a voicemail code for VoIP providers. When a provider has a voicemail code configured, a voicemail icon is displayed on the "1" key. A long press on this key will dial the voicemail code. Task-[5977620](https://www.odoo.com/odoo/5778/tasks/5977620)
This update allows users to create Documents records directly from files uploaded through employee forms. Previously, this feature was blocked for attachments with a specific field setting. This change improves the process of managing employee files within the Documents system, streamlining document creation and storage.
Original PR description
POC for comparison with #103818. task-5454615
Enhancements to existing features
This update enhances the account reports debug popover by allowing users to view the specific code associated with each line item. This provides more detailed information for troubleshooting and understanding report data, improving accuracy and efficiency.
Original PR description
Would be nice to be able to get the codes of lines in the debug popover. No task ID
This update optimizes how Odoo handles file uploads, reducing memory usage and improving performance. Previously, Odoo loaded entire files into memory, which was inefficient for larger files like videos. This change introduces a more memory-friendly method for saving files to the file store, ensuring smoother operation.
Original PR description
File upload to Odoo always loads the entire file in memory (sometimes even in base64!) in order to save it as attachment. Most controllers use the default upload limit of 120MiB (web.max_file_upload_size), requests bigger than this limit are rejected. In most cases, using 120MiB of memory is fine, the limit is much smaller than the typical available memory of a production server. 120MiB is more than enough for documents and images, but too small for videos or uncompressed audio. We never intended that our file-store would store bigger files as Odoo is not a content-delivery system. Still, the ``--x-sendfile`` option makes for an easy/cheap alternative to cloud storage, and there are situations (not limited to HTTP upload) where we want to load bigger files in the filestore. This new utility offers a memory-efficient way to save a file inside the filestore, it basically is like `create`-single, but with a file object given instead of `raw` bytes.
Resolved issues and error corrections
This update fixes a technical issue preventing users from correctly selecting suggestions within the Timesheets app. The problem stemmed from an unnecessary addition of '.this' to template variables, causing errors when accessing data. This change removes the '.this' element, ensuring the Timesheets app functions smoothly.
Original PR description
[FIX] {helpdesk,sale}_timesheet_{,enterprise}: remove .this with t-slot-scope
Steps to reproduce:
- Timesheets app > Assistant > select a suggestion => TypeError: Cannot read properties of undefined (reading 'record')
Source:
The following commit: https://github.com/odoo/enterprise/commit/426dce738f2513fb47af7a927599c0a77e6bdf66 added `.this` to template variables that are targeting the component, but `data` variable defined by the t-slot-scope directive should not be precedded by `.this`
Fix:
Remove `.this`This update fixes a technical issue preventing users from checking in/out through the systray attendance menu. The problem stemmed from a migration script incorrectly referencing data, leading to an error. The fix removes a problematic reference to ensure correct data access.
Original PR description
steps to reproduce: - install `hr_attendance` and `helpdesk_timesheet` - try to check-in/out through systray attendance menu - notice there is a traceback cause: - the OWL 3 migration script (here: https://github.com/odoo/enterprise/pull/109943) added `this.` to `data` which is not component-scoped variable; and hence will result into `undefined` then `record` cannot be read from `undefined` fix: - remove `this.` to avoid trying to access `data` from the component. [task#6040452](https://www.odoo.com/odoo/project.task/6040452)
This update fixes an issue where cancelled vendor bills were incorrectly included in the Sweden accounting SIE export. The change ensures that cancelled transactions are properly excluded, aligning the export with the general ledger's accounting records. This prevents inaccurate reporting and maintains data integrity.
Original PR description
Steps to reproduce: - Install l10n_se (Sweden - Accounting). - Create a Vendor Bill with a line using Account 4000 (Cost of goods) for any amount (e.g., 10,000 SEK). - Confirm/Post the bill. - Cancel the bill. - Go to Accounting > Reporting > SIE Export and generate the export for the current year. - Open the downloaded .se file and locate the #RES line for Account 4000. Expected: The balance should be 0.00 (cancelled entries must be ignored, matching the GL). Actual: The cancelled amount (10,000) is incorrectly summed into the exported balance. opw-5901999 Forward-Port-Of: odoo/enterprise#110612 Forward-Port-Of: odoo/enterprise#108767
This update corrects a bug that was causing incorrect decimal values to be generated in Intrastat XML reports for French companies. The issue stemmed from how the system processed invoice data, specifically when dealing with weight values. This fix ensures accurate reporting for cross-border trade data.
Original PR description
Steps to reproduce: - Select a French company and activate intrastat - Create an invoice with a 100% discount to a european partner and provide intrastat values such as intrastat code, product commodity code, ... and most importantly a weight with a decimal amount. - Create at least one other invoice to a european partner that has a date earlier than the first one (but on the same month) - Go to intrastat report and export the XML (DEBWEB2) and select EMEBI and then Departures. -> Issue: The line that got processed after the one with a 0 value is not properly post-process regarding the integer conversion because we used to iterate on a list that was modified at the same time. opw-5973832 Forward-Port-Of: odoo/enterprise#110971
This update corrects a technical issue that was preventing the VSME/CSRD report from generating correctly. The fix involved updating a reference to the correct employee type within the Odoo system, ensuring accurate reporting data. This resolves a potential error and improves report reliability.
Original PR description
Before this PR, there was a typo related to employee types after a recent change (https://github.com/odoo/enterprise/pull/103118) , which was 'your_module.employee_type_employee'. We change it to 'hr.contract_type_employee' to avoid a traceback when printing the VSME/CSRD report.
This update addresses a potential issue in testing where the system's transaction state wasn't properly managed after operations. The changes ensure that transactions are reliably handled, preventing unexpected behavior and improving test stability. This primarily impacts the accounting and payroll modules.
Original PR description
https://github.com/odoo/odoo/pull/253929
This update resolves an issue where GS1 barcode filtering would fail due to incorrect date interpretation. The fix prevents errors when a barcode starts with a date identifier, ensuring that products can be correctly filtered by barcode scans. This improves the reliability of internal transfer processes.
Original PR description
Steps to reproduce: - Activate the GS1 nomenclature - Create a product "P1" with the barcode: 15099590225865 - Create an internal transfer with one unit of P1 - Go to Barcode > Operations > Internal…
Steps to reproduce: - Activate the GS1 nomenclature - Create a product "P1" with the barcode: 15099590225865 - Create an internal transfer with one unit of P1 - Go to Barcode > Operations > Internal Transfers - Scan the barcode: 15099590225865 to filter transfers by this product barcode Problem: An validation error is raised: A ValidationError is raised: "A GS1 barcode nomenclature pattern was matched. However, the barcode failed to be converted to a valid date." Explanation: GS1 barcodes must follow a strict nomenclature based on well-defined rules. For example, a GS1 product barcode should start with the Application Identifier 01 followed by 14 digits. The GS1 parser processes the barcode rule by rule and applies the first matching rule. In this case, the barcode 15099590483921 is interpreted as a date because it starts with "15", which corresponds to a GS1 Application Identifier for a date. As a result, the parser attempts to convert the first six digits into a date and raises a ValidationError. Solution: Catch the ValidationError raised during GS1 date parsing in filter_on_barcode and explicitly reset parsed_results to False, allowing the normal filter on product resolution logic to continue. This prevents GS1 parsing errors from blocking valid barcodes and ensures that product is correctly filtered opw-5929064 Forward-Port-Of: odoo/enterprise#110679 Forward-Port-Of: odoo/enterprise#110636
This update fixes a technical issue that previously caused errors during payslip calculations for the Joint Committee 302 (CP302). The fix ensures that the system handles missing data gracefully, preventing tracebacks and ensuring accurate payroll processing, particularly when calculating termination fees.
Original PR description
When computing a monthly payslip for the Joint Commiteee 302, a salary rule was trying to get a rule parameter name generated dynamically from the cp code. The salary rule was expecting the function to not raise in case of error, which was not the case. I made it so that the function could be asked to not raise in case of error to match the expected behavior. The same error appeares when generating termination fees under the CP302 task-6041052
This update ensures all data files used within Odoo Enterprise are encoded as ‘bytes’ instead of ‘base64’. This resolves potential compatibility issues and improves data handling across various modules, leading to more reliable data processing and reduced errors. It’s a standard best practice for data storage and transmission.
Original PR description
https://github.com/odoo/odoo/pull/254394
This update optimizes the storage of data related to account returns by removing unnecessary default values. Previously, fields were set to 'new' by default, consuming database space without providing actual information. Now, fields will only be populated with a state when a real return is recorded, leading to more efficient data usage.
Original PR description
Before the change the workflow fields have by default 'new' value which is not an actual state, thus it is taking space in the database without providing actual value. Removing the default new value and leaving only the actual states that exist in the workflow is the motivation of this change. After the change: the fields will be non set by default until they get an actual state. task: 5432425
This update fixes an error in the calculation of the mobility budget, ensuring accurate yearly cost projections. The previous calculation incorrectly treated a value as a percentage, leading to inaccurate results. This change improves the reliability of the HR contract salary configuration.
Original PR description
Forward-Port-Of: odoo/enterprise#111042 Forward-Port-Of: odoo/enterprise#110827
Features or functions removed from Odoo
This update removes an older VoIP component ('t-esc') that is being phased out in the upcoming Owl 3 release. This change ensures compatibility with newer features and improves the overall stability of the enterprise platform. It’s a routine maintenance update.
Original PR description
`t-esc` is going to be removed in Owl 3
Code cleanup and technical improvements
This update prepares Odoo for the upcoming OWL3 release by adding the '.this' syntax to template variables. This is necessary because OWL3 requires developers to use '.this' to correctly target component variables within templates, ensuring compatibility and functionality after the upgrade.
Original PR description
In preparation for OWL3, where template variables will need to use .this to target component variables, we add .this to template variables that are targetting the component. Script PR: odoo#247965 task: OWL3 prep - add this. to template variables https://github.com/odoo/odoo/pull/253294