Tuesday, May 13, 2025
16 changes · saas-17.4
Resolved issues and error corrections
This change makes an automated test for reference fields wait for the interface to finish updating before checking results. It reduces false test failures caused by timing issues, helping keep development and release validation more reliable without changing user-facing behavior.
Original PR description
This commit adds an `await animationFrame()` in a reference field test. This makes the first assertion relevant, as it wasn't before (the view could never be there instantly). It also makes the test more robust as it could sometimes fail for the second assertions (race condition), see https://runbot.odoo.com/runbot/build/80157085 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 website donation payment test was split into separate setup and user-check steps to avoid timing problems on slow networks. This helps prevent false test failures and better reflects how regular users interact with donation forms.
Original PR description
On slow networks, users or runbot may click checkboxes before the JavaScript is fully loaded by the lazy loader, causing event handlers to not be attached. Fix: Split the test into two separate tours. One while logged in for donation configuration, and another while logged out to test it, since the issue does not occur when the iframe is not present. **Tested with a custom multi-build and the test do not fail anymore** runbot-77224
Miscellaneous changes
Steps to reporduce: - Make two orderlines that are cannot be merged with same product (add a comment, combo, etc ...) - Open the split bill screen - Selecet any of the orderlines and try to unselect it - Impossible to unselect the orderlines with same product but different line Fix: Calculate the line quantity selected based on the linked order line quantity and not the total number of same product in the order. Description of the issue/feature this PR addresses: Current behavior
Original PR description
Steps to reporduce: - Make two orderlines that are cannot be merged with same product (add a comment, combo, etc ...) - Open the split bill screen - Selecet any of the orderlines and try to unselect it - Impossible to unselect the orderlines with same product but different line Fix: Calculate the line quantity selected based on the linked order line quantity and not the total number of same product in the order. 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 Forward-Port-Of: odoo/odoo#209260 Forward-Port-Of: odoo/odoo#208640
Before this patch, it was impossible to resequence vendor bills if already sent to SII/tbai. However, it is required to be able to resequence them, and the move name isn't sent anymore since https://github.com/odoo/odoo/pull/195113 was merged. Thus, here I'm lifting that constraint to allow accountants do the resequencing. @moduon MT-8728 OPW-4567144 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#198189 Forward-
Original PR description
Before this patch, it was impossible to resequence vendor bills if already sent to SII/tbai. However, it is required to be able to resequence them, and the move name isn't sent anymore since https://github.com/odoo/odoo/pull/195113 was merged. Thus, here I'm lifting that constraint to allow accountants do the resequencing. @moduon MT-8728 OPW-4567144 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#198189 Forward-Port-Of: odoo/odoo#197284
to reproduce: =========== step 1 : change language to arab step 2 : go to dashboard app using mobile Problem: ======= overlapped text in the Dashboard module we forced direction to ltr on all languages in web and we didn't add this change in the mobile part Solution: ======= force ltr direction even on rtl languages in the mobile part opw-4586743 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of
Original PR description
to reproduce:
===========
step 1 : change language to arab
step 2 : go to dashboard app using mobile
Problem:
=======
overlapped text in the Dashboard module
we forced direction to ltr on all languages in web and we didn't add this change in the mobile part
Solution:
=======
force ltr direction even on rtl languages in the mobile part
opw-4586743
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#208977Currently, an exception is raised when a user attempts to import an attachment with an invalid TypeCode in the XML file. Steps to Reproduce: 1. Install the `account_edi_ubl_cii` module. 2. Navigate to Invoice Module -> Customers -> Invoices. 3. Attempt to upload an attachment with an invalid TypeCode in the XML file. 4. An error occurs. Error: `TypeError cannot unpack non-iterable NoneType object ` This issue [1] occurs when a user imports an attachment with an invalid TypeCode
Original PR description
Currently, an exception is raised when a user attempts to import an attachment with an invalid TypeCode in the XML file. Steps to Reproduce: 1. Install the `account_edi_ubl_cii` module. 2. Navigate…
Currently, an exception is raised when a user attempts to import an attachment with an invalid TypeCode in the XML file. Steps to Reproduce: 1. Install the `account_edi_ubl_cii` module. 2. Navigate to Invoice Module -> Customers -> Invoices. 3. Attempt to upload an attachment with an invalid TypeCode in the XML file. 4. An error occurs. Error: `TypeError cannot unpack non-iterable NoneType object ` This issue [1] occurs when a user imports an attachment with an invalid TypeCode in the XML file [2]. The function returns None, which cannot be assigned to multiple variables, leading to an error. [1] - https://github.com/odoo/odoo/blob/29206fb5f9c733ec8751d8d4910e4df686f29506/addons/account_edi_ubl_cii/models/account_edi_common.py#L262 [2] - https://drive.google.com/file/d/1Ww1D302rvMwM2OQBAZJNnTcI0n0xUGWQ/view This fix resolves the issue by ensuring that if an invalid move_type_code is found, it returns None, None, preventing the error. sentry-6303716506 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#208821 Forward-Port-Of: odoo/odoo#197927
**Steps to reproduce:** - Create a new product storable product - Open Inventory/Operations/Physical Inventory - Add a new line - Choose your product - Click on History **Current behavior:** An Odoo Client Error window appears **Cause of the issue:** Inside the counted quantity widget's useEffect, When adding the event listener "this.onInput.bind(this)" creates a new function reference https://github.com/odoo/odoo/blob/4775c0ff640c4a092c7430a03f6324659b9bbca4/addons/stock/static/s
Original PR description
**Steps to reproduce:** - Create a new product storable product - Open Inventory/Operations/Physical Inventory - Add a new line - Choose your product - Click on History **Current behavior:** An Odoo…
**Steps to reproduce:** - Create a new product storable product - Open Inventory/Operations/Physical Inventory - Add a new line - Choose your product - Click on History **Current behavior:** An Odoo Client Error window appears **Cause of the issue:** Inside the counted quantity widget's useEffect, When adding the event listener "this.onInput.bind(this)" creates a new function reference https://github.com/odoo/odoo/blob/4775c0ff640c4a092c7430a03f6324659b9bbca4/addons/stock/static/src/widgets/counted_quantity_widget.js#L18 when removing the event listener "this.onInput.bind(this)" creates another function reference https://github.com/odoo/odoo/blob/4775c0ff640c4a092c7430a03f6324659b9bbca4/addons/stock/static/src/widgets/counted_quantity_widget.js#L22 As a consequence the event listener is not properly removed **Fix:** If the new function reference is created before in a variable the same function reference will be passed the two times and it will be properly removed opw-4711101 Forward-Port-Of: odoo/odoo#206478
This PR adds the reset of: 1) screen orientation 2) browser_url 3) iot_handlers_etag when disconnecting a database This allows to switch between the different versions of the database more easily and avoid getting stuck with a non existent runbot db instance pos customer display for example Forward-Port-Of: odoo/odoo#209112
Original PR description
This PR adds the reset of: 1) screen orientation 2) browser_url 3) iot_handlers_etag when disconnecting a database This allows to switch between the different versions of the database more easily and avoid getting stuck with a non existent runbot db instance pos customer display for example Forward-Port-Of: odoo/odoo#209112
So it appears from the tour build error screenshot that the redirect doesn’t happen that fast, so we need to wait for it to happen before checking the next step, which is 'Edit'—which overrides it and edits the event details instead of the events list. So, we need to wait for the redirect to happen before checking the next step build_error-164184 referencing this commit : https://github.com/odoo/odoo/commit/b1e424bcd5e985b74496e409fb16c9529bbe848e  Forward-Port-Of: odoo/odoo#208381
PR odoo/odoo#170012 modified the application of Pension Fund taxes to invoice lines. After the PR, only lines with: `.//AltriDatiGestionale/TipoDato[contains(text(), 'AswCassPre')]` and the correct kind in the `.//AltriDatiGestionale/RiferimentoTesto` tag, got their Pension Fund tax applied. `AswCassPre` is an additional tag belonging to a "best practice" standard agreement from [AssoSoftware](https://www.assosoftware.it/servizi-offerti/standard-fe-e-protocollo-dintesa/). These may be best p
Original PR description
PR odoo/odoo#170012 modified the application of Pension Fund taxes to invoice lines. After the PR, only lines with: `.//AltriDatiGestionale/TipoDato[contains(text(), 'AswCassPre')]` and the correct kind in the `.//AltriDatiGestionale/RiferimentoTesto` tag, got their Pension Fund tax applied. `AswCassPre` is an additional tag belonging to a "best practice" standard agreement from [AssoSoftware](https://www.assosoftware.it/servizi-offerti/standard-fe-e-protocollo-dintesa/). These may be best practices, but they're not at all mandatory for using the SdI, so it happens that invoices do not follow these additional specifications. For everyone else, the Pension Fund tax must be applied on all lines where `.//DatiGeneraliDocumento/DatiCassaPrevidenziale/AliquotaIVA` tag matches the VAT tax of the line. This PR adds code that tells one case from the other. Task [link](https://www.odoo.com/odoo/project/967/tasks/4381089) task-4381089 Forward-Port-Of: odoo/odoo#207853
DGI only wants units without any decimals. That was already done. But they want these amounts to be the base for the other computations. For instance tax amount is simply ratio * total base for this tax. So we need all the lines to take the rounding into account, which is done with the subformula. We also add the possibility for the client to fix some values by adding an editable second column. The idea is that the sum of the bases for the rates must be equal to the sum of the bases
Original PR description
DGI only wants units without any decimals. That was already done. But they want these amounts to be the base for the other computations. For instance tax amount is simply ratio * total base for this tax. So we need all the lines to take the rounding into account, which is done with the subformula. We also add the possibility for the client to fix some values by adding an editable second column. The idea is that the sum of the bases for the rates must be equal to the sum of the bases for the types. We can't guarantee it due to the rounding and we can't fix it automatically. The client then needs to modify the lines himself. opw-4590719 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#203227
Versions -------- - 16.0+ Steps ----- 1. Enable abandoned cart reminder emails; 2. have an event with a limited number of seats; 3. open a cart for a ticket to the event; 4. abandon the cart; 5. have available seats fill up. Issue ----- You still get an email reminding you to buy the ticket, even though it's no longer available. As a consequence, you can still pay the sales order, but it won't get confirmed. Cause ----- There is no custom logic in place for `website_event_sa
Original PR description
Versions -------- - 16.0+ Steps ----- 1. Enable abandoned cart reminder emails; 2. have an event with a limited number of seats; 3. open a cart for a ticket to the event; 4. abandon the cart; 5. have…
Versions -------- - 16.0+ Steps ----- 1. Enable abandoned cart reminder emails; 2. have an event with a limited number of seats; 3. open a cart for a ticket to the event; 4. abandon the cart; 5. have available seats fill up. Issue ----- You still get an email reminding you to buy the ticket, even though it's no longer available. As a consequence, you can still pay the sales order, but it won't get confirmed. Cause ----- There is no custom logic in place for `website_event_sale` to filter out abandoned carts with tickets that are no longer eligible. Additionally, the `is_sold_out` field of tickets can be `False` while the event's `event_registrations_sold_out` field is `True`. Solution -------- - Add the event's `event_registrations_sold_out` field as a dependency to `event.event.ticket`'s `_comute_is_sold_out` method. - Add an override for `_filter_can_send_abandoned_cart_mail` which filters out carts with tickets that are sold out, or events with no free places remaining. opw-4453539 Forward-Port-Of: odoo/odoo#209287 Forward-Port-Of: odoo/odoo#199877
**Purpose:** - The label `File Content (base64)` is still visible even if the attachment type is URL. **Specifications:** - Hide label `File Content (base64)` when attachment type is URL. task-4778138 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#209210
Original PR description
**Purpose:** - The label `File Content (base64)` is still visible even if the attachment type is URL. **Specifications:** - Hide label `File Content (base64)` when attachment type is URL. task-4778138 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#209210
…count value Steps to reproduce: 1. Create an invoice with a product 2. Set quantity to 3, price to 11.34 3. Confirm & get the invoice PDF 4. Upload the PDF in accounting app 5. Check the "discount" value Issue: Visually the result is correct, but the stored value (in db) is not -2.220446049250313e-14 != 0.0 Cause: ``` >>> 3 * 11.34 34.019999999999996 ``` Creating a slight error of -0.0000000000002 opw-4675079 Forward-Port-Of: odoo/odoo#206107
Original PR description
…count value Steps to reproduce: 1. Create an invoice with a product 2. Set quantity to 3, price to 11.34 3. Confirm & get the invoice PDF 4. Upload the PDF in accounting app 5. Check the "discount" value Issue: Visually the result is correct, but the stored value (in db) is not -2.220446049250313e-14 != 0.0 Cause: ``` >>> 3 * 11.34 34.019999999999996 ``` Creating a slight error of -0.0000000000002 opw-4675079 Forward-Port-Of: odoo/odoo#206107
- It's not auto-exported (for now...) - It was out of date - We forgot to include the industry modules --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Original PR description
- It's not auto-exported (for now...) - It was out of date - We forgot to include the industry modules --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
If the user deleted some leave types, the payroll app will not be able to function anymore, in this PR we fallback and only browse for the ones that were not deleted Forward-Port-Of: odoo/enterprise#85119
Original PR description
If the user deleted some leave types, the payroll app will not be able to function anymore, in this PR we fallback and only browse for the ones that were not deleted Forward-Port-Of: odoo/enterprise#85119