Daily updates from Odoo
Thursday, December 4, 2025
20 changes
3 changes
Enhancements to existing features
This update enhances the system's ability to retrieve information related to signed documents. Previously, limitations prevented accessing additional data associated with O2M (one-to-many) relationships within the signing process. Now, customization is enabled, allowing for broader access to relevant data from the `sign.send.request.signer` model.
Original PR description
The class `SignerX2Many` is inheritable, but if we need another value from the o2m, we can't use it because the `signerX2Many` is not exportable. Enable `signerX2Many` customization, allowing more fields to be read from the `sign.send.request.signer` model. Forward-Port-Of: odoo/enterprise#99977
This update significantly speeds up the process of retrieving product information, particularly when configuring products. By using a batch processing method, the system now completes this task in just 0.8 seconds, compared to 2.7 seconds previously – a 70% improvement. This change enhances the user experience and overall system performance.
Original PR description
Performing read operations on attributes and values in batch yields a significant performance improvement and is standard practice. Tested with 60 attributes and 8000 values: went from 2.7s to 0.8s (-70%) No task --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#235170
This update enhances the integration with Adyen, our payment processor, by including essential application information in the payment requests. This ensures accurate transmission of key details like the external platform, leading to smoother and more reliable payment processing. A new test has been implemented to verify the functionality.
Original PR description
Add applicationInfo to the payload sent to Adyen, ensuring that externalPlatform is correctly transmitted. A test was added to verify that applicationInfo is present in the payload and that the payment request succeeds as expected. task-5157863 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#237008 Forward-Port-Of: odoo/odoo#233075
2 changes
Enhancements to existing features
This update enhances the ability to retrieve information related to signed documents (o2m relationships) within the Odoo Enterprise system. Previously, limitations prevented accessing additional data from these relationships, now customization is enabled. This allows for more comprehensive tracking and reporting of signed transactions.
Original PR description
The class `SignerX2Many` is inheritable, but if we need another value from the o2m, we can't use it because the `signerX2Many` is not exportable. Enable `signerX2Many` customization, allowing more fields to be read from the `sign.send.request.signer` model. Forward-Port-Of: odoo/enterprise#99977
This update enhances the integration with Adyen, the payment processor, by adding crucial information about our platform. This ensures accurate transmission of key details during payment requests, leading to smoother and more reliable transactions. A new test has been implemented to confirm the successful completion of these payments.
Original PR description
Add applicationInfo to the payload sent to Adyen, ensuring that externalPlatform is correctly transmitted. A test was added to verify that applicationInfo is present in the payload and that the payment request succeeds as expected. task-5157863 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#237008 Forward-Port-Of: odoo/odoo#233075
1 change
Enhancements to existing features
This update enhances the system's ability to retrieve information related to signed documents. Previously, limitations prevented accessing additional data from the 'sign.send.request.signer' model when working with many-to-many signers. Now, customization is enabled, allowing for more comprehensive data retrieval, improving sign management workflows.
Original PR description
The class `SignerX2Many` is inheritable, but if we need another value from the o2m, we can't use it because the `signerX2Many` is not exportable. Enable `signerX2Many` customization, allowing more fields to be read from the `sign.send.request.signer` model. Forward-Port-Of: odoo/enterprise#99977
8 changes
Enhancements to existing features
This update replaces all 'Cancel' buttons with 'Discard' throughout the Odoo interface. This change simplifies the user experience by aligning the terminology with common user expectations and reducing potential confusion. It's a minor improvement focused on usability.
Original PR description
## Description:
Replaced all cancel buttons with discard
Task: [5353199](https://www.odoo.com/odoo/2328/tasks/5353199)
## review checklist
- [ ] feature is organized in plugin, or UI components
- [ ] support of duplicate sheet (deep copy)
- [ ] in model/core: ranges are Range object, and can be adapted (adaptRanges)
- [ ] in model/UI: ranges are strings (to show the user)
- [ ] undo-able commands (uses this.history.update)
- [ ] multiuser-able commands (has inverse commands and transformations where needed)
- [ ] new/updated/removed commands are documented
- [ ] exportable in excel
- [ ] translations (\_t("qmsdf %s", abc))
- [ ] unit tested
- [ ] clean commented code
- [ ] track breaking changes
- [ ] doc is rebuild (npm run doc)
- [ ] status is correct in OdooThis update enhances the visibility of the AI button within the Odoo interface. The contrast and alignment have been adjusted to ensure it's easily noticeable in both light and dark modes, improving the user experience. The button has also been centered on the toolbar for better usability.
Original PR description
This PR optimizes the AI logo's contrast to make it more visible and more consistent with the other WYSIWYG icons in both light and dark mode. It also centres the ai button on the toolbar. | Before | After | |--------|--------| | <img width="246" height="33" alt="wysiwyg-light-before" src="https://github.com/user-attachments/assets/8357ff78-06cc-4bbf-8ed8-ff14cf3e79c9" /> | <img width="261" height="42" alt="Screenshot 2025-11-07 at 15 29 29" src="https://github.com/user-attachments/assets/36cda5b2-7937-4ba0-97d2-4d345cf1a160" /> | | <img width="254" height="43" alt="wysiwyg-dark-before" src="https://github.com/user-attachments/assets/0807c8bd-a18e-4c86-920b-4d83ece31b78" /> | <img width="252" height="39" alt="Screenshot 2025-11-07 at 15 29 12" src="https://github.com/user-attachments/assets/49a67995-bc4a-4a74-9223-b0310e7c25f9" /> | task-5095689 PR-commu: https://github.com/odoo/odoo/pull/232281
This update simplifies receipt printer management within Odoo Enterprise by removing receipt printer logic from the hardware proxy service. This change improves the system's architecture and prepares it for future updates, ensuring smoother operation of point-of-sale systems. It’s part of a broader effort to streamline POS processes.
Original PR description
In order to deprecate the hardware proxy service, we moved the receipt printers logic out of it. see odoo/odoo#238347
This update enhances reporting by adding key performance indicators (KPIs) for social media clicks and online appointment bookings. The changes involve refining calculation methods and supporting cross-company data analysis, ultimately providing better insights into business performance.
Original PR description
[IMP] social: add/improve digests We add the #Social Media Clicks KPIs. Note that we use raw sql queries to calculate it as the field click_count on social.post is computed. [IMP] appointment: add digest KPI We add nbr_of_online_appointment KPI. [IMP] various: improve digest Following the improvement of the method _calculate_company_based_kpi to also support the cross company computation, and we rename its call to _calculate_kpi. Following the introduction of the method _get_kpi_custom_settings, we use it to define the KPI's action and remove the method _compute_kpis_actions. Task-2705154
This update enhances the AI draft feature by providing more accurate suggestions through improved LLM integration and a refined user interface. Key configuration changes streamline agent identification and data sharing, resulting in a smoother and more reliable AI experience.
Original PR description
Follow up with minor improvements for the AI draft and the keys config features. These include: - Feeding the already exisiting text of the editable to the LLM for more accurate suggestions - Use the AI app icon in the knowledge button - Prompt button label is now a mandatory field - you cannot add "empty" buttons - Agent subtitle is inserted above prompt buttons - users have better idea of agent they speak to from the UI - m2m_tag widget was used for the models in the default prompts config list view - m2o_avatar widget was used for agents in all default prompts config views - prompt buttons are now hidden for the email prompt evaluator key - model selection is now hidden for the email prompt evaluator, the knowledge html, and the ask AI key. - message date is included when sharing the chatter information
This update simplifies the creation of spreadsheet pivots by automatically loading a default view, eliminating the need for users to manually set up rows, columns, and measures. A fallback count measure is added if none is specified, and the code has been consolidated for easier maintenance. This improves the user experience and reduces setup time.
Original PR description
## Description Current behavior before PR: - Creating an Odoo Pivot from a spreadsheet opened an empty pivot, forcing users to configure rows, columns, and measures from scratch. - The addEmptyGranularity function was duplicated across multiple places, leading to redundant code and harder maintenance. Desired behavior after PR is merged: - New spreadsheet pivots now load the default pivot definition, similar to the web pivot view, with no filters applied. - If no explicit measure is defined in the pivot architecture, a fallback count measure is automatically added. - The addEmptyGranularity function is moved to pivot_helper so it can be reused from anywhere without redefining it in several places. Task: [5253761](https://www.odoo.com/odoo/project/2328/tasks/5253761) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update improves the user experience by making the share-target feature more intuitive and versatile. It now supports creating expenses, bills, and other records (like leads and tasks) more seamlessly, and allows other apps to contribute to share targets. The update also includes new options like triggering share targets via file drops on the home screen.
Original PR description
In this commit, we update the share-target to the v2. The main goal is to improve the user experience when using the existing share-target. Previously, the share target was only useful for creating an expense, but it wasn't clear to the user. We added a dialog to enhance the user experience before creating an expense, rework the share-target service to allow other app to propose another share target item, the default behavior of a share target is to append the file as an IrAttachment linked to the record. We can need trigger the share target when we drop file(s) on the homescreen Here the list : - Bill - Expense (the only available in v1) - Time-Off - Lead - Task - To-do task-5184941
This update enhances the ability to access data associated with 'sign' records linked to multiple records (X2Many). Previously, limitations prevented developers from utilizing this data effectively. Now, customization of the `SignerX2Many` class allows for broader access to information from the `sign.send.request.signer` model, streamlining data retrieval.
Original PR description
The class `SignerX2Many` is inheritable, but if we need another value from the o2m, we can't use it because the `signerX2Many` is not exportable. Enable `signerX2Many` customization, allowing more fields to be read from the `sign.send.request.signer` model. Forward-Port-Of: odoo/enterprise#99977
6 changes
Enhancements to existing features
This update allows users to include multiple attachments when sending invoices through the Peppol system. These attachments are now embedded within the XML document format, streamlining the process for exchanging supporting documentation. This enhancement improves the efficiency and compliance of Peppol transactions.
Original PR description
[IMP] account: multiple embed files peppol This commit allows user to send multiple attachments through peppol. The attachments will be embedded into the xml under the `AdditionalDocumentReference` tags task-5103539
This update ensures greater clarity and accuracy in Odoo's queries by consistently using fully qualified column names (e.g., `account_move.balance`). This prevents ambiguity when joining tables and avoids potential issues with custom modules, ultimately strengthening data reliability.
Original PR description
Use fully qualified column names when constructing a query, more specifically, include the table that the column is originating from. The rule of thumb is that we always include the table name alongside the column name. In this particular case, the query will do a `JOIN` on `account_move` and there may be ambiguousness as to whether to take the `balance` column from `account_move` or `account_move_line`. The former column used to exist in the past and was likely kept for data retention purposes. Hence, there are still databases in 17.0 where `account_move.balance` exists. Another reason to include the table name is to prevent confusion with columns coming from custom modules. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#237181
This update enhances the handling of Chilean electronic invoices by ensuring document folio numbers align with available CAF files. A key change requires a valid owner document (subject_serial_number) for certificates, improving data integrity and compliance with SII regulations. This update focuses on stability and accuracy of Chilean electronic invoice generation.
Original PR description
This pull request introduces improvements to the handling of Chilean electronic document sequences, enforces stricter validation for certificate data, and modernizes string formatting throughout the…
This pull request introduces improvements to the handling of Chilean electronic document sequences, enforces stricter validation for certificate data, and modernizes string formatting throughout the codebase. The most significant changes focus on ensuring that document folio numbers are correctly managed in accordance with available CAFs, making the certificate model more robust, and updating code style for clarity and consistency. This improvement is mostly made because CAFs have expiration dates and fixed folio numbers. If the expiration date is reached but the folios were not fully consumed, the system will try to generate a document with following number in the sequence but an error will be raised because that number belongs to an expired CAF, althought the user had already uploaded a new CAF. To fix this, whenever the system looks for the highest number to set to a document, it previously check if that number is between the folio numbers of a valid CAF file. ### Chilean electronic document sequence management * Added `_get_last_sequence` method to `account_move.py` to ensure that the folio number used for Chilean electronic documents (DTE) is valid and corresponds to an available CAF. If no CAF is available for the current folio, the sequence is reset using the document type's prefix and starting number. ### Certificate model validation * Made `subject_serial_number` a required field in the `Certificate` model, enforcing that every certificate has a valid owner document and improving data integrity. We made this change to prevent the field being empty after loading the certificate in Odoo, since it is required by the SII to validate invoices.
This update improves the calculation of EPF (Employee Provident Fund) taxes in the My HR Payroll module. It now correctly accounts for rounding to ensure accurate tax amounts are deducted, aligning with the latest legislation. This change enhances payroll accuracy and compliance.
Original PR description
Previous behavior did not account for the rounding of the amount of tax to the next ringgit. Also the employee's rate has been updated in accordance to the legislation. task-5286179
This update clarifies the labeling of a field used when making salary adjustments within the HR payroll module. The change ensures users understand exactly where this input is accessible, leading to a more intuitive and efficient adjustment process. This improves usability and reduces potential errors.
Original PR description
This change ensures the label accurately reflects where the field is accessible and providing better clarity for users when working with salary adjustments. Task: 5375187
This update enhances user privacy by making it easier for customers to review and update their cookie consent choices. Previously, users could only access the Cookie Policy through a popup, but now a permanent link is available in the website footer, allowing for ongoing control.
Original PR description
This improvement enhances user control over cookie preferences by making the Cookie Policy page (/cookie-policy) more accessible and allowing users to modify their consent at any time. **Issue:** -…
This improvement enhances user control over cookie preferences by making the Cookie Policy page (/cookie-policy) more accessible and allowing users to modify their consent at any time. **Issue:** - Previously, the only way to access the Cookie Policy page was through the link in the cookie consent popup. However, once users accepted cookies, the popup was no longer displayed, making it impossible to navigate to the policy page later. - Additionally, the Cookie Policy page had a button to reopen the cookie consent popup, but it was only visible if cookies were not accepted. Once cookies were accepted, the button was hidden, preventing users from changing their preferences. **Improvements:** - Added a permanent link to the Cookie Policy page in the copyright footer, ensuring it remains accessible at all times. - The cookie consent toggle button now remains visible even after a user has accepted cookies, allowing them to update their preferences at any time. task-[4502416](https://www.odoo.com/odoo/project/974/tasks/4502416) Forward-Port-Of: odoo/odoo#203409