Monday, January 26, 2026
21 changes · saas-19.1
Enhancements to existing features
This update makes the payment screen in the Point of Sale module more user-friendly by increasing the font size of the 'amount due' and 'amount by guest' displays. This improves clarity for staff when processing payments and ensures accurate amounts are clearly visible to customers.
Original PR description
Little improvement of the font size of amount due and amount by guest on the payment screen. task: 5473324 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#243733
This update improves how price labels are generated within Odoo, specifically in the product pricing module. The addition of a new method allows for more flexible and customizable formatting of price labels, ensuring consistent and accurate presentation of pricing information. This change enhances the user experience and data clarity for price-related features.
Original PR description
Add `_get_price_label_base_str()` method in order to exend it @Tecnativa --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#243861
Resolved issues and error corrections
This update resolves a technical issue causing errors when creating multiple companies with Sri Lanka settings. The problem stemmed from duplicate tax IDs in the accounting data, which incorrectly linked company records. This fix ensures accurate company setup and avoids data inconsistencies.
Original PR description
**STEP TO REPRODUCE** 1. create a company, and set country to Sri Lanka. 2. create a 2nd company, and do the same. 3. There is a company inconsistencies error. **CAUSE** There is 2 taxes defined in `account.tax-lk.csv` with `.` in their id. This messes up with the function `company_xmlid()`: we end up loading the `account.tax` record of the 1st company when saving the 2nd company. opw-5473952 Forward-Port-Of: odoo/odoo#245244
This update resolves an issue where applying text colors to lists in the HTML editor didn't correctly color the list markers. The fix ensures that text color classes remain on list items, resulting in consistent and accurate color matching for list markers. This improves the overall user experience when formatting lists.
Original PR description
### Steps to reproduce: - Create a list and type some text. - Press Ctrl + A and apply a text color from the toolbar. - Observe that the list marker is not colored. ### Description of the issue/feature this PR addresses: - `getFonts` looked for the closest element with a text color class, and this also matched `<li>` elements. When a `<li>` was selected, its text color class was removed and moved to a new <font> element created inside the `<li>`. - As a result, the color class was removed from the list item itself, which broke list marker coloring. ### Desired behavior after PR is merged: - Text color classes remain on list item, so list markers are colored correctly. task-5454639 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#243005
This update fixes a bug that prevented customers with names like "constructor" from being correctly processed in reporting. The change avoids issues with object initialization, ensuring customer names can be used without causing errors. This improves the reliability of customer reporting features.
Original PR description
Steps:
- Have a customer named "constructor" (or any valid json prototype key value)
- Install `sale_management`
- Create a sale order with "constructor"
- Open Reporting -> Customers
- Traceback `Caused by: TypeError: groupedDataPoints[key].push is not a function`
This problem occurs because we use the client name directly in an object, and “constructor” already exists in all objects but is not initialized correctly, which raises a traceback.
One solution is to use `let object = Object.create(null)` instead of `let object = {}`, which prevents inheritance of `Object.prototype` properties.
https://github.com/odoo/odoo/blob/5e74f04ff35ed3efa25be295567be41f42024692/addons/web/static/src/views/graph/graph_model.js#L451-L457
opw-5474691
Forward-Port-Of: odoo/odoo#245369
Forward-Port-Of: odoo/odoo#245206This update resolves a bug where self-order kiosks were printing blank tickets. The fix ensures that preparation printers without categories are not used for printing, aligning with the expected behavior of the self-order system. This prevents unnecessary printing and improves the kiosk experience.
Original PR description
Before this commit: To reproduce (version 17 and >): 1. Install Restaurant 2. In PoS restaurant config allow "Self ordering" in Kiosk mode and enable "Preparation printers" 3. Create a preparation printer with NO categories and set it as a restaurant preparation printer 4. Open the Kiosk 5. Make an order with any product and checkout -> Printer will print a ticket with no product <img width="512" height="415" alt="image" src="https://github.com/user-attachments/assets/31bd08f9-2470-4f72-9e3d-822564b43f70" /> After this commit: No kitchen printer is printed (expected as no category set on the kitchen printer) Forward-Port-Of: odoo/odoo#245353 Forward-Port-Of: odoo/odoo#245193
This update fixes a test failure related to user assignments within work orders. The previous test setup caused a constraint error when multiple employees were assigned to the same user in succession. The fix involves using a different user during assignment to avoid this constraint, ensuring the work order functionality remains stable.
Original PR description
Before this commit, the test `test_allowed_employees_restriction` was failing because two different employees of the same company were assigned one after another to a same user. When the changes are commited, the constraint `_user_uniq` was triggered. Solution: use a different user instead of reassigning to the same one so that the constraint isn't triggered when setting another employee to the user. fixes odoo/enterprise#96931 runbot error 234537
A minor bug in the knowledge calendar tour was preventing it from completing correctly. This update fixes a reference error, ensuring the tour now successfully guides users through the property deletion process. This improves the overall user experience for the knowledge module.
Original PR description
In test_knowledge_calendar_command_tour there was a miss-referenced button towards the end. This caused the tour to fail because it didn't find the button to click. With this PR we correctly reference the button and allow the tour to finish. Runbot Error: 234898
This update resolves an issue preventing some users from submitting VAT declarations, even without specific access rights within the system. By adding temporary sudo permissions, the system now ensures all users can complete the process, improving compliance and reducing potential delays. This change enhances the user experience and simplifies VAT reporting.
Original PR description
Add few sudo() for vat declaration, to be sure users without access rights to res.company or certificate.certificate can still make a submission. task-5470492 Forward-Port-Of: odoo/enterprise#103647
This update ensures the system correctly processes weight readings from the scale, even when those readings are triggered by a specific 'read_once' action. This improves the reliability of scale data integration, ensuring accurate weight information is consistently captured and used within the system. It addresses a minor technical issue related to response handling.
Original PR description
This commit adjusts the callback when a new weight is received from the scale to also handle the case where it is the response to the `read_once` action. In this case, the `status` key is `success`.
This update corrects a technical inconsistency where employee-related fields were incorrectly marked as editable. The change ensures that fields marked as 'readonly' in the version record are consistently 'readonly' for the employee record, preventing unintended data modifications. This resolves a potential data integrity issue.
Original PR description
There was an inconsistency on readonly for fields between version and employee. This removes "readonly=False" on employee for fields that are readonly on the version. Runbot error: 230983 Forward-Port-Of: odoo/enterprise#100575
This update fixes an issue where Odoo wasn't correctly assigning a plan ID when multiple schedulers were involved in a single task. The change ensures that the correct plan ID is consistently used, improving the reliability of scheduling processes. This update was a necessary correction to the existing functionality.
Original PR description
Description of the issue/feature this PR addresses: Same pattern as in https://github.com/odoo/odoo/pull/189843 but for _compute_plan_id method --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#243307
This update fixes a visual issue where 'Danger' and 'Success' buttons weren't consistently appearing for actions in the portal. The change ensures these buttons are correctly displayed, regardless of whether the action is shown in the dropdown or quick action menu, improving the user experience.
Original PR description
PR #224976 fixes the demonstration of an action with a `DANGER` tag in the dropdown menu in the action list. Such an action may not be located in the dropdown, but rather in the quick action menu. This change ensures that the action buttons with `DANGER` or `SUCCESS` tags are demonstrated properly in either case. Steps to reproduce: - Open a document in the portal as a portal user. - Send a message and hover over the message. - The `delete` button is not visible in the action list. Forward-Port-Of: odoo/odoo#244954
This update fixes an issue where light dropdown menus in the Discuss app caused eye strain when using the dark theme. By adding a background color adjustment, the menus now blend better with the dark theme, significantly improving readability and user comfort. This enhances the overall user experience within the Discuss app.
Original PR description
Dropdown menu are quite light in dark theme. Outside of discuss not many UI elements require dropdown. However discuss use them a lot, so this becomes a problem to have light background so often. This commit adds `.bg-view` to all discuss dropdown, which is visually unchanged in white theme but in dark theme this makes it darker so easier to read with less eye strain. Task-5492040 Before / After <img width="961" height="671" alt="Screenshot 2026-01-13 at 17 24 12" src="https://github.com/user-attachments/assets/09ab5f8f-5927-4beb-a814-d77cd61f8a01" /> <img width="957" height="667" alt="Screenshot 2026-01-13 at 17 23 56" src="https://github.com/user-attachments/assets/4ec0ef3b-7af5-4b69-b48e-40c3788eb95e" /> Forward-Port-Of: odoo/odoo#243599
This update fixes an issue where the tax code (9) was missing from Datev exports for expense journal entries when using 19%I tax. The problem stemmed from how payment amounts were aggregated, leading to data loss. This ensures accurate tax reporting in Datev.
Original PR description
Currently, when using 19%I tax in vendor bills, the tax code (9) is shown correctly in the BU-Schlüssel section of the datev export. This however is not the case for expense journal entries. Steps to reproduce: - With DE Company setup - Create an Expense as follows: - Included taxes: 19% I - Paid by: Company - Create report > Submit to Manager > Approve > Post Journal entries - Open General Ledger and export Datev Data Issue: Tax code will be missing from the exported entry. This occurs because, when processing payment move lines, amounts and accounts are aggregated, losing track of the source tax. opw-5388791 Forward-Port-Of: odoo/enterprise#105435 Forward-Port-Of: odoo/enterprise#102548
This update adjusts the location of configuration files within the IoT drivers, ensuring they can be correctly identified and upgraded after a recent system change. This change is necessary to maintain the functionality of the IoT drivers and prevent potential issues with package updates. It’s a routine maintenance task.
Original PR description
As we moved configuration folder in `setup/iot_box_builder`, we need to adapt the path to find them. Related PR: https://github.com/odoo/odoo/pull/229698
This update fixes an issue where the Follow-Up Report displayed full account amounts instead of the remaining amounts when reconciled entries were present. This change ensures users accurately see the outstanding balances, improving reporting and financial analysis.
Original PR description
Currently, when viewing the followup report with reconciled entries, we display full amounts instead of the residual amounts. task-5868881
This update fixes a problem with the Point of Sale tour, ensuring it consistently guides users through the setup process. The team addressed a generic error message and a timing issue within the tour, improving the overall user experience. These changes were made to enhance the ease of use for new Point of Sale users.
Original PR description
In this commit, we add few steps in the tour to ensure the tour take always the good way. Few python assertions between has been added to know where the unit test fails (easier to debug). We take advantages of this commit to fix few utils: - Dialog.cancel() was too generic. We add at least title to let the possibility to be more precise. - selectPresetTimingSlotHour() has been fixed to wait the good triggers in the DOM before the tour continues. runbot-error-id 237756 runbot-error-id 237762 Forward-Port-Of: odoo/odoo#243799
A recent issue preventing the demo mode of the Account PEPPOL module from connecting correctly has been resolved. The fix addressed a minor discrepancy in how the connection was being established, ensuring the demo mode now functions as expected. This improves the usability of the PEPPOL demo for testing and training.
Original PR description
There is one argument too much for the mock of _create_connection compared to the real one. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#245678
This update resolves an issue where saving link tracker records with URLs (like `https://demo.com`) would cause an error. The fix ensures that URLs entered in the 'Code' field adhere to the required format, preventing the error and allowing users to successfully save link tracker records with URLs.
Original PR description
Saving a link tracker record fails when the user enters a URL in the Code field. Steps to reproduce the error: - Install ``link_tracker`` module - Create a new link tracker record with Target Link >…
Saving a link tracker record fails when the user enters a URL in the Code field. Steps to reproduce the error: - Install ``link_tracker`` module - Create a new link tracker record with Target Link > Save - Edit the record and set Code: ``https://demo.com`` > Save Traceback: ```py ValueError: Extra URL must use same scheme and host as base, and begin with base path ``` https://github.com/odoo/odoo/blob/af4365421bc7ba990420789c12c98270d723fa1a/addons/link_tracker/models/link_tracker.py#L77 After this commit: https://github.com/odoo/odoo/commit/977e62d91f3e8235e251e9d21b08f53db1856c6b, When the user sets the code as ``https://demo.com``, Error will be raised from [1], because the extra URL must use same scheme and host as base, and must begin with the base path. [1]: https://github.com/odoo/odoo/blob/af4365421bc7ba990420789c12c98270d723fa1a/odoo/tools/urls.py#L55-L58 sentry-7022131826 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#235491
This update fixes a visual issue where product attributes with single values were displaying incorrectly with empty borders. The change refines the CSS selector to accurately hide attribute sections, ensuring a cleaner and more consistent user experience for product browsing. This improves the overall presentation of product information.
Original PR description
Before this commit, when a product attribute with display_type 'pills' has only one non-custom value, the parent li.variant_attribute is correctly hidden. However, the CSS :has() selector still matched the inner li.o_variant_pills, causing the attributes section to display with empty borders. This commit refines the selector to only match pills outside of variant_attribute elements (UOM pills). task-5852515 | Current (19.0) | After | |--------|--------| | <img width="809" height="395" alt="image" src="https://github.com/user-attachments/assets/64519161-e552-492f-b010-d1353b07f80a" /> | <img width="809" height="395" alt="image" src="https://github.com/user-attachments/assets/6022e371-18eb-4d2a-99d0-da3c94b291d0" /> | --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#245175