Daily updates from Odoo
Monday, October 13, 2025
20 changes · master
Enhancements to existing features
The payroll contract salary test flow was updated to stay aligned with recent underlying changes. This helps ensure the employee salary configuration process continues to be validated reliably without changing the user-facing experience.
Original PR description
This commit handles the change in test case due to the modification in the following commit [1]. [1]=https://github.com/odoo/odoo/pull/227819/commits/360b384ba4e24 Forward-Port-Of: odoo/enterprise#96833
Additional automated tests now cover key appointment booking scenarios, including capacity handling, unavailable time slots, cart bookings, invoice confirmation, and event creation. This helps reduce the risk of booking errors for customers and staff across appointment sales and payment flows.
Original PR description
\* = website_appoinment_sale, appointment_account_payment Add tests to ensure correct behaviour for the various scenarios. The following tests are added: - Users/resource's capacity computation when manage capacity is on and off. - Unavailability computation of users/resources in the `calendar.event`. - Check the bookings of user/resource in the cart for the availability after the invoice is confirmed. - Creation of the actual event when the booking from the cart is confirmed. Task-4919317 Forward-Port-Of: odoo/enterprise#96587 Forward-Port-Of: odoo/enterprise#91676
Payroll now shows clearer warnings and errors on payslips, helping payroll teams understand and resolve salary issues faster. Missing bank account information is treated more seriously when payroll accounting is enabled, reducing the risk of payment problems during pay runs.
Original PR description
Improved issues shown in payslip warnings and errors, fixed multiple tracebacks and errors related to the new issues system with payruns and payslips Task: 5065090
The Belgian payroll DMFA work locations list can now be edited directly from the list view. This makes maintaining work location information faster and reduces extra navigation for payroll administrators.
Original PR description
task-5156915
The Documents app now offers Duplicate and Move actions directly from the left-side cog menu, making common folder management tasks easier to find. The shortcut option is also available in more appropriate places while respecting user permissions and excluding special areas such as Company, Recent, and Trash.
Original PR description
- This commit adds the `Duplicate` and `Move` options on the left cog wheel. - Adapt the conditions for the `Add to shortcut` so that it is available in the cog menu, except for folders which already have a shortcut, moved used `DocumentsCogMenuItemOperation` for `DocumentsCogMenuItemShortcut` to avoid code duplication. - These options will not be there when the user lacks access, and for special roots like `All Company, Recent, Trash ... Task-4949092
The Belgian payroll reporting menu has been cleaned up by removing several specialized options from the main menu. Work entry exports are still available from the Work Entry cogwheel when relevant, making the interface less cluttered while keeping export actions accessible in the right context.
Original PR description
removed the menu items: Meal Vouchers, Export Work Entry Types, and Departure: Notice Period & Holiday Attests from the top menu bar but added the Export Work entry types to the cogwheel inside the work entry with some limitations such as to appear only when: - The company is in Belgium (country code: BE). - The Work Entry page (not the employees page for example). - With all views (e.g. list, grantt, ...etc.) but the form view. - We have any of the export types installed, such as the group_s, ucm, sd_worx... etc. task-5005925
The WhatsApp app now uses Odoo's Discuss conversation system more directly. This simplifies how WhatsApp messages connect with internal conversations, helping keep messaging behavior more consistent and easier to maintain.
Original PR description
Use discuss channel directly
UAE payroll now handles all sick leave types through a single salary rule instead of separate rules for each type. This simplifies payroll configuration and accounting setup while keeping sick leave calculations consistent.
Original PR description
Originally, each sick leave in the UAE's localization has its own salary rule. The logic for all the sick leave types has been grouped into one salary rule.
Manufacturing teams can now choose the order of quality checkpoints within operation instructions. This restores ordering flexibility that existed before a redesign, making work instructions easier to organize and follow.
Original PR description
- Sequence was added to give flexibility in ordering quality points inside operations. **Note:** this was already there in past versions, it was just forgotten in the latest redesign: https://www.odoo.com/odoo/project/966/tasks/5005235 Task: 5110982 Forward-Port-Of: odoo/enterprise#95526
Recruiters can now use the Generate Offer button more than once for the same applicant. This makes it easier to prepare or revise multiple salary offers without being blocked after the first one.
Original PR description
Purpose: Modified the visibility attribute on the Generate Offer button in the applicant view so the it allows the generation of multiple offers for the same applicant Task ID: 5088931 Forward-Port-Of: odoo/enterprise#94731
The referral page actions have been reorganized to make the most important option, Job Page, easier to find. Send and Share actions are now grouped into separate dropdowns with consistent icons and alignment, reducing clutter for users managing referrals.
Original PR description
Changes Kept "Job Page" as the first button. Grouped "Send" actions under a dropdown Grouped "Share" actions under a second dropdown Standardized icons and alignment for consistency Task ID: 5017390
Overtime rules can now be created without automatically linking them to a work entry type. When a work entry type is selected, the overtime rate is controlled by that type and cannot be manually changed, helping keep payroll calculations consistent.
Original PR description
If Work Entry module is installed --> Make the rate readonly within the form view of the attendance overtime rule. changes: - work_entry_type is not required anymore on ot (overtime) rules. - ot rules won't be assigned a default work_entry_type. - if there's no work_entry_type assigned on the ot rule, the user can manually edit the rate. - if there's a work_entry_type, the rate becomes readonly within the view and computed from the work entry type. Task-5107738
Indonesian payroll now calculates net salary and taxes more accurately by including company contributions, employee-specific payslip data, and updated statutory rounding rules. The update also adds a fixed allowance salary rule and improves tests to help ensure payslip results match local payroll requirements.
Original PR description
* Update the calculation of net salary in indo localization to use company contribution category too * Update the domain search for searching gross / pph21 yearly so it search only the current employee's payslip * Move Biaya Jabatan threshold rule to apply after the calculation instead of before (to follow the rules of 500.000 / payslip(month)) * Add rounding to pph21(round half up) and PKP (round down to nearest thousand) * Add new salary rule (Fixed Allowance) * Fix and add new unit test Task: 4967867
Indian payroll reports now present salary figures more clearly with better alignment, currency symbols, and improved ordering of key totals. The salary statement also corrects the Cost to Company amount so it reflects the actual wage, while the yearly salary report is easier to use with the current year selected by default and years shown newest first.
Original PR description
- Salary Register Report: - Aligned character fields to the left and number fields to the right - Salary Statement Report: - Aligned all amount fields to the right and added currency symbols - Moved 'Net Salary' field before 'Cost to Company' and made it bold - Corrected 'Cost to Company' amount to reflect actual wage - Labor Welfare Fund Report: - Aligned amounts to the right and added currency symbols - Yearly Salary by Employee Report: - Set current year as default in the wizard - Displayed years in descending order - Aligned month name to the left in the generated PDF task-5026145
The payment initiation status is now shown only when it applies to supported outbound SEPA credit transfer batch payments. This reduces confusion by hiding irrelevant default status information in other payment scenarios.
Original PR description
Prior to this commit, the PIS status column is the batch payment form view was always visible and always had `uninitiated` as default value. This leads to confusion as it can be irrelevant for some batch payment usecases. With this commit, the PIS status is now only visible when the account.online.link associated with it has payments enabled, the batch payment is outbound and is using the SEPA CT payment method. Basically, the only usecase we support. Task ID: 5156710
Belgian payroll users can now manage Group Insurance Exports through standard list and form screens instead of a temporary wizard. This makes the process more consistent with other payroll exports and improves maintainability across payroll export providers.
Original PR description
In this PR we: - Converted the Group Insurance Export from a wizard-based flow into standard list and form views. - Extracted common fields and views from both Group Insurance Export and HR Work Entry Export mixin into a new hr.export.mixin - Updated Group Insurance Export and HR Work Entry Export to inherit from hr.export.mixin and override their views. Related task: 5010866.
This change updates internal data-query handling used by several accounting and reporting areas, making the underlying system simpler and easier to maintain. Business users should not see workflow changes, but the improvement helps reduce future maintenance risk across financial reports and related tools.
Original PR description
odoo/odoo#230715
Users are now notified as soon as their payment initiation is activated, instead of waiting for the next account synchronization. This reduces delays in communicating activation status and adds test coverage for the payment verification flow.
Original PR description
Before this we sent activation emails when synchronizing accounts, this could cause a delay for the users knowing when their payment initiation was activated. Now, we send it as soon as we receive the webhook from Odoofin. This commit also adds tests for the KYC flow. Part of: 4487895 Forward-Port-Of: odoo/enterprise#93971
The Belgian salary package demo data now uses an email address that matches Laurie Poiret's login. This avoids duplicate-looking contact details in the user form and keeps demo records cleaner for demonstrations and testing.
Original PR description
laurie poiret uses a different login from her email. Which is technically fine but leads to both of them appearing in the user form which we don't want. task-5130854 [related]: odoo/odoo@db3dee12d7c17ad485800d000ec4cdd87fcfd18b Forward-Port-Of: odoo/enterprise#96591
This update prepares the Discuss action panel framework so it can be shared by more types of actions in future releases. There is no current functional change for users; the existing thread action behavior remains the same while the code is made more consistent for upcoming improvements.
Original PR description
Before this commit, action panel definition was a feature only available in thread actions. This commit moves definition to all actions, to move closer to same feature-set to all discuss actions. Summary of the changes: 1. `panelOuterClass` has been renamed to `actionPanelOuterClass` 2. `toggle` has been removed (always set for action panel) 3. `open` and `close` renamed to respectively `actionPanelOpen` and `actionPanelClose`. 4. `open` is specific to actions with action panel. Other actions must use `onSelected` like other discuss action definitions. Functionally this commit makes no change: action panel is still only used by thread actions. Future commits will make use of action panel for the composer pickers and will also make further improvements to code around action panels.