Daily updates from Odoo
Wednesday, May 20, 2026
20 changes · master
Enhancements to existing features
This update simplifies pay run creation by replacing a direct link to a new payslip form with a dropdown button. This change provides a more intuitive and standard navigation experience for users who frequently initiate new pay runs, aligning with expected workflows.
Original PR description
Inside a pay run you have a new button that opens the form view of a new payslip, but sometimes you expect to create a new pay run taks:6222553
This update simplifies the order signing process by hiding the 'Sign Now' button when an order is already in the signing workflow. This reduces confusion for users and streamlines the process, ensuring they only see the relevant options at each stage. It's a minor improvement focused on user experience.
Original PR description
task-5344686
This update allows users to easily reorder signers directly within the template sidebar using 'Move Up' and 'Move Down' options. This simplifies the process of managing signing orders and ensures the correct sequence of signers is displayed, improving workflow efficiency.
Original PR description
Adds Move Up / Move Down options to the signer's three-dot menu, letting users adjust the signing order directly from the template sidebar. task-6231529
This update streamlines the export of payroll reports by changing the file format from WPS to XLSX and simplifying the report headers. This improves the usability and compatibility of the payroll data for reporting and analysis, making it easier to work with.
Original PR description
In this commit, we renamed the headers of the exported WPS file and removed the unnecessary ones. We also changed the WPS file format to XLSX. task-6220113
This update streamlines the handling of VoIP mail and data requests by introducing a more organized registry and decorator system. Previously, registration was done through complex if statements, now the API is clearer and easier to manage, leading to improved efficiency and maintainability.
Original PR description
Before this commit, we would need to register mail/data entries in an if statement based on the name and whether it was applied to logged in users or internal. The point of this PR is to improve the API to be able to have clear parameters and easy registry of the different mail/data request type. This is done with the help of a registry and a decorator to be added on the different request types. task-6085653
This update enhances the timesheet grid by pausing the timer when a timesheet is selected for editing, providing a smoother workflow. Additionally, the timesheet listing now displays the most recent entries first, improving usability. This change focuses on a better user experience for managing time entries.
Original PR description
- Make the timer pause when a time sheet is selected to be edited - Adjust the project listing sorting method to show the most recent first --- task-6131398 Forward-Port-Of: odoo/enterprise#117513 Forward-Port-Of: odoo/enterprise#114795
Resolved issues and error corrections
The website builder's AI-generated content was causing spacing issues due to overly broad rules. This update refines the AI's spacing adjustments, now focusing only on new layout changes and preserving existing snippet styles during content edits. This ensures a cleaner and more consistent website experience.
Original PR description
Snippets added by AI have its elements glued with no proper spacing. The problem is the spacing rule in the builder topic was too broad and implied existing Bootstrap margin or gutter classes should be removed, even when only editing snippet content. Limit the rule to new layout spacing changes and tell the AI to preserve existing snippet structure/classes during content-only edits. task-id-6230199 Forward-Port-Of: odoo/enterprise#117712
This update resolves a crash that occurred when users clicked the 'hide' button on the payroll dashboard. The issue stemmed from in-memory warning records being incorrectly processed, leading to database errors. The fix ensures these warnings are handled correctly, preventing the crash and improving dashboard stability.
Original PR description
Closing date payrun warnings are created as in-memory records (.new()), giving them a NewId instead of a real integer DB id. When the user clicked the hide button, this NewId string was passed to action_snooze/action_archive, causing a psycopg2.errors.InvalidTextRepresentation SQL error. Fix by sending False as the id for in-memory warnings in get_payroll_dashboard_warning_cards, and suppressing the hide button on the dashboard when warning.id is falsy. task-6205849
A bug was causing a 'Create Ticket' action to appear unexpectedly in the WhatsApp sidebar. This commit removes this action, resolving a technical issue that prevented users from accessing the WhatsApp feature as intended. This ensures a smoother and more reliable experience for WhatsApp conversations.
Original PR description
The 'Create Ticket' action was incorrectly visible in the sidebar actions of WhatsApp conversations in Discuss. Clicking it caused a traceback because `owner.root` is not defined in the sidebar action context. This commit removes the action from sidebar actions. Task-[6220037](https://www.odoo.com/odoo/project/1519/tasks/6220037) Forward-Port-Of: odoo/enterprise#117571
This update adjusts the default date range for the Lead and Pipeline dashboards to 'Last 30 days'. This change provides users with a more relevant and current view of their sales data, making it easier to analyze recent performance and trends. It resolves a previous issue where the default date range was not consistently set.
Original PR description
This commmit fixes the date filter default value to `Last 30 days`. Task: 5902231 Forward-Port-Of: odoo/enterprise#114560
This update resolves an issue where long events were incorrectly marked as 'all-day' events. The change ensures that event data is accurately interpreted, preventing scheduling errors and improving the reliability of the appointment calendar. This improves the overall user experience for managing appointments.
Original PR description
fcEventToRecord is updated in web calendar to take an additional "oldEvent" parameter when creating record values from an update. This is used to distinguish between an event becoming an allday vs an event that appears as allday but actually is not. task-6033474
This update fixes a UI inconsistency in the worksheet property editor. Now, the "Add Property" button remains visible while editing and correctly resets to "Edit Properties" when switching records or creating new ones, ensuring a smoother and more reliable user experience. This resolves a previous issue where the button's state was confusing.
Original PR description
Before this commit: - The “+ Add Property” button was not visible when switching between notebook pages if it was present initially. - when we are doing edit properties from the cog menu and without doing save properties if we are creating new record or switch to other record at that time button still shows “Save Properties.” leading to inconsistent UI behavior. After this commit: - The “+ Add Property” button remains visible when switching between pages. - When in property edit mode, switching records or creating a new record now correctly resets the button state back to “Edit Properties”, ensuring consistent UI behavior. task-6051322 Forward-Port-Of: odoo/enterprise#117614 Forward-Port-Of: odoo/enterprise#113248
This update ensures that all text within the MRP MPS component of Odoo Enterprise is properly prepared for translation. Previously, placeholder text was not translatable, limiting the system's ability to support multiple languages. This change improves the localization capabilities of the module.
Original PR description
Forward-Port-Of: odoo/enterprise#117750
This update optimizes a key query in the sales commission reporting process. By removing an unnecessary bit shift, the system now handles significantly larger sales commission data, expanding its capabilities and avoiding potential limitations. This change improves report generation speed and accuracy.
Original PR description
The combined query for sale.commission.achievement.report originally performs several bitwise shifts, starting with the max AML ID. This is done to create a composite number ID for the combined IDs.…
The combined query for sale.commission.achievement.report originally performs several bitwise shifts, starting with the max AML ID. This is done to create a composite number ID for the combined IDs. `MAX(aml.id)::bigint <<20) | max(rules.id)::bigint <<10 | rules.user_id <<10` This shifts the max aml.id 40 bits to the left. Example: Let's say MAX(aml.id) = 1; we will set the other variables to 1, as they often have little impact on the total size of the number. 1 << 20 = 1048576 1048576 | 1 = 1048577 1048577 << 10 = 1099512676352 1099512676352 | 1 = 1099512676353 1099512676353 << 10 = 1152922604119523328 With this format, the highest guaranteed AML ID this query can handle is under 838,861. The last 10-bit shift is unnecessary and increases the result. If we remove the last shift, the AMD ID this query can handle becomes much higher. `MAX(aml.id)::bigint <<20) | max(rules.id)::bigint <<10 | rules.user_id` | | AML Max | RULES.ID Max |RULES.USER_ID Max| | --------------------- | ------ | ------ | ------ | | Before | 838,861 | 1,048,576 | 1,024 | | After | 858,993,459 |1,048,576 | 1,024| opw-6124026 Forward-Port-Of: odoo/enterprise#114711
This update corrects a visual inconsistency in the project timesheet display. Previously, the 'Time Remaining' value wasn't highlighted in red when negative, even though the label was. This fix ensures that negative time remaining values are correctly displayed with a red color, improving clarity and accuracy for users.
Original PR description
**Steps to reproduce:** - Open project shared form view. - Go to the Timesheets tab. - Observe the Time Remaining value. **Issue:** - The Time Remaining label is red properly but its value does not becomes red even when the value is negative. **Fix:** In hr_timesheet, the remaining_hours field has a decoration-danger applied In sale_timesheet_enterprise, this field is overridden as portal_remaining_hours So, Added the corresponding decoration-danger on portal_remaining_hours. task-5404009 Forward-Port-Of: odoo/enterprise#114836 Forward-Port-Of: odoo/enterprise#113632
This update clarifies the labels for vehicle deductibility rates within the Enterprise module. The previous labels were inaccurate, representing the deductible portion instead of the non-deductible amount. This change ensures accurate reporting and financial calculations related to vehicle expenses.
Original PR description
The "Deductibility Rates" and "Deductibility (%)" labels are wrong for vehicles as they are supposed to represent the non-deductible part. This commit fixes these labels. task-6121629 Forward-Port-Of: odoo/enterprise#116878
This update corrects a bug where merging duplicate records caused multiple XML IDs to point to the same master record, compromising the system's ability to uniquely identify data. The fix ensures that each record has a single, unique XML ID, maintaining data integrity and reliability. This resolves a potential issue with data tracking and reporting.
Original PR description
When merging duplicate records, the merged record's XML ID was moved onto the master. Since the master already had its own XML ID, it ended up with several XML IDs pointing at it, breaking the assumption that an XML ID is a unique identifier for a single record. task-6186726
Features or functions removed from Odoo
This update removes a redundant 'Worksheet' tab from the Quality Control Point form, streamlining the process for providing instructions during quality checks. By consolidating instructions within the existing 'Instruction' tab, we've reduced user confusion and improved the overall quality control workflow.
Original PR description
*: quality_mrp_workorder{_worksheet}
- Currently, the Quality Control Point (QCP) form includes a dedicated `Worksheet` tab to provide PDF-based instructions used during quality checks, although the `Instruction` tab already allows attaching documents to the quality point. Also, with the recent worksheet template redesign in [task(5167053)](https://www.odoo.com/odoo/all-tasks/5167053), having two different worksheet related concepts on the quality point and quality check becomes confusing for users.
This commit removes the `Worksheet` tab from the QCP form. The existing `Instruction` tab is now used to provide the required instructions during quality checks, which avoids confusion by keeping instructions and related
documents in one place.
Community PR:- odoo/odoo#254107
Upgrade PR:- odoo/upgrade#9618
TaskId:- 5956069Code cleanup and technical improvements
This update ensures consistency in how Odoo generates URLs. Previously, there were two ways to get a URL, and this change standardizes them, making the system more reliable. Developers can now explicitly use `.href` when a plain string URL is needed, improving code clarity and maintainability.
Original PR description
Makes it the symmetric counterpart of urlToState(url: URL). Call sites that need a plain string use .href explicitly. task-id 6221850
This update streamlines the handling of scales within our Point of Sale system. It adopts a new, standardized approach for scale operations, originally developed by the Odoo community, to improve reliability and maintainability. Initial support is available on PC browsers, with Android support planned for a future release.
Original PR description
The Community PR odoo/odoo#249723 refactors the scales to have a base `ScaleInterface` class, as well as moving the weighing logic and UX to community. This commit adapts the `IotScale` and `CertifiedIotScale` to use the new system. **Availability:** Currently only PC browsers supported Upcoming with Android version 17 with Chrome on Android >= 148 task-4860962