Daily updates from Odoo
Tuesday, March 17, 2026
31 changes · master
New functionality added to Odoo
This update introduces a new report specifically for the Belgian localization of Odoo. It allows HR managers to track and summarize the total amount of meal vouchers paid to employees on a monthly basis, providing a clear audit trail and improved reporting capabilities.
Original PR description
Add a new meal vouchers report model for the Belgian localization to track and summarize paid meal vouchers per month. This report provides a clear overview of employees’ meal voucher entitlements and totals for a given period. task-5907053
This update adds a new field to contract templates, aligning with Belgian payroll requirements. This ensures that relevant employee information is automatically populated based on the selected contract type, streamlining payroll processing. It improves data accuracy and compliance for Belgian employees.
Original PR description
In order to match the current structure for the employee payroll view and automatically fill all the fields based on the contract template selected, the joint committee field will be added to the contract template following the belgian localization. Task: 6023068
This update introduces a new interactive onboarding tour for the Planning Field Service module. The tour guides new users through the key features and functionalities, helping them quickly understand and utilize the system. This improves user adoption and reduces the time it takes for users to become proficient.
Original PR description
task-5265667 Forward-Port-Of: odoo/enterprise#110352
Enhancements to existing features
This update enhances the clarity of salary rules within Odoo's payroll system. The display name for salary rules has been standardized to 'Display Name', and a tooltip provides immediate context. Reports now consistently show the salary rule description when available, improving readability and understanding for payroll administrators.
Original PR description
-The display name of description has been changed to "Display Name" -Tooltip has been added for the description field. -Report has been adjusted to show the salary rule description, instead of rule name, if present.
This update improves the handling of private car reimbursements within the HR payroll module. It now provides a warning if an employee's salary is below a certain threshold or if no other transportation benefits are defined, and automatically processes the reimbursement. A tooltip is also added for employees exceeding a minimum threshold.
Original PR description
. Add warning if annual salary below max_sal_privatecar_reimb or no other transportation benefit defined . Reimburse the private car if no other transportation benefit defined . Add a tooltip if the employee is above the minimum task-5993972
This update fixes a display issue in the employee simulation wizard, ensuring it correctly shows the employee's actual salary. The change involved updating the system's context to accurately reflect salary data, leading to more reliable simulation results. This improves the accuracy of forecasting and planning related to employee compensation.
Original PR description
Pass the correct default context to make the wizard show the employee's salary Task-6025688
This update adjusts the layout of product views to align the Avatax category field with sales taxes. This change ensures a cleaner, more organized presentation of product information, particularly for sales tax calculations. The change improves the user experience by streamlining the product view.
Original PR description
The base unit count/price field needs to be exactly below the sales taxes field in the product view, and the Avatax category field is the only field that positions itself right below the sales tax div, getting between the sales taxes and base unit fields. Task ID: [4277792](https://www.odoo.com/odoo/project/966/tasks/4277792)
This update simplifies payroll configuration for US companies by removing unnecessary account codes. The system now supports configuring payroll using XML IDs instead, aligning with the lack of a standardized US CoA. This change improves flexibility and reduces complexity.
Original PR description
We are removing account codes from the US CoA because there's no normalized CoA in the US and account codes are optional. _configure_payroll_account() only worked with codes. An alternative parameter was added to configure payroll with XML IDs instead. The _configure_payroll_account_generic_coa() was removed as well, because it no longer appears necessary. task-5891104
This update simplifies report generation by setting the journal filter to 'off' by default. Now, when a ledger exists, users will automatically see a dropdown menu to select the specific ledger, ensuring relevant financial data is always displayed without requiring manual adjustments. This enhances report usability and clarity.
Original PR description
On the majority of reports, the journal filter is not necessary by default. But we need to still show the ledgers, independently of the journals. So when the journal filter is disabled, but a ledger exists, show a dropdown menu with the ledgers. task-6032881 Forward-Port-Of: odoo/enterprise#110506
This update streamlines the testing process for the stock barcode module by optimizing how test data is prepared. Moving setup configurations to `setUpClass` reduces test execution time slightly. Additionally, the code now creates records in batches where possible, further enhancing efficiency.
Original PR description
This commit moves the records' creation and the configuration of the `stock_barcode` tests from the `setUp` to the `setUpClass` method, so those are done only once and not at the beginning of every test. The purpose of this change is to slightly speed up the run of tests. Forward-Port-Of: odoo/enterprise#110000 Forward-Port-Of: odoo/enterprise#109624
Resolved issues and error corrections
This update automatically closes sign activities when a signature request is cancelled. Previously, cancelled requests left lingering active activities, which could mislead users. This change ensures a cleaner workflow and accurate tracking of signature requests.
Original PR description
When a signature request is cancelled (e.g. due to a new one being created), the related sign activity for the responsible user was not closed, leaving a misleading active activity. After this improvement, when a sign request gets cancelled, the associated signature request activity is automatically closes. task-[5920466](https://www.odoo.com/odoo/project/1251/tasks/5920466)
This update enhances the visual presentation of alias email addresses within the Helpdesk module. The change improves the user experience by making alias emails more clearly visible, streamlining communication and reducing potential confusion for support agents. This is a minor visual improvement.
Original PR description
task-6013894
This update corrects a display issue in the employee emergency contact section. Previously, the 'Relationship' field was incorrectly shown for all employees, regardless of their company location. Now, the field is hidden for employees associated with non-Indian companies, ensuring data accuracy and a consistent user experience.
Original PR description
### Steps to reproduce: - Install l10n_in_hr_payroll. - Create an employee (also link a user) in an Indian company and another company. - Go to My Profile > Private Information > Emergency. - The Relationship field is shown for non-Indian employees as well as employees from other countries. ### Issue: - We're not hiding the relationship field if employee is from other country. ### Fix: - We'll hide this field if an employee belongs to non-indian company. Task: 6008888 Forward-Port-Of: odoo/enterprise#109775
This update fixes a formatting issue in Odoo's payslip PDF reports. Previously, hours were displayed as decimals, which was difficult for employees to understand. Now, hours are shown in a more user-friendly HH:MM format, improving clarity and accuracy.
Original PR description
The hours in the payslip PDF file are displayed as a decimal which is not user friendly. The commit changes the payslip report template to display the hours as HH:MM. Task: 5975766
This update resolves an issue preventing the Indian payroll demo data from installing correctly. The fix adds a required field ('structure_id') to the demo data, ensuring compatibility with the system's requirements. This allows users to properly test and utilize the Indian payroll features within the Odoo Enterprise environment.
Original PR description
After this https://github.com/odoo/enterprise/pull/103118 (New Employee Type), Indian payroll failed to install with demo data. Issue: `structure_id` is a required field in the hr.payslip.run model, but after refactoring, it is not updated in the pay run demo data. Fix: Add `structure_id` to pay run demo data. task-6040571
This update fixes an issue where the lower portion of the barcode operation page was hidden by buttons. The fix ensures all fields are visible, regardless of button size, improving usability when adding or editing barcode items. This prevents users from missing important information.
Original PR description
# How to reproduce - Set the barcode of a product - Go to Barcode > Operations > (Select any operation) > New - Click on the cog in the top right and type in the barcode you set for the product - Apply and then edit the item you added - Add options to the page (like Expiration Date) or increase the browser's zoom until the list of fields take the whole page # The problem The fields at the bottom of the page are hidden behind the buttons at the bottom # Why The controls at the bottom are positioned absolutely and with a high z-index, so they hide anything behind them. The form css class fixes this issue by adding a margin-bottom roughly the size of the controls. But this fix does not take into account the fact that the controls can grow in size when the DELETE button is displayed opw-5907564 Forward-Port-Of: odoo/enterprise#107496
This update resolves an issue where changing the 'Kitchen Note' on a food item after a quantity update would cause an error. The fix ensures that the note can be updated successfully, regardless of previous quantity changes, improving the reliability of the POS system.
Original PR description
**Steps to Reproduce:** - Install `pos_restaurant_preparation_display`. - Open Register for POS "**Restaurant**" Shop. - Choose table > select food-item > send the order. - Update food-item quantity > send the updated order. - Update food-item '**Kitchen Note**' > send the note. **Error:** `TypeError - 'NoneType' object is not subscriptable` **Cause:** When the food quantity is updated, a new preparation entry is created for the increased quantity. During the first iteration, the display and order quantities are already merged correctly. However, in a subsequent iteration, the original key no longer exists in `quantity_data`. As a result, accessing a None value leads to a traceback. **Fix:** This commit skips the merge step when the original quantity entry has already been merged. sentry-7197024946 Forward-Port-Of: odoo/enterprise#110184 Forward-Port-Of: odoo/enterprise#104889
This update simplifies a technical component within the Stock Barcode module, resulting in a slight performance improvement. The change focuses on internal processes and doesn't directly impact users. It's a routine maintenance update to ensure the module continues to operate efficiently.
Original PR description
community https://github.com/odoo/odoo/pull/253890
This update fixes a minor visual issue in the VoIP call history by moving the 'Open full history' button back to its original position. Previously, the button was hidden due to the infinite scrolling design of the tab, now it's more easily accessible. This improves the user experience for accessing the full call history.
Original PR description
Commit [1] moved the top-right icon-button in the recent calls tab to the bottom of the tab as a real "Open full history" button. The problem is that this tab is an infinite scroll one... so this button is never reachable in real use-cases. This moves it back at the top-right, with the same icon as the Odoo list view. Note: we discussed keeping both buttons and limiting the infinite scrolling but it was judged not worth the lines of code, as it is not an important button to discover. [1]: https://github.com/odoo/enterprise/commit/8be431afdfd9450155535a4b4552e2e774d291c6 task-5475238
This update corrects a visual issue where the subscription status badge was incorrectly aligned to the left side of the form. A recent UI change caused a default width issue, and this commit restores the intended right alignment. This ensures a consistent and professional appearance for users.
Original PR description
A recent UI framework update caused `o_field_widget` containers outside of groups to default to 100% width. This broke the `float-end` class on the subscription state badge, forcing it to render on the left side of the form sheet. This commit adds the `w-auto` class to the field to constrain its width to its content. This restores the intended right-aligned floating behavior. task: 6030343
This update resolves a bug in the Saudi payroll module that caused salary rules to reset unexpectedly. The issue stemmed from a file name error, which prevented the correct data from loading. This fix ensures accurate salary rule calculations for Saudi users.
Original PR description
[FIX] l10n_sa_hr_payroll: fix salary rule reseting Bug reproduction: Select Saudi l18n, payroll app -> salary rules -> edit one of Saudi salary rules -> there will be reset button -> press to that -> traceback Bug cause: hr_salary_advance_and_loan_data such file is tried to be loaded but there is not such a file. Bug solution: The name of that file is hr_salary_rule_salary_advance_and_loan_data indeed. I fixed the name only to load the correct data back. task - 6040484
This update corrects a bug that prevented the creation of 'Cash Supplement' cash moves in German POS systems. The original code incorrectly capitalized the type string, causing an error with the Fiskaly accounting system. Now, the correct casing is maintained, ensuring proper cash move processing and avoiding errors.
Original PR description
When creating a cash move of type "Cash Supplement", the type sent was "Zuschussecht" instead of "ZuschussEcht", which caused is not an allowed type. Steps to reproduce: ------------------- * Setup a PoS with a TSS for a German localization * Start a session and open the cash control popup * Create a cash move of type "Cash Supplement" * Close the session > Observation: You get an error from Fiskaly that the type is not allowed Why the fix: ------------ When doing `.capitalize()` on a string it would make the first letter uppercase and the rest lowercase. In this case "ZuschussEcht" would become "Zuschussecht", which is not the correct type expected by Fiskaly We now keep the original casing for all the type. opw-5462364 Forward-Port-Of: odoo/enterprise#110270 Forward-Port-Of: odoo/enterprise#109235
This update simplifies the IoT connection process by removing a temporary feature that disabled longpolling after connection errors. Now, the system assumes a correctly configured network, allowing for faster reconnection attempts. This change aligns with our new recommendation for LNA clients.
Original PR description
We used to disable longpolling for 5 min after a failure, in order not to lose time while making requests to an unreachable device, and jump directly to WebSocket. As we now recommand using LNA, clients should have a correctly configured network: if an error occurs the next one should work correctly. We then removed the longpolling auto disable feature. Forward-Port-Of: odoo/enterprise#110158 Forward-Port-Of: odoo/enterprise#108335
This update incorporates Uzbek translations from Odoo 19.0 into the enterprise version. The translations were applied directly to specific modules, focusing on correcting missing translations and ensuring consistency. A key focus was on verifying the accuracy of the translations within each module to maintain quality.
Original PR description
Copying translations from 19.0, only direct module matches. I.e. Missing translations were not filled in + moved terms were not matched across modules (i.e. no translation context to ensure correctness) Forward-Port-Of: odoo/enterprise#110497
This update resolves a limitation in the Odoo Report Editor where certain field types were not properly supported. Previously, the /field command in the report editor couldn't handle properties, leading to incorrect report configurations. This change ensures that all field types can be correctly selected, improving report customization capabilities.
Original PR description
Properties are not supported in ir.qweb but only as t-out, while t-field doesn't support them. For this reason and the fact that properties have a path the model field selector barely handles we do not allow those field to be selected in the /field command task-5999790 Forward-Port-Of: odoo/enterprise#110561 Forward-Port-Of: odoo/enterprise#109486
This update fixes a visual issue where payslip PDFs appeared as 'draft' even after payruns were validated. The change ensures the correct, finalized PDF is displayed in the foreground, eliminating confusion for users. It also updates the default attachment used when generating the final PDF.
Original PR description
When creating a payrun and using the Test Print button, the pdfs with the yellow banner saying that the payslip is still draft are generated correctly. When validating the payrun a cron runs to generate the real pdfs. In 19.2 there is a preliminary problem (fixed here) where the payslips are not marked for pdf creation and therefore are not taken by the cron (in master they are correctly marked for it). After that, the pdfs are correctly computed but the pdf in the foreground remains the draft one, generating confusion. With this PR we also change the default attachment when we generate de final pdf, solving the problem. Task: 6023186 Forward-Port-Of: odoo/enterprise#110604
A test was failing due to a mismatch between the user's language setting (French) and the tour content (originally written for English). This commit resolved the test failure by ensuring the tour correctly displays regardless of the user's language preference. This prevents potential issues with the web_studio feature.
Original PR description
Before this commit, a test set the language of the user to French and then opened the browser with that user and that language. The tour in question, written for English failed. After this commit, the tour doesn't fail runbot-error-241983 Forward-Port-Of: odoo/enterprise#110765
Features or functions removed from Odoo
This pull request addresses minor formatting inconsistencies within the Odoo Enterprise rental module. The changes remove unnecessary whitespace from XML files, improving code readability and maintainability. This is a routine maintenance task that ensures the codebase remains clean and consistent.
This update removes an outdated and unused QUnit test framework from the web_studio module. This streamlining simplifies the codebase and reduces maintenance overhead. The removal does not impact any existing functionality.
Original PR description
Remove the now useless legacy QUnit test framework.
Code cleanup and technical improvements
This update combines the Mexican reporting modules into a single, streamlined package. This simplifies maintenance and installation for users needing Mexican accounting reports, ensuring consistent reporting across the Odoo Enterprise platform. It maintains existing functionality without impacting current operations.
Original PR description
This PR merges the `l10n_mx_reports_closing` and `l10n_mx_xml_polizas` modules into `l10n_mx_reports`, as they all provide Mexican accounting reports and are required for standard reporting flows for any company. This consolidation keeps all existing features unchanged while simplifying module maintenance and installation. Related PR-https://github.com/odoo/odoo/pull/247185 Upgrade PR-https://github.com/odoo/upgrade/pull/9202/ task-5431997
This pull request updates the tests for the l10n_mx_edi module to align with recent changes in Mexican VAT reporting requirements. This ensures the Odoo Enterprise system continues to accurately handle and validate invoices related to Mexican e-invoicing (CFDI).
Original PR description
Enterprise counter-part. https://github.com/odoo/odoo/pull/253922