Tuesday, February 10, 2026
21 changes · saas-18.3
Resolved issues and error corrections
This update resolves an issue preventing users with restricted company access from successfully reloading translations. The fix bypasses a privilege check on static data retrieval, allowing the translation reload process to continue smoothly. This improves usability for all users, regardless of their company access permissions.
Original PR description
When a user doesn't have access to all companies, he couldn't reload the translation terms. However, the exception occurs in the call to _get_chart_template_data, which doesn't especially require privileges, because it is static data. With this commit, we bypass the lack of company access to retrieve this data, and let the user continue the language reloading process. Task-id: [5916490](https://www.odoo.com/odoo/project.task/5916490) Forward-Port-Of: odoo/odoo#247602 Forward-Port-Of: odoo/odoo#247540
This update resolves a technical issue preventing the correct Open Graph description from being generated for card campaigns when previewing or sharing them. The fix ensures that campaign suggestions are properly included in the campaign's metadata, improving how campaigns appear on social media platforms. This ensures consistent and accurate campaign previews.
Original PR description
**Current Behavior:** description is not available for the Crowler <img width="1159" height="802" alt="image" src="https://github.com/user-attachments/assets/2979f413-6487-4f44-993c-b9a806e0d0ef" />…
**Current Behavior:** description is not available for the Crowler <img width="1159" height="802" alt="image" src="https://github.com/user-attachments/assets/2979f413-6487-4f44-993c-b9a806e0d0ef" /> **Steps to reproduce:** 1. Install `marketing_card` 2. Create a card campaign 3. Set Recipient, Post Link and Post Suggestion 4. Save and Preview 5. Copy the URL and replace `preview` with `redirect` 6. To reproduce in locale, in the `contoller` make the marketing_card.card_campaign_crawler template the only return 7. Now paste that URL in the browser **Issue** - The `<meta property="og:description">` tag is empty in inspect. It does not contain any content **Cause:** - The controller `card_campaign_redirect` passes the campaign's suggestion text to the view using the key `post_text`. However, the template `card_campaign_crawler` attempts to access `post_suggestion`, which is not present in the rendering context. **Solution:** - Update the controller to pass `post_suggestion` opw-5351041 Forward-Port-Of: odoo/odoo#238534
This update resolves an issue where the copy button within Odoo was incorrectly submitting forms. By explicitly setting the button type to 'button', the fix ensures the copy button functions as intended within forms, improving user experience. This change prevents unexpected form submissions.
Original PR description
Previously, the type of the button in the template of the CopyButton utility component was left unspecified. Because the default type for buttons is "submit", the copy button will not work if it is placed within a `<form>` element, and will instead submit the form (see [1]). This commit just forces the type of the button to "button" which has no default behavior, meaning it can be used even inside of `<form>` elements without issues. [1]: https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/button#type Forward-Port-Of: odoo/odoo#247754
This update allows for seamless payment matching between parent and child companies when processing bills. Previously, matching was limited to purchase orders; now, it includes purchase orders within the same company, streamlining financial reconciliation and reducing manual effort.
Original PR description
On bills, the `purchase_vendor_bill_id` field already allows matching with cross-company purchase orders. This commit extends this behavior to payment matching. Steps to reproduce: - Create a child company from a parent company. - Create a purchase order in the child company. - Create a bill in the parent company. - In the bill’s payment matching, the child company’s purchase order should be available. opw-5416947 Forward-Port-Of: odoo/odoo#244973
This update allows Fleet Officers to modify the 'Make Vehicle Available' field, previously restricted to Fleet Managers. This change streamlines the process for officers to manage vehicle availability, improving operational efficiency within the fleet management system. The change ensures officers have the necessary access to update vehicle statuses directly.
Original PR description
Issue: The 'plan_to_change_car' and 'plan_to_change_bike' fields were restricted to Fleet Managers, preventing Fleet Officers from editing it. Fix: Changed the view-level group restriction from Fleet Manager to Fleet Officer for both fields.. task-5443107
This update fixes an issue where list markers disappeared when switching between list types (numbered, bullet, checklist) after removing the marker. The change ensures list markers are consistently displayed regardless of the selected list type, improving the user experience when creating and editing lists.
Original PR description
Steps to reproduce: - Create a numbered list - Press Backspace to remove the list marker - Change the list type to bullet or checklist using the powerbox. Current behavior before PR: - The list type is changed to bullet or checklist, but the marker is not visible Cause: - When a list marker is removed using Backspace, the `oe-nested` class is added to the `<li>` element, which hides the marker. - When switching the list to another list type, the `oe-nested` class is not removed. - As a result, even though the list type changes, the marker remains hidden. Solution: - When changing the list type, remove the `oe-nested` class from `<li>` elements that do not contain any list elements as children. - This ensures the marker is correctly restored for the new list type. task-5468384 Forward-Port-Of: odoo/odoo#243001
This update ensures consistent styling for mentions across both small and full composer views, improving readability and preventing overflow issues on smaller devices. The change enhances the user experience by aligning the visual presentation of mentions, regardless of the composer size.
Original PR description
Use the same style in full composer than in small composer. Tweak style to account for small device, better handle overflows task-5916878 Before / After (small composer) <img width="342" height="466" alt="image" src="https://github.com/user-attachments/assets/234ff152-3c5a-4c82-b257-2800a752dd3a" /> <img width="496" height="476" alt="image" src="https://github.com/user-attachments/assets/60b3d12d-38ea-429a-9dec-441886ac022e" /> Before / After (full) <img width="413" height="394" alt="image" src="https://github.com/user-attachments/assets/c51e053f-7eb2-4ee0-8a9a-bd068ee9ded0" /> <img width="487" height="555" alt="image" src="https://github.com/user-attachments/assets/d0a3514d-aa1f-4d89-8fe4-7964ec20a288" /> Forward-Port-Of: odoo/odoo#247822 Forward-Port-Of: odoo/odoo#247562
This update corrects and enhances the tax descriptions and names used in the Belgian localization for Odoo. The team has revised all existing translations and added German translations, ensuring accurate and compliant tax reporting. A key change includes fixing the 21% S.INC tax to correctly apply included taxes.
Original PR description
In this commit[^1] the tax descriptions and names for the Belgian localization were added/updated. However, some names or descriptions were either not fully correct, poorly translated, or not translated at all. In this commit, we revised them all and added German translations for everything as well. [^1]: https://github.com/odoo/odoo/commit/c7b39c5ad4afba7e61265773b87f500469ace91b Forward-Port-Of: odoo/odoo#247400 Forward-Port-Of: odoo/odoo#247036
This update corrects a display issue where the phone field was incorrectly marked as required for service products during checkout. Previously, users could confirm their order without filling this field, even though it was indicated as necessary. This change ensures the phone field is correctly shown as optional when a service product is selected, improving the user experience.
Original PR description
### Issue Due to this issue, when the product is service, the phone field is not required, even though there is * marking it as required. #### To reproduce 1- Add a service product to cart 2- Click checkout and fill the address 3- Leave the phone blank 4- Click on confirm As you see, it is allowed to confirm without setting the address while shown as required. ### Cause This is due to https://github.com/odoo/odoo/pull/198731, making phone number not required in quick checkout case. However, this change should also make not required fields to be displayed as optional. opw-5348695
This update fixes an issue where account numbers weren't being properly logged within the account_edi_ubl_cii module. By logging the account numbers directly, the system now captures this critical data more reliably, ensuring accurate financial reporting and compliance. This change improves data integrity and traceability.
Original PR description
--- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#247693
This update corrects a previous issue where the user group field in the Odoo interface remained editable even when set to 'readonly'. This fix ensures that the field correctly respects readonly settings, preventing validation errors and improving the user experience. It's a minor UI adjustment that enhances consistency.
Original PR description
Before this commit, the res_user_group_ids field introduced in [1] didn't care about the `readonly` props. As a consequence, when the field (or the whole view, via `edit="0"`) was readonly, the widget still rendered editable SelectMenu. Obviously, editing it and then triggering a save would raise a validation error, so it was only an UI issue. This commit fixes it by properly setting the field in readonly if its props states it. [1] https://github.com/odoo/odoo/pull/179354 task~5922282 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 update fixes a previous issue where mention suggestions prioritized recent chat partners over the record's followers. Now, mention suggestions will prioritize the record's followers first, followed by internal users, and then recent chat partners. This ensures users are notified of relevant conversations and updates more effectively.
Original PR description
Before this commit, mention suggestions prioritized partners from recent chats over the record's followers. This commit fixes the behavior by reordering the sequence numbers to have the following priority order: Thread followers > Internal users > Recent chat partners. <img width="1051" height="316" alt="image" src="https://github.com/user-attachments/assets/04b80028-07b5-40b2-8972-e80f933980c7" /> task-5313114 Forward-Port-Of: odoo/odoo#247639 Forward-Port-Of: odoo/odoo#237145
This update fixes an issue where mention suggestions in the full composer weren't correctly prioritizing followers. The fix ensures that suggested users, including followers, are now sorted at the top, improving the user experience and making it easier to connect with relevant contacts. This enhancement streamlines communication within Odoo.
Original PR description
Fetch/sort suggestion in the full composer don't receive the thread param which leads to follower not being sorted at the top. task-5917226 Forward-Port-Of: odoo/odoo#247678 Forward-Port-Of: odoo/odoo#247581
This update resolves an issue where reports would display outdated data while waiting for new variants to load. By preventing the display of the initial variant, the system now waits for the complete data to load, resulting in a smoother and more accurate reporting experience. This improves the responsiveness of the account reports.
Original PR description
Previously, when a report was loading if a variant was selected, it would display the first one when it loaded and display the second one when it loaded. With this, we wont show the first one as we are waiting for the new one. To reproduce: - load the Demo data on the demo company - Add time.sleep(5) in _get_lines - load the Generic Tax report and wait for it to load - click on the Group by: Account > Tax and wait for 3s - click on the Group by: Tax > Account - Watch the Account > Tax load and still being displayed for 3s while the Tax > Account variant is loading. Forward-Port-Of: odoo/enterprise#105522
This update enhances the stability of our payroll accounting tests by ensuring all server-side processes are fully completed before tests conclude. This prevents test failures due to incomplete data changes, leading to more reliable test results and faster identification of issues. It's a routine fix to improve the quality of our automated testing.
Original PR description
Wait for signature completion in tours to ensure server-side side-effects are finished before the test ends and asserts the database state. runbot-224112 Forward-Port-Of: odoo/enterprise#106840
This update resolves an issue where accents in legal names were being incorrectly removed, preventing proper recognition by Mexican tax authorities (SAT). The fix restores the correct handling of accented characters, ensuring accurate data submission for Mexican e-invoices. This improves compliance and avoids potential processing delays.
Original PR description
Previus commit (odoo#95207) removed accents for names including character ë which indeed its recognized for SAT opw-5897333 Forward-Port-Of: odoo/enterprise#106557
This update corrects a bug where the email address for Belgian customers wasn't being included in VAT reports. The fix automatically pulls the email from the customer's contact information, ensuring accurate reporting and compliance. This prevents missing email data in crucial financial documents.
Original PR description
**Steps to reproduce:** - Install l10n_be_reports and contacts - Switch to a Belgian company (e.g. BE Company CoA) - Go to Contacts - Open the company contact (i.e. BE Company CoA) - Add an invoice address withtout email - Create an invoice: * Customer: [a Belgian customer with a VAT number] * Invoice Lines: [a line with a tax] - Confirm the invoice - Go to "Accounting / Reporting / Belgium / Partner VAT Listing" - Export the XML **Issue:** In the XML, "<EmailAddress>" is empty althouth it is mandatory. **Cause:** The email is retrieved from the invoice address, but there is no fallback on the parent contact if it is empty. **Solution:** Fallback on the email of the parent contact as it is the case for the phone. opw-5870750 Forward-Port-Of: odoo/enterprise#106831 Forward-Port-Of: odoo/enterprise#105654
This update adjusts the taxonomy used for Dutch tax reports from NT19 to NT20, a standard change required for compliance. The update only involves namespace adjustments and maintains compatibility with older versions of the XBRL template. This ensures continued accurate reporting for our Dutch clients.
Original PR description
The taxonomy for the Dutch tax reports was updated from NT19 to NT20. There were only changes in the namespaces. Olders versions of the XBRL template are kept for backwards compatibility. task-4568359 Forward-Port-Of: odoo/enterprise#106732
This update resolves an issue where the document search functionality could fail due to incorrect access to contextual data. By switching to a reliable public API, the system now consistently provides the necessary information for accurate document searches, enhancing stability and reliability.
Original PR description
**Before this commit** We were accessing the context on the `DocumentsSearchModel` object by using `_context`. This is incorrect because this property is private, and we can't guarantee its structure. In some cases, `_context` can be `null`, causing later issues when we try to access properties from the context. This was likely just a programming error, rather than intentional. **After this commit** We'll use the public API to get the context by accessing `context` on the `DocumentsSearchModel` object. The internals of that getter method can speak for themselves, but they are useful because they will give us a non-`null` context to work with. opw-5903535 Forward-Port-Of: odoo/enterprise#106751
This update fixes an issue where credit notes were incorrectly displaying negative tax amounts in the tax totals widget. The fix ensures accurate tax calculations and reporting for Brazilian credit notes, improving financial accuracy and reporting reliability. This resolves a discrepancy between calculated tax and its display.
Original PR description
Currently, when computing taxes for a credit note, the system will show the included tax as negative in the tax totals widget Steps to reproduce: - Setup a BR Company - Setup a product requiring tax ICMS included in price - Create a credit note with the product - Compute taxes Issue: In tax totals widget the tax amount will be reported as negative, even if the tax line balance is correct. opw-5866180 Forward-Port-Of: odoo/enterprise#106579
A warning was incorrectly appearing in the Belgian tax report when dealing with carryover lines, suggesting an issue where negative values were being generated. This update removes the misleading warning, ensuring the report accurately reflects the intended calculations for carryover lines. This improves the reliability of the Belgian tax reporting process.
Original PR description
The Belgian tax report was displaying a warning when a negative amount originated from all the lines even from carryover ones. This warning was misleading, as carryover lines are not supposed to generate a declared negative value. task-5411005