Wednesday, February 25, 2026
27 changes · 18.0
New functionality added to Odoo
This update integrates the new `pos_edi_ubl` and `l10n_jo_edi_pos` modules into Odoo's Weblate translation system. This ensures that the functionality related to point-of-sale electronic invoices and Jordanian EDI invoices can be properly localized for different languages and regions, improving the user experience for international customers.
Original PR description
This commit adds the new modules of pos_edi_ubl and l10n_jo_edi_pos to weblate.
Resolved issues and error corrections
This pull request corrects a typographical error in the Combo Configurator module, improving the user experience and preventing potential confusion. The fix ensures accurate display of configuration options, leading to a smoother and more reliable process for users creating custom product combinations. This is a minor fix with no impact on core functionality.
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 update restores the display of the account holder's name in bank records within Odoo. Previously, this information was accidentally removed, which created confusion when viewing payment details. Restoring this field ensures accurate and complete information for financial transactions, allowing users to easily identify the correct account holder.
Original PR description
`account_holder_name` was removed from the view in 18.0 by mistake in 0eddc18b08d2b3a374162dc24ea93dd0350dbdc2 and should be shown again since we want the account holder name to be independent of the partner name. task-5967143
This update fixes an issue where warehouse names with only numbers (like '01') were displayed incorrectly in the barcode app. The fix removes a browser setting that caused numerical warehouse codes to be reversed, ensuring they are always shown in the correct order. This improves the user experience when scanning and tracking inventory.
Original PR description
### Steps to detect the bug: - Download stock apps - Enable "storage locations" settings under warehouse index - Change name of warehouse with a name composed only of numbers (ex. 01) - Create a…
### Steps to detect the bug:
- Download stock apps
- Enable "storage locations" settings under warehouse index
- Change name of warehouse with a name composed only of numbers (ex. 01)
- Create a product (with barcode number)
- Insert a number of products available with smart button "on hand"
- Create a new delivery for that product
- Go to barcode app and search for the delivery you just created
- Click on it and see that the name of the warehouse will be stock/01 instead of the correct 01/stock
### The problem:
The previous configuration used direction: rtl; on the warehouse name
element in the barcode app. So if the string contains only letters the
standard visual order is maintained, however, when the string consists
entirely of numbers the rtl property forces the browser to reorder them
from right to left.
### The reson to introduce the fix:
By removing this property, it is ensured that numerical warehouse codes are displayed in their natural sequence without being flipped.
opw-5730199This update corrects a rounding error in how early payment discounts are calculated when 'Always (upon invoice)' cash discount tax reduction is used. Previously, discounts were applied line-by-line, leading to discrepancies. This change ensures consistent and accurate discount calculations across all invoices.
Original PR description
**PROBLEM** There is a rounding issue with early payment discount when cash discount tax reduction is set to always (upon invoice). The move.line created for the discount is computed by applying the discount to each line, rounding each line individually. But the early payment discount is computed by rounding globally. **STEP TO REPRODUCE** 1. Create a payment term, with early discount of 1%, and cash discount tax reduction set to 'Always (upon invoice)'. 2. Create an invoice with 4 identical lines, unit price 4.76€ and tax 15%. 3. set the payment term on the invoice and save. 4. Go to journal item, early payment discount is 0.20€. 5. toggle discount_amount column on the the journal item tab. 6. notice on the last line, that balance - discount_amount = 0.19€ instead of 0.20€ opw-5865308
This update ensures that when users send multiple messages in a live chat, only one channel is created. Previously, sending multiple messages could lead to duplicate channel creation. This change prevents confusion and streamlines the live chat experience for users.
Original PR description
Before this commit, sending multiple messages before the channel creation can result in multiple channels being created. It occurs because the post function is overriden to first persist the channel. When the persist call is still in progress, we shouldn't issue a new one. task-4756758 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 corrects a bug that prevented the website event registration page from rendering correctly after a change in the system's architecture. The fix ensures the page displays properly, regardless of whether tickets are available for sale. This improves the user experience for event registration.
Original PR description
After splitting the controller, the return early was omitted, and there was a try to render the template if there weren't tickets to sell, and it gave an error. Now, this is being fixed. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update ensures that the Website Studio XML editor correctly translates views only for the active website being used, preventing issues where the default website's language was incorrectly applied. The change refines how related views are retrieved, improving the accuracy of translations within the Studio interface. This ensures a consistent and reliable translation experience for website content.
Original PR description
Problem: When opening the Studio XML editor when Website is installed, the translation terms corresponding to the Default Language of the first website in the database are used. This behavior should only be applied to the HTML/CSS Editor in Website. Purpose: Modify Website's override of get_related_views to only return translated views when called with a specific website in context. This is done here by adding a context flag, as to not interfere with customizations made in stable versions. This will be changed for master. Steps to Reproduce in Runbot: 1. Activate a non-English (US) language. 2. Add this language to the Website with the lowest ID in the database, then set it to the Default Language of the Website. 3. Enter Studio and navigate to a view that has translation terms in its view (ex. Invoice PDF Report), then open the XML editor. opw-5136124 Forward-Port-Of: odoo/odoo#237000
This update ensures that the Studio XML editor correctly uses translations only for Website views, resolving an issue where the default language of the first website was incorrectly applied. The change refines how Studio retrieves related views, preventing unintended translation behavior and improving the accuracy of website content translations.
Original PR description
Problem: When opening the Studio XML editor when Website is installed, the translation terms corresponding to the Default Language of the first website in the database are used. This behavior should only be applied to the HTML/CSS Editor in Website. Purpose: Modify Website's override of get_related_views to only return translated views when called with a specific website in context. Steps to Reproduce in Runbot: 1. Activate a non-English (US) language. 2. Add this language to the Website with the lowest ID in the database, then set it to the Default Language of the Website. 3. Enter Studio and navigate to a view that has translation terms in its view (ex. Invoice PDF Report), then open the XML editor. opw-5136124 Forward-Port-Of: odoo/enterprise#107459
Some libraries expect to find the language direction on the HTML element (e.g. Bootstrap). As we didn't set it, there were some issues. For instance on the website: - set the website language to some RTL language (e.g. Arabic) - drop an image gallery snippet and save - navigate with the keyboard to the carousel and start using the arrows to switch images => Pressing left should show the _next_ image, and pressing right should show the _previous_ image (contrary to LTR languages). This is ill
Original PR description
Some libraries expect to find the language direction on the HTML element (e.g. Bootstrap). As we didn't set it, there were some issues. For instance on the website: - set the website language to some RTL language (e.g. Arabic) - drop an image gallery snippet and save - navigate with the keyboard to the carousel and start using the arrows to switch images => Pressing left should show the _next_ image, and pressing right should show the _previous_ image (contrary to LTR languages). This is illustrated by the image indicators at the bottom of the carousel (the 1st image is on the right, the last image on the left). But without `dir="rtl"` on the HTML element, the arrows keep their LTR behavior: pressing left goes to the previous image, and right to the next image. task-5109547 Forward-Port-Of: odoo/odoo#240611
This update ensures that check printing in the Philippines accurately reflects the net payment amount after withholding taxes. Previously, the checks were displaying incorrect amounts. A new test case has been added to verify this fix and maintain the correct calculation.
Original PR description
In Philippines' check localization module, the amount on check should be based on the net amount after deducing withholding amount for payments if the payment is with taxes that are set as withholding on payment. This commit fixes the check print's values to reflect the net amount. Minimal test case is also added to safeguard the new behavior. [Task-5928813](https://www.odoo.com/odoo/all-tasks/5928813)
This update corrects a technical issue where certain Intrastat codes (99450000, 99500000, 99600000 & 99700000) were incorrectly marked as expired. This ensures accurate reporting for Intrastat data, aligning with official Belgian regulations. The fix improves data integrity for international trade reporting.
Original PR description
99450000, 99500000, 99600000 & 99700000 were erroneously expired. They are still active : https://www.nbb.be/doc/dd/onegate/data/intrastat_manual_basis_en.pdf page 13 Forward-Port-Of: odoo/enterprise#108451
This update fixes a minor issue within the employee departure process. Previously, archiving an employee used an outdated method. Now, the system correctly utilizes the 'action_archive' method, ensuring employees are properly removed from records when departing, aligning with enterprise standards.
Original PR description
When archiving an employee from the departure wizard, use the action_archive method instead of toggle_active. Related to odoo/enterprise#100437 task: 5354002 Forward-Port-Of: odoo/odoo#247224
This update resolves an issue where a 100% discount on German Point of Sale (POS) orders would cause an error. The change ensures the system handles 100% discounts correctly, preventing disruptions to the sales process. This improves the reliability of the German POS functionality.
Original PR description
Backport of https://github.com/odoo/enterprise/pull/98869 opw-5240429
This update fixes an issue where VAT amounts were incorrectly displayed as zero in XML exports for manual journal entries. The fix removes a faulty condition in the SQL query, ensuring accurate VAT calculations (MHT, TVA, TTC) are generated for standard journal entry lines. This ensures accurate tax reporting for MA Company users.
Original PR description
## Issue: When creating a manual journal entry with a deductible tax, the entry was included in the XML export, but the VAT amounts were all set to 0 ## Cause: The SQL query used to compute VAT amounts included an extra condition on display_type to be 'tax' However, journal entry lines are standard product lines and should not be excluded by this condition As a result, the amounts (MHT, TVA, TTC) were incorrectly computed as 0 in the XML ## Steps to reproduce: - Install `l10n_ma_reports` and switch to the MA Company - Create a Journal Entry (Any account, Debit: 100, Taxes: 10% 150) - Open the Tax Report for the current month - Export the XML using the gear icon Before the fix, the value for mht, tva and ttc where all 0 opw-5226529
This update fixes a technical error that prevented users from sharing course content hosted externally (like Google Drive). The issue stemmed from a browser security restriction, and the fix ensures smooth sharing functionality without errors. This improves the user experience for sharing content.
Original PR description
Step to reproduce: 1. Install `website_slides` 2. Open any course and add content 3. Select the `Document` type and upload a Google Drive link 4. Save and publish the content 5. Click the "Share" button for this specific content in full screen Issue: - A traceback occurs: `Uncaught Javascript Error > Failed to read a named property 'document' from 'Window': Blocked a frame with origin "http://localhost:3000" from accessing a cross-origin frame.` Cause: - The `_onClickShareSlide` method attempts to calculate the `documentMaxPage` by accessing the internal DOM of the slide's iframe (`iframe.contentWindow.document`). When the content is hosted externally the iframe source is cross-origin. Browsers enforce the Same-Origin Policy. Solution: - Check the origin of the iframe's source URL before attempting to get max page. opw-5422655
This update fixes a labeling error in Odoo invoices for Qatar. Previously, the invoice amount description used 'Rial' instead of the correct 'Riyal'. This change ensures accurate currency representation for Qatar-based transactions, improving financial reporting and compliance.
Original PR description
Steps to reproduce: 1- Install Accounting and 'l10n_qa' modules 2- Switch to Qatar company and enable "Total amount of invoice in letters" under accounting settings 3. Issue an invoice and preview it The issue: The description of the amount uses "Rial" Expected behavior: The amount should use "Riyal" opw-5919587 Forward-Port-Of: odoo/odoo#250299
This update addresses a critical maintenance task, ensuring our tax code data is current. The tax code list hasn't been updated in four years, and this fix ensures accurate tax calculations. A future enhancement will allow users to initiate this update automatically, but this immediate fix resolves the current data discrepancy.
Original PR description
It's been 4 years since the last update [1]. No codes were removed. At some point it would be nice to add this to the avatax_sync_company_params() method so it can be initiated by the user. But we need to update this file regardless, and the mechanism would need to be smart enough to not cause duplicates when e.g. the user has synced it themselves, we then update the csv and they then update the module. [1] https://github.com/odoo/enterprise/pull/30220 opw-5928245 Forward-Port-Of: odoo/enterprise#108209
This update resolves an issue where newly created subtasks were incorrectly appearing at the top of the Kanban view. The fix sorts subtasks by their ID, ensuring they are displayed in the expected order, improving usability and clarity for users managing tasks and subtasks.
Original PR description
### Steps to reproduce: - Create a project and a task in this project - Create a subtask for the created task - Go for the kanban view and add another subtask - Notice the last created subtask is on the top of the list ### Cause: This is happening as we show the list of the subtasks as it is without sorting it. ### Fix: We sort the closedList for subtasks ascendingly according to their IDs opw-5943741
This update prevents archived subtasks from being duplicated when a task is copied. Previously, duplicated tasks incorrectly included inactive subtasks, leading to unnecessary clutter. This change ensures a cleaner and more efficient task management experience.
Original PR description
Currently, when duplicating a task that contains `archived subtasks`, the archived subtasks are also duplicated. **Steps to reproduce:** - Install the `project` module. - Open any `project` and create a task with a subtask. - `Archive` the subtask. - `Duplicate` the parent task. **Observation:** The duplicated task contains a copy of the archived subtask, even though it is inactive. **Root Cause:** At [1], subtasks are duplicated without checking their active status. As a result, archived (`active=False`) subtasks are also copied during duplication. **Fix:** This commit ensures that archived subtasks are not copied when duplicating a task. [1]: https://github.com/odoo/odoo/blob/531b887aec92c2fbf57495992be9fbc32d9ea20e/addons/project/models/project_task.py#L822 opw-5926009
A recent test within the Odoo payroll system was failing when the 'Attendance' module wasn't installed. This fix moved the test to a separate module to ensure it consistently runs with the Attendance module, preventing future test failures and maintaining system stability. This improves the reliability of payroll testing.
Original PR description
Purpose: `test_05_fully_flexible_contracts_payslip` was failing without attendance installed as it creates contracts with `'work_entry_source': 'attendance'` Fix: moved the test to `hr_payroll_attendance` to ensure that it always runs with attendance installed pr introducing the test: https://github.com/odoo/enterprise/pull/93935 task-id: 5902805
A recent issue causing live chat sessions to crash when multiple sessions were started quickly has been fixed. Previously, a reliance on outdated data led to conflicts. This update ensures a more stable and reliable live chat experience for users.
Original PR description
Since [1], a crash could occur when starting several live chat sessions quickly. Before this PR, the `thread` getter depended on `savedState`. In [1], `thread` became a field on the live chat service. There can be a slight delay where thread has been cleared, but saved state still exists. The `_createThread` method shouldn't rely on `savedState` to determine if there is a thread. [1]: https://github.com/odoo/odoo/pull/173197 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 clarifies the event booking process for existing partners. When presented with a 'Sign In' link, the message now suggests creating an account if they don't have portal access. This ensures a more complete and helpful experience for users.
Original PR description
When booking with an email that belongs to an existing partner, a 'Sign in' link is shown to the booker. If the partner has no portal access, then it is not relevant as they could also need to create an account. Therefore, change the wording by adding 'or create an account'. This way, the use of the login page redirection is more complete. opw-5419532
This update resolves a bug where transferring orders to booked tables could fail when the table had no associated orders. The fix ensures that only finalized orders are transferred, improving the reliability of the restaurant POS system. This prevents incorrect order transfers and enhances the user experience.
Original PR description
Step to reproduce: - Make a pos order - Book a table without orderlines - Transfer the order to the booked table - Traceback Issue: The transferOrder method was retrieving non-finalized table orders that contained order lines using getActiveOrdersOnTable. However, it later checked for the existence of any non-finalized order using tableHasOrders, regardless of whether it had order lines. This caused inconsistent behavior in cases where a table was booked but had no order lines. opw-5965705 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 resolves a minor issue where the website and web editor were experiencing delays in Firefox 148 due to how 'about:blank' documents were handled. By using empty iframes to load templates and previews, the system now completes navigation synchronously, resulting in faster performance and a smoother user experience.
Original PR description
Firefox 148 fixed the behavior of `about:blank` documents, as explained in their [release notes]: > The initial about:blank document is now Web-compatible. If the first > navigation of a browsing context goes to about:blank, it completes > synchronously and is no longer replaced by a second parser-generated > document. Commit [e0796020] added the new page dialog in website, and used empty iframes to load each page template. Commit [edf81c13] added the add snippets dialog in website, and used an empty iframe to load the snippets previews. In both cases, before Firefox' fix, it meant we had to wait the recreation of the 2nd document before proceeding. This is no longer the case in Firefox >= 148. [release notes]: https://www.firefox.com/en-US/firefox/148.0/releasenotes/ [e0796020]: https://github.com/odoo/odoo/commit/e0796020ee0c3188e1e9d9fa077de73a2211c6f7 [edf81c13]: https://github.com/odoo/odoo/commit/edf81c13d8f2f6d29a77d68cbfa0dc9216da3c2a
This update adjusts Odoo to comply with a new Italian law effective January 1, 2025. Forfettari (RF19) – a specific category of Italian taxpayers – can now utilize simplified invoices regardless of the total invoice amount. This simplifies invoicing processes for this group of businesses.
Original PR description
Since 01/01/2025, Italian law allows forfettari (RF19) to use simplified invoices even if the total amount exceeds 400€. References: - https://www.normattiva.it/uri-res/N2Ls?urn:nir:stato:legge:2014-12-23;190;1;59#:~:text=L'emissione%20della%20fattura%2C%20ove%20prevista%2C%20può%20avvenire%20in%20modalità%20semplificata%20ai%20sensi%20dell'articolo%2021%2Dbis%20del%20decreto%20del%20Presidente%20della%20Repubblica%2026%20ottobre%201972%2C%20n.%20633%2C%20anche%20se%20di%20ammontare%20complessivo%20superiore%20al%20limite%20indicato%20nel%20comma%201%20del%20medesimo%20articolo%2021%2Dbis. - https://www.dkpost.it/fattura-semplificata-senza-limiti-per-i-forfettari/ - https://www.gazzettaufficiale.it/eli/id/2024/11/30/24G00196/sg Forward-Port-Of: odoo/odoo#247264
This update fixes an error in the Spanish Profit & Loss reports where specific accounts (7950 and 7957) were incorrectly placed. The change aligns with official Spanish tax documentation, ensuring accurate reporting for non-SME fiscal localization packages. This ensures compliance with Spanish tax regulations.
Original PR description
In the Profit & Loss reports, accounts 7950 and 7957 were incorrectly shown in section 10 instead of section 6 These accounts appear only for non-SME fiscal localization packages According to the official Spanish tax documentation, these accounts should belong to section 6 and not section 10: https://www.boe.es/buscar/act.php?id=BOE-A-2007-19884 opw-5363664 Forward-Port-Of: odoo/enterprise#107949