Daily updates from Odoo
Tuesday, February 3, 2026
24 changes
1 change
Enhancements to existing features
This update enhances the user experience by adding a cursor pointer to the headers of statement summaries in the accounting module. This allows users to easily navigate and explore their financial data, improving usability and efficiency.
Original PR description
This improves the user experience by indicating that the headers are clickable. No task ID Forward-Port-Of: odoo/enterprise#105078 Forward-Port-Of: odoo/enterprise#105023
19 changes
Enhancements to existing features
This update enhances the 'My Tasks' menu by displaying employee availability – including time off and unavailable periods – regardless of how tasks are grouped. This ensures users always have a clear view of their workload and upcoming absences directly within the 'My Tasks' interface, streamlining task management.
Original PR description
Currently, the unavailabilities (non-working days, time off, public holidays, and periods outside of a work contract) are only displayed if the Gantt view is grouped by users. Of course, we expect someone to know when he/she will be off. They can do it via the "All tasks" menu and filter on their own tasks, but that is the purpose of the "My tasks" menu. In this commit, display the unavailabilities of the current user, even in the case the view is not grouped by users, but only in the context of "My tasks" and not elsewhere. task-5184732
This pull request removes unnecessary functionality related to active tab keynav focus within the VoIP module. The change simplifies the user experience and prevents potential conflicts. It's a minor improvement to the VoIP application.
Original PR description
This is not needed.
This update improves the Helpdesk module by adding an offline searchbar. This change, mirroring a previous development, optimizes the user experience by allowing access to search functionality even without an active internet connection. It’s a minor enhancement focused on usability.
Original PR description
This commit is the enterprise counterpart of https://github.com/odoo/odoo/pull/244531, where we slightly change the kanban controller template (add a `t-elif` after the KanbanRenderer node). This change required an adaptation of the custom kanban controller in helpdesk. Task~244531
This update simplifies how Odoo identifies refund transactions within its accounting modules. Previously, checks for refunds were done with multiple, specific conditions. Now, a new method is added to `account.move` to directly determine if a move represents a refund, improving code clarity and maintainability. This change enhances the accuracy of refund processing across various Odoo localization modules.
Original PR description
Before this commit-
We had methods on `account.move` i.e.
`is_sale_document`, `is_invoice` but
at many instance in the code base,
we did do `self.move_type in ('out_refund', 'in_refund')`
After this commit-
We add new methods on `account.move` to
get and check if the move is refund
task-5850565This update adjusts the inheritance of a template used for displaying sales tax calculations on the website. The change reflects a shift in how the 'o_order_total_taxes' component is managed within the Odoo platform. This ensures accurate and consistent tax display for customers.
Original PR description
"o_order_total_taxes" is now in a different template, so inheritance has been adjusted. See also: - https://github.com/odoo/odoo/pull/229912 task-4805599
This update enhances the system's ability to prevent duplicate Vendor Bills in Colombia by specifically checking for unique CUFE (Electronic Invoice Code) identifiers. Previously, standard partner-based duplicate detection wasn't sufficient for CUFE uniqueness. Now, a warning banner will appear if a duplicate CUFE is found, ensuring accurate record-keeping.
Original PR description
When importing or editing Vendor Bills in Colombia, the CUFE (Electronic Invoice Code) serves as a globally unique identifier. The standard duplicate detection, which relies on the partner, is insufficient for ensuring CUFE uniqueness across the system. This commit overrides the duplicate detection hooks to check for existing bills with the same `l10n_co_edi_cufe_cude_ref`. Functionally, if a duplicate CUFE is detected on a Vendor Bill, the system will populate the `duplicated_ref_ids` field, triggering the standard warning banner on the form view to alert the user. Related Community PR: https://github.com/odoo/odoo/pull/240911 Task-5402480
This update adjusts the maximum NSSF (National Social Security Fund) contribution limits to align with the latest regulations under the NSSF Act 2013. Specifically, the lower and upper earnings limits have been revised, impacting the total combined contribution a business can make. This ensures compliance with Kenyan tax laws.
Original PR description
This commit updates the NSSF Lower and Upper Earnings Limits in accordance with the 4th year of implementation of the NSSF Act 2013. - Set Lower Earnings Limit (Tier 1) to 9,000. - Set Upper Earnings Limit (Tier 2) to 108,000. - Resulting max combined contribution is now 6,480. Task: 5485002 Forward-Port-Of: odoo/enterprise#105019
This update clarifies the Professional Tax deduction on employee contracts by updating the tooltip and renaming the field label. This change improves user understanding and reduces potential confusion when configuring payroll settings.
Original PR description
Purpose: - Improve clarity and understanding of the Professional Tax deduction on the employee contract by providing a more descriptive tooltip and a clearer label. This PR includes: - Updated the Professional Tax tooltip to better understanding. - Renamed the field label from 'Professional Tax Slab' to 'Professional Tax'. task-5890446
This update clarifies the naming of a key field in our subscription tracking system. The 'Subscription State' column has been renamed to 'State Before' to provide a more intuitive understanding of the subscription's status at the time of an event. This change improves readability and reduces potential confusion for users.
Original PR description
The sale.order.log model includes a field named subscription state that records the state of the subscription at the moment an event occurs (i.e., the state before the change). To improve clarity for end users, this PR renames the column from Subscription State to State Before. task-5258195
This update enhances the Odoo POS system by allowing automatic SMS and WhatsApp notifications to customers regarding order status updates – from initial placement to completion. This improves customer communication and provides real-time updates, leading to a better customer experience and potentially increased sales.
Original PR description
… to warn the client about order status This task aims to provide a solution for communicating the status of various customer orders. Now, the POS can send an SMS or a WhatsApp message when an order at the self-service is placed, either through WhatsApp, SMS, or both. When the order is completed, the customer can also be notified. task : 5246552 community pr : https://github.com/odoo/odoo/pull/235389 Forward-Port-Of: odoo/enterprise#99318
This update aligns the TDS XLSX report with the official utility format, ensuring accurate tax documentation. By fetching partner information from AML records, the report now correctly handles miscellaneous entries, resolving a previous issue with formatting. This improves the reliability of tax reporting.
Original PR description
This commit aligns the TDS XLSX report with the official TDS utility format. Additionally, We now fetch the partner from AML record, so even miscellaneous entries generate a correctly formatted XLSX sheet. task-5237518 Forward-Port-Of: odoo/enterprise#106016 Forward-Port-Of: odoo/enterprise#104753
This update enables smaller Odoo users to connect to Shopee, a popular e-commerce platform, by utilizing the IAP service. The changes include a simplified user interface replacing the 'Shopee Account' menu with 'Shopee Shop' and supporting the IAP credential requirement for Shopee API access.
Original PR description
This is a new feature of Shopee Connector. Shopee has a minimum order requirement for sellers to apply for an API key, which small sellers cannot apply for an API key. This commit: - Enables using Shopee Connector with Odoo API credential via IAP service. - Shopee Account menu is replaced by Shopee Shop to improve UX. task id - 5022010
This update enhances the user experience by adding a cursor pointer to the headers of statement summaries in the accounting module. This allows users to easily navigate and explore their financial reports, making the system more intuitive and efficient.
Original PR description
This improves the user experience by indicating that the headers are clickable. No task ID Forward-Port-Of: odoo/enterprise#105078 Forward-Port-Of: odoo/enterprise#105023
This update streamlines the display of IM status and thread icons on avatars across Odoo. By introducing a new component, the team has reduced maintenance and improved UI consistency, ensuring a more reliable and visually appealing user experience for all users.
Original PR description
*: planning_holidays, voip, whatsapp Before this commit, IM status and thread icon were used a lot as bottom-right floating icon on a conversation or user avatar. Each context that wanted this visual…
*: planning_holidays, voip, whatsapp Before this commit, IM status and thread icon were used a lot as bottom-right floating icon on a conversation or user avatar. Each context that wanted this visual of avatar + floating icon had to craft by hand the avatar sizing and icon position, which has many drawbacks: - image and icon sizing and positioning needs manual tweak in each context, requiring lots of effort. - very-prone to inconsistencies due to high maintenance to make each context work. Current state had many inconsistencies. - handling of mask of floating icon is poor, with `.bg-inherit` on parented chainng that is hard to enforce and in some cases, just don't work at all This commit improves by introducing a new component `DiscussAvatar`, that accepts `channel`, `thread`, channel's `member` or `persona` to display avatar and conversation / person icon in the bottom-right corner. This new component has the following benefits: - one component to handle all the cases of conversation / person avatar with floating icon / im status, drastically reducing maintenance effort and increasing significantly UI consistency. - new technique to mask image with floating icon that works all the time thanks to the use of `SVG`'s mask. Part of Task-5867464 https://github.com/odoo/odoo/pull/246182
This update optimizes how report data is stored, reducing memory usage and improving performance, particularly in the web client. By changing the format of column group options from a large string to a list of integers, the system now uses significantly less memory. This results in faster report generation and a smoother user experience.
Original PR description
Each cell of a report references its column group options. Before this commit, it was using `column_group_key`, which was a serialization of the column group options. You could get the column group options, using the `options['column_groups']` dict with this key. In the web client, this takes up a lot of memory. As it is a relatively big string, created for each cell. In the backend, there's no issue as they all are just references to the same objects as in the options. With this commit, in order to save memory, `options['column_groups']` is a list instead of a dict. `column_group_index` replaces `column_group_key`. Using this index on `options['column_groups']` gives the corresponding column group options. As it is a small int, it takes far less place in memory. task-5164369
This update standardizes the wording used for the Live Chat app across Odoo. This change improves the user experience by ensuring a consistent and professional brand image. It's part of a larger effort to streamline and refine key Odoo features.
Original PR description
This commit harmonizes the copywriting of the Live Chat app name. part of task-4461200 part of task-5867464
This update separates the mocked SIP.js library for demo mode, enabling better testing and future improvements. It allows for more robust unit tests and unlocks potential enhancements to the demo experience, paving the way for simulating various call scenarios.
Original PR description
This commit moves the mocked SIP.js library used in VoIP demo mode into a separate asset bundle. Benefits: - it makes the mocked SIP.js library usable in unit tests as well, and to even test the prod…
This commit moves the mocked SIP.js library used in VoIP demo mode into
a separate asset bundle.
Benefits:
- it makes the mocked SIP.js library usable in unit tests as well, and
to even test the prod mode by further extending the mocked features.
- it paves the way for future improvements in VoIP unit tests, by
allowing to have different mocked behaviors depending on the test
needs (e.g. simulating call drops, network issues, etc).
- it even allows the user agent to initialize even in demo mode,
unlocking potential future improvements of this mode.
Notable Changes:
- the bundle loading is now made inside the start of the voip service
instead of the user agent class, which makes more sense as it is the
voip service that knows in which mode it is running.
- the bundle "voip.assets_sip" is now split into three bundles:
- "voip.assets_sip_prod": contains the real SIP.js library
- "voip.assets_sip_demo": contains the mocked SIP.js library
- "voip.assets_sip_tests": contains the mocked SIP.js library plus
additional mocking for unit tests
Future improvements:
- the mocked SIP.js for unit tests is for now a bit naïve and should be
improved along with future VoIP unit tests developments.This update enhances the Odoo Enterprise softphone by adding tooltips to country flags displayed alongside phone numbers. This improves user recognition of the flagged countries, making the call process more intuitive and user-friendly. A new component was created to avoid code repetition and simplify future updates.
Original PR description
In voip.call form/list view, country flags are shown with phone numbers. In this commit, we add alt/tooltip to country flags for users to recognise them. Task-[5404442](https://www.odoo.com/odoo/5778/tasks/5404442)
This update simplifies the setup for desk phone calls by ensuring consistent labels, helpful instructions, and a unified user interface across different settings locations. The changes clarify how to configure calls from another device, improving usability and reducing potential confusion for users.
Original PR description
The `should_call_from_another_device` field is defined both on the user model and the discuss "user settings" model (accessible via Settings > Technical > Discuss > User Settings). This commit makes sure that: - Both fields have the same clear label (also keeping the fact it fits on one line in English). - Both fields have the same clear help text (before this commit, the help text did not appear where it was the most useful: in the user preference dialog). - The UI is the same for all 3 places (user form view, preference form view and discuss user settings form view): the label, the checkbox and then the input field for the phone number; all on the same line. Notice that the `external_device_number` related field was also simplified and the placeholder "No redirect" is replaced with "Phone number" which makes it clearer that once the checkbox is checked, a phone number has to be put over there. task-4947771
2 changes
Enhancements to existing features
This update makes the top bar (embedded actions) visible by default when a new audit working file is created and opened for the first time. This simplifies the initial user experience and ensures users immediately have access to key controls. The visibility is still customizable based on user preferences.
Original PR description
Currently, the top bar (embedded actions) in Working Files in audit is not visible by default when the user creates and opens it for the first time. This commit makes it visible when the Audit is created and opened for the first time, later on the visibility is decided as per the user preferences set in the `res.users.settings.embedded.action` model. task-5388717
This update improves the speed of database synchronization by intelligently grouping requests and processing them in parallel. This resulted in a significant reduction in synchronization time – specifically, a 30-database sync that previously took 50 seconds now completes in just 15 seconds. This enhancement improves overall system performance and responsiveness.
Original PR description
With this commit, the requests sent to retrieve the information from the databases are grouped by IP, and each group is treated in parallel using a ThreadPoolExecutor, which uses a pool of 5 times the number of CPUs. On a set of SaaS databases, we reduced the time needed to synchronize 30 databases from 50s to 15s.
2 changes
Enhancements to existing features
This update enables IoT devices to connect to the Point of Sale system without requiring a secure HTTPS certificate. By using HTTP and a local address space, the system now supports IoT devices, improving their functionality and reliability. This change was implemented to align with recent Odoo updates.
Original PR description
Enterprise PR: https://github.com/odoo/enterprise/pull/106183 This is a backport of odoo/odoo#237147. Since odoo#235702, there is a `point_of_sale.use_lna` system parameter. When it is set, ePOS requests will use HTTP instead of HTTPS, and the `targetAddressSpace: "local"` option is used in the `fetch` request. This bypasses the need for a HTTPS certificate. This commit adds the same functionality to all IoT requests from the POS. This should allow the IoT box to function correctly without a HTTPS certificate. task-5353672 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Community PR: https://github.com/odoo/odoo/pull/246781 This is a backport of odoo/enterprise#100331. Since odoo/odoo#235702, there is a `point_of_sale.use_lna` system parameter. When it is set, ePOS requests will use HTTP instead of HTTPS, and the `targetAddressSpace: "local"` option is used in the `fetch` request. This bypasses the need for a HTTPS certificate. This commit adds the same functionality to all IoT requests from the POS. This should allow the IoT box to function correctly
Original PR description
Community PR: https://github.com/odoo/odoo/pull/246781 This is a backport of odoo/enterprise#100331. Since odoo/odoo#235702, there is a `point_of_sale.use_lna` system parameter. When it is set, ePOS requests will use HTTP instead of HTTPS, and the `targetAddressSpace: "local"` option is used in the `fetch` request. This bypasses the need for a HTTPS certificate. This commit adds the same functionality to all IoT requests from the POS. This should allow the IoT box to function correctly without a HTTPS certificate. task-5353672