Friday, September 26, 2025
19 changes · 19.0
Enhancements to existing features
The default user group name has been changed back after feedback from use. This keeps terminology familiar for users and reduces confusion in access or role descriptions.
Original PR description
After using it, fp changed his mind.
The Indian reporting module now shows the IRN number in a more appropriate area of the vendor bill form instead of the title. This preserves the standard bill layout while making the number easier to copy when needed.
Original PR description
During testing in 19, I saw that the IRN field was in the title and that totally disturbs the standard layout of how a vendor bill form should look like in Odoo. In order to easily copy paste we add a class text-break (l10n_ec_edi has the same case for the authorization number)
Resolved issues and error corrections
This fixes an error that could appear after validating a reception and opening the move details when no package was assigned. Users can now view completed stock move details normally, even when package tracking is enabled but unused for that move.
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
Code cleanup and technical improvements
Generic builder tests were moved from the Website area into the shared HTML Builder area and updated to use common testing tools. This keeps checks better organized and reduces duplicated test effort, helping teams validate builder changes faster without affecting customer-facing behavior.
Original PR description
Forward-Port-Of: odoo/odoo#224522
Documentation and clarification updates
Fomasoft has been added as a contributor covered by Odoo's Contributor License Agreement. This is an administrative/legal update that helps ensure contributions can be accepted under the project's licensing rules.
Original PR description
Added new member Fomasoft --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix removes unnecessary test dependencies and duplicate test helper declarations in Knowledge, Manufacturing Work Orders, and Barcode. It helps keep automated checks stable without changing day-to-day user workflows.
Original PR description
runbot-error-232620
Scanning a product in the Barcode app now opens the same kanban-style view used elsewhere in barcode workflows. This removes an inconsistent list view and makes the product scanning experience more predictable for warehouse users.
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.
This fix makes automated tour tests load their required resources consistently and avoids a conflicting test library being included in sale timesheet assets. It improves test reliability across different installation setups without changing day-to-day business features.
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
This fixes an internal upgrade issue where Odoo could try to inspect dependencies for modules that are not available in the configured add-ons path. It helps upgrades proceed more reliably when some modules are missing or intentionally unavailable.
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
This fix ensures spreadsheet radar chart labels are shortened only when needed. Short labels now remain readable, while longer labels are neatly shortened with an ellipsis, improving chart clarity for users.
Original PR description
Before this commit: - Radar chart point labels were truncated incorrectly because Chart.js passes extra arguments (label, index, labels) to the callback. - As a result, truncateLabel received the index as maxLen and applied unnecessary truncation. After this commit: - The callback now wraps truncateLabel to pass only the label string. - This ensures long labels are truncated with ellipsis and short labels remain unchanged. Task: 5078858 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
Odoo now shows a user-friendly error when someone searches on certain many-to-many fields that are not stored in the database. This prevents confusing technical crashes and helps users or support teams understand why the search cannot be completed.
Original PR description
When searching non-stored many2many fields, fail with a user-friendly message.
`self.env['account.payment'].search([('reconciled_invoice_ids', '=', 1)])` today results in an AttributeError when trying to get the SQL for the bridge table name.
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThis fixes an error that could occur when shoppers opened a product page with an unavailable combination of options while using store pickup. The store location selector is now blocked for impossible combinations, preventing crashes and keeping the shopping experience stable.
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 checkout error that could appear when customers bought items that do not require delivery, such as paid event tickets. The address page now handles orders without a delivery section correctly, helping customers complete checkout without interruption.
Original PR description
This commit fixes the js error triggered on the address page of the checkout. The js targets the H5 tag containing the title of the delivery div. However, if there is no deliverable product such as event tickets, this div is not rendered and an error is triggered by the js when it tries to use the textContent attribute of the undefined element. Reproduce: Register for an event with paid tickets. The error will be triggered on the address page of the checkout. Task-5107362
The IoT Box remote debugging dialog now always shows the generate password button. This avoids confusion after the related request check was removed and ensures users can access password generation when needed.
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 stock users from running into an access error when sales line values include tax information. It allows the reinvoicing flow to continue smoothly without changing what users see or how they work.
Original PR description
Description of the issue/feature this PR addresses: When getting the sale line values as a stock user, we get an access error when trying to access taxes. We should bypass access checks for these values. The lines are already created with sudo. Current behavior before PR: User cannot read account.tax model. Desired behavior after PR is merged: Avoid error. (runbot.build.error/231611 - test_picking_reinvoicing) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
VAT payment instructions in Belgium and Netherlands reports now display with cleaner formatting when sent through the mail composer. This prevents awkward word breaks and misaligned fields, helping messages in the chatter look clearer and more professional.
Original PR description
Issue: -VAT payment instructions sent via mail composer were shown in the chatter with poor formatting. -Words could be split in half and fields were misaligned. Fix: -Updated the layout to improve text wrapping and field alignment in the chatter. Impact: -Ensures VAT payment instructions are displayed clearly and professionally in the chatter. task-5065873
This change removes a formatting issue in the IoT Box service setup that caused system logs to show a startup configuration warning. It helps keep device startup logs clean and avoids confusion when monitoring Odoo IoT Box services.
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 error in the HR contract helper was corrected so related contract versions are found accurately. This helps ensure employee contract history and related HR processes use the complete set of contract records.
Original PR description
The helper method to get all versions related to a contract was missing an '='. Forward-Port-Of: odoo/odoo#228420
Project and timesheet walkthrough tests now handle cases where project templates turn the New button into a dropdown. This helps keep automated checks reliable when demo data includes active templates, reducing false build failures.
Original PR description
Before this commit, project tours block on the Kanban and List "New" button being turned into a dropdown list when there are active project templates. These tours cannot be fixed by simply archiving or unlinking project templates before running them in the tests, because two of them are onboarding tours which need to work in both situations. With this commit, we add a new step in the tours that clicks on the "New Project" dropdown item when the button is a dropdown. Otherwise, the step will be skipped. Task-id: none (runbot builds including demo data were red)