Daily updates from Odoo
Tuesday, November 18, 2025
20 changes · master
Enhancements to existing features
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
Resolved issues and error corrections
The OCR process will no longer automatically change a customer invoice into a sale receipt when the Sale Receipt option is not enabled. This prevents documents from being categorized into a disabled workflow and helps keep invoice processing aligned with company settings.
Original PR description
If the "Sale Receipt" setting isn't enabled, the OCR should never automatically switch a customer invoice to a sale receipt. task-[5265382](https://www.odoo.com/odoo/project.task/5265382) Forward-Port-Of: odoo/enterprise#99522
This fix ensures automated tests properly finish drag-and-drop actions before ending. It helps prevent false test failures and supports more stable quality checks for scheduling-related features.
Original PR description
Since drag sequences are automatically canceled at the end of tests, 'cancel' or 'drop' calls should be properly awaited before the end of a test. This commit ensures that these actions are properly finished before a test ends. Community: https://github.com/odoo/odoo/pull/235359 Forward-Port-Of: odoo/enterprise#99634 Forward-Port-Of: odoo/enterprise#99369
This fix restores the ability to add reactions to messages when using Discuss on a mobile device. It improves day-to-day collaboration by making quick responses work consistently across desktop and mobile.
Original PR description
Task-4607436 Task-5261880 https://github.com/odoo/odoo/pull/235852 Forward-Port-Of: odoo/enterprise#99588
VoIP contact search now avoids checking mobile phone matches until at least three characters are entered. This prevents error messages from appearing while users type the first few digits or letters, making the search experience smoother.
Original PR description
`phone_mobile_search` doesn't allow you to search for less than 3 characters. This commit excludes `phone_mobile_search` from the search domain when there are less than 3 characters. This avoids triggering an UserError on the first characters typed. Forward-Port-Of: odoo/enterprise#99626 Forward-Port-Of: odoo/enterprise#99548
Fixes an issue where switching variants on subscription products in the online shop could trigger an error when no pricing was available. The system now handles missing pricing safely, helping customers browse subscription product options without interruption.
Original PR description
Step to reproduce: - install website_sale_subscription - create a product, add few variants and tick 'Subscriptions' option. - open that product from /shop - toggle between variants Cause: - In case the pricing is not present, 'False' is passed(not an iterable) - `_onChangeCombinationSubscription` expects a iterable, causing traceback Fix: - we pass empty list instead of False opw-5241612 Forward-Port-Of: odoo/enterprise#99160
Studio no longer crashes when users edit JSON-based fields such as analytic distribution. The update lets these fields handle placeholder settings correctly, improving reliability when customizing forms.
Original PR description
When trying to edit the `analytic_distribution` field using Studio, the following traceback occurred: `Caused by: TypeError: Cannot read properties of undefined (reading 'subOptions')` This happened because the new option `placeholder_field` was [introduced](https://github.com/odoo/odoo/commit/6620ebbd184de6f106fceb4427a081b61d97296a) for dynamic placeholders in widget. However, there was no support declared for `placeholder` inside the `FIELD_TYPE_ATTRIBUTES` definition for the `json` field type. This commit adds `EDITABLE_FIELD_ATTRIBUTES.placeholder` to the `json` field type, allowing widgets on JSON fields to correctly handle `placeholder_field` options without causing a Studio crash. opw - 5180896 upg - 3249816 Forward-Port-Of: odoo/enterprise#98526
The VoIP keypad now keeps numbers inserted in the intended place when users tap digits after moving the cursor. This prevents dialing errors on Android when the phone keyboard is hidden and the input loses focus.
Original PR description
Keypad input now reads selection from the persisted model whenever the DOM selection isn't trustworthy, particularly on Android where the input blurs to hide the keyboard, so digits typed at any cursor location stay in place. task-5241464
The appointment booking error message now clearly includes the appointment type name when there are not enough seats available. This makes the issue easier for users to understand and resolve when saving appointments without resources.
Original PR description
Currently, when creating a new appointment with a specified number of people but no resources, saving the record triggers a UserError that does not display the appointment type name. Issue: 2 seats are missing to be able to book the appointment.type(1,): Table (30) <img width="1813" height="776" alt="image" src="https://github.com/user-attachments/assets/f87f45de-3552-47bb-b34c-fcc06cea425f" /> Solution: 2 seats are missing to be able to book the Table: Table (30) <img width="1769" height="905" alt="image" src="https://github.com/user-attachments/assets/04188071-be67-4500-b720-039ee7a27c2e" /> Forward-Port-Of: odoo/enterprise#99646
This fixes an issue where portal users could see an error when sending an attachment in a live chat with an agent. The change ensures the user availability field is properly set, helping chats continue smoothly without interruption.
Original PR description
Bug === As portal, open a live chat with an agent, and try to send an attachment. An error will be raised because of `offline_since` (which is not initialized in the compute). Task-4687269
Code cleanup and technical improvements
The Enterprise-only Share URL menu and related mobile menu button have been removed because this capability now lives in the community web module. This reduces duplicate maintenance while keeping the feature available where progressive web app support is now shared.
Original PR description
This commit removes the code related to the Share URL menu item from the enterprise version of odoo, since the code has been moved to the community version. It was no longer relevant to support only this menu item and BurgerMenu button in enterprise, since PWA are also installable in the community version. Tests have been moved as well in the /web module of community.
The WhatsApp integration has been internally reorganized so chat channel detection now sits with the discussion channel model. This should not change user behavior, but it makes the code easier to maintain and align with the related community update.
Original PR description
This commit moves isChatChannel to discuss.channel model. PR community: https://github.com/odoo/odoo/pull/235983
This update reorganizes how AI features read conversation channel information, making the implementation cleaner and easier to maintain. There is no expected change in day-to-day behavior for users, but it helps keep AI-related messaging features reliable as the platform evolves.
Original PR description
PR community: https://github.com/odoo/odoo/pull/235260