Friday, September 26, 2025
19 changes · master
Resolved issues and error corrections
This fix prevents an error in GCC invoice localization when a company has no country set in its address. Users can now open General Settings normally even if the company country field is empty.
Original PR description
Steps to reproduce:-
- Install `l10n_gcc_invoice` module.
- Go to Companies and open current Company.
- Remove Country from company Address.
- Click on General Settings.
Error :-
Pastebin: https://pastebin.com/xWqVDWjB
```
File /home/odoo/odoo18/odoo/community/addons/l10n_gcc_invoice/models/res_company.py, line 13, in _compute_l10n_gcc_country_is_gcc
record.l10n_gcc_country_is_gcc = 'GCC' in record.country_id.country_group_codes
TypeError: argument of type 'bool' is not iterable
```
Root cause: At [1], `record.country_id.country_group_codes` is considered as iterable, but when no country is set on company it evaluates to False.
Solution: First check for `country_id` before checking `country_group_codes`.
[1]: https://github.com/odoo/odoo/blob/45fcd9716fe8cabd4db2ddbdf54caa8f69d5a013/addons/l10n_gcc_invoice/models/res_company.py#L13
Forward-Port-Of: odoo/odoo#227645This change fixes how automated tour test resources are loaded, avoiding conflicting or missing test dependencies. It helps keep Odoo's test runs consistent across different installations without changing normal user workflows.
Original PR description
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#228529
Viewing the details of a completed reception no longer crashes when a product line has no package assigned. This keeps warehouse staff from hitting an error in a valid workflow and makes package-enabled inventory operations more reliable.
Original PR description
Steps to reproduce: - Inventory -> Settings -> Enable Packages - Create a reception - Add a Product, put some quantity - Validate the reception - Open the move's details Issue: A traceback is generated, as now we're in a 'done' context and the widget should only display the closest package for each move line. But it didn't check whether there was a package assigned to the move line in the first place. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#228603
The online store now avoids opening the in-store pickup location selector when a shopper lands on a product option combination that cannot be sold. This prevents checkout-related error screens and keeps the product page experience stable for customers using pick up in store.
Original PR description
Steps to reproduce: 1. Configure 'pick up in store' delivery method 2. Open the page of the product with an impossible combination (e.g. Customizable desk) 3. Edit the url to have attribute values of the impossible combination (2,5) There is a traceback as there is no `inStoreStockData`. After fixing it, the widget was still clickable, but as there was no product, there was another traceback since the data was not present. After this commit, the location selector is prevented from being opened when the combitation is not possible. Forward-Port-Of: odoo/odoo#228592 Forward-Port-Of: odoo/odoo#228336
This fixes a small service configuration issue that caused misleading startup errors in Odoo IoT Box logs. The Odoo service startup behavior remains the same, but administrators should see cleaner logs and fewer false alarms during startup.
Original PR description
This PR fixes an error in Odoo journalctl logs: ``` Sep 12 01:11:48 iotbox systemd[1]: Starting odoo.service - Odoo IoT Box service... Sep 12 01:11:49 iotbox systemd[1]: /etc/systemd/system/odoo.service:5: Failed to parse sec value, ignoring: 0 # infinetely wait for Odoo to start Sep 12 ``` It looks like systemd attemps to interpret inline comments, which this PR removes task-5113737 Forward-Port-Of: odoo/odoo#228553
A small correction was made to ensure employee contract version records are found accurately. This helps HR-related processes rely on complete contract history and prevents missing related versions due to an incorrect lookup condition.
Original PR description
The helper method to get all versions related to a contract was missing an '='. Forward-Port-Of: odoo/odoo#228420
This fixes cases where an editable list row could remain in edit mode after users clicked certain controls, such as the search menu or a related-record field. Users now get more predictable behavior when navigating away from a row they were editing, reducing confusion and accidental unfinished edits.
Original PR description
In list_renderer.js, we add a click event listener on document to switch the edited row in readonly when we click outside the table. This obviously doesn't work if the user clicks somewhere, and the click event is stopped (stopPropagation). In particular, 2 issues arose: 1. clicking on the search bar caret to open the search menu doesn't leave edition. 2. clicking on a many2one input doesn't leave edition. This commit fix these two points. 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 passes action identification details into web views so Odoo Studio can correctly determine whether an action can be edited. It helps avoid cases where Studio lacks the needed context to offer editing options.
Original PR description
This information is required so that the studio can determine whether the action can be edited. opw-5066488 Forward-Port-Of: odoo/odoo#228472 Forward-Port-Of: odoo/odoo#227264
Opening All Orders from the partner list no longer clears the currently selected customer. This avoids extra re-selection steps for point of sale users and keeps checkout workflows smoother.
Original PR description
Before this commit, opening the All Orders from the partner list would reset the selected partner. As a result, the user had to reselect the partner after returning, which disrupted the workflow. opw-4972314 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#224904 Forward-Port-Of: odoo/odoo#222507
The project creation wizard now displays the Customer field neatly on one line when Billable is enabled. This removes a small visual inconsistency and makes the form easier to read and use.
Original PR description
**Steps to Reproduce:** - Go to the Projects app - Click "Create" to open the wizard - Enable the "Billable" option - Observe the alignment of the "Customer" field that appears **Issue:** The…
**Steps to Reproduce:** - Go to the Projects app - Click "Create" to open the wizard - Enable the "Billable" option - Observe the alignment of the "Customer" field that appears **Issue:** The "Customer" label and input field are stacked vertically, with the input's underline (green line) positioned below the label, leading to uneven spacing and misalignment compared to other fields. **Current behaviour:** - The "Customer" field is visually misaligned , its label and input are not horizontally aligned, causing UI inconsistency. **Expected behaviour:** - The "Customer" label and input field should align horizontally on a single line, with the input's underline matching the label's baseline. **Fix:** The layout is updated using proper flexbox classes to ensure the "Customer" label and input field appear on the same line with proper vertical alignment. Task-4949146 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#221242
The IoT Box remote debugging dialog now always shows the button to generate a password. This removes unnecessary confusion after related request checks were removed, making the password action consistently available to users.
Original PR description
Since we recently removed the check for the requests sent to the iot box controllers the generate password button being invisible doesn't make sense anymore. This PR makes it always visible Forward-Port-Of: odoo/odoo#228602
This fix prevents Odoo from checking dependencies for modules that are not available in the configured addons path. It helps upgrades proceed more reliably when optional or missing modules are encountered.
Original PR description
`Manifest.for_addon(module_name)` returns `None` if the module is unavailable in the addons path. This is a common case during upgrades. https://github.com/odoo/odoo/blob/ef15cb776ebdd409691cef03835b51fcf7e808da/odoo/modules/module.py#L280 See also: 8e496b3df0df708280c77b9a1ae15c46e922c3bc --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#228561
This fix places the related sale order information in the appropriate section of the stock picking form instead of beside the picking name. It prevents confusion for users viewing delivery or receipt details and keeps the form layout consistent.
Original PR description
The picking form had two times the field `picking_type_code` in the arch. One next to the name, and the other in the Additionnal info tab. In 2713876dbc70d, the xpath in `sale_stock` adds `sale_id` after picking_type_code. It was placed right next the the picking name. This commit uses another field (unique this time) to place the sale_id at a more suitable place. Task: 5073894 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#227488
This fix ensures Odoo listens on the correct network interface during Docker-based packaging tests. It prevents test failures caused by the server only accepting local connections, improving reliability of release validation.
Original PR description
Since fd2bc6e525b, the default Odoo http server interface is set to listen on 127.0.0.1. When testing the packaging with Docker, an rpc is sent through the Docker configured network interface so the Odoo server must listen on all interfaces to make it work.
The WhatsApp message composer now requires users to select a template before sending. This prevents an error that occurred when sending without a template and makes the process clearer for users.
Original PR description
Currently, an error occurs when the user attempts to send a whatsapp message without selecting a template. **Steps to Reproduce:** 1. Configure a WhatsApp Business Account and synchronize the templates. 2. Open any contact and click the "WhatsApp" button next to the phone number. 3. Remove the template and click Send Message. **Error:** `ValueError - Expected singleton: whatsapp.template()` **Cause:** At [1], it attempts to fetch the formatted body and header from the template ID. Since no template is selected, it results in an error. **Fix:** This commit makes the field `wa_template_id` required, preventing users from sending a whatsapp message without a template. [1] - https://github.com/odoo/enterprise/blob/fff9ad7999d4ff13adf899b2517e750a36c1261a/whatsapp/wizard/whatsapp_composer.py#L319 sentry-6854466874
The Helpdesk dashboard's SLA Success Rate action now opens the expected list of recently closed tickets resolved within the SLA. This helps support teams trust their performance metrics and quickly review successful SLA outcomes.
Original PR description
**Steps to Reproduce** - Install the Helpdesk module. - Check the My Performance section. - Click on SLA Success Rate. **Issue:** Clicking on SLA Success Rate does nothing. It should display the closed tickets from the past seven days that were resolved within the SLA. **Cause:** Missed a domain filter, so no data is returned or shown. **Fix:** - Add the correct domain filter to show closed tickets. - And also modified compute method as well, so both are aligned. The problem arises in this [commit](https://github.com/odoo/enterprise/pull/76079/files#diff-e145df8bcc8742bcac578d5b05b6fc1aeaef55d236952a2a58d61ac92ce84a67R258-R260) task-4781994 Forward-Port-Of: odoo/enterprise#85412
This update removes outdated test setup declarations that are no longer needed for Knowledge, Stock Barcode, and Manufacturing Work Orders. It helps prevent automated validation errors and keeps internal quality checks aligned with the current shared testing framework, with no expected change for end users.
Original PR description
runbot-error-232620 Forward-Port-Of: odoo/enterprise#95516
Scanning a product in the Barcode app now opens the same kanban-style view used by other barcode workflows. This creates a more consistent experience for warehouse teams and avoids the unexpected switch to a list view.
Original PR description
This commit is to show the kanban view as a default when scanning a product in barcode. Before PR: All views in barcode are in kanban view except when scanning a product, it appears in list view. After PR: Now barcode also shows kanban view when scanning a product. Forward-Port-Of: odoo/enterprise#95517
SEPA direct debit email templates now use the recipient partner's language. This ensures customers receive payment-related messages in the language expected on their account, reducing confusion and support follow-up.
Original PR description
Before this commit the mail sent were not translated in the language of the partner. task-5010120