Tuesday, September 9, 2025
31 changes · master
New functionality added to Odoo
Adds a new VoIP provider setting to support PBX systems that require a specific secure web socket transport value. This helps businesses connect Odoo VoIP with a wider range of phone infrastructure with minimal configuration impact.
Original PR description
This PR adds the boolean hack_wss_in_transport for the PBX that needs the contactParams transport "wss"
Enhancements to existing features
A previously inactive automated test for data cleaning merge list behavior has been re-enabled and updated to the current testing framework. This helps ensure the related functionality continues to work correctly and reduces the risk of regressions, with no direct change for end users.
Original PR description
PR [1] merged the data_merge addon, which defined a qunit test and properly declared it in the correct bundle in its manifest, which the data_cleaning addond. Although the test file has been kept, it was no longer declared in the manifest of the new addon, so the test was never run anymore. This commit re-enables it and converts it to hoot. [1] https://github.com/odoo/enterprise/pull/62979
Resolved issues and error corrections
This fix adds a log warning when automated bank statement reconciliation is configured in a way that ignores the expected time limit. It helps administrators spot a setup that could otherwise make large bank statement imports run longer than expected.
Original PR description
When calling `_cron_try_auto_reconcile_statement_lines` with a limit_time argument but without a `batch_size`, the time limit was silently ignored. With this commit, we display a warning in the logs, because this is probably not the desired behavior. Besides that, when the amount of statement lines become large, it might hang the import of bank statements longer than the expected 3 minutes. Task-id: None Forward-Port-Of: odoo/enterprise#93565
Features or functions removed from Odoo
The OCR extraction module was cleaned up by removing an old data model and field that are no longer used after the newer OCR boxes interface was introduced. This reduces internal complexity and helps maintain the system without changing the user-facing workflow.
Original PR description
Because of time constraints (freeze of version 19.0), the clean up of unused models was removed from the main commit (see 935b25fd). This commit removes the `iap.extracted.words` model and its related `extracted_word_ids` field that are no longer used since the introduction of the new OCR boxes interface. task-[5055731](https://www.odoo.com/odoo/project/2068/tasks/5055731)
Code cleanup and technical improvements
The online lead generation service setting was renamed to match the newer HTML editor naming. This is an internal cleanup that keeps CRM business card scanning and recruitment website integration aligned with platform changes, with no expected impact for everyday users.
Original PR description
Community PR: https://github.com/odoo/odoo/pull/225859 Upgrade PR: https://github.com/odoo/upgrade/pull/8400 As references to web_editor are being removed, the config parameter `web_editor.olg_api_endpoint` was renamed to `html_editor.olg_api_endpoint`.
The update adjusts an automated test so it works correctly when the journal field is hidden, such as when only one journal is available. This helps keep the three-way matching feature stable across simpler accounting setups without changing day-to-day user workflows.
Original PR description
- Update the test case to correctly handle situations where the journal_id field is invisible, ensuring compatibility when there are fewer than two journals. Related PR: https://github.com/odoo/odoo/pull/222209 task-4988183
The employee form now hides the payslip shortcut when an employee does not have a contract. This keeps the screen cleaner and avoids showing payroll actions that are not relevant for that employee.
Original PR description
The payslip smartbutton on the employee form view was always visible, even when the employee had no contract. task-5067746
Payroll payrun cards now show action buttons and status colors consistently with the related payslip list view. This reduces confusion for payroll users by making the same payrun information appear the same across views.
Original PR description
This commit changes the visibility conditions of buttons in the payrun kanban view to be consistent with the payslip list view filtered by payruns. Moreover, since the `PayslipListController` is using `PayRunCard` component, which uses `StatusBubble` component that requires information of the payrun model fields, `payslips_with_issues` and `has_error` fields are added to the kanban view to be extracted in `PayslipListController` component and injected to `PayRunCard` as props, which fixes the inconsistent status color. task-5067711
Canned responses in live chat are now triggered with a semicolon instead of a colon. This keeps the colon available for a future emoji shortcut and reduces accidental dropdown appearances by only showing suggestions after another character is typed.
Original PR description
- switch the shortcut from : to ; - the dropdown only shows when another character follows the ; shortcut This is a preparation for the emoji shortcut that will be introduced later. By changing the shortcut to ; we can use : as a prefix for emojis. task-4110505 https://github.com/odoo/odoo/pull/186135
Outstanding debit and credit hover details for bank journals now show the bank statement line label alongside the date. This makes it easier for users to identify the related bank transaction without opening additional records.
Original PR description
Before this PR: - Hovering over outstanding debits/credits from bank journals only displays the date After this PR: - Hovering over outstanding debits/credits from bank journals now shows both the bank statement line label and date - Format: "Bank statement line label - 01/01/2025" Related PR : https://github.com/odoo/odoo/pull/224165 Task : 5039914
Users can now rename online bank synchronization links directly from the form view. This helps distinguish multiple connections to the same bank, reducing confusion when managing bank feeds.
Original PR description
With some provider, you can have several links to the same bank. This can be confusing for the user. Allowing to edit the sync name from the form view can help the user sort out its links. Not a FIX, but suggestion is from opw-5004182 Forward-Port-Of: odoo/enterprise#93538
The payslip screen now guides payroll users through the correct next step by hiding the Confirm button until the payslip has been computed. This reduces confusion and helps prevent users from trying to confirm a payslip before it is ready.
Original PR description
- On a new payslip: the confirm button is invisible, and the compute sheet button is highlighted. - After computation: the confirm button becomes visible and highlighted, while the compute sheet button remains but is secondary. task-5068067
The attachment picker used from the message composer now hides shortcut actions that were not relevant in this context. This makes adding Documents files as attachments clearer and avoids confusing options for users.
Original PR description
With the commit (7683daa8a66ee60e689acf61c3d68918df181551) we forgot to adapt the view called by the composer to add attachments from the documents module. We could see the actions used as shortcuts which is not useful here. Task-5071931
The Master Production Schedule edit popup now closes automatically when a user opens a Bill of Materials from it. This prevents a confusing leftover popup and avoids an error when users try to cancel it afterward.
Original PR description
Before this commit: ------------------------- Clicking the BOM field in the edit production schedule pop-up on the MPS page redirected the user to the BOM form view, but the pop-up remained open in…
Before this commit: ------------------------- Clicking the BOM field in the edit production schedule pop-up on the MPS page redirected the user to the BOM form view, but the pop-up remained open in the background. If the user then clicked Cancel on the pop-up, it created a traceback error. Steps to reproduce: ------------------------- 1. Install 'mrp_mps' module. 2. Go to Planning → Master Production Schedule. 3. Click the pencil icon next to a product. 4. In the pop-up, click the BOM value to navigate to the BOM. 5. Notice that the pop-up stays open even after redirection, and closing the pop-up raises a traceback error. Cause of the issue ------------------------- When your onClose arrow function directly executes this.reload(productionScheduleId) without curly braces, it immediately hands over the outcome of that function call to the dialog system. Since this.reload is an asynchronous operation with multiple sequential return values, its immediate outcome may not be a final value. After this commit: ----------------------- The pop-up is automatically closed when navigating to the BOM form view from the BOM field in the Edit Production Schedule popup, ensuring a cleaner and more intuitive user experience. Task Id: 4886331 Forward-Port-Of: odoo/enterprise#90424
This fixes an internal naming mismatch in the VoIP calling feature so it uses the current call session reference consistently. The change helps prevent call handling issues caused by outdated references, with no expected change to normal user workflows.
Original PR description
This commit renames the missing values of `userAgent.session` to be `userAgent.activeSession`. This change was introduced in https://github.com/odoo/enterprise/pull/92315
The Belgian POS certification module now installs without triggering an error. This prevents setup interruptions for businesses enabling Belgian point-of-sale compliance features.
Original PR description
Since this PR (https://github.com/odoo/odoo/pull/215789) there was a traceback on the installation of `pos_blackbox_be` module. task-id: 5073028
Uploading PDFs in the Sign app no longer triggers a confusing error message when debug mode is enabled. This removes unnecessary disruption for users while keeping the upload process working as expected.
Original PR description
Version: - saas-18.5 Steps to reproduce: - Switch to debug mode - Open sign app - Upload any document Before: - The PDF was uploaded successfully, but a traceback appeared in debug mode. - This happened because `referenceDoc` and `activityId` props were set to false (boolean), which is not valid for their types (String and Number). After: - PDFs can be uploaded without any traceback. - Instead of passing false, we now pass undefined, which is valid since the props are optional. Impact: - Users will no longer see confusing tracebacks when uploading PDFs in debug mode.
Changing the template in the Signature Request wizard could fail when the template included fields without a matching signer. This fix prevents the crash so users can continue preparing signature requests smoothly.
Original PR description
version - saas-18.5 Steps to reproduce: 1. install sign module. 2. upload pdf without signature item 3. Open the Signature Request wizard from another app. 4. change the template. 5. traceback occurs. Issue: - In `_compute_only_autofill_readonly`, the code tried to get a user from `role_to_user_map` without checking if it exists. This caused a traceback when a template had items without a matching signer. Solution: - Use `role_to_user_map.get(item.responsible_id.id)` to safely get the user, avoiding the traceback.
This update fixes a compatibility problem that could affect how HR work entries are sorted in newer Python versions. It helps keep work entry processing reliable and prevents errors caused by inconsistent ordering behavior.
Original PR description
Issue with python 3.10 for `sorted` Fixed with a lambda
Fixed an issue that prevented virtual expense cards from being created when the system expected shipping details that virtual cards do not have. This avoids an error during card creation and helps employees or administrators issue virtual cards smoothly.
Original PR description
We were looking for shipping on virtual cards which dont have it this created a traceback.
The website appointment editor now correctly applies the guest invitation setting. This prevents businesses from accidentally enabling or disabling guest attendance when editing appointment types.
Original PR description
Since https://github.com/odoo/enterprise/commit/689a2186fbe3b932b90bef3b64716c8443bad551, The website editor option for allow_guests has an inverted behavior, being toggled when it should not and vice versa. This is only due to a small inversion of values when refactoring the website builder code. Inverse the values when the option is on/off to match expected behavior. Task-4930982 Forward-Port-Of: odoo/enterprise#89938
The bank reconciliation screen has been adjusted to fix visual issues introduced by a previous update. These changes improve readability in dark mode, simplify the statement review button styling, and make the mobile layout more compact.
Original PR description
In commit[1] we introduced a fine tune for the reconciliation widget and missed some issues. - Remove darkmode custom values - Review statement button to simplify styling - Remove kanban record spacing on mobile task-5075635 followup of task-4749379 [1]: odoo/enterprise@f9725d7b01cbd1235f022821a6861adb2955e49
The report editor no longer shows an unnecessary Label option when users insert a one-to-many or many-to-many table. This reduces confusion because table columns now simply use the selected field name as intended.
Original PR description
… X2M table Click on the powerbox item that opens the popover to insert a x2many table. Before this commit, the popover displayed the "Label" of the field (that is, in the case of a scalar or m2o field) In a table this label is irrelevant. After this commit, we hide the "Label" of the popover, the column takes the name of the field. task-5017334
A Hong Kong payroll employee field now follows the same access rules as other payroll information. This prevents non-payroll HR users from seeing payroll-related details and keeps internal payroll checks passing.
Original PR description
Issue: test_payroll_fields_are_hidden_to_non_payroll_users_in_employee_form_view this test case fail. Reason: The field l10n_hk_mpf_manulife_account only assigned to hr.group_hr_user. So according to test case condition, fields under Payroll tab should belong to payroll user. Fix: Updated the group and restricted with (hr_payroll.group_hr_payroll_user) runbot_error: https://runbot.odoo.com/odoo/runbot.build.error/231295
This fix makes employee document subfolder configuration handle comma-separated folder names with extra spaces correctly. It helps prevent unintended folder names or setup issues when HR document folders are created from configured lists.
Original PR description
Task-5071835
Schedule items in the work entries Gantt view can now be interacted with to display their popover details. This makes it easier for HR users to quickly inspect work entry information without leaving the planning view.
Original PR description
Pill interaction is needed to show the popover
This update skips two automated checks when the full accounting setup is not installed. It prevents false test failures in environments where payments are already created with accounting entries, helping keep validation results reliable.
Original PR description
The aim of this commit is skipping 2 newly added tests from this commit [[1]]. These 2 tests are useful when accountant module is installed because payments are, per default, created without entry in this setup. Without this module, payments are created with an entry and then don't need to be checked. runbot-error-231650 runbot-error-231651 [1]: https://github.com/odoo/enterprise/commit/7c36a5f405a0426bf11eca0e5a8a6cf6a416076c
This change reverts a previous internal redesign of field service task templates because it added too much complexity. It is intended to preserve the same user experience while making the underlying implementation easier to maintain.
Original PR description
This PR's purpose is to revert the refactor of the task template done in task-4919945. There should be no functional changes due to this PR. The revert is done because the refactor adds too many code lines and is too complex. Task-5072878
This update changes how shape-related editor paths are referenced in the Sign and marketing automation website sale areas. It keeps these features aligned with the newer editor structure, reducing maintenance risk without changing normal user workflows.
Original PR description
*: marketing_automation_website_sale
The online shop code for subscriptions, rentals, stock-aware rentals, and Chilean/Mexican e-invoicing checkout flows was modernized to use Odoo’s newer interaction framework. This is an internal cleanup that should preserve existing customer-facing behavior while making the shop easier to maintain and improve later.
Original PR description
task-4919046 Community PR: https://github.com/odoo/odoo/pull/223917
This update removes leftover dependencies on the old web editing technology as Odoo moves to newer editing tools. It is mainly an internal cleanup that keeps Payroll, Knowledge, and Sign aligned with the platform evolution, with little expected direct impact for end users.
Original PR description
The web_editor module has been superseded by the newer html_editor and html_builder modules and is no longer used by any other module. Untangling web_editor has been a huge team effort, of which this PR is merely the latest part. Thanks to everyone involved with html_editor and html_builder, as this would not have been possible without your help! Community PR: https://github.com/odoo/odoo/pull/225791