Friday, December 12, 2025
22 changes · master
Enhancements to existing features
This update enhances the website generator's efficiency by proactively verifying URLs before sending requests to the scraper. This prevents unnecessary requests to invalid or blocked URLs, improving performance and reducing potential errors. The check is now performed on the IAP server for security and efficiency.
Original PR description
This PR adds the client side verification of an url for the request we make to generate a website using the website scraper. **The goal is to filter all the unwanted requests (invalid urls, banned urls) before launching the scraper process.** The check is done on the IAP server, and retrieved on the DB. The reason is that we don't want to send a request directly from the db [as this was already discussed](https://github.com/odoo/enterprise/pull/92724). Since the IAP server is also the one that will eventually do the scraping request, it also makes more sense that it is the one to check (to avoid the case where odooDB has access to an URL and IAP server does not). Previous PR was in master, but since we only change js component, we can modify 19.0 directly. Link : [Master PR](https://github.com/odoo/enterprise/pull/99433) Forward-Port-Of: odoo/enterprise#100967
Resolved issues and error corrections
This update fixes a limitation in VoIP call creation where regular users couldn't find contacts based on their extension. The change allows VoIP to access extension information securely, ensuring regular users receive accurate contact search results. This enhances the user experience when initiating VoIP calls.
Original PR description
When a call is created, VoIP tries to associate it with a contact based, among other things, one the contact's extension. However, the extension is stored on the res.users.settings record of other users, which regular users don't have access to. This commit updates get_contact_info to perform the search for the extension in sudo mode, so that regular users also get meaningful results. [Task-5395010](https://www.odoo.com/odoo/project/5778/tasks/5395010) Forward-Port-Of: odoo/enterprise#101502
Features or functions removed from Odoo
This update simplifies the l10n_cz and l10n_sk modules by removing a previously added field for taxable supply rates. Now, the system utilizes the existing delivery date information instead, streamlining data management. This change improves efficiency and reduces potential complexity.
Original PR description
A field taxable_supply_rate was added for both l10n_cz and l10n_sk modules before as delivery_date didn't exist back then. Now, we can remove the field and use delivery_data in its place. task-4373097 Community PR: https://github.com/odoo/odoo/pull/191189
This update resolves an issue where users couldn't select items within locked pills in the Gantt chart. Now, users can initiate selections on locked pills without the locking style interfering, providing a smoother and more intuitive user experience. This enhancement improves usability for managing tasks and dependencies.
Original PR description
This commit allows users to initiate multi-selection on locked pills. When starting a selection on a locked pill, the locked styling is no longer applied, and the selection behaves normally. task-5118978 Forward-Port-Of: odoo/enterprise#99891
This update fixes an issue where the system could generate incorrect invoice sequences when a specific journal setting wasn't configured. The change ensures that sequences are always valid, preventing potential errors and ensuring accurate invoice processing for Chilean Electronic Invoices. This improves data reliability.
Original PR description
Before this commit, if the journal is not set to using the document (l10n_latam_use_documents), the method _get_last_sequence could return a sequence that starts with False. opw-5404813 Forward-Port-Of: odoo/enterprise#101824
This update resolves a technical issue that caused the Gantt chart to crash when event start or end dates were cleared. The fix ensures the Gantt calculation only runs when a valid date range exists, preventing errors related to comparing dates with boolean values.
Original PR description
When removing the start or end date on an Event, the system raises a traceback during Gantt information computation. **Steps to Reproduce:** 1. Install `website_event_track_gantt` module. 2. Create a new Event. 3. Add at least one **Track** with a track **Date** and **Duration**. 4. In the Event form, clear the Start or End Date field. **Error:** `TypeError: '<' not supported between instances of 'datetime.datetime' and 'bool'` **Cause:** When the event start or end date is removed, those fields become False. During computation, the system attempts to compare these False values with the track dates (which are real datetimes), resulting in an invalid datetime-boolean comparison, causing the error. **Fix:** This commit ensures the Gantt calculation only executes when the event has a valid date range, avoiding comparisons that include missing values. no id Forward-Port-Of: odoo/enterprise#101541
This update resolves a problem in the pos_settle_due tests that were failing due to a hardcoded year. The fix ensures the tests accurately reflect time-based calculations, regardless of the current year. This improves the reliability of the testing process.
Original PR description
When running the pos_settle_due tests with faketime, the tour pos_settle_account_due was failing cause of a hardcoded year which would not work on another year. This is now fixed. runbot-error: 234052 Forward-Port-Of: odoo/enterprise#101217
This update resolves an issue where top-up events would fail when an archived account was used for company transfers. The system now skips the reconciliation step for archived accounts, ensuring top-ups are processed correctly. This improves the reliability of the expense tracking feature.
Original PR description
Before this commit: Webhook 'topup.succeeded' events would fail if the company `transfer_account_id` field is set to an archived account at the reconciliation step After this commit: As the reconciliation is a "nice to have", we skip the reconciliation step Steps to reproduce: - Install `hr_expense_stripe_demo` - Fill the KYC of doom - Archive the account set on the company `transfer_account_id` field - Create a top-up - Nothing happens, error 550 logged on IAP test Forward-Port-Of: odoo/enterprise#101831
This update fixes an issue where accounting reports in print mode had unnecessary borders and padding, creating a cluttered appearance. The change removes these elements, resulting in cleaner and more professional-looking reports when printed. This improves the user experience for generating and sharing financial reports.
Original PR description
This commit removes the padding and the border of the accounting reports when in print mode. COM: https://github.com/odoo/odoo/pull/236748 task-5265277 Forward-Port-Of: odoo/enterprise#100068
This update fixes a bug where the 'Other Expenses' account type wasn't reflected in the Balance Sheet report. The change was made to align the report with a recent addition of this account type, simplifying expense tracking for vendor bills. This ensures all financial data is accurately represented.
Original PR description
In saas-18.3 a new account type was added: "Other Expenses" These accounts are excluded from the account many2one field to make it easier to find relevant expense accounts for vendor bills. Issue: This account type is not included in the Balance Sheet report. see comment in opw-5269456 related to opw-5191111 Forward-Port-Of: odoo/enterprise#101591
This update fixes an issue where duplicate quality checks were being created for stock pickings, even when only one check was needed per operation. The change adds a validation step to ensure only one operation-based quality check is generated per picking, streamlining the process and preventing unnecessary checks.
Original PR description
Steps to reproduce: -------------------------- 1. Install the Quality module. 2. Create a Quality Control Point with: * Control per: Control on Operation. * Operation: Receipts (set in the Operations…
Steps to reproduce: -------------------------- 1. Install the Quality module. 2. Create a Quality Control Point with: * Control per: Control on Operation. * Operation: Receipts (set in the Operations field). 3. Create a Receipt containing one product. 4. Click the Mark as To Do button. 5. Add another product to the same Receipt and save it. Observation: -------------------------- Two quality checks are generated for the same picking, despite the tooltip indicating that only one check should be created per operation. Issue: -------------------------- No validation existed to verify whether an operation-based quality check had already been created for the picking when adding additional stock moves after confirmation. Solution: -------------------------- Add a check ensuring that if a quality check already exists for the same picking type and operation (with no product or category criteria), no additional operation-based quality checks are created. opw-5249233 Forward-Port-Of: odoo/enterprise#101788 Forward-Port-Of: odoo/enterprise#100118
A bug preventing Arabic-speaking users from accessing booking tabs within the Point of Sale (POS) system has been resolved. The fix corrects an error in how date formatting was handled, ensuring proper display and functionality for users with Arabic language settings. This improves the user experience for a wider range of customers.
Original PR description
Currently, when the user language is arabic and we try to select the booking tab inside pos, a traceback appears. Steps to reproduce: ------------------- * Make sure shop has activate the booking feature * Set appointment type to "Table" * Set user language to arabic * Open pos session * Open the booking tab > Traceback: ... invalid isoformat string Why the fix: ------------ `.toFormat` was responsible for the "translation" of the date to arabic. opw-5380768 Forward-Port-Of: odoo/enterprise#101304
This update ensures that a 'partner ID' is always required when processing SEPA payments. Previously, missing this ID caused errors during batch payment creation, leading to potential payment processing disruptions. This change improves the reliability and stability of our payment system.
Original PR description
When doing a payment with SEPA as the payment method, and then create a batch payment out of it. It could happen that the partner_id of the payment was not set. That would cause a traceback because in the _get_CdtTrfTxInf we do a browse on the partner to use it later on. But since the partner is False, we have an empty record set. task-5213880 Forward-Port-Of: odoo/enterprise#98249
This update resolves a technical issue preventing the transcription component from generating summaries correctly. The fix corrects a misnamed field, ensuring the system functions as intended and avoids crashes during summary creation.
Original PR description
This PR fixes a bug with the summary of the transcription component that still uses an old field name, which caused it to crash whennever doing a summary. The PR changes the name from `ai_agent` to the proper `ai_agent_id`.
This update corrects a recent issue where email templates for sending DIAN invoices and credit notes were accidentally removed. The fix re-added the necessary templates, ensuring proper compliance with DIAN regulations. This ensures accurate and timely electronic invoice delivery for users utilizing the l10n_co_dian module.
Original PR description
**Steps to reproduce:** - Create a database with l10n_co module - "Invoice (DIAN): Sending" and "Credit Note (DIAN): Sending" are missing in the available templates **Issue:** Xml line which added "l10n_co_dian.email_template_edi_invoice" and "l10n_co_dian.email_template_edi_credit_note" templates was removed in https://github.com/odoo/enterprise/commit/7add9dbface8e67dd25b05653d514d5f8c2cfa38 **Fix:** Re-add the `<function>` to `_create_dian_mail_templates` in the `.xml`. opw-5385848 Forward-Port-Of: odoo/enterprise#101833
This update resolves a limitation preventing non-administrator users from utilizing the delivery_usps_rest module. By implementing sudo() calls, the module now grants necessary access to the USPS Rest API, improving usability for a wider range of users without requiring elevated permissions.
Original PR description
Non-admin users are currently unable to use the delivery_usps_rest module because several fields are limited to the "base.group_system" group. It's obviously not feasible to give everyone the "Role / Administrator" role. This PR makes necessary sudo() calls the same way that delivery_ups_rest does. Forward-Port-Of: odoo/enterprise#101163
This update resolves a technical issue that was causing test failures in the Odoo Enterprise system. A recent change restricted the use of testing helpers outside of test environments, and this commit adapts the tests to accommodate this new restriction. This ensures the stability and reliability of the system's testing process.
Original PR description
This commit adapts tests failing due to a recent fix preventing the use of 'mock...' helpers outside of tests. - Community: https://github.com/odoo/odoo/pull/239237 Forward-Port-Of: odoo/enterprise#101920 Forward-Port-Of: odoo/enterprise#101780
This update resolves a technical error that prevented some users from accessing the employee version history. The fix ensures that only authorized payroll users can view this data, preventing frontend parsing errors. This improves the stability and usability of the employee management system.
Original PR description
Steps to reproduce: - Log in as a user with only Employee Administrator rights (no payroll access). - Open the Employees app and create a new employee. - Click the History smart button. - A traceback is raised. Cause: The payroll module restricts contract_date_start and contract_date_end to hr_payroll.group_hr_payroll_user, but the search view still referenced these fields. Since the view was not updated accordingly, non-payroll users triggered a frontend parsing error. Fix: Override the search view to update the filters and match the model's access restrictions. task-5401143 Forward-Port-Of: odoo/enterprise#101710
This update resolves an issue where long text inputs within the Odoo Web Studio were causing data to overflow and display incorrectly. Now, long text fields are automatically truncated, ensuring data integrity and a cleaner user experience. This prevents data loss and improves usability.
Original PR description
**Before this commit:** Long input text overflowed and was not truncated. **After this commit:** Long input text is now properly truncated, preventing overflow. task-5240113 Forward-Port-Of: odoo/enterprise#99535
This update provides a notification within the IoT app backend to confirm when remote debug is successfully enabled. Previously, users received no feedback after entering the debug token, leading to uncertainty. This change ensures users know the remote debug session has been properly initiated.
Original PR description
When activating the remote debug from iot app backend there is no feedback when entering the token. We now display a notification to inform whether the remote debug is enabled or not. Task: 5388242 Forward-Port-Of: odoo/enterprise#101844
This update fixes an issue where subscription details weren't being displayed correctly within the project dashboard. Specifically, it corrected how subscription data was filtered and presented, ensuring subscription titles were accurate and preventing related sale order items from appearing in the wrong section. This improves the user experience for managing subscriptions.
Original PR description
Before this commit, when subscriptions were linked to the analytic account of a project, the sale order items appears in an unwanted section when the section is unfolded. Meanwhile, when the subscription section is unfolded the title of the subscriptions items are not correctly displayed. The first issue is due to the fact that we did not correctly exclude the subscriptions items from the domain. The second issue is due to the fact that we fetch the field 'name' from the subscription search instead of the field 'display_name' task-5159781 Forward-Port-Of: odoo/enterprise#101614 Forward-Port-Of: odoo/enterprise#97238
This update fixes an issue where helpdesk return pickings incorrectly defaulted to a generic 'incoming' operation type instead of the configured 'Delivery Orders' return type. The fix ensures that returns are now created using the correct operation type, streamlining the return process and improving data accuracy within the Helpdesk module.
Original PR description
Steps to reproduce: - 1. Go to Inventory > Configuration > Operation Types. 2. Open the 'Delivery Orders' operation type. 3. In the 'Returns Type' field, select a specific 'Returns' operation and save. 4. Go to the Helpdesk app and create a new ticket. 5. Click the 'Return' button to create a return picking. Issue: - The 'Operation Type' on the newly created return defaults to the first available 'incoming' operation. It incorrectly ignores the specific 'Returns Type' that was configured on the 'Delivery Orders' operation type. Cause: - The _prepare_picking_default_values method on the stock.return.picking wizard contained logic to search for the first operation type with code='incoming'. Fix: - The logic now finds the 'outgoing' (Delivery) operation type and uses its configured 'Returns Type' as the default for the new return. task-5074911 Forward-Port-Of: odoo/enterprise#94560