Sunday, January 11, 2026
20 changes · 19.0
Enhancements to existing features
French tax report MOA fields are now consistently shown as positive whole numbers. This improves report clarity and helps avoid confusion from negative or fractional values in official reporting fields.
Original PR description
All MOA fields should be positive integer. task-5380637 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#239587
Resolved issues and error corrections
This fix prevents empty popups in the website builder from staying open after their content is deleted. It also avoids showing outdated editing options for removed content, reducing confusion and preventing errors while editing pages.
Original PR description
**Descripion of the problems** When the content of a popup is deleted, two problems happen: 1. The popup stays open displaying an empty white rectangle. 2. Options relative to the last removed…
**Descripion of the problems** When the content of a popup is deleted, two problems happen: 1. The popup stays open displaying an empty white rectangle. 2. Options relative to the last removed element are still displayed and produce an error if the user interacts with them. **How to reproduce** Drop the snippet `s_popup`, and remove the "Block" element. Problems: 1. the popup is still open but empty, 2. the "Block" options are still displayed. **Origin of the problems** Problem 1 happens simply because nothing takes care of removing empty popups. Problem 2 happens because `RemovePlugin.removeCurrentTarget` set the `nextTargetEl` without first checking if the element is activable or not. Thus, when removing the last block in a popup, the next target is set to the `.o_we_no_overlay` close button, despite it being not activable. As a result, when `BuilderOptionsPlugin.updateContainers` is called, it does not update containers because the target is not activable. Thus, the "Block" options are still displayed despite the element being removed. **Fix** Both problems are fixed by adding an `empty_node_predicates` resource to `PopupOptionPlugin` such that empty popups are marked as removable. task-5401692 Forward-Port-Of: odoo/odoo#239507
Features or functions removed from Odoo
This update removes outdated configuration settings from tests related to the Co-Dian localization module. These settings were no longer needed after a previous update and were causing unnecessary complexity in the test suite. This cleanup improves test efficiency and maintainability.
Original PR description
The configuration parameter `account_edi_ubl_cii.use_new_dict_to_xml_helpers` was removed in saas-18.4. However, this parameter was still being set in various tests across `account_edi_ubl_cii`, `l10n_account_edi_ubl_cii_tests`, `l10n_hr_edi`, and `l10n_co_dian`. This commit removes these unnecessary configuration lines to clean up the tests. Related PR : https://github.com/odoo/odoo/pull/242749 Forward-Port-Of: odoo/enterprise#103766
Miscellaneous changes
This pull request updates the Odoo Enterprise repository to the 19.0 version. This ensures that users are running the latest stable release with the newest features and improvements for the Enterprise edition. It's a standard maintenance update to keep the system current.
Original PR description
Cargar repositorio 19.0 de enterprise.
The Project selection window now hides the Templates filter outside the Project app, reducing confusion when users choose projects from apps like Planning. It also ensures milestone names in sales-related project flows include the correct deadline information when project stages are enabled.
Original PR description
**Steps to reproduce:** - Open the Planning app or any app where project_id field - Click New - Click on the Project field - Click Search More - Look at the search filters - The Templates filter is visible **Issue:** The Templates filter shows up when choosing a project from there, even though it is not useful there. **Cause:** They uses the same project search view as the main project app, so the templates filter appears everywhere. **Fix:** Add a condition check in filter to make invisible in other module and show only in project. **Dev Notes (sale_project):** The context was already used for milestone display name computation, but it was missing in the sale_project override. Due to this, when Project Stages were enabled, the milestone display name did not include the deadline. task-5255295 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes an issue where Danish Nemhandel invoice sending could show a system error when the request timed out. Users should now receive the intended business error message instead of a traceback, reducing confusion during invoice submission failures.
Original PR description
In case of timeout when sending an invoice there is a traceback due to the following error. ``` AttributeError: 'UserError' object has no attribute 'message' ``` It is fixed in this commit. task-None Forward-Port-Of: odoo/odoo#242811
Peruvian purchase invoices and credit notes now keep the displayed document number and invoice name in the same standardized format. This prevents mismatches in vendor records and reports when document numbers are automatically padded.
Original PR description
When creating or editing Peruvian purchase invoices/credit notes, the l10n_latam_document_number field is formatted with zfill(8) (e.g., "F01-100" becomes "F01-00000100"), but the name field was not…
When creating or editing Peruvian purchase invoices/credit notes, the l10n_latam_document_number field is formatted with zfill(8) (e.g., "F01-100" becomes "F01-00000100"), but the name field was not synchronized, causing data inconsistencies between these fields. Steps to reproduce: 1. Create a purchase invoice for a Peruvian company 2. Select a document type (Factura, Boleta, or Credit/Debit Note) 3. Enter a document number like "F01-100" 4. Save the record 5. Observe that l10n_latam_document_number shows "F01-00000100" but name field may show a different format This fix ensures that after formatting the document number, the name field is synchronized with the correctly formatted value, preventing inconsistencies in vendor invoices and reports. 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#241948
The Point of Sale optional products popup now adjusts the Add button width so longer translated labels, such as German text, remain fully visible. This improves readability and avoids confusion for staff using non-English languages.
Original PR description
**Steps to reproduce:** - Make a product that has some optional products - Switch the language to German - Open the PoS and order the product - The "+ Add" button will be cut and not shown correctly **Why the fix:** Whenever the translation for "Add" was too long, it didn't fit in the button anymore and was unreadable. We now changed the width of the button to be flexible as to accept longer words. opw-5385398 Forward-Port-Of: odoo/odoo#240698
This update removes references to an old e-invoicing configuration setting from automated tests. It has no expected impact on day-to-day users, but keeps the test suite aligned with the current product behavior and reduces maintenance noise.
Original PR description
The configuration parameter `account_edi_ubl_cii.use_new_dict_to_xml_helpers` was removed in saas-18.4. However, this parameter was still being set in various tests across `account_edi_ubl_cii`, `l10n_account_edi_ubl_cii_tests`, `l10n_hr_edi`, and `l10n_co_dian`. This commit removes these unnecessary configuration lines to clean up the tests. Related PR : https://github.com/odoo/enterprise/pull/103766 Forward-Port-Of: odoo/odoo#242749
Email message content that is wider than the message bubble now stays contained and can be scrolled horizontally. This prevents broken layouts in discussions and keeps sent template messages readable without disrupting the page.
Original PR description
Current behavior before PR: When the email template (message_type = `comment`) has content that is longer (in width), the content tends to overflow out of the bubble which breaks the UI. Desired behavior after PR is merged: This commit fixes the issue by making the content scrollable inside the bubble. Task-5363388 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#242934 Forward-Port-Of: odoo/odoo#237878
This update makes an access-related error message clearer when custom field rules apply to fields without assigned groups. It reduces confusion for administrators and support teams diagnosing permission issues, without changing business functionality.
Original PR description
Method `_check_field_access` may raise for fields that have no groups, in case there are custom field access rules. Simply make the details of the error message less confusing. backport of https://github.com/odoo/odoo/pull/231159 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#242856
Company report taglines that are too long now wrap onto multiple lines instead of pushing the address outside the visible PDF area. This keeps PDF reports aligned with the on-screen preview and avoids confusing or incomplete company header information.
Original PR description
In the report when a company_tagline is long it offsets the address outside of the visible area but only in PDF. This creates a mismatch between the preview and the PDF rendering, creating unpredictable behavior. Adding a width ensures the tagline wraps instead of pushing the address out. task-5367661 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#242786 Forward-Port-Of: odoo/odoo#238110
This update fixes a display issue in the Project Configuration module. Previously, milestone names in the Project list view were missing the associated deadline date. The fix ensures that milestone names now accurately show both the name and the deadline, improving clarity and usability for project managers.
Original PR description
**Steps to Reproduce:** - Install the Industry FSM module. - Navigate to Project Configuration. - Enable Milestones. - Go to the Project list view. - Observe that the Next Milestone does not display the deadline along with the milestone name. **Issue:** The milestone display name is incomplete and does not include the deadline date. **Cause:** The required context was not passed in the overrided action's context, so the display_name computation did not add the deadline to the milestone name. **Fix:** Pass the appropriate context in the action to correctly compute and display the name along with its deadline. Task: 5255295
This update resolves a minor issue within the sign flow process. Previously, selecting a specific dropdown item could result in an incomplete menu display. The fix ensures the menu always shows all available styles, improving the user experience and preventing potential confusion.
Original PR description
In this tour, when we want to select the third dropdown item in style list menu, we must wait that the rpc get_fonts/ is done, or else, it has only one item in the menu. When the menu is opened before the call is completed, there is only one style. When it is opened after, there is all styles loaded. runbot-error-id~232652
This update prevents unnecessary email reminders for timesheet approvals. The system now only sends reminders when there are actual timesheets awaiting approval, ensuring users aren't overwhelmed with notifications. This change optimizes the approval workflow and reduces email clutter.
Original PR description
prevent cron from sending approver reminder if no timesheet assigned to approver Send the reminder email if: - there are timesheets to validate - AND if the user is set as either the manager or timesheet approver of an employee with timesheets left to be validated - OR if the said employee has no manager or timesheet approver set Task-3624610 Forward-Port-Of: odoo/enterprise#102860 Forward-Port-Of: odoo/enterprise#52355
This update resolves a technical issue where the UrbanPiper POS system was incorrectly reporting an 'undefined street' error during order completion. The fix ensures that the system properly checks if a customer is assigned before finalizing an order, preventing this error and allowing customers to successfully complete their deliveries.
Original PR description
Steps to produce: ==== - Place an online delivery order through urbanpiper - Edit the order and remove customer - Complete the order as Marks as Ready - Print Reciept Issue: ==== - TB occurs stating undefined street Fix: ==== - Check whether partner is assigned or not task-5407001 Forward-Port-Of: odoo/enterprise#103633 Forward-Port-Of: odoo/enterprise#102100
This update resolves a technical issue that caused a traceback when users accessed the bank reconciliation popover in debug mode, specifically when reconciling statements with invoices in different currencies. The fix ensures the popover component functions correctly, preventing errors and improving the user experience for this common banking task.
Original PR description
In Bank reconciliation widget, when reconciling a statement with a move in different currency, users may display a popover to access some reconciliation info. Currently, accessing this component in debug mode may raise a traceback. Steps to reproduce: - Have a Bank statement in company currency - Reconcile with an invoice in foreign currency - Go in debug mode - From the reconciliation widget, locate the reconciled bank statement - Click on the reconciled bank statement popover button Issue: Traceback is shown `OwlError: Invalid props for component 'BankRecLineInfoPopOver': 'exchangeMove' is not a object` It occurs because props validation of the Owl component will fail BankRecLineInfoPopOver opw-5355964 Forward-Port-Of: odoo/enterprise#103731
This update resolves an issue where accepting UrbanPiper online orders in multiple POS locations would trigger duplicate preparation ticket prints. The fix ensures that preparation tickets are printed only once, regardless of the number of active POS sessions, improving order accuracy and reducing unnecessary printing. This change impacts the UrbanPiper integration.
Original PR description
When a POS session is open in multiple tabs/locations, accepting an UrbanPiper online order triggers multiple preparation ticket prints. Steps to reproduce: - Configure POS with UrbanPiper and a preparation printer. - Open the same POS session in multiple tabs/locations. - Receive an online food delivery order via UrbanPiper. - Accept the order in the POS terminal (TicketScreen). (Note: Order may also be auto-accepted by UrbanPiper.) Issue: - The same order printed multiple preparation tickets due to multiple active session instances. Fix: - Ensure preparation ticket prints only once when accepting (or auto-accepting) UrbanPiper orders. - Remove local order records when rejecting an online order. Task-5353283 Forward-Port-Of: odoo/enterprise#103894 Forward-Port-Of: odoo/enterprise#100280
This update fixes an issue where the 'Out of Contract' duration was incorrectly calculated, leading to inaccurate reporting. The change ensures that contract overlap dates are limited to the payslip period, providing more reliable payroll data. This improves the accuracy of employee time and cost tracking.
Original PR description
Steps to Reproduce: 1. Create a contract ending early in the year (e.g., February). 2. Compute a payslip for a much later period (e.g., November). 3. The "Out of Contract" line shows an excessive number of days (counting from Feb to Nov). Reason: - If a contract ends before the payslip period, it adds all days from the end of the contract until the end of the payslip period as "Out of Contract", ignoring the payslip start date. - If a contract starts after the payslip period, it adds all days from the payslip start date until the contract start date, ignoring the payslip end date. Solution: Constrain the calculated "Out of Contract" dates using `max()` and `min()` to ensure they never exceed the payslip's `date_from` and `date_to`. Task: 5350519 Forward-Port-Of: odoo/enterprise#103739 Forward-Port-Of: odoo/enterprise#100700
This update fixes a potential issue where the POS system incorrectly flagged refunds as exceeding order amounts due to rounding differences. The change ensures accurate comparisons between refund amounts and order totals, preventing false alerts and improving the reliability of the refund process. This resolves a technical problem related to financial reporting accuracy.
Original PR description
Before this commit, if the total amount of the order had rounding differences compared to the sum of its lines, the system could incorrectly trigger an alert stating that the refund amount exceeds the original order amount. This was due to a direct comparison between the two amounts without considering potential rounding issues. opw-5402240 Forward-Port-Of: odoo/enterprise#103551 Forward-Port-Of: odoo/enterprise#102224