Daily updates from Odoo
Wednesday, December 17, 2025
34 changes · master
New functionality added to Odoo
This update adds visual icons to the list view for VoIP calls, representing recording and transcript options. These icons provide a clearer visual cue for users, making it easier to quickly identify calls with recording or transcript functionality. This improves usability and streamlines access to important call information.
Original PR description
Task-5382341
This update adds tags to key website appointment snippets (cards, pictures, and lists) within the 'add snippets' dialog. This improves organization and allows for easier filtering and targeting of appointment-related content on the website, enhancing the user experience.
Original PR description
This commit adds label tags to respective snippets in add snippets dialog: `Appointment` tag: - s_appointments_card - s_appointments_picture - s_appointments_list task-[5258542](https://www.odoo.com/odoo/project/974/tasks/5258542)
This update adds the ability to view the duration of calls within the Odoo Chatter interface. Previously, call information was limited; now, users can easily track call times alongside other communication details. This improves visibility and reporting for sales and customer support teams.
Original PR description
Task-5343433 ~~Community: https://github.com/odoo/odoo/pull/240242~~
This update adds a new option within Odoo Enterprise to directly export employee work entries to Partena ProSalary. This simplifies the process of submitting payroll data to Partena, reducing manual effort and improving data accuracy. It addresses a key requirement for businesses using Partena's ProSalary service.
Original PR description
Add option to export work entries for partena ProSalary Task-5380603
Enhancements to existing features
This update clarifies the heading for the website appointment snippet, making it more understandable for users. The change ensures the snippet's purpose – displaying appointment scheduling options – is immediately clear. This improves the overall user experience on the website.
Original PR description
This commit updates the heading content of the `s_appointments snippet` to ensure it aligns more clearly with its purpose and use case. task-5168006 Requires: - https://github.com/odoo/odoo/pull/235984
This update simplifies the process for salesmen to generate leads directly from appointment meetings. Previously, specific access groups were required; now, leads are automatically assigned to the meeting organizer, streamlining lead creation and improving sales efficiency. This change is an improvement to the existing appointment workflow.
Original PR description
Reduced required access group to enable generating leads from appointments. The lead is assigned to the user selected in the meeting definition
This update allows users to change the name of their Sign Template bundles directly within the configuration process. Previously, the bundle was automatically named after the first document. This change improves usability and provides more control over sign template organization.
Original PR description
Previously, the Sign Template bundle always used the first document's name. This commit enables users to edit the bundle name dynamically in the configuration wizard and updates the breadcrumb accordingly. task-5361809
This update automatically schedules work orders as soon as possible, streamlining the planning process. It maintains the existing option to schedule based on a specific start date, providing flexibility for users. This change improves efficiency and reduces manual effort in managing work orders.
Original PR description
Allow scheduling as soon possible by default while still allowing the (later) option to schedule based on date_start (using the current mechanism) task: 5259035
This update simplifies the creation of engineering change orders (ECOs) by pre-filling common fields and providing clearer visual guidance. The changes enhance user experience, reduce errors, and ensure accurate tracking of product revisions and related engineering modifications, ultimately improving PLM efficiency.
Original PR description
These changes focus on making ECO workflows more intuitive and preventing common mistakes users face while navigating PLM screens. Several tasks that users frequently repeat, such as selecting the…
These changes focus on making ECO workflows more intuitive and preventing common mistakes users face while navigating PLM screens. Several tasks that users frequently repeat, such as selecting the ECO type, are now prefilled based on context. This reduces friction and speeds up ECO creation. Showing the product version consistently, and adding version information to product list views, helps users quickly understand the state of the item they are modifying—especially when working with multiple revisions. Preventing document upload or removal once the ECO is applied avoids accidental changes and maintains proper traceability. Field inputs have also been improved by replacing date radio buttons with a clearer date field, helping users enter information correctly and reducing misinterpretation. The “Apply on” radios are replaced with a selection field that includes a context-based placeholder to guide the user toward the appropriate choice. Additionally, the product form view now shows both Product-type and BOM-type ECOs in the smart button. Previously, only Product-type ECOs were visible. This gives users a complete view of all related engineering changes. The ECO count on the BOM smart button was also incorrect in some cases, and this has been fixed to ensure accurate totals. Overall, these UI improvements create a smoother, safer, and more predictable ECO experience, reducing confusion and helping users follow PLM processes correctly. Task ID: 5358428
This update enhances the user experience when splitting picking orders in Odoo Enterprise. The change aligns with recent community development, streamlining the process and making it more consistent. This improves efficiency for warehouse staff.
Original PR description
Adapt the `_create_backorder` method to accept a new parameter, aligning it with the recent development introduced in the community PR. Task Id:- 5003505
This update enhances Odoo's ability to convert and map domain values, streamlining data filtering within key modules. The change simplifies a previous design restriction, making the system more flexible and efficient. This improves reporting and data management capabilities.
Original PR description
As PR #238734 changed `filter_domain_leaf()` to take only one function to both map and filter the domain (instead of a function to filter and a dict to map, which was too restrictive), and renamed it to the more explicit `filter_map_domain()`, parts using `filter_domain_leaf()` had to be changed to fit the new function prototype. task-5379826
This update simplifies the dashboard editing experience by renaming the 'Edit' button to 'Edit in Spreadsheet'. With recent changes to dashboard creation, the associated 'Add a spreadsheet' button and related elements have been removed to streamline the workflow. This change improves user understanding and consistency.
Original PR description
### Description - Rename the dashboard edit button to "Edit in Spreadsheet" for improved clarity and consistency with the dashboard editing workflow. - As the form view for the spreadsheet dashboard group has been removed and users can now create dashboards using the New button, remove the "Add a spreadsheet" button from the list view, along with its related tours and tests. Task: [5259227](https://www.odoo.com/odoo/project/2328/tasks/5259227)
This update adds a Gantt chart view to the employee attendance smart buttons on payslips and employee forms. This provides a clearer visual timeline of employee work hours, making it easier to track and manage attendance data.
Original PR description
When an employee’s work entry source is Attendance, the “Attendances” smartbutton on both the Payslip and the Employee form opens only a list view. Since attendances represent time intervals, the list view alone is not sufficient to understand the timeline. - This PR adds the Gantt view to both actions to provide a clearer visualization of attendance periods. task-5149218
This update refines the look and feel of appointment pages, including adding appointment durations and improving the overall layout. It also removes outdated components and ensures proper CSS Grid support for optimal display, enhancing the user experience.
Original PR description
* appointment_account_payment, website_appointment, website_appointment_account_payment, website_appointment_sale ### Review appointment snippets design This PR refines the appointment list design…
* appointment_account_payment, website_appointment, website_appointment_account_payment, website_appointment_sale ### Review appointment snippets design This PR refines the appointment list design and updates the two other snippet templates (card and big picture) by adding the duration. It also improves the preview data to better reflect real use cases. ### Fine-tune design of appointment pages This commit refines and updates the overall layout of the frontend appointment pages. As it's not used anymore, this commit also removes the `appointment_progress_bar` template and its inherited record. A migration script is necessary and has been done in PR[1]. We also remove the 'all appointments' button. To ensure the layout works correctly, we need to enable CSS Grid in the portal, which is addressed in PR[2]. task-5160208 Requires: - [1] https://github.com/odoo/upgrade/pull/9049 - [2] https://github.com/odoo/odoo/pull/239617 | | Before | After | |--------|--------|--------| | Add duration in Cards and Big Picture templates | <img width="1376" height="504" alt="image" src="https://github.com/user-attachments/assets/db796a9a-3270-4472-9d24-bc8079d09d55" /><img width="1374" height="535" alt="image" src="https://github.com/user-attachments/assets/d1287f31-295a-41db-aac4-f5e6cc1dd872" /> | <img width="1348" height="546" alt="image" src="https://github.com/user-attachments/assets/6e5d32bb-63a3-402e-af25-5aa917a8502d" /><img width="1369" height="539" alt="image" src="https://github.com/user-attachments/assets/a884c182-0988-4f25-8945-f86fb3fe9100" /> | | Review the List template | <img width="1388" height="558" alt="image" src="https://github.com/user-attachments/assets/1ce0d91c-ea9d-474e-a19c-43fc0e673975" /> | <img width="1380" height="595" alt="image" src="https://github.com/user-attachments/assets/47098d34-8803-47bd-803a-f1ea5ba61bbe" /> | | Appointment pages based on users | <img width="1362" height="729" alt="image" src="https://github.com/user-attachments/assets/3d46cc48-3ed4-49ce-88e6-282d0c06d3dd" /><img width="1339" height="634" alt="image" src="https://github.com/user-attachments/assets/082868de-1619-4aae-9d81-7618e5a3cc4b" /> | <img width="1328" height="637" alt="Capture d’écran 2025-12-10 à 14 28 01" src="https://github.com/user-attachments/assets/5080be89-f5c8-43e4-9321-211482e55e4d" /><img width="1331" height="451" alt="Capture d’écran 2025-12-10 à 14 28 14" src="https://github.com/user-attachments/assets/1c18c32c-8612-402c-8f96-9dc623e4eb60" /> | | Appointment pages based on resources | <img width="1302" height="722" alt="image" src="https://github.com/user-attachments/assets/485f1c4c-2523-468e-a618-be3097235c7e" /><img width="1353" height="591" alt="image" src="https://github.com/user-attachments/assets/41a577dc-9536-4ee7-b981-5e5bcceda927" /> | <img width="1320" height="534" alt="Capture d’écran 2025-12-10 à 14 29 51" src="https://github.com/user-attachments/assets/50b9c8ac-fc0a-4ada-a460-309daed984f0" /><img width="1318" height="431" alt="Capture d’écran 2025-12-10 à 14 30 09" src="https://github.com/user-attachments/assets/ff1cda4e-fedd-4e1a-8960-a28bf35dc203" /> | | Appointment page - Online | <img width="1343" height="736" alt="image" src="https://github.com/user-attachments/assets/be9aade6-d6a0-4d86-8429-d9481d120b3b" /> <img width="1352" height="673" alt="image" src="https://github.com/user-attachments/assets/663e22de-da82-46dd-821e-8650e9d74e5c" /> <img width="1340" height="788" alt="image" src="https://github.com/user-attachments/assets/08cc613c-7029-47bd-8f00-6118286ed117" /> | <img width="1332" height="616" alt="Capture d’écran 2025-12-10 à 14 31 45" src="https://github.com/user-attachments/assets/fbe6711a-c1f7-4959-8e21-a94a6649fe91" /><img width="1333" height="504" alt="Capture d’écran 2025-12-10 à 14 36 23" src="https://github.com/user-attachments/assets/1c8c07d8-87c6-4b1b-9d1a-2db3d4e2aaa0" /><img width="1332" height="571" alt="Capture d’écran 2025-12-10 à 14 35 51" src="https://github.com/user-attachments/assets/2e926696-c75a-4073-9b94-db8262292bf0" /> | | Confirmation page | <img width="1394" height="778" alt="image" src="https://github.com/user-attachments/assets/0ab70545-ea96-48d0-9eb9-21f01600b8e4" /> | <img width="1341" height="518" alt="Capture d’écran 2025-12-10 à 14 38 40" src="https://github.com/user-attachments/assets/196d667b-72f1-4fd4-8105-f38403ac7522" /> | | Appointment cancelled | <img width="1374" height="795" alt="image" src="https://github.com/user-attachments/assets/c7a3370a-238c-429b-bf3e-fa1e0d9aa9ea" /> | <img width="1335" height="469" alt="Capture d’écran 2025-12-10 à 14 39 06" src="https://github.com/user-attachments/assets/0ebd8a40-8be3-4b62-af66-901e7b192c70" /> |
This update streamlines how Odoo matches payments, particularly those processed through payment providers. By generalizing the use of a unique identifier (end-to-end_uuid), the system can now quickly and accurately identify payments, leading to faster reconciliation and improved data accuracy. This change enhances the efficiency of our payment processing workflows.
Original PR description
We use end_to_end_uuid to do a fast match for iso20022 and equivalent. But we can do the same for payments that use a payment provider. These in general give us a reference. Currently, it is used in a ref field that contains other information, forcing us to split it to retrieve it and try to match. Let's generalize the idea of end_to_end_uuid to do a faster match. task-5059766
This update streamlines project calendar task planning by bringing it in line with the standard Odoo Web interface. The changes remove outdated customizations and incorporate updates from a related pull request, improving consistency and usability for project management workflows. This ensures a more unified experience for users.
Original PR description
*: industry_fsm, project_enterprise This commit removes useless customizations and adapts code based on changes made in https://github.com/odoo/odoo/pull/238557 task-5364034
Resolved issues and error corrections
This update resolves errors that occurred when duplicating folders within Odoo, specifically preventing crashes and incorrect folder placement. The system now correctly handles folder duplication, though attempts to duplicate the 'Company' root folder into 'My Drive' are now blocked with a warning.
Original PR description
**Before this PR:** - Duplicating a folder into itself caused a traceback. - Duplicating a folder into one of its sub-folders also caused a traceback. - Duplicating the 'Company' root folder into 'My Drive' incorrectly created the copy inside the 'Company' folder instead. **Technical reason:** - A record was being created before the copy operation, which led to infinite recursion. - The owner was incorrectly set as the parent folder, causing the duplicated folder to appear in 'Company' folder. **After this PR:** - Duplicating a folder into itself or any of its sub-folders now works correctly. - Attempting to duplicate the Company root folder into My Drive will no longer work and will instead display a warning. Task-5149773 Forward-Port-Of: odoo/enterprise#98777
This update fixes an issue where product tooltips incorrectly displayed period information related to subscription pricing and showed both recurring and sales prices on product cards. Now, tooltips accurately reflect the beginning or end of the period based on the invoice policy, and product cards only show the correct recurring price for subscription products.
Original PR description
Version - 18.0 Steps to Reproduce: Issue 1: Incorrect tooltip text 1. Go to Products → Products in subscription app. 2. Open a product page and select goods product type 3. observe product_tooltip…
Version
- 18.0
Steps to Reproduce:
Issue 1: Incorrect tooltip text
1. Go to Products → Products in subscription app.
2. Open a product page and select goods product type
3. observe product_tooltip show incorrect wording:
* "Based on order" showed end of the period.
* "Based on delivered" showed beginning of the period.
Issue 2: Product card shows both recurring and sales price
1. Go to Products → Products in subscription app.
2. Observe that the product card displays both recurring price and sales price
After this PR:
- Tooltip now correctly states:
* for "based on order" invoice_policy -> beginning of period
* for "based on delivery" invoice_policy -> end of period
- Product cards show only the recurring price when applicable.
task-5156390
<img width="1002" height="436" alt="image" src="https://github.com/user-attachments/assets/39f00555-e37a-44a5-8786-d7f8d6882de7" />
<img width="968" height="262" alt="image" src="https://github.com/user-attachments/assets/0d6d5c2d-d5ab-4376-bc03-dba243abce8b" />
Forward-Port-Of: odoo/enterprise#102147
Forward-Port-Of: odoo/enterprise#95010This update resolves an issue where clicking 'Send' in a Sign Request wizard incorrectly redirected users to the signing interface when the sender was also a signer. The fix ensures that clicking 'Send' now correctly closes the wizard, streamlining the signing process for all users.
Original PR description
When creating a Sign Request where the sender is also one of the signers, clicking Send in the wizard incorrectly redirected to the document preview/signing interface. This fix ensures that clicking Send always closes the wizard and does not trigger any redirect, regardless of the sender’s signer status. task-5408155 Forward-Port-Of: odoo/enterprise#101816
This update resolves an issue where requests to the IoT box for customer display functionality were failing due to incorrect data formatting. The PR corrects this formatting, ensuring the IoT box receives the necessary information to display customer data properly. This improves the reliability of the customer display feature.
Original PR description
Currently the requests sent to the iot box to use customer display cause and error because of the bad format of the data in the request. This PR formats the data correctly to be sent to the iot box The compatibility for webrtc for the iot boxes in 19.1 isn't necessary as webrtc was removed in 19.1 task-5408081 Forward-Port-Of: odoo/enterprise#101821
This update resolves a technical issue preventing PoS sessions linked to Fiskaly from closing correctly when cash in/out entries had reason names exceeding 40 characters. The change ensures all reason names are truncated to meet Fiskaly's requirements, preventing errors and maintaining proper integration with this payment processing system. This improves the reliability of our German Point of Sale functionality.
Original PR description
Before this change, closing a PoS session linked to Fiskaly would fail if a cash in/out entry had a reason exceeding 40 characters. Fiskaly returned: "body/cash_statement/business_cases/2/name must NOT have more than 40 characters". This commit ensures reason names are truncated to comply with Fiskaly's schema. opw-5208191 Forward-Port-Of: odoo/enterprise#98853
This update resolves an issue that occurred when users attempted to duplicate transactions through the account module. Specifically, the system would throw an error if no journal was associated with the duplication process. The fix ensures a valid command is used when a journal is missing, preventing the error and improving stability.
Original PR description
Currently, an error occurs when user opens the `account.duplicate.transaction.wizard.form` view and saves it. **Steps to Reproduce:** - Install the `account_accountant` module. - Using `Open View`,…
Currently, an error occurs when user opens the `account.duplicate.transaction.wizard.form` view and saves it. **Steps to Reproduce:** - Install the `account_accountant` module. - Using `Open View`, open the `account.duplicate.transaction.wizard` view > enter the start date, and save.. `ValueError: Compute method failed to assign account.duplicate.transaction.wizard(22,).provider_duplicate_ids` The error occurs because when the view is opened and saved, the _compute_provider_duplicate_ids method is triggered. Since no journal is linked to the wizard, the method assigns an empty list ([]) to provider_duplicate_ids [1]. Because this is a O2M field, assigning a raw empty list is invalid and causes the error. This commit ensures that when journal is missing, instead of assigning an empty list ([]), a valid relational command `([Command.set([])])` is used. Ref: https://github.com/odoo/enterprise/pull/97196/commits/c109e0bcce20f14b6dbd3d28e61b135f1fd048f2 [1] https://github.com/odoo/enterprise/blob/d808ad3f6ff52632e00cf1a68de0e5270e52895d/account_online_synchronization/wizard/account_journal_duplicate_transactions.py#L53 sentry-7080686084 Forward-Port-Of: odoo/enterprise#101177
A recent test failure related to task scheduling time zones has been corrected. The fix ensures that task planning uses UTC time, preventing inaccurate date calculations and ensuring consistent scheduling across different time zones. This resolves a potential issue impacting task planning accuracy.
Original PR description
The test `test_plan_task_in_calendar` failed with a one-hour difference in `planned_date_begin`. The error occurred because the work intervals were computed using the resource's timezone (`Europe/Brussels`) instead of `UTC`, leading to a shifted planned date. Setting the resource timezone to `UTC` ensures consistent interval computation and resolves the test failure. [RB-227059](https://runbot.odoo.com/odoo/error/227059) Forward-Port-Of: odoo/enterprise#100580
This update resolves an issue where attachments for account reports weren't being generated or added correctly. The fix standardizes how attachments are handled across different report types and ensures consistent functionality, improving the reliability of report generation.
Original PR description
[FIX] account_reports: returns: fix generations of files as attachments _generate_submission_attachments does not exist anymore ; it's been renamed to _generate_locking_attachments. Because of that,…
[FIX] account_reports: returns: fix generations of files as attachments _generate_submission_attachments does not exist anymore ; it's been renamed to _generate_locking_attachments. Because of that, some intended overrides were not executed properly, and several XML/CSV export files were not generated and added as attachments to the return. Moreover, the functions generating export files used to be called by account.report's export_file function (from a button defined in options['buttons']). export_file always forced the 'export_mode' key into the options it passed tp those file generators; we reintroduce this behavior for consistency, to avoid messy situations due to forward-port or functions being converted from the former paradigm to the new one. Note, however, it's always better to fully regenerate the options from such a generator. ================================================================================= [FIX] account_reports: returns: homogenize the reset behavior Before this fix, resetting a tax report deleted all the attachments of the return, while resetting for example the Partner VAT Listing (in Belgium), left them untouched. We now introduce a common helper for all reset functions, defining the behaviors they should share. Forward-Port-Of: odoo/enterprise#101673
This update fixes an issue where the Quality Control module's list view was incorrectly loading data. The system has been reverted to using the correct view definition, ensuring accurate display of control points when accessing the Quality Control section. This ensures the Quality Control functionality operates as intended.
Original PR description
Since odoo/enterprise#94012, when loading the quality.point list view from the main menu, `quality_point_routing_view_tree` is used instead of `quality_point_view_tree`. This is not correct. To reproduce : - Install quality_control and mrp_workorder - In Quality Module, go to Quality Control / Control Points [opw-5253899](https://www.odoo.com/odoo/project/966/tasks/5253899) Forward-Port-Of: odoo/enterprise#101098
This update corrects a bug in the Belgian payroll module that prevented a minimum wage warning from appearing when an employee record lacked a job assignment. The fix removes a redundant condition within the payroll calculation, ensuring the warning is displayed correctly for all employee types. This ensures accurate payroll reporting for Belgian companies.
Original PR description
Steps to reproduce: - Open an employee on the Employees app for a Belgian company - On the payroll tab, set the salary to lower than the minimum wage for an employee that has no job - The warning will not show unless the employee has a job set to him Cause of the bug: - Condition inside _compute_l10n_be_is_below_scale function returned false if an employee had no job Fix done: - Removed unneccessary condition task-5424012
This update fixes a visual issue in the Swiss Master Data Report, specifically the PDF visualization and list view formatting. The changes remove a comma from the 'Year' field display and update the display names of report entries, ensuring accurate and professional reporting for Swiss payroll data.
Original PR description
. Corrected the generated Wage Type Report PDF visualization by modifying the external layout . Fixed the Year field display in the list view: removed the comma . Updated the display name of record "Month + Year" task-5130155
This update corrects a bug in the Belgian payroll module that prevented a minimum wage warning from appearing when an employee record lacked a job assignment. The fix removes a redundant condition within the payroll calculation, ensuring the warning is displayed correctly for all employee types. This ensures accurate payroll reporting for Belgian companies.
Original PR description
Steps to reproduce: - Open an employee on the Employees app for a Belgian company - On the payroll tab, set the salary to lower than the minimum wage for an employee that has no job - The warning will not show unless the employee has a job set to him Cause of the bug: - Condition inside _compute_l10n_be_is_below_scale function returned false if an employee had no job Fix done: - Removed unneccessary condition task-5424012
This update resolves a technical issue within the Enterprise edition's spreadsheet functionality. Specifically, a missing configuration setting was preventing proper sheet identification, which could have caused errors when creating or managing spreadsheets. This fix ensures the spreadsheet feature operates reliably for all users.
Original PR description
…SHEET command
This update fixes a minor issue where the live chat window wasn't consistently opening in the user's current browser tab. The change ensures that when a user initiates a chat, the window automatically appears in their browser, improving the user experience and streamlining communication.
Original PR description
task-5408790 https://github.com/odoo/odoo/pull/240384
Features or functions removed from Odoo
This pull request streamlines the Belgian VAT reporting process by removing a duplicate module and merging its functionality into the main l10n_be_reports module. This consolidation simplifies the reporting system and improves maintainability, ensuring consistent reporting for Belgian businesses.
Original PR description
This module was added in stable in this pr: https://github.com/odoo/enterprise/pull/99496 Now it is removed and merged back into the belgian reporting module. task-5347977
This update removes a development-only method from the HR Expense Stripe module. Removing this unnecessary code improves the overall organization and maintainability of the system. This change ensures the codebase remains clean and efficient.
Original PR description
In 752ffcbc a method was added during development that was later discarded but not removed from the code This removes said method to keep the code tidy
Code cleanup and technical improvements
This update enhances the way VoIP audio is handled within the Enterprise module. Specifically, it replaces an older method with a more modern 'Ringtone' component, resulting in improved audio quality and reliability for remote calls. This change focuses on internal improvements to the VoIP system.
This update refactors the channel pinning functionality within Odoo's Live Chat module. The changes clean up the code related to channel pinning, improving the system's stability and maintainability. This ensures a smoother experience for users managing and organizing their live chat channels.
Original PR description
Enterprise counter-part. Part of task-4606867 Part of task-5408790 https://github.com/odoo/odoo/pull/240407