Tuesday, November 18, 2025
15 changes · master
Enhancements to existing features
The Jordan payroll module now assigns the correct work entry type to relevant leave categories. This helps payroll calculations better reflect employee leave records and reduces the risk of payroll inconsistencies.
Original PR description
In this PR, we made some general cleanup in the jordan payroll module, by assigning the right work entry type to some jordanian hr.leave.type. task: 5176975 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Planning Gantt popovers now show the customer name alongside the sale order line when it is needed for context. Grouped views still avoid repeating customer information when it is already displayed separately, keeping screens clear while restoring useful detail.
Original PR description
Before this PR: --- - When hide_partner_ref context flag was true , _additional_name_per_id() returned empty dict for all reads , blocking customer names in all scenarios - Gantt popover lost…
Before this PR: --- - When hide_partner_ref context flag was true , _additional_name_per_id() returned empty dict for all reads , blocking customer names in all scenarios - Gantt popover lost customer information even when partner_id field was not displayed separately After this PR: --- - Single-record reads bypass hide_partner_ref check and preserve customer name. - Grouped views continue to respect hide_partner_ref to prevent duplication when partner_id is shown. - Planning Gantt popover now display customer information inline with sale order line Technical details: --- The hide_partner_ref context flag prevents _additional_name_per_id() from adding customer names to sale line display_name. This is correct for grouped/kanban views where partner_id is displayed separately but incorrect for single-record reads where the customer context is essential. This change adds a recordset length check: single records bypass the flag, while batch operations continue to respect it for de-duplication purposes. Related : https://github.com/odoo/odoo/pull/105470 task - 5140117
This update removes an outdated internal chat-closing mechanism in the Mail app. It simplifies how discussion windows are managed, reducing maintenance complexity while keeping the user experience unchanged.
Original PR description
Pr enterprise: https://github.com/odoo/enterprise/pull/98755
The legacy QUnit test assets have been reduced to include only what is still needed, shrinking the bundle from about 26 MB to 1.5 MB. This should make those older test pages faster to load and faster to generate, improving developer efficiency without changing regular user functionality.
Original PR description
As the QUnit test suite is now legacy and trimmed down to basically only test PublicWidget and alike, the asset bundle could be also dramatically reduced. This commit cleans it up to only let the requirements for the last QUnit tests to properly run. Note: in term of bundles sizes, it goes from 26MB to 1.5MB (faster to load but more so, faster to generate). Because a picture is easier to grasp than words. Before: <img width="855" height="90" alt="2025-11-18_11-39" src="https://github.com/user-attachments/assets/d12cd902-2d2f-47eb-9c17-937494ea34f4" /> After: <img width="856" height="65" alt="2025-11-18_11-40" src="https://github.com/user-attachments/assets/7841510b-efe3-4dea-a0fa-8c7c32875077" />
Chat bubbles are now hidden on mobile devices while the Discuss app is open. This reduces screen clutter and helps users focus on their conversations in the mobile interface.
Original PR description
**Purpose of this PR:** Chat bubbles are now hidden on mobile devices while the Discuss app is open. this prevents UI clutter. task-[4607436](https://www.odoo.com/odoo/project/1519/tasks/4607436) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update improves internal documentation and typing for Odoo's website editing tools, making them easier for developers to maintain. It also removes unused calls to resources that no longer exist, reducing unnecessary complexity without changing the user experience.
This change reduces unnecessary database work when creating records linked through certain relationship fields. It improves background performance slightly, helping Odoo scale more efficiently without changing user-facing behavior.
Original PR description
Having a model A that has a many2many field targeting another model B (no many2many inverse). Model A has a compute field F1 depending on this many2many field. When a record B is created, the ORM will try to find all A records where it needs to invalidate F1. However, this check is unnecessary since no many2many inverse exists on model B, meaning no A record will ever be found. See test for a simple example. Note that the problem also happens with a Many2many that has a domain (a backend domain), as the fields used in the domain will become a dependency of the many2many field. Add a shortcut in `_modified_triggers` (when no inverse exists) to avoid an SQL query for this common case. => Reduce the number of queries by 0.2% in the runbot. That's not a lot but it still deserves some consideration, since the idea of deferring constraints [here](https://github.com/odoo/odoo/pull/196374) will use `modified` method to check many2many constraint on comodel.
The Jordan payroll module was tidied up by removing unnecessary fields and making labels and tooltips clearer. This makes payroll setup and employee information screens easier to understand and reduces confusion for users.
Original PR description
In this commit, we made some general cleanup in the jordan payroll module, by removing uncessary fields, and improving naming of some existing fields in the UI + tooltips. task: 5176975
The Gantt view’s date picker no longer uses an old display adjustment that was only needed for mobile fullscreen popovers. Since the picker now opens in a bottom sheet, this simplifies the experience without changing user workflows.
Original PR description
This was only used on mobile to display the date(time) picker in a fullscreen popover, to ensure that the picker had enough space to be fully displayed. The picker is now opened in a bottom sheet, so we can safely remove this. task-5131135
This update simplifies how the AI feature manages chat windows by removing an outdated internal closing mechanism. It helps keep the messaging experience more consistent and easier to maintain, with minimal visible impact for users.
Original PR description
PR community: https://github.com/odoo/odoo/pull/234289
The payroll screens now hide salary rules that are already assigned when users add inputs for employees or payslips. This reduces duplicate selections and makes payroll setup faster and less error-prone.
Original PR description
Previously the list shown when the "Add Inputs" button was clicked on an employee's payroll tab in their form view, it would show all the available salary rules that is available to the employee's salary structure even if they were already assigned to that structure. This commit hides the already existing rules from the list. The same concept applies to payslips. Task-5138584
The VoIP call field previously labeled "Responsible" is now labeled "User". This makes the wording clearer and more consistent for people reviewing or managing VoIP call records.
Original PR description
Task-5266072
The legacy QUnit test assets were reduced to only what is still needed for remaining older tests. This cuts bundle size substantially, making test assets faster to generate and load without changing business features.
Original PR description
As the QUnit test suite is now legacy and trimmed down to basically only test PublicWidget and alike, the asset bundle could be also dramatically reduced. This commit cleans it up to only let the requirements for the last QUnit tests to properly run. Note: in term of bundles sizes, it goes from 26MB to 1.5MB (faster to load but more so, faster to generate).
When the Appraisals module is installed, users can now see the Details page where relevant job information is displayed. This makes appraisal-related job setup clearer and easier to access without changing broader HR workflows.
Original PR description
- Display the Details page if the hr_appraisal module is installed. task-5215960
The VoIP softphone now collapses automatically when users open the call history. This makes it easier to review past calls without the softphone panel taking up unnecessary screen space.
Original PR description
Task-5273218