Tuesday, February 11, 2025
14 changes · 18.0
Resolved issues and error corrections
This fixes a timing issue that could prevent the link popover from opening correctly when users trigger it from Odoo's shortcut bar. The change makes the editor behavior more consistent and reduces small interruptions while editing content.
Original PR description
Fix a race condition between two different event that can affect the opening of the link popover when triggered via the odoo shortcut bar. backport of #197287 runbot-115558 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes Malaysian e-invoicing file generation so tax exemption details are included correctly. Businesses using Malaysian EDI get more accurate compliance documents and avoid wrongly generated files after the version 18 forward port.
Original PR description
Fixes an issue that appeared during the forward port in 18. The way tax exemption was handled had to be changed, but it was not correctly handled and the info is missing at one place, causing the file to be wrongly generated. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Time off requests now calculate durations correctly for employees using flexible work calendars. This prevents hidden calendar settings from causing incorrect leave balances or request lengths.
Original PR description
Issue: we you have a flex calendar the time off duration will depend on the attendance_ids even if they are hidden from the calendar view reporduce: create a new calendar and change the attendance before turing it into flex and then change the `hours_per_day`. then use this calendar on one of the employees and try to givce him a time off. the duration will be calculated based on the attendance you set before marking the calendar flex Solve: - update the `_get_durations` method to check if the calendar is flex and then use the `hours_per_day` Notes: this flex calendars does not have a weekdays and weekends so all the days that is selected in the leave would be counted Task: 4535351 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an unreliable automated test for restaurant preparation receipts by checking the receipt content directly instead of relying on a temporary print area. It helps reduce random test failures without changing point of sale behavior for users.
Original PR description
The `PreparationPrinterContent` test was checking if the preparation receipt was containing a specific string. But the check was performed on the `.render-container` which is generated for printing and erased just after. That was causing a random error in the test. Now we call internal `pos_store` method that generate the receipt content and we check if the string is present in the content. runbot error id: 114884
This update brings the spreadsheet component up to its latest version, including a performance improvement and a fix for dragging and dropping dimensions in the pivot side panel. Users should see smoother spreadsheet behavior and more reliable pivot table configuration.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/5b19f883f [REL] 18.0.15 Task: 0 https://github.com/odoo/o-spreadsheet/commit/13cc17201 [IMP] perfs: improve performance of `includesAll` Task: 4548168 https://github.com/odoo/o-spreadsheet/commit/54c533353 [FIX] pivot_side_panel: drag and drop of dimensions Task: 3817565 Co-authored-by: Anthony Hendrickx (anhe) <anhe@odoo.com> Co-authored-by: Alexis Lacroix (laa) <laa@odoo.com> Co-authored-by: Lucas Lefèvre (lul) <lul@odoo.com> Co-authored-by: Dhrutik Patel (dhrp) <dhrp@odoo.com> Co-authored-by: Adrien Minne (adrm) <adrm@odoo.com> Co-authored-by: Mehdi Rachico (mera) <mera@odoo.com> Co-authored-by: Florian Damhaut (flda) <flda@odoo.com> Co-authored-by: Rémi Rahir (rar) <rar@odoo.com> Co-authored-by: Pierre Rousseau (pro) <pro@odoo.com> Co-authored-by: Vincent Schippefilt (vsc) <vsc@odoo.com>
This fixes an intermittent issue in HTML editor tests where a link popover could steal focus at the wrong time on slower systems. The test now waits for the popover before refocusing the editor, making automated checks more stable without changing user-facing behavior.
Original PR description
Some tests end with the selection in a link, leading the link popover to open, which blurs the editable element. To prevent that, we would focus the editable by force, then wait a tick. But when the CPU is slow, sometimes the focus into the link popover happens too late to redirect it. This waits for the popover to open before focusing the editable. runbot-112609 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Long product packaging names now display more cleanly on sales-related reports instead of wrapping awkwardly into a narrow space. This makes printed or generated sales documents easier to read and more professional for customers and staff.
Original PR description
step to reporduce: 1. createdb with sale and inventory in 18.0 and activate product packaging 2. Create product or demo product can be used add the product packaging in inventory tab. 3. if packaging name is have more text then it description data will auto wrap in small portion which don't look good. before fix:  after fix:  upg-2452360 opw-4527424 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Saving a vendor payment no longer replaces the user's chosen payment journal with the partner's default payment method. This prevents accidental payment method changes and helps accounting users keep payment records aligned with their intended selection.
Original PR description
Steps to Reproduce: - Assign a partner a default payment method (e.g., Cash). - In the vendor payment, select that partner and then change the journal to another payment method (e.g., Bank). Then…
Steps to Reproduce:
- Assign a partner a default payment method (e.g., Cash).
- In the vendor payment, select that partner and then change the journal to another payment method (e.g., Bank). Then save.
The Issue:
After saving, the journal field chosen by the user is overridden by the partner's default payment method.
Cause:
In `account_payment`, the method `_inverse_partner_id` controls the logic to display the default payment method (`journal_id`) for a partner. It also had `@api.onchange('partner_id')` to adjust the `journal_id` in case the user changes the partner ID in the view. However, the inverse method is triggered on a save because `partner_id` is in `vals_list` of `write`, which sets the default `journal_id` instead of the user input.
Solution:
The behavior of the inverse method can be handled instead by the compute of `journal_id` if it depends on `partner_id`.
opw-4478282
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prFixed an issue where non-admin users could see an error when opening Invoicing with only a branch company selected. Bank logo information can now be retrieved correctly in this setup, improving reliability for multi-company branch users.
Original PR description
**[FIX] account_online_synchronization: branch company failing to fetch bank's logos.** When a branch company is selected alone with a non admin user, the function `fetch_online_sync_favorite_institutions` fails due to an access error, when trying to access the original companies country code (which is not selected). To reproduce the issue: - Create a branch for a company with a bank journal that hasn't been set up. - Create new internal user with access to the new branch company as well as the parent (origin of the journal) - Login with the non admin user - Choose soley the newly created branch in company selector - Open invoicing opw-4524368
The Partner Ledger report no longer shows the Send button twice when using a duplicated child report. This prevents confusion for accounting users and keeps report actions clear and consistent.
Original PR description
### Steps to reproduce the issue: 1. Using debug mode, in _Accounting > Configuration > Management > Accounting Reports_, duplicate Partner Ledger 2. Set Partner Ledger as Root Report of the copy 3. In _Accounting > Reporting > Partner Reports > Partner Ledger_ use the copy report 4. The Send button is displayed twice ### Explanation: When using a child report, `_custom_options_initializer` will be called both for the report and its `root_report_id`. https://github.com/odoo/enterprise/blob/92a47d5fb28449c32b632446d983a42d3df77547/account_reports/models/account_report.py#L7174-L7177 The Partner Ledger override of this method includes the addition of a button, but we don't check its presence, and the method being called twice makes the button being added twice to the options object. ### Fix reasoning: Checking that a button sending to the same action is already in the options avoids multiple buttons with the same purpose from being added in the options. opw-4506968
The Belgian HR payroll rules now include the latest employment bonus thresholds following the February 2025 indexation. This helps ensure payroll calculations remain aligned with official social security guidance and reduces the risk of incorrect employee pay or employer reporting.
Original PR description
Source: https://www.socialsecurity.be/employer/instructions/dmfa/fr/latest/intermediates#bonus-a-lemploi-plafonds-apres-indexation-05-02-2025 TaskID: 4558145
Fixes how guidance messages at the top of the Barcode app are prepared for translation. This ensures translators receive complete sentences, making the messages clearer and more natural in different languages.
Original PR description
The transfer tip messages displayed at the top in the Barcode app were constructed with `<b>` markup in the OWL template. However, the translation extraction mechanism for OWL templates splits the template up per tag it encounters. So if you had a message like `Scan a <b>transfer</b>, a <b>product</b> ...`, it would extract the `, a` part separately. Moreover, if the final string didn't contain more than 1 alphanumerical character, it wouldn't be exported in the .pot file and thus not be translatable. Also, having these messages chopped up doesn't allow translators to change word order in other languages. In this commit we safely construct the messages in Javascript and have them translated as one full sentence. After this, we show them in the OWL template. [task-4421055](https://www.odoo.com/odoo/project.task/4421055) Related to https://github.com/odoo/odoo/pull/196805
Fixed an issue where the pivot dimensions panel did not scroll properly while users dragged items in spreadsheets with many dimensions. This makes organizing pivot data smoother and prevents the side panel from blocking drag-and-drop workflows.
Document owners can now delete their own documents even when they are not editors of the folder. When a document’s owner is changed, the previous owner keeps editor access, preventing accidental loss of access while keeping deletion rules consistent.
Original PR description
See commit messages. Task-4510838