Daily updates from Odoo
Friday, January 2, 2026
25 changes · master
Enhancements to existing features
This update enhances the visual appearance of filters without color by adding a black border to checkboxes that don't have a color assigned. The change involves a minor code adjustment and removal of duplicate SCSS files to improve consistency and maintainability.
Original PR description
Filters' checkboxes that don't have a color get a black border instead. To achieve this, in commit https://github.com/odoo/odoo/commit/97fea91a570d2bb8a0d454be9cbe7ea4269f6699 we created a hack which inverts the checkbox' white check icon and border to black. In this commit we adapt the `xpath` to add the `.no_filter` class to the parent element instead of the input. We also remove the duplicate SCSS which was already moved to `calendar_filter_panel.scss`. Community PR: https://github.com/odoo/odoo/pull/144404 task-3575827
This update enhances the Odoo calendar app on mobile devices by ensuring the filter dropdown only appears when filters are actually present. Previously, it was always visible, which created a confusing user experience. This change improves usability and simplifies navigation for mobile users.
Original PR description
To be merged after : https://github.com/odoo/odoo/pull/144208 https://github.com/odoo/odoo/pull/144169 - https://github.com/odoo/enterprise/pull/51755 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update enhances how Odoo automatically updates settings by including a unique user identifier (DBUUID). This ensures settings are correctly associated with the right user account, leading to more accurate and personalized configurations. It's a routine improvement for the IAP system.
Original PR description
https://github.com/odoo/iap-apps/pull/1309/ Forward-Port-Of: odoo/odoo#241723
This update simplifies the process of downloading the IoT Box image and Virtual installer. By adding shortcuts directly within the Enterprise app's configuration tab, users can now easily access these essential files, streamlining their setup and reducing friction.
Original PR description
To ease image and installer downloads, we added shortcuts to both installers on the app in the configuration tab.
This update allows different color themes to be set for the Self-Order and Kiosk UIs within an Odoo company. Previously, all locations used the same color. Now, each POS configuration can have its own primary color, offering greater flexibility and branding options.
Original PR description
Before this commit: =================== - The primary color used in the Kiosk and Self-Order UI was always taken from the company configuration. After this commit: ================== - A new primary color field is added to the POS configuration. - The Self-Order and Kiosk UI now use this color per POS config. Purpose: ======== - Allow different color themes for multiple configs within the same company. Task: 5429015 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update moves a key method responsible for loading product information from the database to the point-of-sale store. This change enhances the performance and efficiency of product loading within the POS system, particularly when searching for items. It's a routine improvement to optimize the user experience.
Original PR description
Following this commit: ==== - `loadProductFromDBDomain` method is been move to pos_store from product_screen task-4890054 Linked PR : https://github.com/odoo/odoo/pull/236506
Resolved issues and error corrections
This update corrects a technical error that occurred when duplicating Odoo databases. The change ensures the system handles recordsets larger than one, preventing a 'Expected singleton' error. This improves database stability and reliability during backups and restores.
Original PR description
These two computes assume a recordset of size 1. When duplicating databases, the recordset for this method might be more than 1, causing a "Expected singleton" traceback. See opw-5226545 (and linked TOTD thread) Forward-Port-Of: odoo/enterprise#103033 Forward-Port-Of: odoo/enterprise#99424
This update fixes an issue where users could inadvertently change product taxes when items were already in their shopping cart. Now, users can still modify product details, ensuring consistent tax calculations and order accuracy. This improves the overall reliability of the point-of-sale system.
Original PR description
- When a product is already in the cart, prevent updating its taxes from the frontend product edit popup. This avoids inconsistencies between the product taxes and the taxes applied to the order line. - Now we can still edit other fields of the product. task-id: 4943650 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#239867
This update fixes an issue where spreadsheet metadata wasn't being correctly retrieved. The code has been moved to the appropriate module, spreadsheet_edition_account, ensuring accurate metadata is now available for spreadsheet functionality. This improves the reliability of spreadsheet reports and data integration.
Original PR description
This commit moves the override of _get_spreadsheet_metadata to the correct module, spreadsheet_edition_account. 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#241653
This update corrects the location of a key function within the Enterprise module, ensuring accurate retrieval of spreadsheet metadata. This resolves a previous issue and enhances the reliability of spreadsheet integration within the accounting system. It's a minor technical adjustment.
Original PR description
This commit moves the override of _get_spreadsheet_metadata to the correct module, spreadsheet_edition_account. Forward-Port-Of: odoo/enterprise#103054
This update resolves an error that prevented users from opening the employee form within the Point of Sale (POS) frontend. The fix disables the employee selection field on the frontend only, allowing the backend to function correctly where all necessary data is available. This ensures a smooth user experience for POS operations.
Original PR description
Opening employee form in the frontend was throwing an error, since not all thre required assets were available on the PoS frontend. So in this commit 57aba149b6e6927f9055124e58bed03f842329d5, we disabled openening the employee form by making the employee_id field unclikcable, both in forntend and backend!! It was enough however to only macking it unclikcable on the frontend, since it was working fine on the backend where all the required assets were loaded anyway. This commit restores the functionality on the backend, but overriding the `Many2OneField` used by the `employee_id`, and making it unclickable only on the frontned. opw-5252486 Forward-Port-Of: odoo/odoo#241793 Forward-Port-Of: odoo/odoo#241100
This update resolves minor usability issues related to the new channel hiding feature within WhatsApp. The changes enhance the user experience by addressing visual inconsistencies and improving the overall flow when hiding channels. This ensures a smoother and more intuitive experience for users.
Original PR description
Task-5431819 Forward-Port-Of: odoo/enterprise#102594
This update prevents visitor conversations within live chat from displaying the sender's IM status. This change addresses a recent accidental issue and improves the user experience for visitors. The fix ensures a cleaner and more focused chat interaction.
Original PR description
Before this commit, IM status was visible by livechat visitor. This issue comes from recent accidental regression [1]. [1]: https://github.com/odoo/odoo/pull/234715 Task-5435992 Before / After <img width="384" height="129" alt="Screenshot 2025-12-22 at 14 19 14" src="https://github.com/user-attachments/assets/6fb80a49-f04c-4db1-aa9a-254146a313b5" /> <img width="379" height="129" alt="Screenshot 2025-12-22 at 14 19 37" src="https://github.com/user-attachments/assets/10308a02-7370-4818-8bf5-cd1513a1a964" /> Forward-Port-Of: odoo/odoo#240927
This update resolves a random error that prevented the point-of-sale tip tour from running correctly. The issue stemmed from the tour not waiting for the confirmation screen to appear after the tip was validated. This fix ensures the tour consistently functions as expected, improving the customer experience.
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 Forward-Port-Of: odoo/odoo#241661
This update simplifies point-of-sale printer settings. Previously, complex configurations led to issues with printer prioritization. Now, the system automatically uses the default receipt printer selected, and the settings interface is streamlined to only show valid receipt printers.
Original PR description
Previously, when an Epos IP and for IoT devices were configured both in one pos config , the Epson printer was prioritized over IoT devices, and a warning message was displayed to notify the user. This behavior has been removed. Printers are no longer managed this way, and the default receipt printer is now always the one selected for printing. Also, the filter for the default receipt printer in the res settings has been adjusted to display only receipt printers in the available field. enterprise pr: https://github.com/odoo/enterprise/pull/102673 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#240916
This update removes a confusing warning message related to printer configurations in the Point of Sale system. Now, the default receipt printer is automatically selected, simplifying the setup for users. This change ensures consistent receipt printing across all devices.
Original PR description
Previously, when an Epos IP and for IoT devices were configured both in one pos config , the Epson printer was prioritized over IoT devices, and a warning message was displayed to notify the user. This behavior has been removed. Printers are no longer managed this way, and the default receipt printer is now always the one selected for printing. Also, the filter for the default receipt printer in the res settings has been adjusted to display only receipt printers in the available field. community pr : https://github.com/odoo/odoo/pull/240916 Forward-Port-Of: odoo/enterprise#102673
A recent change temporarily removed image alignment options from the Odoo builder. This commit has reverted that change, restoring the familiar functionality. These options will be permanently removed once a new 'image toolbar' is fully implemented.
Original PR description
Commit [1] removed the image options from the sidebar because a task is planned to move these image alignment options to a new "image toolbar". Merging that commit before the toolbar task was ready was not a good idea, as it leaves us without these options for a long period of time. With this commit, we restore the image alignment options in the sidebar. These options will be removed only when they can be properly moved to the new image toolbar. [1]: https://github.com/odoo/odoo/commit/101d0c782cec6a7b5dadf062c75828aefff2e8a7 Forward-Port-Of: odoo/odoo#241766
This update ensures that new booking forms created through the POS system begin with an empty name field. Previously, the form might automatically populate with a default value, which was causing confusion for users. This change simplifies the booking process and ensures consistency.
Original PR description
In this commit: --------- - Ensure the booking form opens with an empty name when created from POS. - Prevents unwanted auto-filled values during create flow. Task-5431520
This update corrects a formatting error in a notification message that was causing incorrect punctuation. Specifically, the message was incorrectly displaying "Done!. rest of the message." The fix removes the exclamation mark, ensuring messages are displayed correctly. Additionally, the word "Done" has been translated for internationalization.
Original PR description
Issue: a notification used the title field with "Done!" and a message. The issue is that a title and message are separated by a period, resulting in "Done!. rest of the message." Solution: remove the exclamation mark Note: Added translation of "Done" Task-5420416 Forward-Port-Of: odoo/enterprise#103026
This update resolves a technical error in the Point of Sale module that prevented accurate price displays. The fix ensures that the 'pricer_display_price' field is correctly populated, improving the reliability of product pricing within the POS app. This change was necessary due to an underlying issue with how Odoo's ORM handles computed fields.
Original PR description
**Step to reproduce:** 1. Install pos_pricer module: 2. Open the Point of Sale app and create a product. 3. Go to the Product Variants menu. 4. Open that product. 5. Activate developer mode. 6. Click…
**Step to reproduce:** 1. Install pos_pricer module: 2. Open the Point of Sale app and create a product. 3. Go to the Product Variants menu. 4. Open that product. 5. Activate developer mode. 6. Click on the Bug icon (top-right corner). 7. Click on Data. **Issue:** A traceback is raised with the error: `Compute method failed to assign product.product(191,).pricer_display_price` The method `_compute_pricer_display_price` was removed in this commit https://github.com/odoo/enterprise/commit/87b1672ac7c1d27cd9eab05138b78f6a9439fea7 , and was reintroduced in a later commit https://github.com/odoo/enterprise/commit/4575d3dfdbd0ccd9bf57bddbd35a89bd47c48798 to avoid the AttributeError. **Cause:** The computed field `pricer_display_price` is a type Char and and is non-stored was not being assigned a value inside the compute method. So ORM requires that records to be assigned a value in a compute method. **Solution:** To fix this, assign a default value to `pricer_display_price` inside the compute method to prevent the error. opw-4887318 Forward-Port-Of: odoo/enterprise#90676 Forward-Port-Of: odoo/enterprise#88517
This update clarifies the dependencies within the Brazilian tax reporting module (l10n_br_edi_sale_fiscal_reform). Previously, the module relied on several indirect dependencies, which has now been explicitly defined. This ensures the module functions correctly and avoids potential compatibility issues.
Original PR description
l10n_br_edi_sale_fiscal_reform depends on l10n_br_edi_sale, which depends on both l10n_br_edi and sale, but not explicitly on l10n_br_avatax_sale. runbot-exception-762 [runbot-error-237690](https://runbot.odoo.com/odoo/runbot.build.error/237690) Forward-Port-Of: odoo/enterprise#103117
This update corrects a typo in the dashboard name and updates the labels for key scorecards to use more accurate terminology ('Avg revenue per guest' and 'Avg revenue per order'). These changes improve the dashboard's readability and provide more precise data insights for restaurant performance analysis.
Original PR description
Desired behavior after PR is merged:
- Fix typo in first sheet name: 'Dahsboard' -> 'Dashboard'.
- Rename scorecards to reflect average values:
- 'Total revenue per guest' -> 'Avg revenue per guest'.
- 'Total revenue per order' -> 'Avg revenue per order'.
Task: [5447108](https://www.odoo.com/odoo/project/2328/tasks/5447108)
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#241838
Forward-Port-Of: odoo/odoo#241598Features or functions removed from Odoo
This change removes a duplicate stylesheet file in the mail module. The original file was a copy-paste of a newer, more comprehensive stylesheet. This cleanup simplifies the codebase and improves maintainability.
Original PR description
Code in `@mail/scss/variables/primary_variables.scss` was copy-paste of `@mail/core/common/primary_variables.scss`. `variables/primary_variables.scss` was the original file in mail to define variables, but then the `common/primary_variables.scss` file was introduced when folder for assets bundles was necessary. The `common/primary_variables.scss` replaces it completely, therefore there's no reason to keep `variables/primary_variables.scss`.
Code cleanup and technical improvements
This update refactors the IoT drivers' static files to align with Odoo's coding standards. Additionally, a small optimization was made to reduce the delay before the full-screen loader checks for IoT Box status, improving responsiveness. This change enhances the overall user experience and code maintainability.
Original PR description
We rename static files to camel_case to comply with Odoo conventions. We also reduced the timeout before the full screen loader starts pinging the IoT Box. It was 10 seconds to avoid pinging before the server stopped. We reduced it to 2 seconds, as it's useless most of the time.
This update addresses a coding standard issue within Odoo, replacing instances of `odoo._` with `self.env._`. This improves code consistency and maintainability, aligning with best practices for Odoo development. The changes were automatically applied using a tool that scans the codebase for these inconsistencies.
Original PR description
Related to https://github.com/odoo/odoo/pull/174844 Enteprise Related https://github.com/odoo/enterprise/pull/103014 I have created the following plugin for…
Related to https://github.com/odoo/odoo/pull/174844
Enteprise Related https://github.com/odoo/enterprise/pull/103014
I have created the following plugin for [fixit](https://github.com/Instagram/Fixit):
- https://github.com/OCA/odoo-pre-commit-hooks/blob/main/src/oca_pre_commit_hooks/checks_odoo_module_fixit/prefer_env_translation.py
Where it identify all the `odoo._` cases and transform automatically to `self.env._`
Running the following command:
```bash
export FIXIT_ODOO_VERSION=19.0
find . -name "__manifest__.py" -execdir oca-checks-odoo-module-fixit --fix --enable=prefer-env-translation {} \;
git diff --name-only \
| grep '\.py$' \
| xargs ruff check --select F401 --fix
```
(We need to run 2 times since that if the same line that the same issue so it is fixed once)
# TODO
- [x] Wait to push all the cases
### Run autofixes for only files changed
- [x] Run autofix for imported but unused
```python
git diff odoo/master --name-only \
| grep '\.py$' \
| xargs ruff check --select F401 --fix
```
- [ ] Remove unicode literals from strings u''
- [ ] Missing whitespace around operator
- [ ] Trailing comma on bare tuple prohibited [enterprise/l10n_mx_reports/models/trial_balance.py:34](https://github.com/odoo/enterprise/blob/e5e365248daf59713d92c65f7ac024a4a9897c28/l10n_mx_reports/models/trial_balance.py#L34)