Tuesday, May 13, 2025
9 changes · 17.0
Resolved issues and error corrections
This fix removes an unnecessary blank line that appeared after a live chat rating when no reason was provided. It keeps chat feedback messages cleaner and avoids awkward spacing for users and support teams.
Original PR description
This commit removes a useless break line added to the end of chat ratign. Break line is used to put the reason on a different line than the rating smiley but is useless when no reason is passed. task-4791376 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
Copying an accounting report now also updates its subformulas, not just the main formulas. This prevents copied reports from keeping incorrect links or calculations, helping users rely on duplicated reports without manual corrections.
Original PR description
Fixes an issue where copying an account report correctly update the formulas of the report but not the subformulas. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Customers who claim a free shipping reward during checkout will no longer continue to see that same reward as available on the order. This avoids confusion and prevents shoppers from trying to claim a one-time reward more than once.
Original PR description
Versions -------- - 17.0+ Steps ----- 1. Set up a Next Order Coupon program; 2. add Free Shipping as a reward; 3. create a coupon for current user with enough points to claim reward; 4. add a product to your cart; 5. go to check out; 6. claim Free Shipping. Issue ----- Free Shipping is still displayed as claimable Cause ----- The `_get_claimable_and_showable_rewards` method does not factor in whether the rewards have already been claimed on the current order. For discounts & free products, this isn't an issue, as claiming them will use as many points as possible, meaning there's no points left to claim more, but free shipping can only be claimed once per order. Solution -------- Filter out rewards that have already been claimed. opw-4784359
This fix updates an automated sales signature test so it runs reliably in both full Odoo installations and smaller single-app setups. It helps prevent false build failures and supports smoother validation of the Sales app.
Original PR description
Before this commit this test `test_04_portal_sale_signature_without_name_tour` was only working with all modules installed (classic runbot build) but was failing in singleapp mode (with just `sale_management`). With this commit this test works as expected in both of them. A solution was to use `alt_trigger` instead of "," to separate two css selector, as it was not working as expected inside tour triggers runbot error linked: https://runbot.odoo.com/odoo/runbot.build.error/161357/runbot.build.error.content/runbot.build.error.content/162311
This change reverts a recent adjustment that caused the automated build to fail for Danish electronic invoicing checks. It restores the previous partner identifier lookup so Peppol-related validation continues to use the expected Danish company/VAT identifier.
Original PR description
This reverts commit 7ce1ba9f29f9b1edd5f2507492e45ef92d9ba868. Before the commit (1) We would iterate through the possible items and see if the partner has the field. As the partner in the test setup…
This reverts commit 7ce1ba9f29f9b1edd5f2507492e45ef92d9ba868. Before the commit (1) We would iterate through the possible items and see if the partner has the field. As the partner in the test setup does not have `company_registry`, it will iterate on the second value, `vat`, which is set on the partner https://github.com/odoo/odoo/blob/037fabd81efc28c12359700ee8e21e0454e0535e/addons/l10n_dk/models/res_partner.py#L7-L18 which will be the key `0198` For this key, we have mocked the response: https://github.com/odoo/odoo/blob/e62a86939b0b327e2c16a82b0829dac80ef1ff32/addons/account_peppol/tests/test_peppol_messages.py#L153-L155 After the commit (1), we stop at the first iteration since `vat` is defined on the partner's fields. The key is `0184` -> we don't have any mocked response for this key, we we wazt to load the response's body which does not exist -> kaboom I'm not sure that we wanted to change this value in the first place as from Julien, we wanted the company registry https://github.com/odoo/odoo/commit/ad37ebefb9fb7cb3c9593730f174dd6f1d73a31e https://docs.peppol.eu/poacc/billing/3.0/rules/ubl-peppol/DK-R-014/ + the company registry == the vat for the danish localisation https://github.com/odoo/odoo/blob/037fabd81efc28c12359700ee8e21e0454e0535e/addons/l10n_dk/models/res_partner.py#L7-L18 --- commit (1) https://github.com/odoo/odoo/commit/7ce1ba9f29f9 runbot-163142
This fixes an issue where the cursor could fail to move correctly when editing text that includes tabs or mixed content. It improves the reliability of keyboard navigation in the web editor, reducing frustration during content editing.
Original PR description
Problem:
In `getAdjacentCharacter`, accessing `focusNode.textContent[focusOffset - 1]` directly fails when there are child nodes between text nodes.
Example:
Given `<p>ab<span>\u0009</span>\u200B[]</p>`:
- `focusNode.childNodes` → [text("ab"), span, text("\u200B")]
- `focusNode.textContent` → ["a", "b", "/TAB/", "/ZWS/"]
- `focusOffset` → 3 (nodes offset not text offset)
- Accessing `focusNode.textContent[2]` is wrong because `focusOffset` counts nodes, not characters, it should return `/ZWS/` not `/TAB/`.
Solution:
Align with 18.0+ (`html_editor`) behavior by calling `getDeepestPosition(focusNode, focusOffset)` inside `getAdjacentCharacter`.
Steps to reproduce:
1. Type `ab`
2. Press `Tab`
3. Press `Arrow Left` → Caret does not move left as expected.
opw-4720904
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prWhen a customer or vendor name is updated, related bank account holder names will now update automatically. This prevents outdated names from appearing on bank account records and helps keep business data consistent.
Original PR description
In the case where the name of the related partner is changed, the bank account holder name will not reflect the changes, we add here a dependency on partner_id.name
The attachment form no longer shows the File Content label when the attachment is a URL. This removes a confusing field label and makes the attachment screen clearer for users.
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
This fix prevents a crash when a window action is saved with an invalid context value, such as an empty list. The system now safely falls back to an empty context, helping administrators avoid errors from misconfigured actions.
Original PR description
This error occurs when a user provides a `non-dictionary` value, such as list, in the `context` field of `window action`. Steps to Reproduce: - Install the `base` module. - Navigate to `Settings` > `Technical` > `Actions` > `Window Actions`. - Edit any window action and set the `context` field to an `empty list`. - Save the changes. `TypeError: odoo.orm.models.BaseModel.with_context() argument after ** must be a mapping, not list` This error occurs when the system attempts to invoke the `with_context()` method with a non-dictionary value, which leads to a TypeError. This commit ensures the context is a valid dictionary before usage. If the provided context is not a dictionary, it is replaced with an `empty dictionary` to maintain compatibility and prevent error. Sentry-6558123477 I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr