Monday, January 12, 2026
14 changes · saas-18.3
Enhancements to existing features
This update strengthens Odoo's PDF/A compliance, moving from version 3B to 3A to meet stricter industry standards. The changes address previous validation failures and ensure our documents are compatible with a wider range of PDF/A systems. This improves the reliability of generated documents.
Original PR description
This commit upgrades our PDF/A compliance from 3B to 3A, and fixes a few issues previously undetected due to the different PyPDF libraries we're currently supporting that made the previous PDF fails…
This commit upgrades our PDF/A compliance from 3B to 3A, and fixes a few issues previously undetected due to the different PyPDF libraries we're currently supporting that made the previous PDF fails even the 3B validation. Improvement 1: PDFA validators were previously detecting our file as 3B. Hence we update the metadata content `conformance` to `A`. Issue 2: When using `._pypdf` library, we failed the 6.1.2-2 and 6.8-1 rule even though we have implemented them on the previous version. It seems that this is caused by the `if SUBMOD...` check only ensuring it's not equal to `_pypdf2_2` (which makes it trigger for the new `_pypdf`). Hence, we reclarify the comments and fix the IF check. Issue 3: After implementing issue 2, it seems that a traceback occurs every time we're using `._pypdf` and calling the pdf write method. This is because the added characters on the header can't be decoded with `UTF-8`. Hence we change it to other greater-than-127-bytes characters that can still be decoded with `UTF-8`. (The actual character used here doesn't matter). Improvement 4: To be compliant with the new 3A rules (additional rules not there in 3B when we first implemented them), we add a minimal mark info dictionary and document structure on the PDF catalog object (`_root_object`). task-None Forward-Port-Of: odoo/odoo#242382 Forward-Port-Of: odoo/odoo#234960
Resolved issues and error corrections
This update fixes a visual issue where long product names in the combo configurator popup caused misalignment of product cards. The change ensures all product cards maintain consistent alignment and dimensions, regardless of name length, providing a cleaner and more professional user experience.
Original PR description
Before this commit: ================= Product cards with long names caused a slight vertical misalignment in the combo configurator popup, resulting in inconsistent card sizes within the grid. After this commit: ================== Ensure all product cards remain uniformly aligned and maintain consistent dimensions in the combo configurator popup, even when product names are long. Task:5447320 Forward-Port-Of: odoo/odoo#241720
This update corrects a discrepancy in the calculation of employment bonuses for the Belgian payroll module (l10n_be_hr_payroll). The changes ensure bonus calculations are accurate up to March 2026, aligning with the latest tax regulations. This update maintains accurate payroll reporting for our Belgian clients.
Original PR description
Forward-Port-Of: odoo/enterprise#103820
This update corrects a calculation error in the Belgian payroll module (l10n_be_hr_payroll) related to the 3000 deduction. The change ensures that the deduction amount is accurately reflected up to the year 2026, aligning with updated Belgian tax regulations. This ensures accurate payroll reporting and compliance for users in Belgium.
Original PR description
Forward-Port-Of: odoo/enterprise#103824
This update corrects a technical issue where bank statements were incorrectly accessing elevated permissions. The change removes this unnecessary access, improving security and stability within the account module. This ensures data integrity and prevents potential vulnerabilities.
Original PR description
--- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#242899 Forward-Port-Of: odoo/odoo#242771
This update ensures that leave dates automatically recalculate when an employee's or contract's working schedule changes. Previously, leave calendars weren't updated, leading to potential inaccuracies. This fix maintains accurate leave balances by reflecting the latest schedule.
Original PR description
purpose: Accepted leaves should be recomputed upon working schedule change. - made the `resource_calendar_id` change on the leave when it's changed on the corresponding employee/contract, then forced recomputation of its dates from the new resource calendar task-id: 5424312 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#242381 Forward-Port-Of: odoo/odoo#241284
This update fixes a minor issue in the HTML editor's testing process. The change ensures that test actions are executed correctly, preventing redundant selections and improving the reliability of hoot tests. This enhances the overall stability of the HTML editor module.
Original PR description
The `simulateArrowKeyPress` method used in hoot tests performs both an actual `press` and modifies the selection. However, in some cases, the `press` already updates the selection because of our own listeners, which leads to a selection similar to performing the action twice. This commit avoids this by making sure the default `press` did not get prevented by our own custom listeners before modifying the selection. task-5438683 Forward-Port-Of: odoo/odoo#241604
This update fixes an issue where the 'Next Milestone' displayed in the Project list view was missing the deadline date. The fix ensures that milestone names now accurately include the deadline, providing clearer visibility for project timelines. This improves the accuracy of project planning and reporting.
Original PR description
**Steps to Reproduce:** - Install the Sale Project module. - Navigate to the Project module. - Enable Project Stages. - Go to the Project list view. - Observe that the Next Milestone does not display the deadline along with the milestone name. **Issue:** The milestone display name is incomplete and does not include the deadline date. **Cause:** The context overridden in sale project did not pass the required context, cause the display_name computation did not add deadline to the display name. **Fix:** Passed the appropriate context in the action context to ensure the display name is correctly computed and displayed with its deadline. Task: 5255295 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#243189 Forward-Port-Of: odoo/odoo#241853
This update fixes a display issue in the Industry FSM module where milestone names weren't showing their associated deadlines. The fix ensures that milestone names now accurately include the deadline date, providing users with clearer project timelines within the Project Configuration section.
Original PR description
**Steps to Reproduce:** - Install the Industry FSM module. - Navigate to Project Configuration. - Enable Milestones. - Go to the Project list view. - Observe that the Next Milestone does not display the deadline along with the milestone name. **Issue:** The milestone display name is incomplete and does not include the deadline date. **Cause:** The required context was not passed in the action, so the display_name computation did not add the deadline to the milestone name. **Fix:** Pass the appropriate context in the action to correctly compute and display the name along with its deadline. Task: 5255295 Forward-Port-Of: odoo/enterprise#103895 Forward-Port-Of: odoo/enterprise#103160
This update resolves a minor issue that caused tests for embedded actions to sometimes fail unpredictably. By adding a necessary wait for the user interface to update, we've made the tests more reliable and consistent. This ensures our software continues to function as expected.
Original PR description
In this commit, we add a missing await for an animation frame in an embedded action test. This ensures that the test waits for the DOM to update properly before proceeding, preventing potential flakiness in the test execution. runbot error~237752 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#243240
This update resolves a technical error that prevented users from successfully creating and saving bank statements within the Bank Journal Transactions feature. The issue stemmed from an undefined data source within the application, now corrected by utilizing props for data access. This ensures a smoother and more reliable experience for users.
Original PR description
We get an owl error: `TypeError: Cannot read properties of undefined (reading 'root').` The code tries to read data from this.env.model, but it is undefined. Steps To Reproduce: 1. Install `account_accountant` 2. Go to Accounting Dashboard > Bank > `...` > Transactions 3. Open in the list view 4. Select any number of transactions 5. Type something in the statement field of one of the rows 6. Press Create and Edit to create a new Statement 8. Save the statement Ticket [link](https://www.odoo.com/odoo/project.task/5352277) opw-5352277
This update fixes an issue where public channels were incorrectly configured, defaulting to an internal user instead of a public setting. The change sets the `group_public_id` to `None` to ensure channels are correctly identified as public, improving channel visibility and functionality.
Original PR description
Since #206619, the fixed test has used a wrong value for `group_public_id`, as if it's not set, the default is `Internal User`. This change sets it to `None` to make the channel public. Forward-Port-Of: odoo/odoo#243237
This update resolves an issue where user avatars in the Odoo Chat UI were appearing distorted or incorrectly sized. The fix applies a standard image scaling style ('object-fit: cover') to ensure avatars are displayed correctly and consistently. This improves the user experience and visual appearance of user profiles.
Original PR description
Before this commit, user avatars in the Chater UI were not displayed using the object-fit: cover style, causing distorted or improperly scaled images. Current behavior before PR: <img width="671" height="380" alt="image" src="https://github.com/user-attachments/assets/a4b7ef3a-0c69-4fec-bf2a-70c9bd89236e" /> Desired behavior after PR is merged: <img width="663" height="384" alt="image" src="https://github.com/user-attachments/assets/479586c8-a01c-45fb-9e46-9246616e1329" /> --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#242912 Forward-Port-Of: odoo/odoo#242320
This update fixes a potential issue where payroll calculations could incorrectly show employees owing money to the state. The change ensures that taxable income defaults to zero when state deductions exceed gross income, preventing inaccurate pay slips and ensuring correct tax reporting.
Original PR description
This commit simply defaults the computed taxable income amount to 0 in case the state deductions are greater than their gross income. Otherwise our payslips would imply that these employees are owed money by the state opw-5137280 Forward-Port-Of: odoo/enterprise#98114