Daily updates from Odoo
Thursday, February 26, 2026
30 changes
4 changes
Enhancements to existing features
This update adds tests to ensure accurate calculation of wage types on payslips, considering variations in employee contracts and leave requests across different months. These tests verify that the system correctly handles multiple wage types and leave scenarios, leading to more reliable payroll processing. This improves the accuracy of payslip generation for Swiss employees.
Original PR description
This commit adds tests to the `_compute_l10n_ch_swiss_wage_ids` function to verify **Wage Types** in payslips across multiple months and with different **Monthly Wage Types** defined in an employee’s contract, as well as multiple leave requests occurring in different months. task-5906677 Forward-Port-Of: odoo/enterprise#107802
This update streamlines the messaging experience by replacing a generic dialog with dedicated, focused dialogs for key actions like leaving chat rooms, deleting messages, and pinning messages. This change improves code organization and makes it easier to maintain and update these specific messaging features.
Original PR description
This PR removes the generic MessageConfirmDialog component and replaces it with dedicated dialogs such as MessagePinUnpinDialog, LivechatLeaveDialog, and MessageDeleteDialog. Using dedicated dialogs…
This PR removes the generic MessageConfirmDialog component and replaces it with dedicated dialogs such as MessagePinUnpinDialog, LivechatLeaveDialog, and MessageDeleteDialog. Using dedicated dialogs simplifies the code, avoids unnecessary customization of a generic component, and makes each dialog easier to reason about by keeping its content static and scoped to its specific use case. <table> <tr> <th>Before</th> <th>After</th> </tr> <tr> <td> <img width="617" height="288" src="https://github.com/user-attachments/assets/f966b404-2942-4c93-aa8a-0f14d4666b54" /> </td> <td> <img width="611" height="310" alt="image" src="https://github.com/user-attachments/assets/be4aceb7-503c-4089-95c9-52983d6ad9f0" /> </td> </tr> <tr> <td> <img width="614" height="290" src="https://github.com/user-attachments/assets/c7aa4c79-8166-4414-a085-abe59eeb19b0" /> </td> <td> <img width="614" height="307" alt="image" src="https://github.com/user-attachments/assets/352e4e60-3a57-4cfb-aeef-011fabaf8cc1" /> </td> </tr> </table> enterprise: https://github.com/odoo/enterprise/pull/108806 task-5873845 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This pull request enhances the member invitation process within Odoo's channel management. It now allows users to more easily search for and invite external members, and also improves the notification experience when inviting or discussing members. The changes also include string updates for better usability.
Original PR description
1. align better in channel member invitation popover 2. allow searching external users in channel member invitation popover 3. allow opening avatarCard in the notification message in Discuss 4. update strings used in some use cases. task-5881048 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update streamlines the process of creating bank accounts for companies, particularly those with trusted relationships. It now prompts users to directly verify bank details when needed, reducing potential errors and improving data accuracy. This change simplifies account creation and ensures proper verification for critical accounts.
Original PR description
Forward-Port-Of: odoo/odoo#249983
3 changes
Enhancements to existing features
This update streamlines the process of creating bank accounts for companies, particularly those requiring trusted verification. Users will now be directly prompted to activate accounts with their bank, simplifying the setup and reducing potential errors. This change improves the overall efficiency of managing company financial information.
Original PR description
Forward-Port-Of: odoo/odoo#249983
This update simplifies how businesses can tailor the product container displayed on the website, particularly for different modules. Previously, customization required complex code changes, now a dedicated method makes it easier to adapt and maintain, leading to greater flexibility and future compatibility. This change supports a more adaptable website experience.
Original PR description
The product_container element may vary across modules and cannot be hardcoded. Modifying it currently requires overriding the entire add_to_cart method, which reduces flexibility and maintainability. This change extracts the product_container logic into a dedicated method, making it easier to extend and customize without duplicating the full add_to_cart implementation. This ensures better forward compatibility and modular extensibility. Enterprise PR: https://github.com/odoo/enterprise/pull/107343 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update simplifies the out-of-office period setup in user preferences. Previously, users had to navigate through multiple steps to set an end date, leading to potential errors. Now, separate start and end date fields are introduced, making the process clearer and reducing the risk of unintentionally creating an indefinite out-of-office period.
Original PR description
In the user preference panel, the end date of the out-of-office period is not displayed by default. To define an end date, users must first click the field and then select the "Range" option in the calendar picker. Because these steps are not intuitive, users may enter only a start date and omit the end date, inadvertently creating an unlimited out-of-office period. To address this issue, we will introduce two separate fields: one for the start date and one for the end date. The end date field will appear only after a start date has been selected. This approach clarifies the workflow, reduces the risk of incomplete entries, and keeps the form view concise. Task-5435466 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
1 change
Enhancements to existing features
This update enhances the logging process when exporting large amounts of data from Odoo spreadsheets. Specifically, it tracks downloads, clipboard copies, printing, and freezing of spreadsheets, providing better visibility into data usage. Additionally, it restricts the ability to download frozen or XLSX spreadsheets to authorized users only, improving data security.
Original PR description
Forward-Port-Of: odoo/enterprise#107338 Forward-Port-Of: odoo/enterprise#85888
1 change
Enhancements to existing features
This update streamlines the creation of bank accounts for partners and companies, particularly for accounts created through automated processes. It introduces a new method to avoid conflicts and prompts users to manually verify accounts, ensuring accuracy and preventing errors in payment reconciliation.
Original PR description
Forward-Port-Of: odoo/odoo#249983
3 changes
Enhancements to existing features
This update adds the necessary data representation for 'page 2 bis' within the Spanish tax reports generated by Odoo Enterprise. This enhancement ensures compliance with Spanish tax regulations by providing a more complete and accurate report for our Spanish-speaking customers. It addresses a specific reporting requirement related to the Mod 390 tax form.
Original PR description
In this commit: - We are adding representation of page 2 bis to the 390 boe.txt task-5881396 Forward-Port-Of: odoo/enterprise#106861
This update adjusts the Romanian tax reporting within the Enterprise module to align with recent changes in the Core Enterprise (CE) version. The update removes outdated tax codes and adds new ones, ensuring accurate reporting for Romanian businesses. This ensures compliance with current tax regulations.
Original PR description
Some taxes were no longer needed in CE, so they needed to be removed task-5411745 Forward-Port-Of: odoo/enterprise#108374 Forward-Port-Of: odoo/enterprise#106127
This update adds tests to ensure accurate calculation of wage types on payslips, particularly when employees have different monthly wage types defined in their contracts and when leave requests span multiple months. These tests improve the reliability of payroll processing for Swiss employees.
Original PR description
This commit adds tests to the `_compute_l10n_ch_swiss_wage_ids` function to verify **Wage Types** in payslips across multiple months and with different **Monthly Wage Types** defined in an employee’s contract, as well as multiple leave requests occurring in different months. task-5906677 Forward-Port-Of: odoo/enterprise#107802
8 changes
Enhancements to existing features
This update ensures timesheet approvers are correctly assigned when an employee's manager changes. Specifically, it only updates the approver if the new manager is linked to a user and the current approver was previously the employee's manager. This prevents incorrect approver assignments and maintains accurate timesheet workflows.
Original PR description
This commit adjusts the update of an employee's timesheet approvers upon changing their manager. The update is performed only if these conditions are met: The new manager has a linked user. The current attendance approver is the previous manager. The commit prevents setting the approver to the new manager when the current approver is unset. Task: 4804439
This update streamlines the process for configuring payment methods within Point of Sale (POS). Previously, each payment platform required a unique setup, creating confusion for users. Now, all payment methods will share a standardized setup process, improving ease of use and reducing setup time.
Original PR description
We currently support multiple payment platforms but trying to set them up is different for each platform in the POS payment method form screen. This commit will standardize the setup process so they all behave the same even if the input they require is different Task-[5887093](https://www.odoo.com/odoo/project/1737/tasks/5887093) Community PR-[#246321](https://github.com/odoo/odoo/pull/246321) Upgrade PR-[#9386](https://github.com/odoo/upgrade/pull/9386)
This update adjusts the way meal voucher costs are calculated in Odoo, moving away from a fixed default of 1.09. Now, the employee's contribution is adjustable, and the employer's cost is dynamically calculated based on this amount. A new warning ensures the meal voucher remains within reasonable limits (max 10, min 1.09).
Original PR description
The employee's share for the meal voucher was taking 1.09 as default and it was not changable. New field is added, thus, it is adjustable and employer's cost is calculated according to the employee's share. task - 5922934
This update aligns the calculation of the 'work time rate' across the HR and Resource modules. Previously, inconsistent ranges (0-100 vs 0-1) caused potential issues. This change ensures a single, consistent value for this key metric, improving data accuracy and simplifying future maintenance.
Original PR description
Current behavior before PR: . The work time rate is currently computed separately in two different modules: hr_payroll (version model) and resource (resource_calendar model). Although they are…
Current behavior before PR: . The work time rate is currently computed separately in two different modules: hr_payroll (version model) and resource (resource_calendar model). Although they are calculated independently, both values represent the same concept and are functionally equivalent. This duplication can lead to inconsistencies and unnecessary complexity in maintenance `resource/resource_calendar` model -> work_time_rate is not stored computed field with range=[0-100] `hr_payroll/hr_version` model -> work_time_rate is stored computed field with range=[0-1] Desired behavior after PR is merged: . Synchronize the work time rate fields between the hr_payroll and resource modules to ensure they are related consistent `resource/resource_calendar` model -> Modify work_time_rate range to be [0-1] `hr_payroll/hr_version` model -> work_time_rate is `version.resource_calendar_id.work_time_rate` incase of non-flexible task-5429287 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update improves the IoT scale test within the Odoo Enterprise system. Specifically, the test now correctly identifies a product ('whiteboard_pen') as one that can be weighed, ensuring accurate data collection for IoT integrations. This change enhances the reliability of the test and the overall IoT functionality.
Original PR description
In this commit: --- - Updated the IoT scale test to mark the test product (`whiteboard_pen`) as a scalable product (`to_weight = True`). task-4992764 related-https://github.com/odoo/odoo/pull/231368
This update simplifies the appraisal campaign wizard by removing unnecessary fields and tailoring the interface for different user roles. The changes focus on a cleaner, more intuitive experience, ensuring users only see relevant information and options. This enhances efficiency and reduces confusion when managing appraisals.
Original PR description
UX changes have been implemented for the appraisal campaign wizard: -Removing the mode,department_id,category_id fields. -Hiding the manager field for non administrator/Officer users -Editing warning messages to include only employees managed by current user.
This update adds a confirmation dialog before deleting a payrun record. This prevents users from accidentally removing payroll data, ensuring data integrity and compliance. It's a small change that significantly reduces the risk of data loss.
Original PR description
Displays a confirmation dialog when the user tries to delete the payrun to prevent accidental deletion of the payrun record. task-5916194
This update simplifies the appearance of import templates in the account_bank_statement and mrp_mps modules. The button labels have been shortened to reduce visual clutter and ensure a more consistent look across all Odoo import views, aligning with recent UI improvements.
Original PR description
This commit aligns the import template button text in `account_bank_statement` and `mrp_mps` with the recent UI cleanup in `base_import` (https://github.com/odoo/odoo/pull/248233). The button labels have been shortened to reduce visual clutter and ensure consistency across all import views. task-5242240
1 change
Enhancements to existing features
This update ensures that when creating invoices through the Point of Sale QR or URL in Mexico, the VAT (Value Added Tax) field is now required. This aligns with Mexican tax regulations and ensures accurate invoice generation for businesses operating in Mexico, improving compliance.
Original PR description
Made vat required if the selected country is Mexico at invoice address form when requesting an invoice through the point of sale qr or url. task-5392922
5 changes
Enhancements to existing features
This update streamlines bank account creation for trusted partners, prompting manual verification to ensure accuracy and prevent errors. It simplifies the process by automatically finding suitable bank accounts and preventing duplicate entries, improving reconciliation and payment accuracy.
Original PR description
Forward-Port-Of: odoo/odoo#249983
This update optimizes how Odoo handles locale data, reducing unnecessary file searches. Previously, Odoo was repeatedly checking for locale files even when the data wasn't being used, leading to slower performance. This change adds a caching mechanism to avoid these redundant checks, improving overall system speed.
Original PR description
`babel.Locale.parse` checks if a locale is valid by calling `os.path.exists` on the resolved filename for the locale (this is done in `babel.localedata.exists`). Babel does have a locale cache which it checks, but currently that cache is only populated when the locale is actually loaded[^1], therefore in cases where we instantiate a significant number of locales but never actually need to load locale data (e.g. formatting a significant number of datetimes, in qweb, using only non-localised patterns) this results in severe FS traffic for no reason. [^1]: python-babel/babel#1254 has been submitted to fix this issue Forward-Port-Of: odoo/odoo#249795
This update reduces the time and resources used by Odoo's automated tests. By consolidating setup steps and suppressing unnecessary logging, the changes improve test execution speed and stability. This translates to faster development cycles and more reliable test results.
Original PR description
- move a bunch of expensive setUp to setUpClass - backport #152378 to avoid password keying in 17.0 also Forward-Port-Of: odoo/odoo#250667
This update streamlines the initial setup process for tests across several core Odoo modules, including accounting, payroll, and timesheets. By centralizing this setup, the team has improved the reliability and consistency of test results, leading to faster identification and resolution of potential issues. This change enhances the overall quality and stability of the Odoo Enterprise platform.
Original PR description
Forward-Port-Of: odoo/enterprise#108739
This update incorporates changes required by the Uruguayan tax authority (DGI) regarding Electronic Fiscal Document (CFE) reporting. Specifically, a new selection option is added for export transactions, and the transmission of key invoice details (date, amount, currency, and exchange rate) from existing account moves is now mandatory to ensure legal compliance.
Original PR description
Purpose: The DGI introduced changes in CFE version 25. The following changes below needs to be implemented for legal compliance.
Required Changes:
- Introduce a new selection value,("91", "Export under Mandate")for field, l10n_uy_edi_cfe_sale_mode. This option is required when documenting export operation performed as a mandating entity, where the definitive export will be carried out by a third party.
- The reference document(credit note or debit note) of an existing account move will need to send:
- Amount (MntCFEref)
- Currency (TpoMonedaRef)
- Exchange Rate (TpoCambioRef) if the currency is not Uruguayan Pesos
task-5419331
task-5419331
Forward-Port-Of: odoo/enterprise#1038814 changes
Enhancements to existing features
This update simplifies the process of creating bank accounts within Odoo. Previously, bank account creation was fragmented; this change consolidates the process, making it more efficient for users and reducing potential errors. This improvement ensures consistent and accurate bank account management across the system.
Original PR description
Forward-Port-Of: odoo/odoo#249983
This update reduces the cost of running tests by consolidating setup steps and suppressing unnecessary logging. Specifically, expensive password creation and email logging within tests have been addressed, leading to faster test execution times and improved system performance.
Original PR description
- move a bunch of expensive setUp to setUpClass - backport #152378 to avoid password keying in 17.0 also
This update streamlines the process of setting up tests for Odoo's payroll and timesheet modules. By centralizing test setup within classes, the team has improved the efficiency and reliability of automated testing. This change reduces the time spent on repetitive tasks and ensures more consistent test results.
This update optimizes how Odoo handles locale data, reducing unnecessary file system access. Previously, Odoo created many locale objects without actually using their data, leading to performance issues. This change adds a caching mechanism to prevent redundant checks, improving overall system speed and efficiency.
Original PR description
`babel.Locale.parse` checks if a locale is valid by calling `os.path.exists` on the resolved filename for the locale (this is done in `babel.localedata.exists`). Babel does have a locale cache which it checks, but currently that cache is only populated when the locale is actually loaded[^1], therefore in cases where we instantiate a significant number of locales but never actually need to load locale data (e.g. formatting a significant number of datetimes, in qweb, using only non-localised patterns) this results in severe FS traffic for no reason. [^1]: python-babel/babel#1254 has been submitted to fix this issue