Monday, October 27, 2025
13 changes · 18.0
Resolved issues and error corrections
This fix makes an internal mail test less sensitive to timing delays when checking channel subscriptions. It helps prevent false failures in automated validation, improving release confidence without changing user-facing behavior.
Original PR description
Before this commit, the test was checking the channels that were subscribed to in the websocket by filtering on their name. This could cause a condition with the debounce of the update_channel in the websocket. Indeed, if waiting too much time (300 ms at the present) between the presences subscription and the channel subscription, the first one would yield an empty array of subscription since not a discuss channel subscription. This commit fixes the issue by just taking the subscription into account if any channel is in the list, otherwise we simply avoid the step in the test. fixes-runbot-161477 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#230608
Companies without an applicable VAT number can now connect to CodaBox using their company registry number instead. This avoids connection issues for non-taxable Belgian companies that mark VAT as non-applicable.
Original PR description
If a company is not subject to taxes, they may not have a VAT number. In that case, the field can be left empty, such that the Company Registry is used instead for the CodaBox connection. However, the case where "/" (Non Applicable) was used as the VAT number was handled. This commit now handles VAT="/" in the same way it handles no VAT at all by using the company registry as a fallback. The commit also cleans up how the company ID is used to avoid duplicated code by creating a computed field. opw-5164155
Creating multiple accounting journals of the same type could fail when no alias domain was configured because Odoo reused the same generated alias. This fix makes the alias uniqueness check include aliases without a domain, preventing save errors and allowing users to create journals normally.
Original PR description
**Issue** When creating two new journals and selecting the *type* before the *name*, Odoo generates an alias using the type (e.g. `sale--...`). When saving a second journal with the same type, the…
**Issue** When creating two new journals and selecting the *type* before the *name*, Odoo generates an alias using the type (e.g. `sale--...`). When saving a second journal with the same type, the alias conflicts and raises a "This alias already exists" error. **Steps to Reproduce** 1. Navigate to Accounting > Configuration > Journals. 2. Create a new journal. 3. Set the Type to Sales before entering the Name. 4. Save the journal. 5. Repeat the process to create another journal of the same type. 6. Observe that an error occurs: alias name is already used. **Root Cause** The uniqueness check in _ensure_unique_alias only compares alias_name against existing aliases with the same alias_domain. However, many aliases are created with alias_domain = False. Since those were excluded from the domain, the check failed to detect duplicates correctly. **Fix** Update the domain in _ensure_unique_alias to also include aliases where alias_domain is unset. This ensures that aliases are always unique regardless of whether a domain is configured. Opw-5028713 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#225537
This update stabilizes an automated barcode test by ensuring the screen has finished updating before the test checks the result. It helps prevent false test failures in development pipelines without changing how users interact with barcode features.
Original PR description
This commit fixes a test that sometimes failed, because we didn't wait for an animationFrame after the macro was complete. As a consequence, there was no guarantee that the form view had been updated before the check. runbot error~226829 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 prevents an accounting process from failing when it encounters an empty value where a number is expected. It helps users continue their work without seeing a confusing error message.
Original PR description
Description of the issue/feature this PR addresses: ValueError: invalid literal for int() with base 10: '' Current behavior before PR: ValueError: invalid literal for int() with base 10: '' Desired behavior after PR is merged: not giving valueerror --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Missing translation in settings for "Configure Signature Certificates" in spanish Steps to reproduce: ------------------- * Install module l10n_mx * Switch to a Mexican Company * Go in setting/accouting -> Issue: "Configure Signature Certificates" is not translated. Observation: ------------ It's translated from 18.2+ https://github.com/odoo/enterprise/commit/8e14c5b9c43e109754e5411588d18b93b37335d6 opw-4942599
Original PR description
Missing translation in settings for "Configure Signature Certificates" in spanish Steps to reproduce: ------------------- * Install module l10n_mx * Switch to a Mexican Company * Go in setting/accouting -> Issue: "Configure Signature Certificates" is not translated. Observation: ------------ It's translated from 18.2+ https://github.com/odoo/enterprise/commit/8e14c5b9c43e109754e5411588d18b93b37335d6 opw-4942599
Website forms now handle field names that include the “|” character when setting conditional visibility rules. This prevents dependent fields from staying hidden incorrectly, helping form builders use flexible field labels without breaking form behavior.
Original PR description
Before this commit, after selecting a field containing the char "|" for conditional display, the field on which the condition is set will never appear again. This commit enable the use of any characters in form fields Steps to reproduce the bug: - Add a form - Add two fields (A and B) - Rename the field A with a string that contains "|" - Set the field B visibility to "Visible only if" - Set the field A as the visibility condition for field B (field B visible only if field A contains 'hello', for example) - Save the changes - Complete the field A according to the visibility condition (The second field does not appear) task-3893749
Fixes an issue where editing the “Terms and conditions” link on a product page could cause an error. The website editor now correctly handles color removal for links styled with special text classes, making this editing flow reliable for users.
Original PR description
Problem: On website > shop > product page, when trying to edit the link of "Terms and conditions", a traceback occurs. Cause: When applying changes on "Terms and conditions" in `shop/product`, `ColorPlugin.removeAllColor()` is called on the `a` element. Its color was applied by the `text-muted` class. This case in color removal was not properly handled. Solution: In `getFonts`, consider elements that have those special classes (e.g., `text-muted`) when processing color removal. Steps to reproduce: 1. Open website/shop. 2. Open any product page. 3. Open the editor. 4. Select the "Terms and conditions" text. 5. Click edit in the link popover. 6. Click apply. 7. Traceback occurs. opw-5130016 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The point of sale product grid now displays product cards more consistently on mobile devices. This prevents card sizing conflicts that could make the sales screen look uneven or harder to use.
Original PR description
This commit fixes an issue related to the `product card` which has an enforced `4 /3` aspect ratio. Currently, there are two different grid layouts in `point_of_sale` depending on the breakpoint. On…
This commit fixes an issue related to the `product card` which has an enforced `4 /3` aspect ratio. Currently, there are two different grid layouts in `point_of_sale` depending on the breakpoint. On Mobile, we use a `3 cols` layout with each col being the same size, which conflicts with the grid layout as it try to enforce a specific `width/height` on the element. On other devices, we use an `auto-fill` rule, which provides way more flexibility for items to grow, but even there the aspect-ratio is not working as the item is sized as the other grid items. To fix this issue, we remove the `aspect-ratio` property, which was not affecting the design of the item and rely on the default grid sizing behaviour, to prevent any issue. task-4965395 | 18.0 and above | This PR | |--------|--------| | <img width="391" height="844" alt="image" src="https://github.com/user-attachments/assets/a191bfcf-20f6-4621-832b-a40ed42c2358" /> | <img width="391" height="844" alt="image" src="https://github.com/user-attachments/assets/7f07000e-b0e5-411e-bce6-12a5072bb854" /> | --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The sale product catalog now shows the discounted price for a single sale order line, instead of showing the original unit price. This prevents pricing confusion and keeps the catalog display aligned with the actual order total.
Original PR description
Description of the issue/feature this PR addresses: When using the product catalog in sale orders, if a sale order line has a discount applied via the `discount` field, the catalog displays the base…
Description of the issue/feature this PR addresses: When using the product catalog in sale orders, if a sale order line has a discount applied via the `discount` field, the catalog displays the base `price_unit` instead of the discounted price. This creates an inconsistency between what's shown in the catalog and the actual price in the order line. Current behavior before PR: - A sale order line with price_unit=120.00 and discount=15% shows subtotal=102.00 in the order - The product catalog shows price=120.00 (without discount applied) - This only happens when `len(self) == 1` in `_get_product_catalog_lines_data()` - The multi-line case (`elif self:`) correctly calculates the price using pricelist Desired behavior after PR is merged: - The product catalog should show price=102.00 (with discount applied) - Consistency between catalog price and order line subtotal - The discount field is properly considered in the price calculation for single lines - Behavior matches the multi-line case where pricelist correctly calculates discounted prices --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Contact complete addresses now include the second street address line when it is filled in. This ensures email templates and other uses of the complete address show the full mailing address, reducing omissions in customer communications.
Original PR description
Issue: If a user with `street2` wants to utilize the `contact_address_complete` field, the `street2` field is not included. Purpose of this PR: To include the `street2` field in the `contact_address_complete` Steps to reproduce on Runbot: install contact fill in a contact's `street2` create email template that uses the `contact_address_complete` `street2` is omitted from the complete address opw-5186218 Forward-Port-Of: odoo/enterprise#98103
Code cleanup and technical improvements
This update simplifies automated test files by removing unnecessary grouping labels that repeated the file name or could be misleading. It does not change product behavior, but makes tests easier for developers to read and maintain.
Original PR description
This commit removes test files using a single 'describe' call to wrap its tests, with a name being either redundant with the test file itself or is too misleading.
Regular expression used to find isolated suites:
```js
/^\s*import.*(?:\n(?!describe\()(?!test\().*)+\ndescribe\("[\w\s.]+",.*(?:\n(?!describe\().*)+\n\}\);\n(?!\n)/
```
Tip for reviewers: tick **"Hide whitespace"** when reviewing diff
<img width="237" height="205" alt="image" src="https://github.com/user-attachments/assets/373f7cc6-5e0e-4599-968a-39aad8fac2f0" />
Enterprise: https://github.com/odoo/enterprise/pull/98046
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThis update simplifies several automated test files by removing redundant grouping labels that did not add useful information. It does not change product behavior, but it makes the test suite easier for developers to read and maintain.
Original PR description
This commit removes test files using a single 'describe' call to wrap its tests, with a name being either redundant with the test file itself or is too misleading.
Regular expression used to find isolated suites:
```js
/^\s*import.*(?:\n(?!describe\()(?!test\().*)+\ndescribe\("[\w\s.]+",.*(?:\n(?!describe\().*)+\n\}\);\n(?!\n)/
```
Tip for reviewers: tick **"Hide whitespace"** when reviewing diff
<img width="237" height="205" alt="image" src="https://github.com/user-attachments/assets/373f7cc6-5e0e-4599-968a-39aad8fac2f0" />
Community: https://github.com/odoo/odoo/pull/233006