Monday, April 20, 2026
13 changes · saas-19.1
Resolved issues and error corrections
The Dutch ICP report now uses the same downward integer rounding as the tax export. This keeps the reported amounts consistent and avoids confusing differences between the report and the exported figures.
Original PR description
Description of the issue this commit addresses: The Dutch tax authority lets ICP amounts be rounded down which is the behavior of the exports but not of the report itself meaning the values to not match and is quite confusing. --- Desired habevior after this commit is merged: The integer rounding DOWN is added on the ICP report to restore matching values --- task-6065382 Forward-Port-Of: odoo/enterprise#112953
This update corrects the appearance of contract-related buttons on the employee form so they display consistently with the rest of the interface. It also prevents the “New Contract” label from wrapping awkwardly on smaller screens, improving readability and usability.
Original PR description
- Add `text-nowrap` to the "New Contract" button to prevent text from splitting at narrow viewport widths - Fix contract template button styling: remove incorrect classes and align font-size and border with the surrounding UI task-6068488 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This change prevents time off-related calendar events from being shown as suggestions in the Timesheet Assistant. It helps users avoid confusing or incorrect entries when reviewing timesheets for a day with approved time off.
Original PR description
Steps to Reproduce:
---
1. Book a time off for any day via the Time Off app.
2. Open the Timesheets app for that same day.
3. Open the Timesheet Assistant suggestions panel.
Current Behavior:
---
The assistant surfaces the calendar event generated by the Time Off app as a
timesheet suggestion, e.g."Calendar Event - Mitchell Admin on Time Off : 1 days"
Expected Behavior:
---
Calendar events created by time off requests should not appear as
timesheet suggestions.
Issue:
---
The get_calendar_events getter in timesheet_grid_calendar fetched all calendar event
for the user without filtering by res_model, so time off meetings were included.
Fix:
---
Add ("res_model", "!=", "hr.leave") to the calendar.event search
domain.
task-6117932The contract template button on employee forms now matches the surrounding interface better. This fixes an inconsistent appearance by removing incorrect styling classes and aligning the button’s text size and border with the rest of the page.
Original PR description
Fix contract template button styling: remove incorrect classes and align font-size and border with the surrounding UI task-6068488
This change corrects a barcode value used in an automated Point of Sale test so it matches the barcode format expected by the scanner. It helps ensure the test accurately reflects real scanning behavior and prevents false failures in the POS test suite.
Original PR description
The test_GS1_pos_barcodes_scan was failing because the "GS1 Variant Product" barcode was defined as a 13-digit string, while the tour scans it using the GS1 AI 01 (GTIN), which expects a 14-digit GTIN-14. By adding a leading zero to the barcode in the test setup, we align it with the GTIN-14 format parsed by the POS barcode parser during the scan, ensuring the product is correctly added to the order. runbot-error: 242323 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#258089
This change adds the product unit of measure to the information sent to ECPay, so invoice lines are easier to understand. It helps customers and support teams see what the quantity refers to when reviewing the resulting document.
Original PR description
Issue: -- The documents returned by the ECpay API can be confusing as it does not include the measurement (UOM). The make it clearer a description is provided to ECpay through the json with the Key "ItemRemark" Current behavior: -- displayed data in PDF 品名 數量 單價 金額 備註 test 1 5 5 Expected behavior: -- displayed data in PDF 品名 數量 單價 金額 備註 test 1 5 5 商品單位: Units opw-6070269 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#259536
There were some translation overrides for `fr_BE` and `fr_CA` that were incorrect or unnecessary. We are deleting these files so they use the correct translations in `fr` instead. In the `nl_BE` translation, we are fixing a menu item so it is shorter, but still correct. task-5921458 Forward-Port-Of: odoo/enterprise#114069 Forward-Port-Of: odoo/enterprise#106998
Original PR description
There were some translation overrides for `fr_BE` and `fr_CA` that were incorrect or unnecessary. We are deleting these files so they use the correct translations in `fr` instead. In the `nl_BE` translation, we are fixing a menu item so it is shorter, but still correct. task-5921458 Forward-Port-Of: odoo/enterprise#114069 Forward-Port-Of: odoo/enterprise#106998
Clicking a partner mention now opens the profile page and closes the avatar preview popover at the same time. This avoids having the preview stay on screen after the user has already moved on to viewing the full profile.
Original PR description
**Current behavior before PR:** Clicking on a partner mention opens the avatar card popover. When the **View Profile** button is clicked, the partner form view opens, but the popover remains visible. This happens because the popover opened via `onClickPartnerMention` uses the popover service directly, instead of the `usePopover` hook, which automatically closes the popover when the component is unmounted. **Desired behavior after PR is merged:** Clicking the **View Profile** button opens the partner form view and closes the avatar card popover. task-[6063906](https://www.odoo.com/odoo/project/1519/tasks/6063906) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#256283
The Reference field in Inventory Move History was editable in the interface even though changes were not actually saved. This update makes the field read-only so users no longer see edits that cannot be kept, avoiding confusion and improving data consistency.
Original PR description
### Issue before this commit: Before this commit, the Reference field displayed on stock.move.line was editable in the user interface, even if the modification made by the user was not persisted.…
### Issue before this commit: Before this commit, the Reference field displayed on stock.move.line was editable in the user interface, even if the modification made by the user was not persisted. After saving and reloading the Move History view, the original value was restored. ### Steps to reproduce the issue: 1. Go to Move history in Inventory app 2. Try to change the name of a line and save 3. If you go back to the Move history you can see that the name is not changed ### Cause of the issue: The issue was caused by a mismatch between the stock.move.line.reference field and its target field stock.move.reference. The field on stock.move.line is a related field that appears editable (readonly=False), but the underlying stock.move.reference field was not writable. As a result, user could edit the field but the modifications were ignored, preventing changes from being effectively saved. ### Reason to introduce the fix: The fix ensures that the reference field in stock.move and in stock.move.line are readonly. opw-6055708 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#256434
This change improves how the “Search More” option works in accounting and tax selection fields. It uses existing search context instead of building filters manually, which makes the search more reliable and easier to maintain.
Original PR description
This commit replaces the use of creating dynamicFilters while doing "Search More" in the account and tax widget. It now simply updates the context to search default name instead of creating a filter domain manually for that. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#259835
This update removes extra blank lines at the start and end of messages before they are sent. It helps ensure customer and internal messages look cleaner and more professional.
Original PR description
Trim the leading and trailing empty lines in the message body before sending it to avoid unwanted empty lines at the beginning and end of messages. task-6027013 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#259136
This update corrects a typo in an internal SQL constraint warning message and fixes the referenced model name. It improves the clarity and accuracy of system messages, which helps reduce confusion during troubleshooting.
Original PR description
In this commit: --------------- - Corrected a typo in the SQL constraint warning message, updated `model.Constraint` to `models.constraint`. Forward-Port-Of: odoo/odoo#259980 Forward-Port-Of: odoo/odoo#259867
This change ensures that when a test is run again after a retry, the system uses the updated test instance instead of the old one. It helps prevent errors during test execution and makes retries more reliable.
Original PR description
When a test is retried, the current_test variable was not updated to the new test instance, which could lead to issues when opening a test cursor. This commit ensures that current_test is updated on each retry attempt. While there update the condition to have a stronger check in this specific case since test equality only uses test name Forward-Port-Of: odoo/odoo#260148