Friday, April 25, 2025
7 changes · 18.0
Resolved issues and error corrections
This fix prevents an intermittent error when users select a company or contact suggestion before supporting lookup data has fully loaded. It makes the partner autocomplete flow more reliable, especially on slower connections and in mobile CRM opportunity creation steps.
Original PR description
Before this fix, there was a non-deterministic error in the main flow tour : ´Uncaught (in promise)undefined´. This issue occured when the loading of "jsvat" took too much time. The user could have…
Before this fix, there was a non-deterministic error in the main flow tour : ´Uncaught (in promise)undefined´. This issue occured when the loading of "jsvat" took too much time. The user could have time to click on one of the results, which then caused the destruction of the component before the loading was finish. Then after the loading, there is a call to the "ORM service" in ´getSuggestions´ but no luck the component is already destroyed. This error therefore typically occurs in a tour depending on : - the quick selection of a result as soon as it appears (thx to the tour) - the slow network that delays the loading of the lib (nightly builds) It is likely that this error has been there for longer but was highlighted by changes that affected these timings. Even if the migration from Clearbit to Dun & Bradstreet [1] would be a good culprit. In this case the main flow tour was impacted with steps flagged "mobile" only at the stage of creating an opportunity in the CRM. But we doesn't exclude to have the same issue for largest screens. [1] https://github.com/odoo/odoo/pull/202546 runbot-error: 161434 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 update refreshes the spreadsheet component and fixes several issues affecting formulas, charts, pivots, color selection, and the formula editor display. Users should see more reliable spreadsheet calculations and clearer visuals, especially on high-resolution screens and in pivot subtotals.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/24aac2c80 [REL] 18.0.25 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0)…
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/24aac2c80 [REL] 18.0.25 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) https://github.com/odoo/o-spreadsheet/commit/13a5eadc6 [PERF] formula functions: replace thrown errors with a return error [Task: 4671645](https://www.odoo.com/odoo/2328/tasks/4671645) https://github.com/odoo/o-spreadsheet/commit/984a70cce [PERF] formula functions: avoid to use errors derived from native error. [Task: 4671645](https://www.odoo.com/odoo/2328/tasks/4671645) https://github.com/odoo/o-spreadsheet/commit/ecec11853 [IMP] color-picker: remove additional # [Task: 4687930](https://www.odoo.com/odoo/2328/tasks/4687930) https://github.com/odoo/o-spreadsheet/commit/f43eeb3b3 [FIX] composer: fix stacking context issue in composer [Task: 4623945](https://www.odoo.com/odoo/2328/tasks/4623945) https://github.com/odoo/o-spreadsheet/commit/3a1f3a2f9 [FIX] ChartRuntime: take devicePixelRatio in account [Task: 4661712](https://www.odoo.com/odoo/2328/tasks/4661712) https://github.com/odoo/o-spreadsheet/commit/aae34057d [FIX] pivot: get column sub-total of calculated measure [Task: 4728690](https://www.odoo.com/odoo/2328/tasks/4728690) 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 a bus notification issue where users could miss updates sent while their connection was temporarily closed. Odoo now checks for missed notifications whenever a connection is restored after the first connection, improving reliability for real-time updates.
Original PR description
In [1], a mechanism was introduced to detect lost notifications when the bus table is cleared during socket disconnection. However, this relies on the "reconnect" event. The "reconnect" event is not triggered when the connection is closed cleanly. In such cases, the next connection is treated as a new one and triggers the "connect" event, which does not check for missed notifications. As a result, any notifications sent while the socket was disconnected can be missed. This commit ensures that the missed notification check is performed on all connections after the initial one, not only during a "reconnect". [1]: https://github.com/odoo/odoo/pull/206106 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
Fixes an issue where the Customer Statement button could disappear after Point of Sale orders were paid through a customer account and the session was closed. Customers with an outstanding balance will now continue to show the statement option, helping staff access the right account information when follow-up is needed.
Original PR description
- Since this PR: https://github.com/odoo/enterprise/pull/82531, the "Customer Statement" smart button (inside the customer form) was no longer visible when orders were paid via customer accounts in PoS and the session was closed. This was caused by session-level account.move records lacking partner_id, which caused _compute_has_moves to return false. - This fix overrides `_compute_has_moves` inside the module `pos_settle_due` to set `has_moves` to True when a partner's total_due is non-zero, ensuring the statement button remains visible when relevant. task-id: 4749148
Menu synchronization for UrbanPiper point of sale integrations now handles products that have both active and inactive option records. This prevents an error that could interrupt menu updates, helping restaurants keep their online menus synchronized reliably.
Original PR description
In this commit: === - Fixed a traceback that occurred during menu synchronization caused by multiple product.template.attribute.value (PTAV) records found, where only one was expected (singleton error). - The issue was due to having both active and inactive PTAV records linked to a product. task-4753173
Attendance-based contracts now apply lunch break deductions consistently between recorded attendance and generated work entries. This helps ensure payroll calculations match the actual paid working time, while preserving flexible-hour contract behavior.
Original PR description
### Issue:
- In attendance-based contracts, lunch break intervals were automatically deducted from attendances,.
- However, this deduction was not reflected in the generated work entries, resulting in inconsistencies
between attendance duration and payroll calculations.
### Steps To Repoduce:
- Set up an attendance-based contract with lunch break in the schedule.
- Log attendance from 08:00 to 20:00 without logging out for lunch.
- Observe:
- The attendance has the lunch break interval deducted.
- The work entry does not, and includes the full duration.
### Solution:
- revert the change introduced in https://github.com/odoo/enterprise/pull/71979/commits/0a54ef993da3ef4882acdee1b8f5e378e2e9f2e0 only for contracts without flexible hours.
- Lunch breaks are now deducted from both attendances and work entries only when the contract has flexible_hours = False.
opw-4627247Approval requests now find the correct employee manager when users have employee records in multiple companies. This prevents incorrect submission errors and keeps multi-company approval workflows working as expected.
Original PR description
This commit fixes an inconsistency on the search domain of hr_employee introduced in 9ce7f4d. The latter commit filters out employees based on the company set on the approval request, to avoid…
This commit fixes an inconsistency on the search domain of hr_employee introduced in 9ce7f4d. The latter commit filters out employees based on the company set on the approval request, to avoid AccessError. However, this filter should also be applied during the compute of the approvers. Steps to reproduce: 1. Install Approvals and Employees 2. Create a default company 3. Create a non-default company 4. Create a Test Employee user on the default company, enable multi-company rights, and create an employee record for the default company. Switch to the non-default company and create an employee record for the user. 5. Repeat Step 4 when creating a Test Manager user 6. On the employee records for Test Employee, set the newly created managers according to the company 7. Create an approval type on the default company and set "Manager is required approver" 8. Login as Test Employee and create an approval request for the approval type created in Step 7 on the default company 9. Submit and see an UserError: "This request needs to be approved by your manager. There is no manager linked to your employee profile." Due to a missing filter on the company_id in the domain when searching on hr_employee.