Monday, December 8, 2025
11 changes · saas-18.2
Resolved issues and error corrections
This update fixes an accounting test so it creates its own customer data instead of depending on demo records that may not exist. This helps keep automated checks stable across environments and reduces the risk of avoidable testing failures.
Original PR description
## Versions 18.0 to saas-18.2 Fixed from saas-18.3 in PR #237375 ## Issue The test relies on demo data presence and tries to create an SO with an existing partner instead of creating a new partner, always present in the testing environment ## Cause PR #230644 added the test counting on Deco Addict's presence Forward-Port-Of: odoo/odoo#238284
Quotation templates for a branch company can now include products assigned to its parent company, matching the behavior already available in sales orders. This prevents errors when saving templates in multi-company setups and makes reusable quotations easier to manage across company hierarchies.
Original PR description
### Issue In this issue, having multi-company setup, we cannot make a quotation template with a product from the parent company. While this is allowed in sale order. #### To reproduce: 1- Create a product and in the product form, set the the company field to the parent company. 2- Create a quotation template and set the company field to the child branch. 3- In the quotation template, add a line and use the created product from the parent company. 4- Saving the form will raise an error. Talked with PO about the issue and he agreed that the quotation template should allow product from the parent company. This is already the flow in the quotation itself. opw-5177590 Forward-Port-Of: odoo/odoo#237732
Fixed a visual glitch in Email Marketing where the building blocks side panel briefly appeared when switching back to the email body tab for plain text campaigns. This keeps the editor display stable and avoids distracting users during campaign setup.
Original PR description
**Steps to reproduce:** - Go to the Email Marketing app - Create a new campaign and select the "Plain Text" Mail body for the template - Change between Mail body and Settings tabs - On Mail body tab, the right-hand building block section appears briefly (1 second) and then disappears **Issue:** Default state of the snippet menu has `snippetsMenuFolded` set to False before being inserted. **Fix:** As described in the comment just after the insert: ``` // Hide the snippetsMenu at first, other code will handle // if it should be shown or not. ``` So the fix ensure the menu is folded by default (not sure as to why the state was changed after inserting, so maybe it's expected). opw-5130191 Forward-Port-Of: odoo/odoo#238766
Freezing and sharing a spreadsheet now preserves empty text results from Odoo list formulas correctly. This prevents formulas such as text checks from showing different results after a spreadsheet is frozen, improving consistency for shared reports.
Original PR description
Steps to reproduce: - insert a list - expand the list beyond the number of records in order to have ODOO.LIST with no result - add =ISTEXT( <a reference to an empty ODOO.LIST> ) -> the result is TRUE - Freeze and share the spreadsheet => the result of ISTEXT is FALSE in the frozen version task-5360561 opw-5359100 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#237887 Forward-Port-Of: odoo/odoo#237511
This fix ensures IoT Box upgrade scripts can update required configuration files on newer images without permission errors. It also installs required Python packages for the correct service user, reducing upgrade failures and keeping ownership settings consistent.
Original PR description
On 25.06 images, the IoT Box upgrade script can't update `odoo.conf` file (modules to load) as odoo user running sed doesn't have enough permissions. We now run this command with sudo then ensure the ownership of the file is still `odoo:odoo` We now also ensure that pip requirements are installed for user `odoo` instead of root. Task: 5383045
This change eliminates a misleading warning banner that appeared during SEPA batch payments when a linked employee had an address. The system was already correctly generating reports using the employee's address, so this fix ensures a smoother user experience and avoids unnecessary alerts. This improves the reliability of batch payment processing.
Original PR description
…oyee has an address Doing batch payment for sepa payment would generate a warning banner if the partner has no address ( city and country ) However in reality ( already working ) the xml report will be generated with the linked employee address in the case of absence of the partner address thus it should not show a warning. The change removes the warning in this case. task: 5266346 Forward-Port-Of: odoo/enterprise#99928
This update resolves an issue where clicking a Field Service record in the kanban view opened it in the same tab instead of a new one. The fix corrects a technical error within the `industry_fsm` module that prevented the expected new-tab behavior when using a middle mouse click. This ensures a smoother user experience when accessing records.
Original PR description
Steps to reproduce: 1. Install `industry_fsm` 2. Open Field service module 3. In the kanban view, click a record with the middle mouse button Issue: - The record opens in the same tab instead of a new tab. Cause: - `FsmMyTaskKanbanRecord` overrides `onGlobalClick` without propagating the `newWindow` argument, preventing the expected new-tab behavior. Solution: - Forward the `newWindow` parameter to the parent implementation to restore the correct handling of the middle mouse click opw-5351842
This update fixes an issue where subscription details weren't correctly displayed in the dashboard. Specifically, it addressed a bug where sale order items were incorrectly shown alongside subscriptions and the subscription titles were not accurate. The change ensures subscriptions are presented clearly and accurately within the dashboard.
Original PR description
Before this commit, when subscriptions were linked to the analytic account of a project, the sale order items appears in an unwanted section when the section is unfolded. Meanwhile, when the subscription section is unfolded the title of the subscriptions items are not correctly displayed. The first issue is due to the fact that we did not correctly exclude the subscriptions items from the domain. The second issue is due to the fact that we fetch the field 'name' from the subscription search instead of the field 'display_name' task-5159781
This update corrects an issue where shipping labels for FedEx deliveries weren't including the company name entered during checkout. The fix ensures that the correct company information is used on shipping labels, improving order accuracy and customer experience. This was triggered by a discrepancy in how contact information is handled in the ecommerce system.
Original PR description
Steps to reproduce: - install ecommerce (i.e. website_sale) and delivery_fedex_rest - setup demo payment + fedex delivery method (including publishing it) - open the db while not logged in (i.e. in private browsing) - add something in the ecommerce page to cart + checkout > checkout - type in random contact info INCLUDING "Company Name" - continue checkout > select FEDEX as delivery method > pay now - go to Sales App > Sale orders > open the SO generated by ecommerce - open delivery + validate Expected result: - Shipping label with the name + company name from the ecommerce form Actual result: - company name is missing Issue is due to a company not being generated by ecommerce. Instead a string field is filled in (which is not visible when creating a contact directly via the contacts app). Code has been adapted to consider this use case. opw-5119089 Forward-Port-Of: odoo/enterprise#101376
This update fixes a technical issue that could display error messages to users during the payment process for rental events. The change prevents frontend tracebacks caused by unusual event configurations, ensuring a smoother experience for customers. While the rentable event ticket feature is being addressed, this fix improves overall stability.
Original PR description
Versions -------- - 17.0+ Steps ----- 1. Have `website_event_sale` but not `stock` installed; 2. create an event with a ticket; 3. make the ticket's product rentable; 4. change ticket's product type to Goods; 5. publish the event to website; 6. register for the event via website; 7. go to payment. Issue ----- AttributeError: 'bool' object has no attribute 'tzinfo' Cause ----- Having odd configurations like rentable tickets creates rental orders without rental dates, leading to unhandled errors. Solution -------- While rentable event tickets doesn't make enough sense to make it work, we can still improve the error handling to prevent showing tracebacks to the client. opw-5207045 Forward-Port-Of: odoo/enterprise#99000
This update ensures that downpayment taxes, when calculated externally (like with Avatax), correctly use the designated downpayment account set on the product category. Previously, it defaulted to the standard income account, leading to inconsistent tax calculations. This change aligns with expected downpayment behavior and improves accuracy.
Original PR description
**Problem:** When calculating taxes externally (such as Avatax) and a downpayment is made, the line on the invoice will always use the default income account, regardless of the downpayment account set as a company default. This is inconsistent with the standard behavior of downpayments, which will use the downpayment account set on the product's category instead of the income account (which themselves may come from company defaults). **Solution:** Check if there's a company default for downpayment account on product category and use this account for the downpayment line instead of the income account. opw-5171067 Forward-Port-Of: odoo/enterprise#101524