Daily updates from Odoo
Thursday, March 27, 2025
15 changes
6 changes
Enhancements to existing features
The checkout cart layout has been updated to work better on mobile devices, reducing overlap and making product details easier to read. Related rental, subscription, appointment, and stock sale flows were aligned so customers get a more consistent shopping experience across different product types.
Original PR description
Follows the changes made in community to achieve the following goals: - Better Mobile Layout: Fix overlapping elements and ensure all product information is visible. - Consistent Design: Align layouts across cart_lines and suggested products for a uniform look. - Enhanced Usability: Streamline interactions and navigation for a smoother user experience. task-4387239 Community PR: https://github.com/odoo/odoo/pull/190720 Upgrade PR: https://github.com/odoo/upgrade/pull/7446
When an IoT box is removed from the database, it is now automatically told to clear its server pairing. This prevents devices from remaining stuck as already paired and lets a new pairing code appear without manual intervention.
Original PR description
Community PR: https://github.com/odoo/odoo/pull/203728 This commit adds an `ondelete` handler to the IoT box model, which sends a `server_clear` websocket message to the IoT box. This prevents the IoT box from being stuck in the paired state, and a new pairing code will instead automatically appear. task-4648508
The subscription product catalog now focuses on recurring products and shows prices that match the selected billing plan, such as monthly or yearly. This helps sales users choose the right subscription products with fewer pricing surprises before adding them to an order.
Original PR description
Before this commit: - Clicking on the product catalog from a subscription showed all products, both recurring and non- recurring. - The catalog did not display prices based on the recurring plan monthly/yearly selected in the sales order, leading to confusion about price differences before and after adding products. After this commit: - A filter for recurring products is added to the catalog. - Prices in the catalog now reflect the recurring plan (e.g., monthly or yearly) selected in the sales order. task-4395226
Documents now use a custom drag-and-drop experience instead of the browser’s older built-in behavior. Users get clearer visual feedback when moving documents, creating shortcuts, or attempting actions in restricted folders, making document organization easier and less confusing.
Original PR description
Commit 1 : [REM] documents: remove all old dnd feature Remove old dnd api related code Commit 2 : [IMP] documents: use makeDraggableHook instead of DnD API This commit implements a new draggable hook for documents by using the `makeDraggableHook` utility instead of using the HTML DnD API. The HTML DnD API had some limitations especially regarding the created element which follows the mouse during the DnD. It is actually a snapshot from the dragged element thus not editable... So in addition of centralizing all the drag and drop logic in one file, we can have a visual help when pressing a modifier key (control) when dragging some documents to inform the user that he will create shortcuts instead of moving the selected documents. The user will also have a visual help when he tries to DnD documents in restricted folders or if he doesn't have the rights to move. Task-4306387
Businesses can now set up a virtual IoT box to send print jobs directly to email-based printers. This simplifies printer setup and reduces reliance on dedicated IoT hardware for email printing workflows.
Original PR description
In this commit: ================= - Added virtual IoT box to enable sending print attachments to email printers directly. - Allows printing to email printers without routing through a physical IoT device. - The virtual IoT box acts as a direct channel for handling email-based printing simplifying the setup and reducing dependency on hardware. Task-4626102
Short time formatting now follows Odoo’s own language settings instead of relying on external defaults. This keeps displayed times consistent across apps and improves handling of AM/PM translations in some languages.
Original PR description
Description of the issue/feature this PR addresses: - Usage of short_time_format effectively which is already defined in base. - Test cases updated accordingly. Current behavior before PR: - While using format_time method, time_format='short' used babel's time format. - These time formats do not match with Odoo base (res.lang.csv) ex: locale='en_US' in babel is 12 hr format while res.lang.csv defines it as '%H:%M:%S'. Desired behavior after PR is merged: - time_format='short' while now access the short_time_format defined in base ( res.lang.csv). - 'short' will allow to only remove seconds from the time format, and not changing the whole format itself. - AM/PM language translations in few languages (ex. zh_CN) are better handled in base, unlike babel.
9 changes
Enhancements to existing features
Batuz electronic invoicing responses now show both the general response status and any detailed error information found in the response content. This helps users and support teams understand submission problems faster and resolve them with less back-and-forth.
Original PR description
Before version 18, even if the response was Incorrect in the headers, it would still process the XML itself to see if e.g. there was a more detailed error message in there. Here, we just add the errors together again: the one from the header and the one from the response. 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
Onboarding tours now handle autocomplete fields more smoothly. When a user selects a suggested option while following a guided step, the tour recognizes the action correctly and can continue without unnecessary extra clicks.
Original PR description
When a step in an onboarding tour ask for an edit on an autocomplete input, selecting a dropdown item valid the step. And if the next step was a click on a dropdown item, this step is also validated. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Partner autocomplete now includes the current company’s country when requesting business data, which can improve match relevance and reporting accuracy. It also avoids saving incomplete enrichment data when no UNSPSC classification is available, reducing unnecessary records.
Original PR description
See commits
Opening the Replenishment view is now much faster in databases with many automatically managed stock rules. The change avoids unnecessary quantity calculations when there are no manually triggered items to clean up, reducing delays for inventory users.
Original PR description
Issue --> When the Replenishment view is opened, the method `_unlink_processed_orderpoints` is called to remove previously automatically created orderpoints that have since been refilled. In this…
Issue -->
When the Replenishment view is opened, the method `_unlink_processed_orderpoints` is called to remove previously automatically created orderpoints that have since been refilled. In this method, the search domain contains `qty_to_order` which causes computations to fulfil the search query. The search_query also contains `("trigger", "=", "manual")`. Even if the recordset for this leaf is 0, the `qty_to_order` computations still occur, only to return 0 records in the search.
Solution -->
Move the `qty_to_order <= 0` check after the search produces a recordset for `("trigger", "=", "manual")`. This avoids unnecessary computations.
Benchmarks -->
For this benchmark, we'll assume the worst case, where every orderpoint on the database has trigger set to `auto`. The number of seconds represents the time taken to open the Replenishment view.
| # of auto trigger orderpoints | Before | After |
|--------|--------|--------|
| 12.2k | 155.58 s | 4.49 s |
| 6k | 59.87 s | 3.78 s |
opw-4606704The chat bubble button no longer uses an unnecessary background color, making it blend more consistently with the rest of the interface. This is a small visual polish change with limited user impact.
Original PR description
- This change removes the `bg-view` class from the chat bubble button. - Ensuring a more consistent UI styling. task - **4630768** --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Peppol screens and notifications now use shorter, clearer wording, including replacing “Consumer” with “no VAT” where relevant. The activation banner is no longer shown for no-VAT contacts, reducing unnecessary prompts and making the flow easier to understand.
Original PR description
Small UX/message improvements to Peppol: - Shorten some messages/information. - Rename the "(Consumer)" information to "(no VAT)". - Don't display the activation banner in case of "no VAT". task-no (last review comment of FP)
Odoo can now automatically synchronize vendor bills from Uruguay's electronic billing system every 10 minutes. Imported bills are saved as drafts with their PDF and XML attachments so users can review them before posting, reducing manual entry while keeping control over validation.
Original PR description
This pull request (PR) facilitates the integration of Odoo with the Uruguayan electronic billing system, allowing automatic synchronization of vendor bills every 10 minutes. Synchronized bills are…
This pull request (PR) facilitates the integration of Odoo with the Uruguayan electronic billing system, allowing automatic synchronization of vendor bills every 10 minutes. Synchronized bills are created in "Draft" status for user review, complete with attached PDF and XML files. Also this pull request allows to create vendor bills from XML files on uruguayan journals. **Key Features**: - **_Automatic Bill Creation_**: Bills are generated in "Draft" status to enable manual verification against vendor invoices and attachments. - **_Necessary Configuration_**: 1) The database must connect to Uruware. 2) A Uruguayan company must be set up with an appropriate chart of accounts. 3) Notifications must be activated in the Uruguayan billing system. **Important Considerations**: - Errors during synchronization will still create invoices in "Draft" with error messages for user review. - Invoice lines are created without products; if a vendor doesn’t exist, it will be automatically created based on RUT. - Any unregistered taxes will be flagged. **Technical Overview**: - **_Notification Mechanism_**: Notifications for each received CFE are managed through a web service, allowing users to check, request details, and discard notifications. - **_Synchronization Process_**: Notifications are read and processed sequentially, with each CFE generating a corresponding document in Odoo. Notifications must be discarded to continue processing. Related Tasks: Adhoc Task: 43467 LATAM Task: 1249
Partner autocomplete requests now include the current company's country code for statistical analysis. This helps improve reporting and insight into usage by country without changing the user workflow.
Original PR description
For stats purpose, we know send the country code of the current company. task-4416928
This change adds the CIM salary rule and related parameters for Luxembourg payroll. It helps ensure payroll calculations reflect the required tax credit treatment for eligible employees.
Original PR description
task-4577617