Daily updates from Odoo
Tuesday, February 17, 2026
43 changes · master
New functionality added to Odoo
This update introduces a new rule to limit private car reimbursements to employees with annual gross salaries below a specified threshold. This change ensures compliance with Belgian tax regulations regarding private car expenses and provides a clearer financial guideline for employees and HR. The change impacts the HR payroll module.
Original PR description
…imit Add rule parameter 'max_sal_privatecar_reimb' to restrict private car reimbursement to employees with an annual gross salary below the defined limit. Task: 5486010
This update adds more detailed information for Brazilian tax calculations within the Odoo Enterprise system. While a more sophisticated solution is planned for the future, this immediate change improves reporting accuracy for Brazilian sales and invoices. It addresses a growing need for granular tax data.
Original PR description
In the long run we want to replace this field with something nicer, because it's only going to keep growing. But it will need to be something more complex that: - Groups Brazilian info per line (probably in some popup/wizard), and - Keeps it available to be added to sale and invoice reports for end customers In the meantime we just add these two additional fields. The newline is also removed since it has no effect. task-5234294 Closes https://github.com/odoo/enterprise/pull/102538
Enhancements to existing features
This pull request adjusts the layout of the Gantt chart by moving the side panel to the right. This change enhances the user experience by providing more screen real estate for the chart itself, making it easier to visualize project timelines. It's a minor visual improvement that contributes to a cleaner and more intuitive interface.
Original PR description
task-5937290
This update allows employees to see the status of their own feedback requests within the appraisal survey process. Importantly, this change does not grant employees access to the actual survey responses, maintaining existing access levels for users.
Original PR description
### Before: - When an employee requested feedback from a contact or another employee, the requester could not see whom they had requested feedback from. - These records were only visible to the manager and to the employees selected in the manager field. ### After: - We have improved the feature to allow employees to see the status of their own feedback requests. However, employees will not be able to see any survey ans. - Users who already have access will not be affected and the behavior will remain the same. they will continue to see both individual and all survey results. task-5424196
This update adjusts the percentages used in the CP200 seizable amount calculation within the Belgian payroll module (l10n_be_hr_payroll). Specifically, it incorporates a new valuation for 2026, ensuring accurate payroll calculations for Belgian employees. This change improves the accuracy of reported payroll figures.
Original PR description
Update CP200 Seizable Amount Percentages salary Parameters . Add 2026 valuation task-5478481 Forward-Port-Of: odoo/enterprise#105900
This update adjusts the calculation of sickness relapse periods for Odoo's Belgian payroll module. Starting January 1, 2026, the allowed gap between sick leave periods to be considered a relapse has increased from 14 to 56 days. This change aligns with updated Belgian tax regulations.
Original PR description
Spec :- Since 01/01/2026, the period between two sick time off to consider it as a relapse has been increased from 14 days to 56 days. . Update sickness relapse period from 14 to 56 days if the leave starts from 2026 . Update the gap check between leaves from 14 to 56 days if the leave starts from 2026 . Add corresponding tests task-5476174
This update clarifies how bank accounts are displayed in financial reports. Previously, changing a bank account automatically linked it to a partner, showing all partner accounts. Now, users can select a specific partner, and only the bank accounts associated with that partner will be shown, streamlining the account selection process.
Original PR description
Before the change the partner and the bank account are related in a way that changing the bank account would change the partner which also makes all the bank accounts visible for whatever partner is selected. So this change allows the user to select the partner and then only shows the bank accounts related to this partner. Which is more logic for choosing a bank account. task: 5881257
This update adds a new test to verify the generation of work entries for a month within the Hong Kong payroll module. The test ensures that each day's work entry is correctly identified, improving the reliability and accuracy of payroll calculations. This is an important improvement for ensuring correct financial reporting.
Original PR description
Add a simple test that generates the work entries for a month and validate the work entry type of each day
This update enhances the way starred messages are shown in the Discuss interface with Bookmark. Previously, a technical string was used; now, it utilizes the more user-friendly 'Bookmark' string. This improves the overall clarity and consistency of the Discuss experience for users.
Original PR description
This commit updates the string used for starred messages in Discuss with Bookmark. task-5873789 https://github.com/odoo/odoo/pull/245898 https://github.com/odoo/upgrade/pull/9363
This update simplifies the MyHR Payroll system by transitioning data from a list of input types to defined salary rules. This change improves the system's organization and makes it easier to manage payroll calculations. The update ensures greater accuracy and stability of the payroll processing.
Original PR description
- removed the records in `hr.payslip.input.type` and converted them into corresponding salary rules task-id: 5892647
This update sets a standard payment account for expense reimbursements processed through the Hong Kong payroll system. This ensures consistent and accurate accounting for these payments, simplifying financial reporting and compliance. The change improves the clarity and reliability of expense reimbursement accounting within the Odoo Enterprise platform.
Original PR description
. Add Other Payable account as default debit_account for expense reimbursement task-5719543
This update simplifies Maintenance Request forms by removing the Manufacturing Order field when it's not relevant. This reduces clutter and focuses the form on the core maintenance tasks, as most requests aren't tied to production orders. The change improves the user experience for common maintenance workflows.
Original PR description
*: maintenance_enterprise - Currently, the `Manufacturing Order (MO)` field is always shown on the Maintenance Request form, even when no MO is linked to the request. Most maintenance requests are corrective or preventive and are not MO-driven. Showing the MO field by default for a small subset of cases adds unnecessary noise to the form. This change ensure that the `Manufacturing Order (MO) field is hidden` from the Maintenance Request form when no MO is linked. The field is shown only when the maintenance request is created directly from a production order. Also, test cases were updated and minor adjustments were made to stay consistent with recent module changes. Community PR:- https://github.com/odoo/odoo/pull/235040 TaskID-5150425
Resolved issues and error corrections
This update ensures accurate reporting of work accidents for employees on PFI (IVT) and Apprenticeship (ALT) contracts. It now issues a warning when 'Paid Work Accident' entries are used, prompting the correct selection of 'Unpaid Work Accident' entries, aligning with Belgian payroll regulations.
Original PR description
For PFI (IVT) and Apprenticeship (ALT) contracts, work accidents are not paid by the employer. If an employee with Dimona category **ALT** or **IVT** has work entries of type "Work Accident (Paid)" (LEAVE115), a warning issue is raised to inform the user that "Work Accident (Unpaid)" (LEAVE117) should be used instead. task: 5484866
This update resolves a potential issue with salary rule configurations. By clearing category IDs from salary rules, the system becomes more stable and easier to update without causing conflicts. This ensures smoother future maintenance and avoids disruptions to payroll processing.
Original PR description
We should clear category_ids on salary rules to avoid any issues if an update is required. task-5942496
This update restores the anonymization of journal entries within the HR Payroll module. Previously, certain financial records were not properly masked, which is now corrected. This ensures compliance with accounting regulations and improves data privacy.
Original PR description
Task: 5852493
This update resolves a problem where test environments were using the incorrect timezone. The fix was identified through automated build errors and ensures that test results accurately reflect the intended timezones. This improves the reliability of our testing process.
Original PR description
* = appointment, project_enterprise_hr This commit fixes a timezone wrongly setup in a test. Related Runbot Build Errors: - https://runbot.odoo.com/odoo/runbot.build.error/238019 - https://runbot.odoo.com/odoo/runbot.build.error/238021 task-5890477
This update resolves a bug that prevented invoices with lines having a product price of zero from being saved correctly. The fix ensures that required tax object fields are properly populated, allowing invoices with zero-priced items to be saved without errors. This improves invoice creation functionality for Mexican clients.
Original PR description
**PROBLEM** If you create an invoice, and add a line with a product with a price of 0, you cannot save the invoice. **STEP TO REPRODUCE** 1. On a mx company, create an invoice for a mx client. 2. Add a line with a product with a price of 0. 3. Try saving the invoice, it will fails. **CAUSE** Field `l10n_mx_edi_tax_object` is required on invoice line with mx company. However, for lines with a price of 0, it is not set by `_compute_l10n_mx_edi_tax_object` because `_l10n_mx_edi_cfdi_invoice_line_ids()` filters them. opw-5402045 Forward-Port-Of: odoo/enterprise#103981
This update resolves an issue where feedback wasn't properly recorded when approving approvals through activities. Recent changes inadvertently broke the feature, preventing feedback from being posted. Now, feedback is correctly attached as a message when an approval is completed.
Original PR description
Approving an approval via an activity with feedback did not work properly as the feedback was never posted. This was due to the consecutive refactoring that broke the feature. After this commit, the feedback is posted as a message opw-5782803 Forward-Port-Of: odoo/enterprise#106185
This update fixes an issue with how withholding taxes are reported in Spanish accounting. Specifically, the 'type for 347' field in certain accounting moves has been corrected to be blank, aligning with Spanish tax regulations. This ensures accurate reporting and compliance.
Original PR description
- Moves that use withholding taxes should have the `type for 347` unselected and left blank. Related PR : https://github.com/odoo/odoo/pull/245828 task-5732679 Forward-Port-Of: odoo/enterprise#106889 Forward-Port-Of: odoo/enterprise#105597
A minor bug in the knowledge calendar tour was preventing it from finishing correctly. This PR corrects a reference to a button, ensuring the tour completes as intended. This resolves a test failure and improves the overall user experience for the knowledge calendar feature.
Original PR description
In test_knowledge_calendar_command_tour there was a miss-referenced button towards the end. This caused the tour to fail because it didn't find the button to click. With this PR we correctly reference the button and allow the tour to finish. Runbot Error: 234898 Forward-Port-Of: odoo/enterprise#105354
This update resolves a potential issue in the HR payroll system where validated work entries could incorrectly trigger conflicts. A new conflict state has been added to accurately reflect situations where days have been validated, streamlining payroll processing and reducing manual intervention. This ensures more reliable and accurate payroll calculations.
Original PR description
Forward-Port-Of: odoo/enterprise#101803
This update resolves an issue where users selecting time off by hours were seeing "InvalidDateTime" instead of the correct start and end times. This was caused by a recent change in how date/time formatting is handled. Now, the system correctly displays the selected time off hours.
Original PR description
**Issue:** - When users selected time off based on hours, "InvalidDateTime" was shown instead of the correct "From" and "To" time. This happened after a recent refactor:https://github.com/odoo/odoo/pull/240555/changes#diff-0beecbb730e1c7762f2a8d5f7038c02e123da10a85dec2e5d16a02748373f2fe of getFormatValue, which now returns DateTime in a different format than before. **Fix:** - Updated the method and adapt the new refactored format. **Impact:** - The correct DateTime values are now displayed instead of "InvalidDateTime". Task-5940185
This update adjusts how Odoo checks for product tracking, specifically for service products. A recent change allows service products to have tracking set to 'False' instead of 'none'. This update ensures that checks previously targeting 'none' now correctly identify service products without tracking, preventing inaccurate tracking assignments.
Original PR description
Adapt tracking checks to handle the new tracking=False value for service products. After the change in odoo/odoo that allows tracking to be False for non-storable products, we need to update all checks that were comparing tracking to 'none'. Service products now have tracking=False instead of tracking='none', so checks like `tracking != 'none'` were incorrectly treating them as tracked products. Updated checks in: - industry_fsm_stock: serial_missing compute, action_assign_serial - mrp_workorder: UI visibility logic for tracked products Task-5446456
This update resolves an issue where users encountered an error when editing reconciled invoice lines within the Bank journal. The fix initializes necessary variables to avoid a runtime error, ensuring users can now successfully adjust these lines without disruption.
Original PR description
Currently, an error occurs when user edits a reconciled line. **Steps to Reproduce([Video](https://drive.google.com/file/d/18dSAsZCl---wfCkMBfyo9LviTqgq3qpK/view)):** - Install the `Accounting`…
Currently, an error occurs when user edits a reconciled line. **Steps to Reproduce([Video](https://drive.google.com/file/d/18dSAsZCl---wfCkMBfyo9LviTqgq3qpK/view)):** - Install the `Accounting` module. - Create an `invoice` with an `invoice line` having an amount greater than zero. - `Confirm` the invoice. - Go to the `Bank journal` and create a `statement line` with the same amount as the invoice. - Click `Reconcile` on that `statement line` and select the newly `created invoice line`. - Click the `pencil icon` to edit the line, enter a `positive amount` in the Balance field, and save. `UnboundLocalError: local variable 'original_base_lines' referenced before assignment` The error occurs because, when a specific condition [1] becomes true, the variables original_base_lines and original_tax_lines are expected to be defined. However, if reconciled_lines_ids is present in move_line_to_edit, these variables are never initialized and are later referenced, causing the UnboundLocalError [2]. This commit ensures that original_base_lines and original_tax_lines are initialized to None, which prevents the error. [1]- https://github.com/odoo/enterprise/blob/fa4bbc20f25ec12c609ebbf37885e48900619de5/account_accountant/models/account_bank_statement.py#L1393-L1394 [2]- https://github.com/odoo/enterprise/blob/fa4bbc20f25ec12c609ebbf37885e48900619de5/account_accountant/models/account_bank_statement.py#L1410-L1411 sentry-7189027839 Forward-Port-Of: odoo/enterprise#107454 Forward-Port-Of: odoo/enterprise#104432
This update corrects a technical issue in the account reports module that was causing errors related to invalid record IDs. The fix filters out incorrect 'falsy' IDs, ensuring the reports display accurate data and prevents potential system instability. This improves the reliability of financial reporting.
Original PR description
Previously, get_unknown_partner_aml_ids collected AML IDs and included falsy IDs from the total lines. For a while, this had no side effects. However, in commit 4290724, the odoo/orm/models.py browse method was changed to disallow browsing for falsy IDs. get_unknown_partner_aml_ids has been caught by this and needs to not include total lines to prevent adding lines with no res_id. A simple option to ignore total lines fixes this issue. Steps to replicate: Create and post a journal entry with a line for accounts receivable Open Accounting > Tax Returns > Error (Invalid falsy real id) task: 5919319 Browse Change PR: 227477 Forward-Port-Of: odoo/enterprise#107458
This update corrects a recent issue where uploading new templates disrupted the connection between activities and their associated sign requests. The fix ensures that sign requests remain properly linked to activities, streamlining the workflow for users managing document signatures. This resolves a disruption in the activity revamp feature.
Original PR description
This hotfix resolves an issue introduced in the activity revamp feature that caused the link between the activity and its sign request to break when a new template was uploaded via the upload button. task-5379922
This update adjusts the layout of the HR leave form to place dates above time off types, enhancing usability. Additionally, a technical adjustment was made to resolve an issue caused by removing attachments from the form view. This ensures the form functions correctly.
Original PR description
In the enterprise PR, the order of time off type and dates was swapped, to have the date above the type. Also, the attachments were removed from the normal form view, since it would be redundant. This PR fixes an xpath issue that happened due to removing that field. task-5008161
This update ensures that a key automated report process in the Odoo Enterprise system continues to run correctly after updates. Previously, the cron job was disabled upon module upgrades due to a missing configuration setting. Adding the 'noupdate' attribute prevents this disabling, preserving user-defined settings and ensuring reliable report generation.
Original PR description
Currently, the 'Fetch E-Invoice detail bill' cron is set to active=False in the XML, but lacks the noupdate=1 attribute. This causes the cron to be disabled every time the module is updated. By wrapping the record in <data noupdate=1>, we ensure that user-defined configurations (active status, frequency, etc.) are preserved across module upgrades. task-5885482
This update adjusts the automated tour test to reflect a recent change in the label of the payrun button, which was updated from 'Confirm' to 'Validate'. This ensures the tour test accurately reflects the current user interface and functionality.
Original PR description
The payrun button label was changed from "Confirm" to "Validate" (task-5376223), this commit is simply adapting the tour test to the previous change task-5942337
This update resolves an issue where selecting 'Local Gaap' in account reporting incorrectly switched the selection states of multiple journals. Now, selecting 'Local Gaap' consistently includes all local gaap journals regardless of their previous state, ensuring accurate reporting.
Original PR description
When installing the 'account_transfer' module, the tests of 'test_account_reports_journal_filter' failed because the tests took into account the demo journal group created in the module. Also, fixing a problem with the selection of the group 'Local Gaap'. Before this PR: When some of the local gaap journals are selected but not all of them, selecting 'Local Gaap' switched all the selected states of the journals. Those who were selected are not, and those who were not are. After this PR: When selecting 'Local Gaap', all the local gaap journals are selected, no matter their state before. task-5404526
This update ensures the OCR functionality correctly processes receipts, addressing a previous bug where it wasn't available. Previously, setting an invoice as a receipt wouldn't trigger the 'Digitize document' button. This fix now accurately identifies receipts and ensures correct tax calculations for sale receipts, resolving a potential issue with purchase taxes being applied.
Original PR description
Since the OCR is available on receipts (commit a7e9575), the calls to `is_purchase_document`/`is_sale_document`/`is_invoice` need to have the `include_receipts` parameter set to `True` to return an accurate value. This was omitted in the original commit and later fixed in commit 0dc9352, but only for calls to `is_purchase_document`. This commit fixes it for calls to `is_sale_document` and `is_invoice`. The missing parameters caused the following bugs: - OCR not available on receipts, i.e. if the user manually sets the invoice as a receipt, the "Digitize document" button was there, but it wouldn't work. - Purchase taxes would be used instead of sale taxes for sale receipts. These use cases aren't very common, probably why there was no ticket to report it. task-none Forward-Port-Of: odoo/enterprise#107272
This update corrects an issue where rental order display names were failing due to a blank delivery contact name. The fix utilizes the partner's `display_name` instead, ensuring consistent and accurate name formatting for rental orders. This prevents errors and improves the user experience.
Original PR description
Steps to produce: --- - Install `sale_renting` and `contacts` modules. - Go to contact and open `yourcompany` record. - Add a new contact of type Delivery and save (leave the name empty). - Go to…
Steps to produce: --- - Install `sale_renting` and `contacts` modules. - Go to contact and open `yourcompany` record. - Add a new contact of type Delivery and save (leave the name empty). - Go to Rental > New Order. - Select YourCompany, Delivery as the customer. - Add a rental product and confirm the order. - Open the Schedule view. Traceback: --- `TypeError: sequence item 0: expected str instance, bool found`. Root cause: --- - At [1], the system tries to use the customer's name when computing the display name. However, in this case, the delivery contact has no name, resulting in a False value. This False value is then included in the description list, causing the TypeError when joining the sequence. Solution: --- - Use the partner's `display_name` instead of `name`. The `name` field can be `False` in some cases. The `display_name` field is a computed field that always provides a valid, formatted string by using fallback values such as the company name, parent name, or contact type. This ensures consistency and prevents errors [1] https://github.com/odoo/enterprise/blob/f5fea1d7b40e42b7bc1c323cc9613b1aa347da09/sale_renting/models/sale_order_line.py#L61 opw-5914084 --- Forward-Port-Of: odoo/enterprise#107451 Forward-Port-Of: odoo/enterprise#106827
This update corrects a minor issue in the VoIP unit tests, ensuring they accurately verify expected behavior. The change replaced a misleading assertion with a more precise one, improving test reliability and streamlining the code.
Original PR description
Introduced by [1]. The use of `:value()` is always truthy, making that assertion useless in the related unit test. Replaced by `:empty` as intended and took the opportunity to remove the non-required extra assertion around that code. [1]: https://github.com/odoo/enterprise/commit/0ff7c35c266c547ed3cc63155ffba54727d43c07 Forward-Port-Of: odoo/enterprise#106739
This update fixes a minor issue where the Employer File Number field was hidden in the payroll settings after installing the l10n_hk_hr_payroll_empf module. The fix removes the setting that previously obscured this important data, ensuring it's now readily accessible for accurate payroll reporting.
Original PR description
Issue: - Employer File Number was hidden in Payroll settings after installing the l10n_hk_hr_payroll_empf module. Fix: - Removed the setting that hid the Employer File Number field. task-5476454 Forward-Port-Of: odoo/enterprise#103987
This update fixes an issue where the number of employees flagged with invalid bank account warnings on the payroll dashboard was inaccurate when employees had multiple payroll versions. The fix ensures a more precise count of employees with incorrect bank account information, improving the accuracy of payroll reporting.
Original PR description
description: - `warning_count` for `hr_payroll_dashboard_warning_employee_invalid_bank_account` is wrong when there are multiple versions for a single employee. steps to reproduce: - install `hr_payroll_account_iso20022` - open Payroll (note: have atleast one employee with multiple versions) - find "Employees With Invalid IBAN Bank Accounts" warning on the dashboard - note the count and click on it, the record count differs fix: - returned unique employee ids from `_get_invalid_iban_employee_ids` - also optimized the query in `_get_account_holder_employees_data` method. reasoning: we do not need bank account data from all the versions, because all the versions share same bank account data. task-5407494 Forward-Port-Of: odoo/enterprise#101678
This update resolves an issue where the selected journal wasn't reflected when viewing journal items within the general ledger report. Now, when you filter by a journal, the 'Journal Items' view correctly displays both the related invoices and the corresponding journal entry. This ensures accurate reporting and analysis of financial data.
Original PR description
When opening the general ledger, if a journal was selected in the filter of the report, when clicking on "Journal Items" it would open the list view of account.move.lines without the journal in the filter. Also, the support for multiples journals is added but will require a -u of account to refresh the view. To reproduce: - Create an invoice on an Account such as Product Sales - Create a journal entry on the same account - Open the general ledger - Select "Customer Invoices" and click on "Journal Items" on the Account you choose. You can see both the move lines from the invoice and the journal entry. Forward-Port-Of: odoo/enterprise#106836
This update fixes an issue where the activity menu in web_studio was incorrectly displaying all records for custom models instead of just those associated with the current user. Now, the activity menu filters records to show only those with activities assigned to the user, improving the user experience and data accuracy.
Original PR description
After commit odoo/odoo@5c5fbc10b7024c7227f03e37897d421bba64df82 , actions spawned by the activities menu have their domain managed by dynamic <filter /> rather than a plain readonly domain. Before this commit, clicking on the activity menu to go to a custom model showed every record, not just ones with activities after this commit, only records with activities assigned to the current user are showed opw-5778806 Forward-Port-Of: odoo/enterprise#107277 Forward-Port-Of: odoo/enterprise#106622
This update fixes a misleading error message displayed when validating Argentine electronic invoices (ARCA). The message has been corrected to accurately reflect the requirement that the invoice date cannot be before the last validated invoice, preventing incorrect invoice processing. This ensures compliance with AFIP regulations.
Original PR description
WSFE error 10016-1 must be "The invoice date cannot be before the last invoice validated in AFIP." instead of "The invoice date cannot be after the last invoice validated in AFIP". Steps to reproduce: validate argentinean customer electronic invoice with invoice date before than the last invoice date validated in ARCA. Task Adhoc side: 44290 Task latam: 1376 Forward-Port-Of: odoo/enterprise#106687 Forward-Port-Of: odoo/enterprise#106305
A recent update to the Odoo IoT device functionality caused a traceback when users attempted to change keyboard layouts. This fix resolves the issue, ensuring that keyboard layouts are now updated successfully as expected. This prevents disruptions to users interacting with IoT devices through the Odoo backend.
Original PR description
Steps to reproduce: - Connect an IoT box - Connect a USB keyboard to the IoT box - In the Odoo backend, attempt to change the keyboard layout of the keyboard device EXPECTED behaviour: Layout is updated successfully ACTUAL behaviour: Traceback occurs Forward-Port-Of: odoo/enterprise#107483
Features or functions removed from Odoo
This update simplifies the car field setup in the Odoo Enterprise application. The 'Invite teammates via email' option, previously present in the offer form view, has been removed. This streamlines the process for users managing vehicle assignments and aligns with current workflow requirements.
Original PR description
Within the offer form view in BE: Default Vehicle & Additional cars fields use many2many_avatar_user widget, which shows 'Invite teammates via email' to create new record There is no need for this here, removing it in this PR. Task: 5376235
This update simplifies the reporting of work orders and manufacturing orders by removing the 'Employee Cost per hour' and 'Worksheet page' measures from pivot views. Additionally, the 'employee_cost' measure has been removed from the OEE pivot view, streamlining data analysis for operational efficiency.
Original PR description
This commit removes the following measures in WO pivot views: - Employee Cost per hour - Worksheet page The commit also removes employee_cost from OEE pivot view measures (Overall Equipment Effectiveness). Task-5384708
This update simplifies the WhatsApp Discuss app by removing a duplicate action to view contact details. The change aligns with a new feature that allows direct partner access from WhatsApp messages. This streamlines the user experience within the Discuss app.
Original PR description
Description: to unify partner visualization within the Discuss app, the popover card settings were updated to support partner access directly from WhatsApp messages. As a result, the view-contact thread action in the WhatsApp module is now redundant and has been removed. related PR: https://github.com/odoo/odoo/pull/243122 task-5333399
Code cleanup and technical improvements
This update refactors the testing process for the Discuss Enterprise module, addressing an issue where unnecessary database loading occurred during testing. This change improves test stability and reduces potential conflicts, ensuring more reliable test results.
Original PR description
Monkeypatching tests is very ugly. If we load this class, even if the database did not install this module, it will try to test these changes. https://github.com/odoo/odoo/pull/248687