Tuesday, November 25, 2025
36 changes · saas-18.3
Enhancements to existing features
This update enhances the Peppol Registration Wizard by streamlining the user experience. Specifically, a warning banner now only appears after endpoint details are entered, and a placeholder has been removed for clarity. This simplifies the process for users registering for Peppol.
Original PR description
In the Peppol Registration Wizard: - Warning banner should only show up when endpoint as been filled - Remove placeholder - ~Remove the "in" migration~ Ref PR for master: odoo/odoo#234088 Task [link](https://www.odoo.com/odoo/project/967/tasks/5170831?debug=assets) task-5170831 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#235982 Forward-Port-Of: odoo/odoo#234087
This update enables the IoT box to connect without requiring a secure HTTPS certificate. By utilizing Local Network Access (LNA), the system now defaults to HTTP requests, simplifying the connection process and improving reliability. This change ensures consistent functionality for IoT devices.
Original PR description
Enterprise PR: https://github.com/odoo/enterprise/pull/100331 **This PR contains 2 commits:** - **[IMP] iot_base: allow use of LNA for IoT requests** Chromium 142 added support for HTTPS -> HTTP…
Enterprise PR: https://github.com/odoo/enterprise/pull/100331 **This PR contains 2 commits:** - **[IMP] iot_base: allow use of LNA for IoT requests** Chromium 142 added support for HTTPS -> HTTP requests on the local network (Local Network Access). This commit adds a flag to the IoT longpolling class to enable LNA support. The flag forces all requests to use HTTP even in an HTTPS environment. It also sets the `targetAddressSpace` option to `local` in the `fetch` request. - **[IMP] point_of_sale: use_lna support for IoT requests** Since https://github.com/odoo/odoo/pull/235702, there is a `point_of_sale.use_lna` system parameter. When it is set, ePOS requests will use HTTP instead of HTTPS, and the `targetAddressSpace: "local"` option is used in the `fetch` request. This bypasses the need for a HTTPS certificate. This commit adds the same functionality to all IoT requests from the POS. This should allow the IoT box to function correctly without a HTTPS certificate. task-5353672 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This pull request introduces new automated tests for the UrbanPiper integration, ensuring the functionality continues to work correctly. Additionally, several minor fixes have been implemented to improve stability and data accuracy, specifically related to receipt printing and timer display.
Original PR description
## 1. Hoot test
in this commit:
- add HOOT tests for components, model, screen, and service
- added test for methods in `order_info_popup` and `order_display`
- include tests for `pos_order`, `ticket_screen`, and `pos_store`
- add utility to generate UrbanPiper-filled order
## 2. minor fixes
in this commit:
- kept serialized data for receipt printing
- ensure timer does not display negative values
- correct variable usage in ticket screen to fetch proper props for display order
- revamp `getTime` method to use l10n time format
task: 5048312Resolved issues and error corrections
This update resolves an issue where closing Studio resulted in a technical error. The fix ensures that POS-specific views are correctly loaded, allowing users to enable and disable the Kanban view within Studio without encountering the 'pos_kanban' key error. This improves Studio's stability and usability.
Original PR description
**Steps to reproduce:** * Install the *pos_appointment* and *web_studio* modules. * Open **Appointments → Schedule → Resource Booking**. * Activate Studio. * In Studio, open the **Views** panel and enable the **Kanban** view. * Attempt to close Studio; a traceback occurs. **Observed behavior:** * Closing Studio triggers a traceback: *'Cannot find key 'pos_kanban' in the 'views' registry'.* **Cause:** * POS-specific views are not loaded in the **web.assets_backend** bundle, so the backend environment cannot register the required `pos_kanban` view when Studio activates it. **Fix:** * Load the necessary POS assets in the backend bundle to ensure POS views are registered and available when Studio try to load them. --- opw-5186459
This update resolves an error that occurred when the system automatically cleaned up data related to withhold taxes. The issue stemmed from a technical limitation with how the system linked the Withhold Wizard to its associated lines, causing a database error. The fix ensures a smoother and more reliable cleanup process.
Original PR description
Currently an error occurs when auto-vacuum tries to clean up Withhold wizard which is a transient model but fails because it is still linked with Withhold lines wizard. **Steps to replicate:** *…
Currently an error occurs when auto-vacuum tries to clean up Withhold wizard which is a transient model but fails because it is still linked with Withhold lines wizard. **Steps to replicate:** * Install `l10n_ec_edi` and change company to `EC company` * Create invoice with customer `EC Company` > Set Payment Method (SRI) > Confirm * Add Withhold > Document number: `001-001-123456789` > Add lines > Create & Post * Set system time to future date > Run `Base: Auto-vacuum internal data`. Refer video [1] for replication steps. **Error:** `psycopg2.errors.ForeignKeyViolation:update or delete on table 'l10n_ec_wizard_account_withhold' violates foreign key constraint 'l10n_ec_wizard_account_withhold_line_wizard_id_fkey' on table 'l10n_ec_wizard_account_withhold_line' ` **Root cause:** * The error happens because Withhold Wizard [2] is a transient model that gets cleaned up by function [3] after reaching its max hours. * However, since [2] is linked to Withhold Wizard Lines [4], the cleanup fails, causing the error. **Solution:** * Unlink the lines first and then unlink the wizard. [1]: https://drive.google.com/file/d/1HethT8tpa3Ez0uwueUuKzW4F7KxEKOv_/view?usp=sharing [2]: https://github.com/odoo/enterprise/blob/2275fe560d5db0b5a21ffbc4d4c66264e4e12601/l10n_ec_edi/wizard/l10n_ec_wizard_account_withhold.py#L20 [3]: https://github.com/odoo/odoo/blob/e062c9b5773ed0710503c13627e60f8233fcd0a5/odoo/models.py#L7465-L7497 [4]: https://github.com/odoo/enterprise/blob/7ca0635d4c479a956bfae8fb60da8b50362fd99b/l10n_ec_edi/wizard/l10n_ec_wizard_account_withhold.py#L423-L427 sentry-6253783256 Forward-Port-Of: odoo/enterprise#99653
This update prevents a bug where the 'Unfollow' button appeared when a portal user opened a shared project with a new, unsaved task. The fix ensures the button is hidden until the task is properly saved, improving the user experience and preventing errors.
Original PR description
Currently, an error occurs when a portal user opens a shared project and clicks the `Unfollow` button in the chatter of a `new(unsaved)` task. **Steps to produce:** - Install the `project` module. -…
Currently, an error occurs when a portal user opens a shared project and clicks the `Unfollow` button in the chatter of a `new(unsaved)` task. **Steps to produce:** - Install the `project` module. - Open the project app and create a new project with at least one task. - From the project’s `dropdown menu(⋮)`, select `Share Project`. - Add a `collaborator: Joel Willis`, with `Edit access mode`, copy the `public link`, and click `Share Project`. - Open the shared link in an incognito window and sign in as a `portal user`. - Open the project folder > open any task > click `New` > click `Unfollow` button. **Error**: `ValueError: Expected singleton: project.task()` **Root cause:** The Unfollow button at [1], is displayed even when the task record is not yet saved (`props.threadId` is `undefined`). At [2], the method is called on an empty recordset, causing an `error`. **Fix:** This commit prevents the error by ensuring the `Unfollow` button is hidden when the record is `unsaved`. [1]: https://github.com/odoo/odoo/blob/be138ef2ff1b3a83f77fe300f789d754ed3383fd/addons/project/static/src/project_sharing/chatter/portal_chatter_patch.xml#L7-L14 [2]: https://github.com/odoo/odoo/blob/be138ef2ff1b3a83f77fe300f789d754ed3383fd/addons/project/models/project_task.py#L2022 No task ID Forward-Port-Of: odoo/odoo#236633
This update addresses an issue where pressing Backspace within a blank blockquote would unexpectedly delete the entire Table of Contents. The change now converts an empty blockquote into a standard container when Backspace is pressed, ensuring the Table of Contents remains intact and the editor functions as expected. This improves the user experience and prevents data loss.
Original PR description
### Steps to reproduce: - Create a new Project task. - Insert a Table of Contents (e.g., /tableofcontent). - Insert a quote below it (e.g., /blockquote). - Place the cursor at the start of the empty quote and press Backspace. - The Table of Contents is removed. ### Desired behavior after PR is merged: - Empty blockquote is converted into a base container when backspace is pressed. task-5246130 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#235087
#### Issue: The Swissdec test suite was failing during setup with the following error: ``` ValueError: External ID not found: product.group_product_manager KeyError: False ``` #### Root cause: The Swissdec test setup tried to access a standard `product` group, but the `product` module wasn’t installed in the test DB (because no dependencies were declared that would install it). This left the test environment incomplete and caused the XML ID lookup to fail. #### Fix: Add `accou
Original PR description
#### Issue:
The Swissdec test suite was failing during setup with the following error:
```
ValueError: External ID not found: product.group_product_manager
KeyError: False
```
#### Root cause:
The Swissdec test setup tried to access a standard `product` group, but the `product` module wasn’t installed in the test DB (because no dependencies were declared that would install it). This left the test environment incomplete and caused the XML ID lookup to fail.
#### Fix:
Add `account` to the dependencies so that `product` is installed automatically and the required XML ID is available during test setup.
[RB-234176](https://runbot.odoo.com/odoo/error/234176/runbot.build.error/234176)Steps to reproduce ------------------ 1. Create a product with a UoM that is non groupable in PoS 2. Make a sale order with that product having a UoM that is based on the UoM of the first steps. If the UoM in the first step was Kg for intsance, use Gram (g) here. 3. Confirm the order, and settle it in PoS. Notice that the price of that order in PoS is not correct. Why it's happening ------------------ When settling the PoS order, we first convert the sale_order's line UoM (g
Original PR description
Steps to reproduce ------------------ 1. Create a product with a UoM that is non groupable in PoS 2. Make a sale order with that product having a UoM that is based on the UoM of the first steps. If…
Steps to reproduce ------------------ 1. Create a product with a UoM that is non groupable in PoS 2. Make a sale order with that product having a UoM that is based on the UoM of the first steps. If the UoM in the first step was Kg for intsance, use Gram (g) here. 3. Confirm the order, and settle it in PoS. Notice that the price of that order in PoS is not correct. Why it's happening ------------------ When settling the PoS order, we first convert the sale_order's line UoM (g) to the original product UoM (kg), and we update the quantity accordingly (in this example by dividing by 1000). https://github.com/odoo/odoo/blob/fcc5a90d2d5754923676b11031e37f52729402fd/addons/pos_sale/static/src/overrides/models/pos_store.js#L94-L96 So this step updates both the qty and the unit_price. https://github.com/odoo/odoo/blob/fcc5a90d2d5754923676b11031e37f52729402fd/addons/pos_sale/static/src/overrides/models/pos_store.js#L160-L161 However, when the UoM is not groupable, we split the lines by taking into consideration the updated qty, but we still use the old price_unit, which creates an inconsitency and wrong calculations. The fix ------- When splitting the lines, we're just supposed to change the qty per line to max 1, but we're not supposed to change the price per unit for this qty. We now use the updated `price_unit` to have a correct math. opw-5232571 Forward-Port-Of: odoo/odoo#237172 Forward-Port-Of: odoo/odoo#236008
## Issue 1: In this issue, active/inactive filter is not working correctly. #### To reproduce: 1- Install `Sale` 2- Active `Promotions, Loyalty & Gift Card` 3- In `Discount & Loyalty` create a loyalty program 4- Create a `Loyalty Card` for the program 5- Archive the card 6- In search, click on `inactive` filter As you see, you can't find the archived card. ### Cause: This is caused due to setting the filter on `program_id.active` rather than `loyalty_card.active`. ## Issue 2:
Original PR description
## Issue 1: In this issue, active/inactive filter is not working correctly. #### To reproduce: 1- Install `Sale` 2- Active `Promotions, Loyalty & Gift Card` 3- In `Discount & Loyalty` create a…
## Issue 1: In this issue, active/inactive filter is not working correctly. #### To reproduce: 1- Install `Sale` 2- Active `Promotions, Loyalty & Gift Card` 3- In `Discount & Loyalty` create a loyalty program 4- Create a `Loyalty Card` for the program 5- Archive the card 6- In search, click on `inactive` filter As you see, you can't find the archived card. ### Cause: This is caused due to setting the filter on `program_id.active` rather than `loyalty_card.active`. ## Issue 2: In this bug, earned points on archived loyalty can be used to claim rewards. #### To reproduce: 1- Install `Sale` and `Ecommerce` 2- Active `Promotions, Loyalty & Gift Card` 3- In `Discount & Loyalty` create a loyalty program 4- Add a rule to grant 10 points per order 5- Apply a reward in exchange of 10 points 6- Create a `Loyalty Card` for the admin with 0 points. 7- In Ecommerce, add a product to your cart 8- Remove the product from the cart 9- Archive the loyalty card created for the admin 10- In Ecommerce, add another product to cart 11- As you see, you still can use the loyalty card ### Cause: When a product is first added to the cart, a `sale.order.coupon.points` record is created to grant points. Even if the cart is later emptied, the created `coupon_point_id` still exists. After the loyalty card is archived, points are still granted to this existing `coupon_point_id`, allowing it to be used to claim rewards. To prevent this, we can unlink points from draft sale order when the card is archived. opw-5166696 Forward-Port-Of: odoo/odoo#233645
This update resolves an issue in the Odoo Enterprise Peru UBL export that was causing errors due to an incorrect partner reference. The fix removes a problematic code addition, ensuring the UBL XML conforms to Peruvian regulations and avoids export failures. This improves the reliability of our Peru-specific accounting reports.
Original PR description
In the Peru UBL, adding a reference to a partner would cause an error from the OSE (code 3090). This was because the call to super in _get_partner_party_identification_vals_list would add the partner.ref as an ID, which is incorrect in the Peruvian context. Removed the call to super which did not bring any other information. ticket-5193233 Forward-Port-Of: odoo/enterprise#100043
This update corrects a technical issue where unregistering a Nemhandel user caused it to be lost from the system's user database. Previously, attempting to manually unregister a user would result in an error. This fix ensures that users are properly tracked, preventing data inconsistencies and improving system stability.
Original PR description
If you unregister a Nemhandel user, it won't ever be picked up by the user db. And trying to unregister by hand will give a traceback. This is due to mismatch between Exception types. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#236670
This update fixes an issue where the SAFT report incorrectly assigned the supplier's receivable account to customers. The fix changes the XML data to use the correct customer receivable account, ensuring accurate reporting for Romanian VAT returns. This resolves a discrepancy identified in the SAFT report output.
Original PR description
### Issue: In the SAFT report both the Customer and the Supplier have the same account. ### Cause: In the XML there was probably a typo and both have `property_account_payable_id` as account. ### Solution: For the `Customers` node, use `property_account_receivable_id`. opw-5144009 Forward-Port-Of: odoo/enterprise#99196
This update adds a notification to alert users when they are utilizing the Chorus Pro module without the necessary module installed. This ensures they have access to all required checks and functionality, preventing potential issues and maintaining system integrity. It's a proactive measure to support a smooth user experience.
Original PR description
This commit will add an alert when the customer use Chorus pro but don't have the module installed, and so don't have all the additional checks <img width="982" height="242" alt="image" src="https://github.com/user-attachments/assets/fc35d4ee-9a8b-41b8-8ee3-cbc32b266379" /> task-5223874 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#236856
This update addresses a problem where image resizing within Odoo's Studio reports didn't consistently work. Due to technical limitations with how PDF generation is handled, percentage-based image sizing wasn't correctly translated. The fix disables the image resize option in Studio to ensure accurate PDF output.
Original PR description
Problem: When resizing an image in Studio within any report, the change is not reflected in the generated PDF. This happens because `wkhtmltopdf` does not support percentage-based `width` / `height` values, which are used by the resize tool (e.g., `width: 25%`). Solution: Disable the image resize option in Studio when editing reports, since the resulting `%` sizing cannot be rendered correctly in PDFs. Steps to reproduce: 1. Open Studio → Reports → open any report. 2. Add an image. 3. Resize it to 25%. 4. Save and print the PDF. 5. The image appears at its original size in the PDF. opw-5233052 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#237088
This update resolves a bug where image resizing within Odoo Studio reports didn't correctly translate to the generated PDFs. The issue stemmed from a limitation of the PDF generation tool (`wkhtmltopdf`) which doesn't handle percentage-based sizing. The fix disables the image resize option in Studio to ensure accurate PDF output.
Original PR description
Problem: When resizing an image in Studio within any report, the change is not reflected in the generated PDF. This happens because `wkhtmltopdf` does not support percentage-based `width` / `height` values, which are used by the resize tool (e.g., `width: 25%`). Solution: Disable the image resize option in Studio when editing reports, since the resulting `%` sizing cannot be rendered correctly in PDFs. Steps to reproduce: 1. Open Studio → Reports → open any report. 2. Add an image. 3. Resize it to 25%. 4. Save and print the PDF. 5. The image appears at its original size in the PDF. opw-5233052 Forward-Port-Of: odoo/enterprise#100301
This update corrects a technical issue where stopping ringtone playback caused unnecessary HTTP requests. The fix resets the element's source, preventing the browser from attempting to load a "null" file and improving performance. This ensures ringtones play correctly without impacting system resources.
Original PR description
Setting the src of an element to null triggers a GET HTTP request to /null. This is not the intended behavior; we want to reset the source so that it is not linked to any file, but the browser interprets it as an attempt to load a file called "null". This commit fixes the problem by resetting the source using removeAttribute instead. [Task-5349985](https://www.odoo.com/odoo/project/5778/tasks/5349985) Forward-Port-Of: odoo/enterprise#100146
This update prevents the 'My Drive' folder from automatically unfolding when you open folders within it, like 'Company'. Previously, this behavior caused confusion and an inconsistent user experience. This change ensures folders only unfold when their parent folders are opened.
Original PR description
Steps to reproduce =================== - Go to the `All` section. - Open the folder hosted in the `My Drive`. - `My Drive` gets unfolded. To Be ===== - The` My Drive` folder should not be unfolded when opening folders inside it, like `Company`. Technical =========== - Earlier, we were sticking to the condition that allows other root folders to unfold when we open a folder inside it, except the `Company` folder. After this commit ================== - This commit addresses the issue, and now whenever we click on a certain folder it will not unfold until its root is unfolded. Task-5046161 Forward-Port-Of: odoo/enterprise#93718
This update resolves an issue where importing journal entries targeting inactive accounts would trigger excessive errors. The change now allows importing these items without regard to the account's active status, streamlining the import process and preventing disruptions.
Original PR description
When importing journal items, if an item targets an inactive account, the import is causing an excessive error. We shall ignore the active/inactive flag in such a case. task-5350113 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
A minor technical correction was made to the Odoo accounting software for Saudi Arabia (l10n_sa) to ensure accurate QR code tax calculations. This fix, which was previously implemented, was accidentally removed during a recent update. The change ensures compliance with Saudi tax regulations.
Original PR description
This change was part of 04a4403 and was accidentally removed during a recent forward port. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves an issue where creating annotations in Arabic language reports would generate an error due to incorrect date formatting. The fix ensures dates are formatted using the standard Latin numbering system, preventing the error and allowing users to correctly add annotations in Arabic. This improves the reliability of the general ledger reporting.
Original PR description
Steps to reproduce: ------------------- 1. Install `account_reports` 2. Switch the user language to Arabic 3. Go to Accounting > Reporting > General Ledger 4. Click on the 3-dots > Annotate 5. Create a new annotation Issue: ------ A traceback occurs: ```python psycopg2.errors.InvalidDatetimeFormat: invalid input syntax for type date: "٢٠٢٥-١١-٣٠" LINE 1: ... '2025-11-14 07:05:06.400902', 2, '٢٠٢٥-١١-٣٠', ... ``` Cause: ------ In Arabic locale, Luxon formats dates using the Arabic numbering system, which is not a valid date literal for PostgreSQL, leading to an invalid date syntax error. Solution: --------- Use the Latin numbering system (`latn`) when formatting the annotation date. Ticket [link](https://www.odoo.com/odoo/project.task/5244656) opw-5244656 Forward-Port-Of: odoo/enterprise#99493
This update resolves an issue where shared Knowledge articles wouldn't display correctly for users accessing them through different website languages. The fix corrects a URL rewriting problem, ensuring articles are accessible regardless of the user's preferred language setting, improving the user experience for all portal visitors.
Original PR description
## Issue: When multiple languages are enabled on the website (English + another), sharing a public Knowledge article may block portal users from accessing it For example, if the website’s default…
## Issue: When multiple languages are enabled on the website (English + another), sharing a public Knowledge article may block portal users from accessing it For example, if the website’s default language is Spanish and the user opens the link, they are redirected to the home page and the article does not appear in the sidebar ## Cause: When accessing `/knowledge/article/...`, the `_match` route handler automatically rewrites the URL to `/en/knowledge/article/...` However, the website only recognizes `/es/knowledge/article/...`, so the rewritten URL is not valid As a result, the user falls back to `/knowledge/article/new`, which triggers a redirection to the home page ## Steps to reproduce: - Install Knowledge and Knowledge Website - Set Spanish and English (US) as available website languages - Set Spanish as default website language - Create an article in knowledge - Click Share and activate "Share to web" - Copy the link and open it in a private window (The article should be visible) - Log in as a Portal user - Open the link - The user is redirected to the home page and the article is missing from the sidebar opw-4916118 Forward-Port-Of: odoo/enterprise#96505
This update resolves a reporting error in the invoice report for Odoo Enterprise when companies use the 'tax included' setting for their taxes. The fix corrects a display issue showing duplicate currency symbols and ensures the 'Total' column accurately reflects prices including tax. This improves the accuracy of financial reporting for Kenyan customers.
Original PR description
When the company is "tax included" for all taxes, after signing to eTims, the invoice report: - shows the currency symbol twice for "Taxable Amount". - The xpath for 'td_subtotal' is also doubled for no reason. - The "Total" columns is always price excluded instead of being price included. task_id: 5252530 Forward-Port-Of: odoo/enterprise#100050
This update streamlines account reporting settings for users in specific countries, ensuring relevant options are displayed based on their reporting needs. Previously, users had to manually determine acceptable fiscal year settings, which has now been automated to prevent confusion and improve the reporting experience.
Original PR description
We're adding several countries to the settings, each time a user from this country has specific fiscal year and does non-monthly reporting. It's cumbersome, as we have to know in which country it's acceptable. At the same time, we don't want to show a setting if it's useless to the user. It will just confuse him. So, we should show this setting as soon as the report will complain: - If it's monthly and he does not start at the beginning of the month. - If he does non-monthly and does not end on 31st of December. We could be even more selective and also compute which months would be valid if in quarterly and other modes but we think it's fine for these cases. Forward-Port-Of: odoo/enterprise#100181
This update enhances the stability of our IoT Box integration by splitting websocket messages to target individual IoT devices instead of multiple ones. This change ensures better compatibility with newer IoT Box versions and improves overall system performance. It addresses a technical issue related to communication with our IoT devices.
Original PR description
In order to ensure ws compatibility with stable IoT Boxes versions, we now split websocket messages to send one per IoT identifier, instead of one targeting multiple ones. related: odoo/odoo#234175 Forward-Port-Of: odoo/enterprise#100205 Forward-Port-Of: odoo/enterprise#100127
This update resolves an issue where the properties import process would fail if the user lacked access to the underlying definition model. The fix now includes checks for field group restrictions, preventing crashes and ensuring a more reliable import experience. A new test case has been added to cover both scenarios.
Original PR description
…ible https://github.com/odoo/odoo/pull/236037 ignores the properties field if we don't have access to the definition model at all. However, we should also check field groups to avoid crashing if the user cannot access the definition field because of group restrictions. Forward-Port-Of: odoo/odoo#237166 Forward-Port-Of: odoo/odoo#236912
This update fixes an issue where deprecated accounts (inactive accounts) were not appearing in the General Ledger report. The change adjusts how Odoo filters account data, ensuring historical accounts with transactions are correctly displayed in reports. This improves the accuracy of financial reporting.
Original PR description
**Description:** Deprecated accounts (active=False) with historical transactions were not appearing in the General Ledger report. **Steps to Reproduce**: - Go to Accounting > Reporting > General…
**Description:** Deprecated accounts (active=False) with historical transactions were not appearing in the General Ledger report. **Steps to Reproduce**: - Go to Accounting > Reporting > General Ledger - Choose an account code from the report (e.g 121000) - Go to Configuration > Chart of Accounts - Click on the account code 121000 and set the active field to False - Go back to the General Ledger report and notice the account cod no longer exist in the report even though it historical transactions **Root Cause:** In Odoo 18.3, the `deprecated` field was replaced with the `active` field. - `deprecated` field: Manual filtering only (where explicitly coded) - `active` field: Automatic ORM filtering (implicit in ALL searches) When the account search in `_query_values()` executes, Odoo's ORM automatically adds `AND active = TRUE` to filter out inactive records. This means deprecated accounts are silently excluded from reports. **Fix:** Added `with_context(active_test=False)` to the account search which disables automatic filtering for this specific query, restoring the original behavior where deprecated accounts appear in historical reports while remaining hidden in form dropdowns. opw-5092275
This update fixes an issue where channel names in the sidebar weren't displaying correctly when inviting users to channels. The change ensures the correct channel name is used in the invite dialog, improving the user experience and preventing confusion. This resolves a visual inconsistency.
Original PR description
Before this commit, certain channels whose names were computed on the client side did not appear correctly as the title of the invite dialog when opened via the sidebar actions. This commit resolves the issue by using the channel’s displayName instead of the thread.name to ensure the correct title is shown in the invite dialog. task-5357104
This update fixes an issue where the initial message subtitle wasn't displayed correctly for group chats in Odoo. The change ensures the correct start message and subtitle are shown across all channel types, improving the user experience. A new test has been added to verify this functionality.
Original PR description
Before this commit, The start message subtitle condition was incorrect for group chats, this commit corrects that condition and also add a test to cover all the channel types to show correct start message and subtitle. Before: <img width="625" height="109" alt="image" src="https://github.com/user-attachments/assets/830f9574-573f-4448-b54f-b70c8a4685ef" /> After: <img width="640" height="133" alt="image" src="https://github.com/user-attachments/assets/bcba270a-88fc-446d-9015-1125872c5748" />
This update addresses a missing feature in the annual corporate tax return reporting within Odoo Enterprise. The fix adds a 'reviewed bubble' and a 'Mark as completed' button to the reporting interface, streamlining the process for users to finalize and track their tax returns. This improves the usability and accuracy of tax reporting.
Original PR description
Missing: - reviewed bubble - Mark as completed button
This update resolves an issue where corrupted translation files for the l10n_id_efaktur_coretax module were preventing proper translations. The team regenerated the files, ensuring accurate translations are available for Indonesian users. This ensures consistent and correct functionality for our Indonesian customers.
Original PR description
Two forward-port commits[^1],[^2] corrupted the POT files of these modules. They both resulted in missing `msgstr` entries causing the `msgmerge` in Weblate to fail. This commit regenerates the POT files to fix the issue. [^1]: https://github.com/odoo/odoo/commit/4e51a4a259bbb36dbbd7f6aa59ba30280f97cd89 [^2]: https://github.com/odoo/odoo/commit/f3286d792e17746d2330b5e06d5c5c8e01c52928 Forward-Port-Of: odoo/odoo#237073 Forward-Port-Of: odoo/odoo#237031
This update optimizes the Odoo stock module by preventing unnecessary processing when unpacking empty product packages. Previously, a slow function was executed regardless, impacting user request speeds. Now, the system only performs these tasks when actual products are present, leading to a faster and more responsive experience.
Original PR description
For an empty package the `quant_tasks` function will be executed without restriction of scope and can potentially slow the user request intensly. And if there is no quants in the package the tasks are not necessary. After the unpacking of the quants they are not in the package anymore. Causing the call to quant_tasks to be done on an empty recordset. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#234370
This update streamlines our logging of WebSocket messages to reduce excessive data and improve readability. Previously, full message logs were overwhelming with large base64 encoded data. Now, we log only the message type and device at 'info' level, providing clearer and more manageable logs.
Original PR description
Before this commit, we logged the full websocket messages received at 'debug' level, and the action device at 'info' level. Logging the whole message causes the logs to be flooded with large base64 print data. After this commit, log the message type and device both at 'info' level. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#237123 Forward-Port-Of: odoo/odoo#236651
This update corrects a minor error in the Finnish language translations for the Enterprise reporting module. Specifically, the correct language tag (@fi) was added to ensure accurate translation of report names. This ensures that reports are displayed correctly for Finnish-speaking users.
Original PR description
In this commit [[1]], we wrongly set the name for the translation in Finnish. Indeed, we should add @fi at the end to make sure it's translated properly. This commit adds the `@fi` when necessary. no task id [1]: https://github.com/odoo/enterprise/commit/4ae3c4d2bdb0ef05ffb53930b31f2bf15fd422ee Forward-Port-Of: odoo/enterprise#100304
This update automatically activates the EC Sales List report menu item for Odoo Enterprise users in several European countries (Bulgaria, Cyprus, Czech Republic, Latvia, Malta, Poland, Romania). Previously, users in these regions had to manually enable the report, streamlining the reporting process and improving user experience.
Original PR description
In this PR: - Added XML records to set the EC Sales List report menu item as active for some EU countries that previously required manual activation. Task-4885725 Forward-Port-Of: odoo/enterprise#93939
This update fixes a bug where users could return more products than they had picked up in rental orders. Previously, the system didn't prevent exceeding the pickup quantity during returns, leading to inaccurate inventory counts. This change ensures returns cannot exceed the initial pickup quantity, maintaining accurate rental records.
Original PR description
## Versions 17.0+ ## Issue It is possible to return more products than what has been picked in Rental. ## Steps to reproduce - Create a service product available for rent; - Create a rental SO for any partner: - Add 5 units of the created service; - Confirm the SO; - Pickup 5; - Return 4; - Return 4; - Check the SOL containing 5 delivered products and 8 returned products. opw-5259727 Forward-Port-Of: odoo/enterprise#100303 Forward-Port-Of: odoo/enterprise#100015