Daily updates from Odoo
Friday, April 25, 2025
25 changes
4 changes
Resolved issues and error corrections
This update refreshes Odoo's spreadsheet component with fixes that make formulas, pivot tables, color selection, and editing behave more reliably. It also improves formula error handling for better performance, helping spreadsheets remain responsive during everyday use.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/3e8864562 [REL] 18.2.9 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0)…
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/3e8864562 [REL] 18.2.9 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) https://github.com/odoo/o-spreadsheet/commit/43c256342 [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/4cf7f95d5 [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/762e1a676 [IMP] color-picker: remove additional # [Task: 4687930](https://www.odoo.com/odoo/2328/tasks/4687930) https://github.com/odoo/o-spreadsheet/commit/ae60867a7 [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/9176700c4 [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>
Updated Spanish labels for Peruvian identification types to include their standard abbreviations. This reduces customer confusion when selecting or reviewing tax identification information.
Original PR description
This 'bug' was introduced when translating strings from data files became possible (87fc0d6b). The translation of some fields in Spanish did not include their respective abbreviations leading to confusion of clients. This commit appends the abbreviations of the problematic strings. RD Feedback task: 4679704 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The online store cart now converts customer-entered product quantities to whole numbers, preventing unexpected purchases of tiny fractional amounts like 0.01. This keeps the normal shopping experience consistent while still allowing custom integrations to use fractional quantities when intentionally configured.
Original PR description
Commit 34ba0d3251486a3f7fd16709debb5c2b2d14ffa9 dropped the cast to integer for cart quantities, potentially allowing customers to buy 0.01 quantities of a product, which isn't the expected behavior. This commit casts the values given through the controllers, still keeping the ability for custom code to generate lines with floats as quantities if needed. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Website forms with hidden date or date-time fields now submit correctly. This prevents users from getting stuck on an endless loading state when sending forms such as email scheduling forms with hidden date fields.
Original PR description
Scenario: add a form with existing date field (for "Send an E-mail" form the field "Scheduled Send Date" for example) and make it hidden. Fill and send the form. Issue: the form is not send and it spin without end Reason: in b9b3a605e0f4c5da3a258c980107d6162da7f44f the code for fixing date format was rewritten as for loop without nested function. But the return that was used to get to next loop iteration, was not converted to a continue, so if there was a date / datetime widget unfilled (eg. if it is hidden in the form) we would unexpectedly exit the function Form.send without sending the form or enabling the button. opw-4699541 opw-4746416
6 changes
Resolved issues and error corrections
Updated internal tests so fleet-related expense checks run with the right permissions. This helps prevent false test failures and keeps accounting and fleet expense features reliable during development.
Original PR description
Creating fleet objects requires being a fleet administrator or sudo. However because copying fleet objects (specifically vehicles) as well as posting moves *also* requires those rights, using sudo requires about 20 changes throughout the setup and tests. Maybe fleet will eventually want some more specificity in their test ACL management, but just setting the current user as fleet admin seems to do a good job while avoiding most of the mess. https://runbot.odoo.com/odoo/error/163135 https://runbot.odoo.com/odoo/error/181531
The Documents accounting action now uses the correct label, "Create Vendor Credit Note," instead of "Create Vendor Refund." This avoids customer confusion and keeps the wording consistent with the accounting form that opens from the button.
Original PR description
TLDR: reword "Create Vendor Refund" => "Create Vendor Credit Note" During the refactoring in https://github.com/odoo/enterprise/commit/a32825ee00f2b330d99113f4d8c1488903fe744e The enum value of "account.move.in_refund" was used to name the button "Create Vendor Refund" instead of its string "Vendor Credit Note" when converting the action into the new documents actions scheme. This is confusing for customers (since it is not always a refund) and is inconsistent with the rest of the user facing wording (i.e. the form view that opens when the button is clicked on). Reported/noticed during: opw-4488038
Fixed how pivot table date formulas are generated in spreadsheets by removing unnecessary spaces before the day and month values. This helps dates display and calculate consistently when users work with spreadsheet pivots.
Original PR description
Removed extra spaces in front of the day and month in DATE function. Task: 4725023
This change restores support for Adam weighing scales that had been removed too early. It helps existing customers who still use these scales continue operating and upgrade without losing hardware compatibility.
Original PR description
This reverts commit f1b1062e0417f6a6a8a6137dbf1bf1c64523c2be. The Adam scales were deprecated prematurely while we still had clients using them. To allow the future upgrades and scales support for these clients we revert the deprecation Related community PR: https://github.com/odoo/odoo/pull/207259
The Planning list view now keeps planned date fields more compact when edited, preventing the arrow between start and end times from appearing out of line. This improves visual consistency and makes the schedule easier to read for users working in list view.
Original PR description
With this commit ============= In the Planning module, the Planned Date field in the list view was visually misaligned when edited. The arrow (->) between the start and end times would appear off-center compared to other rows. Previously, the field had a width of 425px. This commit reduces the width to 325px to keep the input field more compact and ensure the arrow and date values remain visually aligned across all rows in both view and edit modes. Steps to Reproduce: 1. Go to Planning. 2. Switch to list view. 3. Click to edit the Planned Date field. 4. Observe that the arrow is vertically misaligned due to the input's size. This fix improves visual consistency in the list view by constraining the field's width. Task: 4607249
Today's call activities now exclude items linked to records the user is not allowed to view. This prevents access errors and lets users continue seeing the activities they can legitimately work on.
Original PR description
If an activity is created for a record that the responsible user does not have access to, trying to fetch "today's activities" would result in an access error. This commit adapts the get_today_call_activities code to filter out activities associated with a record that the current user does not have access to.
15 changes
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 fixes the displayed image for the Cofidis payment method. It ensures customers and staff see the correct branding during payment setup or checkout, avoiding confusion from an incorrect logo.
Original PR description
It seems it was an error of https://github.com/odoo/odoo/commit/077f6d449a660ee6961cce8174c9c6caaf5bc23f. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix makes automated checks for the restaurant point-of-sale wait until the floor plan is fully loaded before continuing. It helps prevent false test failures and supports more stable quality validation without changing day-to-day user workflows.
Original PR description
- SaveLastPreparationChangesTour To fix the error, add the three last steps to ensure floor plan is well rendered before close the browser. runbot-error-id~114344 - FinishResidualOrder Wait the screen floor is completely loaded before clicking on table 5 or the order can sometimes not be well loaded. runbot-error-id~161595 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
The HTML editor now removes unused bold, italic, underline, or strikethrough formatting markers when users move the cursor away. This prevents future text from unexpectedly inheriting formatting, making document editing more predictable.
Original PR description
**Behavior before this PR:** - Create a bold or italic tag using keyboard when selection is collapsed, leave it empty. - Change selection using arrow key. - Put cursor back where format tag was created. Notice that empty element is not removed and text is formatted when writing something. **Behavior after PR is merged:** - This PR makes sure that empty format element gets removed when changing selection. - Tag will not get removed if it's parent block element is empty. task-4240818 --- 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
This fix makes two restaurant point of sale test flows wait until the floor plan and related loading steps are fully ready before continuing. It reduces false test failures and helps keep restaurant POS quality checks stable without changing day-to-day user behavior.
Original PR description
- SaveLastPreparationChangesTour To fix the error, add a step Chrome.waitRequest() to wait the loader that can appears when time to load is too long. runbot-error-id~114344 - FinishResidualOrder Wait the screen floor is completely loaded before clicking on table 5 or the order can sometimes not be well loaded. runbot-error-id~161595 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 fixes how tab spacing behaves in the HTML editor when used around text with a background color. Tabs inserted at the start of highlighted text no longer incorrectly inherit the background, while tabs inserted within or after the text still match the surrounding formatting.
Original PR description
**Current behaviour before PR:** When there is a text having background color, inserting a tab at the beginning of text creates a tab with background color. **Desired behaviour after PR is merged:** Now, if there is a text having background color, - Inserting tab at the beginning of text, tab will not have background color. - Inserting tab in the middle of a text, tab will have a background color corresponding to the text. - Inserting tab in the end of text, tab will have a background color corresponding to the text. task-4381135 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Fixed an issue where very long blog or portal pages with comments could show a grey, unusable comment box over the page content. The hidden helper field used to size the real comment box is now kept fully out of sight, improving the visitor experience.
Original PR description
Scenario: create a long blog page article and enable comments Result: there is a grey unusable textarea with o-mail-Composer-fake over the blog content. Issue: in 7710c3331ebd22f8396870bd0731f8c1152d9c41 the fake textarea used to compute the height of the real textarea, had a position of -10000px, which make sense in the backend to make it hidden. But in 18.0 with 368eb78a9cedfce0802b64fd2782e1c018541e40 we use the backend composer on portal, where a page could be higher than 10000px and the fake textarea can be shown. Fix: hide it better (also to the left, and in case there was a 10000x10000 pixels page with comment at the bottom right, make it invisible). opw-4719975
Fixed an issue where product or picking descriptions could be missing from Chilean electronic delivery guides. The document now uses the line’s picking description, making delivery guide details clearer and preserving expected behavior.
Original PR description
When generating a 'Delivery Guide SII DTE 52 (CL)' the picking description was not always displayed. Steps to reproduce: ------------------- * Install l10n_cl_edi_stock * In Sales app, make a new quotation * Add a product and confirm * Click on the Delivery smart button * Click on the gear icon > Print > Delivery Guide SII DTE 52 (CL) > Observation: Why the fix: ------------ We now use the picking description of the line, which inherits from the product's picking description. This improves clarity, makes the line's description more useful, and preserves the original behavior. Enterprise pr: https://github.com/odoo/enterprise/pull/81920 opw-4596901 --- 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-4627247The Chilean electronic delivery guide now reliably shows the product or picking line description when printed. This helps users and customers understand delivered items more clearly while preserving the existing document flow.
Original PR description
When generating a 'Delivery Guide SII DTE 52 (CL)' the picking description was not always displayed. Steps to reproduce: ------------------- * Install l10n_cl_edi_stock * In Sales app, make a new quotation * Add a product and confirm * Click on the Delivery smart button * Click on the gear icon > Print > Delivery Guide SII DTE 52 (CL) > Observation: Why the fix: ------------ We now use the picking description of the line, which inherits from the product's picking description. This improves clarity, makes the line's description more useful, and preserves the original behavior. Community pr: https://github.com/odoo/odoo/pull/204764 opw-4596901
Approval 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.