Daily updates from Odoo
Monday, May 4, 2026
15 changes · master
Enhancements to existing features
This update adds a confirmation step before starting the ‘Test Print’ function in the pay run process. Previously, users were unsure of the action's impact and the process's completion. This change provides clarity and prevents accidental clicks, ensuring a smoother user experience.
Original PR description
Before this change, when a user clicked “Test Print” on a pay run, there was no confirmation or message. Users could not clearly understand what would happen or when the process was finished, except for a small loading icon in the browser. in this commit, - Add a confirmation step before starting the Test Print - This helps users understand the action and avoid accidental clicks task-6147784
This update enhances the reporting of pay runs by adding a new field that combines the counts of employees needing review and those with anomaly issues. This provides a more complete picture of outstanding payroll tasks, allowing for better management and reconciliation of pay runs.
Original PR description
Add `version_to_review_or_anomaly_count` field that sums both `version_to_review_count` and `version_anomaly_count`. task-6116368
This update expands the list of Mastercard codes used for expense reporting, streamlining the process for users. By adding broader MCC ranges, users no longer need to manually select individual company codes, improving efficiency and reducing the need for detailed configuration. This change ensures accurate expense tracking and simplifies reporting.
Original PR description
## [IMP] hr_expense_stripe: Add Mastercard MCCs Add extended MCC list defined by Mastercard, including three range codes to avoid specifying a thousand companies-specific codes The user only allow one code to allow every airline company instead of having to select them all ## [IMP] hr_expense_stripe: Force quotes in mcc files task-5486945
Resolved issues and error corrections
This update resolves an issue where unreconciling batch payments would unexpectedly revert vendor bills to draft status due to approval checks triggered by third-party modules. Because the repost is internal and approved initially, it can bypass these checks, preventing user disruption. This ensures users can correctly reconcile payments without manual intervention.
Original PR description
When unreconciling a batch payment from a bank statement line, delete_reconciled_line() resets the linked invoice to draft to recompute its amount_residual, then re-posts it. If a third-party module…
When unreconciling a batch payment from a bank statement line, delete_reconciled_line() resets the linked invoice to draft to recompute its amount_residual, then re-posts it. If a third-party module (e.g. Studio Approvals) silently rejects action_post for the current user, the invoice stays in draft and the user has to redo the work manually. This internal repost is not a business action, the move was already approved when initially posted, so it can run as sudo to bypass approval checks. Steps to reproduce: 1. Add a Studio Approval rule on account.move.action_post with an approver other than the current user 2. As a user without that approval right, post a vendor bill and register a payment 3. Add the payment to a batch payment 4. Reconcile a bank statement line with the batch payment 5. With the user without approval rights, try to unreconcile the bank statement line (delete_reconciled_line) - Expected: the bill stays Posted. - Actual (before fix): the bill silently rolls back to Draft because action_post is rejected by the approval hook. opw-6121448 Forward-Port-Of: odoo/enterprise#115579 Forward-Port-Of: odoo/enterprise#115241
This update enhances the accuracy of write-off reconciliation within the accounting system. It now filters reconciliation models to only display those that are manually created or directly linked to the statement lines' journal, preventing errors caused by unrelated journal associations. This ensures reconciliation reports are more reliable and reflect true financial transactions.
Original PR description
In the account reconciliation wizard: - Only show manually created reconciliation models. - Only display reconciliation models that are not linked to any journal or are specifically linked to the journal of the statement lines. task-6059342 Forward-Port-Of: odoo/enterprise#111644
This pull request addresses several minor bugs in the Documents module, enhancing the user experience. Specifically, it fixes issues with scrolling after file uploads, the placement of icons in thumbnails, and display problems with the 'You' badge under certain conditions. These changes improve stability and visual consistency.
Original PR description
[FIX] documents: scroll to uploaded record How to reproduce: - install documents - open the "All" folder and ensure there is enough folder to not see any file - open the detail panel - drag&drop file…
[FIX] documents: scroll to uploaded record How to reproduce: - install documents - open the "All" folder and ensure there is enough folder to not see any file - open the detail panel - drag&drop file in that folder The file is uploaded, but you have to scroll to it to see it. Moreover, despite the file being selected, it's not shown the detail panel. We solve the problem here by waiting the record to be rendered before scrolling to it and notify the detail panel. [FIX] documents: fix icon position in thumbnail How to reproduce: - install documents - open the chatter of a document - click on log a note, and upload a file The "trash" icon/button in the thumbnail is weirdly positioned (neither centered, neither on a border). We fix here the position the icon/button. [FIX] documents: fix "you" badge layout How to reproduce: - install documents - change the name of Mitchell Admin to a very long name - open the share panel owned by Mitchell Admin The "You" badge is not correctly displayed (the badge appears as "Y..." instead of "You" and the shape is not correct). We fix here the layout of the badge in such configuration. Task-5152517 Forward-Port-Of: odoo/enterprise#115621 Forward-Port-Of: odoo/enterprise#107686
This update resolves an issue where time off allocations couldn't be deleted if a payslip for the relevant period had already been validated. The fix adjusts the system's logic to allow deletion of time off created *after* the payslip has been processed, streamlining time off management. This prevents unnecessary HR intervention.
Original PR description
## Issue When creating a time off for a date that is already covered by a confirmed payslip, that time off cannot be deleted. ## Steps to reproduce 1. Install *Time Off in Payslips*…
## Issue
When creating a time off for a date that is already covered by a confirmed payslip, that time off
cannot be deleted.
## Steps to reproduce
1. Install *Time Off in Payslips* (`hr_payroll_holidays`)
2. Create or use an employee E with a running contract, e.g.:
- Contract: Jan 1 to Indefinite
- Wage: $1000/month
3. In Payroll > Payslips, create a new Off-Cycle for Employee E:
- Period: March 1 - March 31
- *Compute Sheet*, *Confirm* and *Mark as paid*
4. In Time Off > Management > Time Off, create a new time off allocation for Employee E:
- Date: anywhere during March
- *Save* and *Validate*
5. Try to delete the allocation
6. **An error occurs: _"The pay of the month is already validated with this day included. If you need to adapt, please refer to HR."_**
## Cause
The condition under which this error is raised is defined in `_check_uncovered_by_validated_payslip`:
https://github.com/odoo/enterprise/blob/0226ad15abc8db70f8e379fddec3d83d15749c85/hr_payroll_holidays/models/hr_leave.py#L195-L203
It was originally added by https://github.com/odoo/enterprise/commit/1abb4a815ecb32557fc773cae54baf3e205d9b8c to prevent the deletion of holidays created **before** validating a payslip.
The condition does not take in account the moment when the leave was created. If a leave is created after the computation of the payslip, it did not impact that payslip, and thus can be deleted without risk.
opw-6089990
Forward-Port-Of: odoo/enterprise#115659
Forward-Port-Of: odoo/enterprise#114895This update corrects a technical issue that could cause problems with voice message tests in Odoo. The fix ensures that asynchronous operations complete before promises are resolved, preventing potential race conditions and improving test reliability. This ensures smoother voice messaging functionality.
Original PR description
Before this commit, voice message tests don't wait until the voice player is drawn before resolving the corresponding promise. This may lead to race conditions. This commit fixes the issue by properly `await`ing the completion of the asynchronous code before resolving the promise. Related runbot error: https://runbot.odoo.com/odoo/error/242411 Community: https://github.com/odoo/odoo/pull/261910 Forward-Port-Of: odoo/enterprise#115587
This update addresses a user experience issue where lingering session data in the opening_control POS module caused confusion. The change ensures that sessions are properly terminated when a user closes their browser or navigates away, improving clarity and reducing potential errors.
Original PR description
When the user closes the browser tab or navigates away after a session in opening_control, the session is not deleted and it causes confusion. opw-6114420 Forward-Port-Of: odoo/enterprise#115056
This update resolves an issue where duplicate Odoo databases would retain connections to ARCA web services, potentially leading to incorrect production data being used during testing. The change ensures that ARCA connections are cleared when database credentials are updated, improving data integrity and preventing misconfigurations.
Original PR description
Problem and Cause: When duplicating a database with existing ARCA connections, the connections to ARCA webservices are not cleared. Users using the duplicate database may not realize that the ARCA connections are still present. This may lead to production connections getting used while users are testing. Solution: Clear connections to ARCA webservices when updating the credentials. Forward-Port-Of: odoo/enterprise#115068
This update simplifies the management of simulation employee offers within Odoo Enterprise by removing a redundant field. The change consolidates data and ensures simulation offers are automatically deactivated after one month, improving data cleanliness and reducing potential confusion. This improves the overall efficiency of the HR contract management process.
Original PR description
- Replaced the `simulation_employee_id` field with the `employee_id` field from
regular offer to reduce code duplication.
- The `simulation_employee_id` field was redundant as it served the same purpose
as `employee_id` but only for simulation offers.
- The filtering now uses `is_simulation_offer` instead of checking field.
- The original domain [('contract_date_start', '!=', False)] is preserved
in the simulation view.
- To prevent simulation offers from appearing in employee offer lists,
they are now marked as `active=false` on creation. As it will be get cleanup
after one month by cron.
task-[5993083](https://www.odoo.com/odoo/project/1251/tasks/5993083)This update resolves an issue where transcription summaries were incorrectly sent to multiple chatter channels. The fix ensures summaries are now only posted to the relevant current chatter, and also corrects a previous error that occurred when closing the composer window. This improves the user experience and prevents redundant notifications.
Original PR description
Before this commit, there was an issue where the message of the transcription summary would get posted to the chatters of all records of a given model. With this commit, the message is only posted on the current chatter. This commit also fixes a regression where closing the composer window would cause an exception to occur. task-6147951 Forward-Port-Of: odoo/enterprise#115829
This update adjusts the checksum calculation for the IoT scale certified module, aligning it with recent changes in the related iot_drivers module. This ensures data integrity and stability for users relying on this certified module, preventing potential issues with data processing.
Original PR description
This PR adapts the expected checksum for the scale certified module corresponding change in iot_drivers module Forward-Port-Of: odoo/enterprise#115825 Forward-Port-Of: odoo/enterprise#115771
This update resolves an issue where the tax return dashboard wouldn't expand all tax return groups, leaving some sections empty. The fix ensures that all generated tax returns are displayed correctly within the list view, providing a complete overview for users. This improves the usability of the accounting reporting feature.
Original PR description
When navigating to the tax return list view from the accounting dashboard, only the first few groups were expanded, leaving subsequent groups appearing empty with only a date header visible. Steps to reproduce: - Generate several tax returns. - Open the main Accounting dashboard. - On a Tax Return card, click one of the generated buttons. - Scroll down the resulting list view. Issue: After 10 groups, following sections appear empty, showing only the header Analysis: By default, the web client limits the number of automatically opened groups. This change adds 'max_number_opened_groups' to the buttons context, aligning the behavior with the primary 'Tax Return' button action. https://github.com/odoo/enterprise/blob/1a2afda205c41773747ed5f174d75843effbbe9f/account_reports/views/account_return_views.xml#L183 opw-5769978 Forward-Port-Of: odoo/enterprise#114673 Forward-Port-Of: odoo/enterprise#113332
Features or functions removed from Odoo
This change removes a previously implemented feature that checked spreadsheet compression. This verification was introduced to aid debugging but has not been needed since its addition, streamlining the process and reducing unnecessary overhead.
Original PR description
Compression verification was introduced to check that the compression of the spreadsheet data was correctly done, and to help debugging issues related to it. We can now remove it as we haven't had any issue related to compression since its introduction. Task: 6179135