Daily updates from Odoo
Wednesday, December 31, 2025
19 changes · saas-19.1
New functionality added to Odoo
This update incorporates new master data required to comply with recent changes to Brazilian tax regulations. The update ensures Odoo accurately reflects and reports on Brazilian fiscal requirements, improving financial reporting and compliance. This change impacts the accounting and tax modules within the Odoo system.
Original PR description
task-4939796 Forward-Port-Of: odoo/odoo#240988
Enhancements to existing features
This update adjusts payroll rule parameters to reflect changes in US tax regulations for the 2026 tax year. Ensuring these parameters are current is crucial for accurate salary calculations and maintaining compliance with US payroll laws. This change supports ongoing operational accuracy.
Original PR description
Purpose: Certain US Payroll values changes yearly. The payroll rule parameters must be updated for accurate salary calculation for 2026 for compliance. task-5409739 Forward-Port-Of: odoo/enterprise#102759 Forward-Port-Of: odoo/enterprise#102711
This update simplifies the testing process for our Point of Sale (POS) system. The testing framework has been reorganized to isolate individual steps, making it much easier to identify and resolve any issues. This change improves the reliability and speed of our POS testing.
Original PR description
Following this commit: ==== - Initially `test_01_pos_basic_order` now runs multiple tours in parallel. - Now each tour has been split into its own independent method. - This separation improves readability and significantly simplifies debugging. task-5349813 Forward-Port-Of: odoo/odoo#237729
This update reflects changes to Mexican withholding tax rates (ISR) mandated by the latest tax resolution. The update adjusts the ‘Mexico: ISR Table’ parameter in the Odoo system to align with the new tax tables effective January 1, 2026. This ensures accurate tax calculations for Mexican businesses using Odoo Enterprise.
Original PR description
According to the Mexican Tax Resolution (Resolución Miscelánea Fiscal 2026: https://dof.gob.mx/2025/SHCP/SHCP_281225_01.pdf), the ISR withholding tax tables applicable for the fiscal year have changed, effective January 1, 2026. It is necessary to add a new parameter value for “Mexico: ISR Table” to reflect the new values. target: 19.0 task: 5448019 Forward-Port-Of: odoo/enterprise#103009
This update prepares Odoo for Brazil's upcoming shift to a new consumption tax system starting in 2026. Users can enable this new system based on their business location and transaction types. The changes adapt existing tax calculation modules to comply with the new requirements, utilizing Avalara for tax processing.
Original PR description
2026 marks the start of Brazil's 8-year plan to migrate to a completely new consumption tax system [1]. The new system is meant to be simpler than the old one, but we defer to Avalara for tax…
2026 marks the start of Brazil's 8-year plan to migrate to a completely new consumption tax system [1]. The new system is meant to be simpler than the old one, but we defer to Avalara for tax calculation so we don't really notice it technically. The old and new system have to coexist for the foreseeable future because the rollout happens gradually over many years. Whether the new system has to be enabled depends on the federal state the business is in, the type of transactions they do, and other factors. The user has the option to enable it through the l10n_br_is_icbs Boolean flag on the company, which gates all the new functionality. These changes impact both tax calculation and EDI. This set of modules adapts our existing l10n_br* modules to the new requirements set out by Avalara. We are required to send extra values to their API, and in some cases adapt existing ones. task-4939796 [1] https://www.planalto.gov.br/ccivil_03/leis/lcp/lcp214.htm Forward-Port-Of: odoo/enterprise#102706
This update enhances how Odoo automatically updates settings related to IAP (In-App Purchases). Specifically, it now includes a unique user identifier (DBUUID) to ensure settings updates are more accurate and reliable, leading to a smoother user experience. This change improves the consistency of settings across the system.
Original PR description
https://github.com/odoo/iap-apps/pull/1309/
This update makes key JavaScript utilities within the 'pos_blackbox_be' module more easily accessible. By allowing these utilities to be imported into other files, the team can streamline future development and improve code organization. This change supports ongoing maintenance and potential enhancements to the point-of-sale system.
Original PR description
This commit puts export in front of some of the blackbox js utils/services/constants to make them importable from other files in the future. Forward-Port-Of: odoo/enterprise#99445 Forward-Port-Of: odoo/enterprise#99391
Resolved issues and error corrections
This update fixes an issue where multiple order lines were incorrectly refunded when a user initiated a refund. Now, only the selected line is refunded, and deleting a refund order correctly restores the ticket screen. This ensures accurate and reliable refund processing for our POS users.
Original PR description
Steps to reproduce: - In POS, select a paid order in the ticket screen with multiple lines. - Select the first line, choose a quantity to refund, and click Refund. - Return to the ticket screen, select the same paid order again. - Select another line and quantity, and click Refund. Issue: - In the second refund, all order lines were being refunded, even though only one line was selected. - After deleting a refund order, the ticket screen still showed messages like "Refunding x quantities in xyz order." Fix: - Only the selected lines are refunded. - Deleting a refund order restores the state of the linked order correctly. Task-5095578 Forward-Port-Of: odoo/odoo#241600 Forward-Port-Of: odoo/odoo#227937
This update resolves an issue that caused a technical error when users clicked on the 'Extra Hours' time off type in the dashboard. The problem stemmed from a missing piece of information in the system's data, which triggered an error. This fix ensures a smoother user experience when selecting this time off option.
Original PR description
Steps to reproduce: -------------------------- 1. Install hr_holidays_attendance. 2. Go to Time Off > Dashboard 3. Try to click on "Extra Hours" Issue: -------- A traceback occurs: ```python…
Steps to reproduce: -------------------------- 1. Install hr_holidays_attendance. 2. Go to Time Off > Dashboard 3. Try to click on "Extra Hours" Issue: -------- A traceback occurs: ```python InvalidDomainError: Invalid domain representation: holiday_status_id,=,5,company_id,=,,user_id,=,2 ``` Cause: --------- After 0aeaa2b (hr_holidays), clicking a time off type sends [employee_company](https://github.com/odoo/odoo/blob/84b137098ee46b1dab679fa8d99dbf368929413d/addons/hr_holidays/models/hr_leave_type.py#L539) in the domain. https://github.com/odoo/odoo/blob/84b137098ee46b1dab679fa8d99dbf368929413d/addons/hr_holidays/static/src/dashboard/time_off_card.js#L70-L74 However, the hour-based time off type created by `hr_holidays_attendance` does not define `employee_company`, so the domain contains **undefined,** triggering `InvalidDomainError.` Solution: ----------- Add the missing employee_company value in hr_holidays_attendance to resolve the issue. opw-5358682 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#239185
This update resolves an issue where adding lot-tracked products to Point of Sale orders would sometimes trigger an error if the picking type wasn't correctly configured. This fix ensures a smoother ordering process for products tracked by lot, improving reliability and preventing order disruptions. It addresses a technical bug related to inventory management.
Original PR description
When adding a lot-tracked product to an orderline, if the picking type does not set to create lots or use existing ones, an error was raised when adding the lot-tracked product twice. opw-5385476 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#240548
This update streamlines how product images are loaded within the Point of Sale (POS) system. Previously, images were unnecessarily loaded and then converted to booleans, slowing down performance. Now, images are only loaded when needed, resulting in faster loading times and a smoother user experience.
Original PR description
Before this commit, when loading products in POS, images were loaded and then changed to boolean values. This was causing unnecessary data to be loaded from the database, impacting performance. This commit modifies the product loading methods to avoid loading images initially. Instead, by setting the 'bin_size' context key to True when loading products, images are not fetched from the database, and the size of binary fields is returned instead. opw-5392423 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#241239 Forward-Port-Of: odoo/odoo#240420
This update reverses a recent change that restricted access to cash in/out functionality within Point of Sale. Previously, users needing to manage cash transactions required invoicing permissions. This reversion ensures that users with invoicing rights can also handle cash in/out operations, aligning with standard business processes.
Original PR description
This commit reverts the changes made in https://github.com/odoo/odoo/pull/190342/commits/d47b256a10713618a853d9eeacb2c1665330ed4f as they are not wanted. The user that wants to have access to cash in/out should have the invoicing rights at least. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#228595 Forward-Port-Of: odoo/odoo#212994
This update resolves an issue where receipt attachments sent via email were broken, preventing users from receiving and viewing the correct receipts. The fix ensures receipt images are properly returned, allowing for accurate attachments in both email and the order log.
Original PR description
Steps to reproduce ------------ - Open register and create an order. - Send the receipt by email. - Check the backend order log - Receipt attachment is broken. Issue ------------- Sending a receipt created a broken attachment because the generated ticket image was not correctly returned. Fix --------- Return receipt image properly so the email and backend order show a correct attachment. -------- Task-5269024
This update ensures that Brazilian Point of Sale (POS) orders are correctly named according to the NFC-e sequence defined in the POS configuration. Previously, order names were not reflecting the correct sequence number, leading to potential issues with reporting and tracking. This fix aligns the order naming with Brazilian regulations.
Original PR description
Brazilian order shoud follow the NFC-e sequence defined in the POS config. Steps to reproduce: ------------------- * Setup a POS in Brazil with NFC-e sequence (set the sequence to 1234) * Create a new order in the POS * Validate the order * Check the order name in backend > Observation: The order name is like: POS-00001 instead of POS-1234 Why the fix: ------------ We adapt the method _compute_order_name to get the correct sequence number if the country is Brazil. opw-5243454 Forward-Port-Of: odoo/odoo#240273
This update ensures that Brazilian Point of Sale (POS) orders are named correctly, reflecting the required NFC-e sequence defined in the POS configuration. Previously, order names were incorrectly generated. This fix ensures compliance with Brazilian regulations and accurate order tracking.
Original PR description
Brazilian order shoud follow the NFC-e sequence defined in the POS config. Steps to reproduce: ------------------- * Setup a POS in Brazil with NFC-e sequence (set the sequence to 1234) * Create a new order in the POS * Validate the order * Check the order name in backend > Observation: The order name is like: POS-00001 instead of POS-1234 Why the fix: ------------ We adapt the method _compute_order_name to get the correct sequence number if the country is Brazil. opw-5243454 Forward-Port-Of: odoo/enterprise#102275
This update fixes an issue where image columns in the website editor appeared too small, particularly on mobile devices. The fix ensures that background images are correctly considered when calculating grid item sizes, resulting in a more consistent and visually appealing layout. This improves the overall user experience for website design.
Original PR description
Steps to reproduce: =================== - In website edit mode, drop the "Split Intro" snippet. - Toggle it to grid mode. => the image column is smaller than expected. - Switch to mobile view => the image column is really small. Cause & solution: ================= When toggling a snippet to grid mode, when computing the size of the grid items, the padding of a column is taken into account only if it has a background color (`o_cc` class), in order to look as close as possible as before. The background images are therefore not considered, so the size is computed without the padding, resulting in a grid-area smaller than expected, and the default grid item padding (which is why it is that small in mobile view). This commit fixes that by including the background image class (`oe_img_bg`) in the check used to consider the padding. opw-5374492 Forward-Port-Of: odoo/odoo#241474 Forward-Port-Of: odoo/odoo#240573
This update resolves an issue where videos displayed on the website were appearing smaller than intended. The team adjusted the layout to ensure videos fill the available space, providing a better visual experience for users. This change improves the presentation of video content.
Original PR description
Steps to reproduce: - Drop "s_picture" snippet. - Replace the image with a video. - Video is clearly small than the original image. This commit fixes the issue by adding a "w-100" class to the figure element wrapping the image. task-5136212 Forward-Port-Of: odoo/odoo#240588
This update resolves a random error that prevented the 'Tip After Payment' tour from running correctly in the Point of Sale module. The fix ensures the system waits for the feedback screen to appear after tip validation, improving the user experience and preventing tour failures.
Original PR description
The PosTipAfterPaymentTour tour would fail randomly because it was not waiting for the feedback screen to be shown after validating the tip screen. runbot-234734
This update corrects a restriction imposed by Mexican tax authorities (SAT) on the format of the CuentaPredial field in our Odoo Enterprise software. The change ensures compliance with the latest SAT regulations, preventing potential errors and ensuring accurate tax reporting for Mexican businesses using this module. This fix maintains the integrity of financial data and avoids potential penalties.
Original PR description
SAT has declared the restriction [0-9a-zA-Z]{1,150} for CuentaPredial node
Specification: https://www.sat.gob.mx/sitio_internet/cfd/4/cfdv40.xsd
Forward-Port-Of: odoo/enterprise#102981