Daily updates from Odoo
Tuesday, December 9, 2025
16 changes
2 changes
Enhancements to existing features
This update allows other Odoo modules to customize the criteria used to define SLAs (Service Level Agreements) when creating helpdesk tickets. Previously, this customization was limited, but this change expands flexibility and improves the ability to tailor SLAs to specific business needs. It builds on existing functionality for related domains.
Original PR description
Allow other modules to modify the _sla_find domain when adding SLAs to helpdesk tickets. This is already the case for extra and false domains, while the main domain is hardcoded up to this commit. Forward-Port-Of: odoo/enterprise#97501
This update enables users to send multiple attachments when sending invoices through the Peppol network. The attachments are now embedded within the invoice XML file using a standard 'AdditionalDocumentReference' tag, improving the efficiency of electronic invoice exchange. This enhancement aligns with Peppol standards and simplifies document handling.
Original PR description
[IMP] account: multiple embed files peppol This commit allows user to send multiple attachments through peppol. The attachments will be embedded into the xml under the `AdditionalDocumentReference` tags task-5103539 Forward-Port-Of: odoo/odoo#238662 Forward-Port-Of: odoo/odoo#234339
1 change
Enhancements to existing features
This update expands the flexibility for setting Service Level Agreements (SLAs) on helpdesk tickets. Previously, a key domain was hardcoded, but now other modules can adjust it, allowing for more customized SLA rules. This improves the adaptability of our helpdesk system.
Original PR description
Allow other modules to modify the _sla_find domain when adding SLAs to helpdesk tickets. This is already the case for extra and false domains, while the main domain is hardcoded up to this commit. Forward-Port-Of: odoo/enterprise#97501
1 change
Enhancements to existing features
This update allows other Odoo modules to customize how SLAs are defined for helpdesk tickets. Previously, this customization was limited, but now it's expanded to align with existing flexible configurations. This improves the flexibility and adaptability of SLAs within the helpdesk system.
Original PR description
Allow other modules to modify the _sla_find domain when adding SLAs to helpdesk tickets. This is already the case for extra and false domains, while the main domain is hardcoded up to this commit. Forward-Port-Of: odoo/enterprise#97501
10 changes
Enhancements to existing features
This update ensures managers are assigned to separate versions of Odoo, preventing data discrepancies and allowing for accurate reporting across different environments. This change improves the reliability of key reports related to employee performance and timesheet analysis. It addresses a previous issue where managers were inconsistently linked to versions.
Original PR description
Put manager on versions instead of employee to have different managers for different versions Task: 5380683
This update clarifies the label for a key work entry type within the Hong Kong payroll module. The term 'Use 713' has been replaced with 'ADW Calculation' for better clarity and understanding. This change improves the user experience and ensures accurate payroll processing.
Original PR description
- changed the string for `l10n_hk_use_713` to be `ADW Calculation` instead of `Use 713` task-id: 5084137 Forward-Port-Of: odoo/enterprise#95253
This update optimizes how data is displayed in Odoo’s account reports. By minimizing the complexity of column dictionaries, the system now renders reports more efficiently, leading to faster loading times and a smoother user experience. This change focuses on internal performance improvements without impacting how users view their financial reports.
Original PR description
task-5145573
This update simplifies how the IoT Box communicates with Odoo by allowing direct responses to the action controller. This reduces unnecessary network requests and streamlines the process of handling responses from the IoT Box, ultimately improving performance and stability.
Original PR description
To reduce the amount of network request and simplify the driver's response handling IoT Box side, we now provide the response directly to the action controller. see odoo/odoo#237586 Task: 5048746
This update replaces account tags with tax tags in the SI (Silurian) localization module's sales reports. This change ensures more accurate reporting aligned with local tax regulations for Electronic Commerce Sales List transactions. It improves the reliability of sales data for SI customers.
Original PR description
Before this commit: We are using account tags for EC Sales list. After this commit: Replaced account tags from l10n_si as it will now use tax tags. Community PR: https://github.com/odoo/odoo/pull/233747 Upgrade PR: https://github.com/odoo/upgrade/pull/8730 Task-5046099
This update simplifies the process for employees to request signatures by consolidating the 'Signature Request' button within the existing cog wheel menu. This eliminates duplication and provides a more consistent user experience for requesting signatures within the Odoo Enterprise system.
Original PR description
Before: Employees had a separate 'Signature Request' button and the default 'Request Signature' option in the cog wheel, causing duplication. After: Moved the "Signature Request" button to the cog wheel and remove the standard 'Request Signature' option for employees. Task - 4879265
This update simplifies the process of selecting users and resources when booking appointments. Instead of a separate step, the selection is now integrated directly into the date and time selection, offering a more intuitive and efficient user experience. This change also corrects a previous issue where the system wasn't accurately reflecting available resources.
Original PR description
BEFORE THIS CHANGE ================== When website_appointment was installed, and when the appointment type was configured with date_first=False, is_auto_assign=False, then the appointment main route…
BEFORE THIS CHANGE ================== When website_appointment was installed, and when the appointment type was configured with date_first=False, is_auto_assign=False, then the appointment main route rendered a different page content in order for the booker to select first the user / resource, each having a large card with picture (or placeholder) and name (as well as function and website_description for users). It had a dedicated chevron in the progressbar and was referred to as the operator selection step. There was an option to 'skip user / resource selection' and see the full availability. AFTER THIS CHANGE ================= In order to ease the user experience, we now inline the user and resource selection on the date & time selection step. It takes the form of a grid of smaller cards, that can be selected when the same conditions are met. They are rendered above the calendar. Their content is the same. The user can click on the card and the calendar will update accordingly. They can change and see updated availability directly, which was not possible before, as the page was different. In order to reproduce the 'skip user/resource selection' feature, a dedicated card 'No preference' is used and put at the end of the grid of cards. This will in turn compute full availability using all available resources / users. As before, when coming back from an error or using the chevrons hyperlinks, the selection is remembered and the default selection (user / resource / no preference) is kept and the availability computed accordingly when landing on the page (unless having skipped selection). The whole behavior is now available directly in appointment (no need for website) and replaces the dropdown used previously. Corner cases (no availabilty screens, manage capacity or not) are handled as well. A test is modified to reflect these changes. USER DEFAULT / SELECTED SIMPLIFICATION ====================================== A simplification of a rather hard-to-maintained flow ramification was done as well, as the meaning of 'selected' has evolved. Before, for manual selection starting with user / resource, having staff_user_id or resource_selected_id set meant selection was done and only that user / resource was to be considered. Now, this is not the case anymore, as one can change the user / resource on the date and time selection page. This means we only use that 'selected' value for an initial selection: if the user / resource has availability, then we use it. Otherwise, we use the first available one (see `_get_slots_values`). Therefore we move mostly the logic on x_default and `get_slots_values`. The resource_selected_id and staff_user_id are now used when coming back from an error or using the chevrons to navigate between steps. AUTO ASSIGN SIMPLIFICATION ========================== While simplifying, the x_default and x_selected were simply removed from the controller logic when is_auto_assign is True. There was a case of having a single staff user that lead to seeing its information on the side bar. This has been removed as this was not consistent, nor with resource behavior, nor with the 'auto assign' philosophy. We now never show the user / resource in date and time, details steps. We also do not propagate resource_selected_id to the registration page. TO SUMMARIZE ============ There are three flows depending on the appointment configuration: (e.g. here for resources) 1. auto assign: no use of resource_selected_id. no display of the selected resource / user even if there is only one, in the right column. 2. time then resource: no use of resource_selected_id since we need to compute for each slot all available resources. 3. resource then time: resource_selected_id, set for instance using a chevron, is used to initialize the selection. If not available, we still initialize to the first available resource. The value is propagated in the url. LINKS ===== UPG PR: https://github.com/odoo/upgrade/pull/8724 Task-5187767
This update enhances the user experience for managing employee payroll in Hong Kong by adding a clear placeholder and helpful tooltip for the Employer's File Number field. It also updates the error messages to be more informative and user-friendly, streamlining the setup process.
Original PR description
Add a placeholder and tooltip for Employer's File Number. Update the error message format. task-5050313
This update streamlines the generation of the HK IR56B report by automating the selection of the 'Year of Employer Return' based on the submission date. The changes remove outdated fields and improve the report's accuracy and usability. This ensures compliance with Hong Kong tax regulations.
Original PR description
- Removed fields: start year, start month, end year, and end month. - Removed the `EXTRA` section title from the form. - Autofill Year of Employer Return based on submission date, with option to edit. - Adjusted report generation date logic to align with Year of Employer Return. task-5051329
This update simplifies the configuration of flexible benefits within Odoo Enterprise by transforming existing payroll inputs into salary rules. This change improves the system's flexibility and aligns with best practices for payroll management, ensuring accurate benefit calculations.
Original PR description
The main purpose is to adapt the flexible benefits system to use salary rules for its configuration. At this stage, it simply requires converting the payroll inputs into flexible salary rules. . Adapted the record in the hr_salary_rule_data that linked to payroll inputs to become salary rules with condition_select set to property_input. . Removed the obsolete records previously defined in hr.payslip.input.type and converted their purpose into corresponding salary rules in hr.salary.rule. . Modify the existing tests in test_salary_rules and updated demo data to correctly utilize the new salary rule codes for input creation task-5122338
2 changes
Enhancements to existing features
This pull request improves the user experience and stability of expense processing using Stripe virtual cards. Key changes include visual updates to card displays, automated expense approval for Stripe card users, and fixes related to data synchronization and error handling during card shipping status updates. These improvements streamline the expense workflow and ensure accurate tracking.
Original PR description
- Create Expense at the authorization instead of the capture
- Send a mail when a virtual card is assigned to someone
- Correct text inside card pause dialog
- Improve card look:
- Align date, pin and copy button on the card
- Fix physical card pin number not visible with dark mode
- Fix date horizontal alignment on pending physical cards
- Add Unlimited as placeholder on cards payement limits
task-4860676This update enhances the documentation system by enabling developers to receive complete server error tracebacks when errors occur. A new component, DocErrorDialog, manages the display of these tracebacks, providing more detailed information for troubleshooting. This improves the developer experience and helps quickly identify and resolve issues within the documentation.
Original PR description
This commit updates the /doc controllers from 'http' type to 'json2' to allow the frontend to receive the full server traceback on errors. This change required modifying `http.Json2Dispatcher.is_compatible_with` to also accept requests with no content-type when content-length is 0. It introduces a new component, `DocErrorDialog`, to manage error display and server traceback. The general error handling flow for the api_doc fetch calls is also improved. task-5172546 task-5349157