Friday, July 4, 2025
12 changes · saas-18.2
Resolved issues and error corrections
This fixes an automated website payment donation test so it handles the brief payment confirmation redirect as a single step. The change helps keep validation of the donation flow stable, reducing false test failures without changing the customer-facing payment experience.
Original PR description
In this commit, we fix the donation_snippet_use tour. At the end of the tour, when you click on submit donation, you are redirected to a page "Your payment has been processed." From this page, you are then redirected to a page with "Thank you". This intermediate redirection page can be a problem if there are several steps that concern it because we do not know when the redirection will be triggered (in the first or the second step?) Therefore, it is essential to have only one step for intermediate redirections. 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#216671 Forward-Port-Of: odoo/odoo#216558
Corrects how the leave management app builds the list of team members shown as online. This prevents accidental behavior in the interface and makes online-status checks more reliable for users.
Original PR description
PR above made a typo in code in which list of "online" member IM status is a list of string, and it uses + to concatenate items like in python but this doesn't work in JS. Thankfully it kinda "worked" because this casted the array into list (e.g. `["a", "b"]` becomes "a,b") and other items were appended to string. Since this list was used for `.includes()` by chance the ".includes()" method is on Array and String and functionally this results to about the same intention... Again by chance! Forward-Port-Of: odoo/odoo#216771 Forward-Port-Of: odoo/odoo#216598
This update corrects how product attribute options appear on eCommerce product pages when viewed on iPhones and iPads. It removes an unwanted spacing issue so shoppers see cleaner, properly aligned option labels, improving the mobile shopping experience.
Original PR description
Before this commit, the pills attributes on a eCommerce product page on iOS has misaligned text That was caused by an iOS inconstancy with 'appearance: none;' A 'position: aboslute !important;' was added to force hiding the input like in saas-18.4 Expected:  Issue:  ## Steps to reproduce: - Add a product with attributes in eCommerce - Set the Attribute's Display Type to Pills - Go to the eCommerce product's page - Open the page on iPhone or iPad (using BrowserStack) - The selection for the attributes have a space before option's name opw-4854158 Forward-Port-Of: odoo/odoo#215520
This update improves Hoot, Odoo's internal testing toolkit, with fixes for search, debugging, event handling, and test stability. The changes are limited to the unit test environment, reducing maintenance burden and helping developers catch issues more reliably without affecting normal business operations.
Original PR description
## Pull Request HOOT (PRHOOT) 34 This pull requests brings various improvements and fixes to Hoot and the Odoo unit test ecosystem. See the different commit messages for more details. Note: these changes are made in stable to avoid having to support multiple versions of the HOOT API. As such, these changes are intended to be strictly limited to unit tests as to not put the rest of the code base at risk. Enterprise: https://github.com/odoo/enterprise/pull/88949 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#217067 Forward-Port-Of: odoo/odoo#216546
This fixes an issue where creating multiple manufacturing orders at once could calculate the planned finish date using the wrong expected work order duration. The change helps ensure batch-created production orders get accurate dates, reducing scheduling mistakes for manufacturing teams.
Original PR description
If you create mrp.production in batch, date_finished is wrong. Note: it probably works as is in standard flow because always used on a single record (ex: form view) but it might break custom code. opw-4629270 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#216550
Fixed an issue in Project reporting where clicking chart bars after grouping by tasks could fail because report-only filters were sent to the task view. The system now removes incompatible filters before opening the detailed task list, making analysis navigation more reliable.
Original PR description
Step to reproduce - Go to Project - Go to Reporting > Task Analysis - Group by Tasks (not Task) - Click on any of the blue bars Issue: since odoo/odoo@c36ad1896 we now allow user to drill down to base model from report view, this causes issue when a field which is present in report model but not in base/main model. For now we directly pass the domain created for report view to base model. FIx: we only open the view, when the such fields are not present in domain opw-4798353 related : https://github.com/odoo/enterprise/pull/88356 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Follower notification emails now show a cleaner layout by removing an extra separator between the header and message body. This avoids visual clutter when users are added as followers and receive a notification.
Original PR description
When adding an Odoo user as a follower to a lead/task/..., there are two separators between the message header and its body. This commit removes the extraneous separator. Steps to reproduce: - Open a lead/task/... - Add Marc Demo as a Follower - Toggle the option to have them notified task-4889715 Forward-Port-Of: odoo/odoo#217291
The bank account form no longer shows repeated labels for the clearing number field when multiple localizations are installed. This reduces confusion for users entering or reviewing bank details in US localization flows.
Original PR description
When having multiple localizations having different names for the clearing number field, label duplicates on the form view. task-4630586 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update strengthens automated checks for electronic invoice XML files by making sure required namespace information matches expectations. This helps catch formatting issues earlier, reducing the risk of incorrect e-invoices being generated for localized accounting flows.
Original PR description
At the moment, the `assertXmlTreeEqual` test method doesn't check that the namespaces in the generated XML match the ones in the expected XML. This is a 'feature', but in practice it prevents us from ensuring that our generated XMLs are correct. From now on, we also check namespace equality. Enterprise PR: https://github.com/odoo/enterprise/pull/87950 task-none Forward-Port-Of: odoo/odoo#217182 Forward-Port-Of: odoo/odoo#214764
Partner Ledger XLSX exports now include entries without an assigned partner when users search for “Unknown Partner.” This ensures downloaded reports match what users see on screen and avoids missing accounting lines in exports.
Original PR description
### Issue: When searching for "Unknown Partner" in the Partner Ledger to get the lines with no partner, nothing shows on the downloaded XLSX. ### Steps to reproduce: - Have a partner Ledger with -…
### Issue:
When searching for "Unknown Partner" in the Partner Ledger to get the lines with no partner, nothing shows on the downloaded XLSX.
### Steps to reproduce:
- Have a partner Ledger with
- Search for "unknown Partner" in the search bar, only the lines grouped under "Unknown Partner" are shown.
- Click on the button "XLSX"
- The downloaded document does not include "Unknown Partner"
### Cause:
When `filter_search_bar` has a value, the domain used to query the partners/lines will check if the names of the partner match the search text. The resulting SQL query excludes the lines where `partner_id` is `NULL`.
### Solution:
Add a new condition in the domain: `('partner_id', '=', False)` This way the lines with no partner are returned by the query
When searching another existing partner these lines are excluded by an [already existing filter](https://github.com/odoo/enterprise/blob/8eff9194618a1d181c57820829e53aa23c7759d5/account_reports/models/account_partner_ledger.py#L55-L58). It excludes the lines if the search test does not match "Unknown Partner".
opw-4772529
Forward-Port-Of: odoo/enterprise#88139Updated automated tests to verify the XML namespace information used in payment and electronic invoicing files. This helps ensure country-specific electronic document formats remain accurate and compliant, without changing day-to-day user workflows.
Original PR description
Before, we weren't asserting XML namespaces when calling `assertXmlTreeEqual`. As a result, many expected XMLs in EDI tests had incorrect namespaces. Now that we change the test method to check namespaces, we also need to fix the expected XMLs. Community PR: https://github.com/odoo/odoo/pull/214764 task-none Forward-Port-Of: odoo/enterprise#89303 Forward-Port-Of: odoo/enterprise#87950
The bank reconciliation report now shows journal entry amounts in the correct currency when journals use a different currency from the company. This prevents misleading totals or currency symbols in reconciliation work, helping finance teams review entries accurately.
Original PR description
…eport Currently in bank reconciliation report we expect all the entries to have the balance encoded in journal currency However it may not be the case if an entry is posted in a misc journal set in another currency Steps to reproduce: - Create a new journal in another currency (€) than the company's ($) - Create a new journal entry using the journal main account - Go to the account dashboard > click on the 3 dots of the journal - Open the Reconciliation report Issue: The journal entry amount is in company curreny (balance), but with the journal currency symbol (€) opw-4701349 Forward-Port-Of: odoo/enterprise#87635 Forward-Port-Of: odoo/enterprise#87313