Monday, February 2, 2026
18 changes · saas-18.3
Resolved issues and error corrections
This update fixes an issue where the UrbanPiper store identifier field was visually overflowing its container. The changes include wrapping the field and button in a container with a flexible width, ensuring a cleaner and more professional appearance for users.
Original PR description
Before this commit: --- - The UrbanPiper store identifier field could overflow its container. After this commit: --- - Wrap the store identifier field and action button in a container. - Apply `overflow-hidden` and flexible width to the store identifier field. task-5472992 Forward-Port-Of: odoo/enterprise#103464
This update resolves an issue that previously prevented users from duplicating journal entries containing outdated accounts. Now, users can successfully duplicate entries with deprecated accounts, correct the accounts in the draft, and post the entry. The system only flags the issue during the posting stage if the user doesn't address the deprecated account.
Original PR description
Before this commit, duplicating a journal entry that contained a deprecated account raised a validation error immediately. This blocked the duplication process entirely, preventing users from using historical entries as templates. This commit changes the validation to be done in write function and post. Now, users can duplicate an entry with a deprecated account, correct the account in the draft, and post successfully. Validation only blocks the user if they attempt to post the entry without fixing the deprecated account. or if the user inserted a deprecating account while editing the move. task-5417810 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#243782 Forward-Port-Of: odoo/odoo#240230
This update fixes an issue where the rental report was displaying incorrect dates. The fix ensures that each row in the report accurately reflects the start and return dates of a rental order, providing more reliable reporting data. This improves the accuracy of rental revenue tracking.
Original PR description
The rental report is a daily report with x rows by rental order, with x the days between the start and return dates. With generate_series inside the select, the query was creating x rows with the same id, resulting in the date field not being correctly displayed (one unique date, the start date). This fix corrects the generation of the report to display the real date on each row. opw-5266525 Forward-Port-Of: odoo/enterprise#104764
This update resolves an issue preventing service products from correctly applying their default packaging type in the Keňa (Kenya) localization. The previous XML ID was invalid, and this change ensures service products now utilize the appropriate packaging type as defined for Keňa EDI transactions.
Original PR description
Update the xmlid for the default packaging type for service products, the previous one `l10n_ke_edi_oscu.packaging_type_ou` seems to have never existed. opw-5220129 Forward-Port-Of: odoo/enterprise#105905
This update resolves an issue where documents actions would sometimes fail when multiple languages were enabled. The fix ensures that actions are only displayed and used for languages currently selected by the user, improving stability and preventing errors.
Original PR description
Filter Embedded Actions Based on Active Languages ### Impacted versions: 18.0 and later ### Steps to reproduce: - Install at least 2 languages - Install documents and accounting or other app to have actions on select - Uninstall one language - You will get an error when trying to activate again actions on select (also appears on network interface) ### Current behavior: When a language is deactivated, its corresponding translations may still appear in server actions, leading to errors when trying to add them to the context. This issue is now resolved by filtering actions to only include those linked to active languages. Task: [5420820](https://www.odoo.com/odoo/project/49/tasks/5420820) Forward-Port-Of: odoo/enterprise#102938
This update fixes an issue where EPD discounts weren't being accurately reflected for certain partner types. The change ensures that each partner with EPD discounts receives the correct discount loss line when reconciling payments and transactions. This improves the accuracy of financial reporting.
Original PR description
Steps: - create two invoices with a different partner (epd + no tax on the lines) - register for each a payment (payment method with no outstanding account) - select the two payments and create a batch - create a transaction with an amount equal to two payments (discounted amount) - reconcile it with the batch payment Issue There is only one epd discount loss line for one partner Cause: in https://github.com/odoo/odoo/blob/ecb4de3fea463d6524bb2aab8d2388c679dc2ed7/addons/account/models/account_move.py#L4638 The two lines share a common grouping dict key with the same `account_id`. `setdefault` returns the value if the key is existing. opw-5057109 Forward-Port-Of: odoo/odoo#226287
This update includes a new test case within the account_accountant_batch_payment module to ensure the reliability of batch payment processing. The test was created to address a potential issue identified in a related Community PR, improving the overall stability and quality of the Enterprise version. This ensures accurate and consistent payment handling.
Original PR description
Add test for PR opw-5057109 Forward-Port-Of: odoo/enterprise#94304
A recent test failure related to the restaurant appointment tour was resolved. The fix ensures the test environment uses a consistent, simulated time, preventing inconsistencies and making the test reliable. This improves the quality and predictability of our automated testing process.
Original PR description
The `RestaurantAppointmentTour` was failing inconsistently because the browser used the real system clock during the initial Point of Sale load, while the test data was created for a specific mock date (Jan 28). Because the PoS logic filters appointments based on the current time, the test data was being misinterpreted or "normalized" by the application before the tour had a chance to freeze the clock. Moving `Chrome.freezeDateTime` to the absolute first step of the tour ensures the simulated time is applied as early as possible, making the test deterministic. runbot-232601
This update ensures that when an upsell is confirmed on a subscription, all remaining alternative upsells are automatically cancelled. Previously, confirming one upsell would leave others in a pending state. This improves the subscription management process and prevents unnecessary order activity.
Original PR description
Currently, when creating multiple upsells for a specific subscription, confirming one of them leaves the others in the sent state instead of cancelling them. This fix ensures that all other upsells for the same subscription are cancelled once one upsell is confirmed. task-5270139 Forward-Port-Of: odoo/enterprise#105694 Forward-Port-Of: odoo/enterprise#100058
This update resolves a test failure related to outdated date ranges in the EC accounting module. The fix ensures the test environment uses the correct, 'frozen' date selection, preventing errors. While a long-running server scenario is theoretical, this change improves test reliability.
Original PR description
The selection field of the dividend_fiscal_year has a restricted range based on dates, which has implication for the frozen dates in the test. That is why the test will fail today: 2021 is not anymore in the selection. But, suppose however that you have a server running for 3 years, it could be problematic as well. (quite theoretical however) So we can simply make the selection field selection in the wizard a lambda method and that way also in the test, it will take the 'frozen selection'. build error 237681 https://runbot.odoo.com/odoo/runbot.build.error/237681
This update fixes a validation error preventing users from scheduling paid time off with a 2-week calendar. The issue stemmed from a display element within the calendar causing incorrect date calculations. The fix removes these display elements to ensure accurate PTO scheduling functionality.
Original PR description
Steps to reproduce: - Choose France as the company location, and download "France - Work Entries Time Off" module. - From Employees > Configuration > Settings > French Time Off Localization, select…
Steps to reproduce: - Choose France as the company location, and download "France - Work Entries Time Off" module. - From Employees > Configuration > Settings > French Time Off Localization, select Paid time Off. - Create a new employee and a new contract (in running state) for that employee that starts on 01/01/2025. - While in the contract screen, create a new schedule that has 2 weeks calendar and Europe/Paris timezone. - From Time Off > Management > Allocations, allocate 1+ paid time off days for the newly created employee that's valid from 01/01/2025. - From the employee's profile > Time Off, try to take a Monday off. Issue: - The user gets a Validation error stating that the "start date" is later than the "end date". Fix: - In a 2 weeks calendar, there are 2 lines that are there to separate the first week from the second week (for aesthetic purposes). These lines have "hour_from" and "hour_to" = 0, which are taken into account when calulating the minimum hour to start the day off. - Add a check to remove lines from calendar that are just there for display purposes. opw-5387347 Forward-Port-Of: odoo/odoo#246094
This update adjusts the way product prices are stored within Odoo Enterprise, ensuring greater accuracy and consistency. The change addresses a technical issue identified in previous development, improving data reliability. This update primarily impacts the core accounting functionality.
Original PR description
Fix tests, related to https://github.com/odoo/odoo/pull/243987 task-4895014 Forward-Port-Of: odoo/enterprise#105448 Forward-Port-Of: odoo/enterprise#104728
This update resolves a warning in Odoo caused by updating the Chart of Accounts in the wrong type of script. By moving the update to an ‘end-’ script, which runs after all modules are loaded, the issue is now fixed. This ensures smoother operation and prevents potential errors during Odoo’s startup process.
Original PR description
We faced a warning because this update doing a try_loading is called in `post-` scripts (after the module is loaded) and not in `end-` scripts (when all modules are loaded). All l10n_* modules were changed in this PR: https://github.com/odoo/odoo/pull/183359 Regarding the changes in this PR related to Registry: https://github.com/odoo/odoo/pull/186467 see: https://github.com/odoo/odoo/pull/222186 upg-3828301 **Reference Image** <img width="1769" height="39" alt="2026-01-28_18-44" src="https://github.com/user-attachments/assets/8aa5f213-b150-403b-b2a1-0bc9ed4a4ccc" /> Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#246541
This update resolves an issue where lengthy reconciled names on bank statements were being displayed as a long list of commas due to a formatting error. The fix moves a key component, improving the clarity and readability of statement line information for users. This ensures a cleaner and more user-friendly experience.
Original PR description
When we have a lot of reconciled names, it can happens that you just have a long list of comma. It's because the text truncate was misplaced. This commit will fix this by moving the text truncate no task id
This update resolves a bug that prevented the system from correctly creating vendor partners when processing vendor bills in Uruguay. The issue stemmed from incorrect state detection when the 'Departamento' tag was missing from the XML data. This ensures accurate vendor partner creation and integration with Uruguay's tax system.
Original PR description
If the xml file has a tag "Departamento" without a value, the vendor partner creation fails because the state is searched with an empty string and detects a state that is not correct because the xml has no state value. Task Adhoc side: 109004 Forward-Port-Of: odoo/enterprise#105801
This update fixes an issue where a work center wouldn't be blocked after a work order was deleted, due to a lingering timer. Now, deleting a work order correctly stops the associated timer and prevents the work center from being blocked, ensuring accurate resource management.
Original PR description
Steps to reproduce: - Start the timer on the work order - Delete the work order - Try to block the work center Current behavior: - The work center is not blocked because the latest mrp.workcenter.productivity is still active Expected behavior: - The work center is blocked - mrp.workcenter.productivity is stopped opw-5475227 Forward-Port-Of: odoo/odoo#245815
This update fixes a translation issue in the Swiss payroll module (l10n_ch_hr_payroll) where warnings on payslips didn't display translated field names. The fix ensures that all warning messages are correctly translated into French (CH), improving the user experience for French-speaking Swiss employees. This resolves a minor usability concern.
Original PR description
The warnings that appear on a payslip when the employee's form misses information are not fully translated Steps to reproduce: 1. Install module l10n_ch_hr_payroll 2. Switch to "My Swiss Company" and change language to French (CH) 3. Open app "Paie" and create a new employee (only add a name) 4. Click on "Contrats" in the stat button and create a new contract for the employee (only add a name), save it and set it as "En cours" in the status bar 5. Go to "Fiches de paie" > "Toutes les fiches de paie" and create a new payslip 6. Add the newly created employee to the payslip 7. The warnings in the form displaying the missing fields from the employee form do not translate the name of the missing fields Solution: Use `get_description` to get the translated name of the missing fields opw-5403634 Forward-Port-Of: odoo/enterprise#104499
This update resolves a problem where demo data creation in the l10n_be_hr_payroll_fleet module failed due to a missing dependency. The fix changes the module's reliance to hr_fleet, ensuring all necessary components are installed, and preventing the traceback error. This ensures demo data can be created correctly.
Original PR description
Steps to reproduce: 1. Install l10n_be_hr_payroll_fleet with --skip-auto-install and demo data. 2. Traceback when creating demo data because driver_employee_id is missing on the model fleet.vehicle Cause: The module depends on fleet instead of hr_fleet so hr_fleet is only auto installed. Thus, when skipping auto install, the field driver_employee_id doesn't exist. Fix: Change the dependency from fleet to hr_fleet to force the module to be installed. Runbot error: https://runbot.odoo.com/odoo/runbot.build.error/237909 Task: 5875410