Daily updates from Odoo
Wednesday, March 18, 2026
45 changes · master
Enhancements to existing features
This update introduces a mechanism for generating random serial numbers within Odoo's testing environment. This simplifies test creation and ensures more consistent and reliable test results across various modules. It primarily benefits the development and QA teams by streamlining the testing process.
Original PR description
odoo/odoo#248661
This update enhances the way salary rules are displayed in the Odoo system. By dynamically adjusting the presentation of default values, the list view is now cleaner and easier to read, improving usability for HR staff. This change streamlines the process of configuring and managing salary rules.
Original PR description
This commit refactors the way input default values are shown in the Salary Rule configuration to support dynamic data types and improves the readability of the rule selector list view. Changes: List View Improvements: Added a computed field input_default_display to hr.salary.rule. This field dynamically returns the correct default value string based onnthe input_unit (Text, Selection, or Checkbox), ensuring the List View displays a single, populated column instead of multiple sparse columns. Dynamic Selection Options: task-5357904
This update enhances the rental order empty screen with animated GIFs, mirroring the design of the subscription screen. The GIFs are tailored for both dark and light mode, providing a more visually consistent and engaging experience for users. This improves the overall user interface.
Original PR description
We've added an animated gif to the rental order's empty screen. Loosely based on the pre-existing empty screen image in subscription, dark and light mode each have their own gif to reflect the ui colors. task-5699500
This update allows users to record the reason for a subscription's end date when scheduling it, eliminating the previous requirement to reopen the subscription. Previously, closure reasons were often missed, leading to incomplete records. This change ensures accurate tracking of subscription terminations.
Original PR description
Previously, users had to reopen a subscription to add a close reason after its end date was already scheduled. As a result, many scheduled closures were missing a recorded reason. This improvement allows users to specify a close reason directly when scheduling the subscription’s end date. task-5356573
This update enhances the visual clarity of the document search panel by adding more spacing. This improves the user experience and makes it easier to find documents within the system. The change is a visual improvement focused on usability.
Original PR description
Before this PR, the search panel was not optimal visually. It is now given more spacing to optimize visual appearance and clearness. Com PR: https://github.com/odoo/odoo/pull/229305 task-5008305 | | Before | After | |--------|--------|--------| | **Documents** | <img width="235" height="486" alt="Screenshot 2026-01-21 at 12 55 46" src="https://github.com/user-attachments/assets/9d6b8597-7a70-4e42-ae2a-69808cfcd4fa" /> | <img width="235" height="486" alt="Screenshot 2026-01-21 at 12 56 04" src="https://github.com/user-attachments/assets/c8bdfe35-c2d5-4701-9971-806b984e9216" /> |
This update enhances the Ask Feedback form by adding a widget that prompts employees to provide their email address. Previously, a warning message appeared if an employee didn't have an email, creating a friction point in the feedback process. This change ensures all feedback requests include necessary contact information.
Original PR description
-Originally, a warning appears in the ask feedback form when the employee doesn't have an email. -A widget has been added to request an email in the ask feedback form.
This update modernizes the core Odoo ORM, streamlining how data is combined and processed. This change improves the speed and efficiency of various Odoo modules, particularly those related to reporting and data aggregation. The update ensures Odoo continues to perform optimally with evolving data structures.
Original PR description
https://github.com/odoo/odoo/pull/249731
Resolved issues and error corrections
This update resolves issues with the formatting and data within Dutch SBR and ICP reports. Specifically, VAT information is now correctly formatted, and the XML output is cleaned for improved readability. This ensures accurate reporting for Dutch tax compliance.
Original PR description
Descriptions of the issues this commit addresses: The xbrli:identifier tags in the exported sbr and sbr icp files are wrong. They should always contain the company's vat without country code . The DateTimeCreation tag currently shows a date in a wrong format. It it YYYYMMDDhhmm but should be YYYY-MM-DDThh:mm:ss. Also the outputted xml is weirdly indented with many whitespaces and it makes it hard to read for no reason. --- Desired behavior after the commit is merged: This commit changes the values in the exported file to address those issues and adds the use of a cleanup helper to make the file human readable. --- task-5998939 Forward-Port-Of: odoo/enterprise#109359
This pull request reverts a recent change that was causing issues with email notifications related to contract salaries within the Enterprise module. The change was rolled back to restore the previous, stable functionality. This ensures that salary-related communications are delivered correctly.
Original PR description
Revert https://github.com/odoo/enterprise/pull/106974 Forward-Port-Of: odoo/enterprise#110767
This update resolves a bug preventing tours from correctly switching shifts within the Odoo Enterprise planning calendar. The issue stemmed from a misunderstanding of how the 'Edit' button was being handled, and the fix removes unnecessary checks. This ensures all tours function as expected.
Original PR description
The tour was working with `planning_field_service_sale_timesheet` but not `planning_field_service` only. The reason is that 'newButtons' did not contains any element, so the 'Edit' button logic was not altered to redirect to the form view on click as wanted. We do not need to do the check on 'newButtons' to allow that. runbot-error: https://runbot.odoo.com/odoo/runbot.build.error/241950 Forward-Port-Of: odoo/enterprise#110937
This update fixes a discrepancy in the Indian salary configurator, ensuring the default basic salary percentage is 50% instead of 60%. Benefit updates now correctly impact gross salary and employer costs without altering employee wages or the payroll structure. This ensures accurate payroll calculations for Indian employees.
Original PR description
- Fix the default Indian basic salary percentage to 50% instead of 60%. - Ensure benefit amounts are treated as additional employer payments and do not rebalance the employee’s wage or basic salary in the salary configurator. After this change, benefit updates only impact gross salary and employer cost, while the wage remain unchanged. task-[5501683](https://www.odoo.com/odoo/project/1251/tasks/5501683) Forward-Port-Of: odoo/enterprise#108055
This update resolves a failing test within the Odoo Enterprise platform, specifically concerning how orders are processed. The system now requires a kitchen printer, but the test environment lacks this setup, causing errors. This fix ensures the test runs correctly and prevents potential issues during order processing.
Original PR description
This commit fixes the failing `test_platform_order_flow` test, specifically within the `test_platform_order_reject_flow` tour at the `.ticket-screen` step. Explanation: The root cause of this issue is that the system is now expecting a kitchen printer to be present to process the order flow. However, the unit test environment does not have a kitchen printer configured, which causes the flow to halt or behave unexpectedly when the system tries to interact with it. Reference: Breaking PR: odoo/odoo#226447 build_error-241246 Forward-Port-Of: odoo/enterprise#110544 Forward-Port-Of: odoo/enterprise#110249
This update corrects an issue where QR codes weren't consistently appearing on PDF invoices sent to customers in Peru. The change resolves a technical problem related to how attachments were linked during the invoice generation process, ensuring correct QR code inclusion. This improves the accuracy of customer invoices.
Original PR description
In [^1] we refactored Peru to use the send and print api instead of account_edi. One issue that was missed is in the case of sending the pdf to the customer in the same call as sending to SUNAT. Since the field that is storing the attachment (`l10n_pe_edi_attachment_id`) is linked to `l10n_pe_edi_attachment_file` via the compute, creating the attachment with a link to the res_field doesn't update within the transaction so `l10n_pe_edi_attachment_id` is still false at the time of PDF generation. There are two fixes, we can either invalidate the recordset at time of computation to make sure that it is truthy in the transaction, or use the `l10n_pe_edi_attachment_file` directly as it means we don't need to access the data field on `ir.attachment`. The use of the `l10n_pe_edi_attachment_file` field seemed cleaner. task-none [^1]: #97593 Forward-Port-Of: odoo/enterprise#110885
This update fixes a technical issue related to how marketing emails are generated. The system now correctly determines if an email body is required based on the email content, ensuring consistent email formatting. This improves the reliability of marketing campaigns.
Original PR description
Prior to this commit, `body_html` was hard-coded as a dependency of the `mass_mailing_html_field`, and that dependency lacked the `required` attribute, which should depend on the value of `body_arch`. The dependency is now added in the related views, and the field is now generic. As HtmlField now mark the record `dirty` `onChange`, some tours should ensure that the form view is properly discarded before finishing. task-5976348 Forward-Port-Of: odoo/enterprise#110643 Forward-Port-Of: odoo/enterprise#109091
This update fixes a technical issue in the demo certificate used for Peru's electronic invoicing (PE) system. The original certificate's lifespan was shortened, causing testing problems. This change extends the certificate's validity by ten years, ensuring accurate testing and demonstration of the feature.
Original PR description
In runbot's faketime tests, the test 1 year in the future goes past the end date of the demo PE certificate which had a lifetime of 2017-02-25 to 2027-02-25. This commit replaces that with one that lasts another ten years (2026-03-13 to 2036-03-13). runbot-241058 Forward-Port-Of: odoo/enterprise#110719
This update fixes a limitation in the Odoo Enterprise system by enabling users to select 'Other Expenses' as a valid account type when creating loan expense records. Previously, this option was restricted, which created an inconvenience for users tracking certain types of loan-related costs. This change improves flexibility and accuracy in expense reporting.
Original PR description
Allow accounts with the "Other Expenses" type to be selected in the Expense Account field of Loans. task-5946452 Forward-Port-Of: odoo/enterprise#110085
This update resolves a technical issue that was causing test failures in the Point of Sale preparation display module. The trigger that reacted to spinning icons (fa-spin) has been removed, as the system already handles synchronization delays effectively. This ensures smoother and more reliable operation of the POS preparation process.
Original PR description
In this commit: = - Removed the trigger that checks for `fa-spin` as it was causing test failures when minor delays occurred between steps. - Checks for `fa-spin(Sync)` is alredy handled by the `isSynced` or `waitRequest`. Runbot-error: [198580](https://runbot.odoo.com/odoo/error/198580), [234025](https://runbot.odoo.com/odoo/error/234025) Forward-Port-Of: odoo/enterprise#87281
This update ensures that new files created in the Odoo Enterprise system correctly identify their file type (MIME type). This fix addresses a compatibility issue with older versions of Chrome, aligning with current web standards and improving the system's ability to handle file uploads properly.
Original PR description
The `type` option passed to the `File` constructor should be a string representing the MIME type of the content that will be put into the file. Chrome 146 actually follows the Fetch Standard and preserve the data URL MIME type parameter. This commit fixes the malformed MIME types passed to the `File` constructor to ensure proper compatibility with pre/post Chrome version 146 (and actually follow the spec). References: - https://chromestatus.com/feature/4874471565557760 - https://developer.mozilla.org/en-US/docs/Web/API/File/File#type runbot-241901 Forward-Port-Of: odoo/enterprise#110812 Forward-Port-Of: odoo/enterprise#110496
This update ensures the title of the embedded account report within the annual report correctly reflects the user's selected language. Previously, the report title remained in English regardless of the user interface language setting. This change improves the user experience by providing localized content.
Original PR description
### Issue before this commit: When generating the annual report, the title of the embedded account report displayed in the table of contents remained in English even when the user interface language was changed. ### Steps to reproduce the issue: 1. Install another language than english and switch to that one 2. Install Accounting app and audit modules 3. Go to Accounting > Revision > Annual Report 4. Create an Annual Report and click on it 5. Index is in the correct language but the title inside is not ### Cause of the issue: The issue occurred because the name property passed to the AccountReportComponent was not translated. Reason to introduce the fix: To translate the embedded account report title according to the user’s current language. opw-5958383 Forward-Port-Of: odoo/enterprise#109962
This update fixes a potential issue where new records in several Odoo modules (including account, helpdesk, and project) could inadvertently reuse previously deleted IDs. The change ensures each new record gets a unique ID, improving data integrity and preventing errors. Updated tests confirm this fix.
Original PR description
\* documents_spreadsheet, helpdesk, planning, project_enterprise, sale_planning, spreadsheet_edition, web_cohort, web_gantt, web_grid Previously, new record IDs were generated using the maximum existing ID. If the last record was deleted, newly created records could reuse the same ID. This change stores the last generated ID on the model and uses it to generate new records, ensuring uniqueness. Related tests were updated to match the new behavior. Community: https://github.com/odoo/odoo/pull/250661
This update resolves an issue where default values for selection-type salary inputs weren't being correctly applied when first added to a payslip. The fix ensures that these default values are consistently displayed, improving the accuracy of payroll calculations. This change impacts the way salary inputs are configured.
Original PR description
Steps to reproduce: - Create a Salary Input of type 'selection'. - Assign a default value to this input. - Add the input to a payslip. Bug Cause: The form view is not re-comupting the values when it's assigned for the first time since the container is not changed Solution: Forcefully update the payroll_properties when we add new inputs in the payslip form task-5357904 Forward-Port-Of: odoo/enterprise#106469
This update resolves a technical issue causing a warning message related to how boolean fields were displayed. Additionally, outdated tour actions related to work entries have been removed, streamlining the user experience. This ensures correct overtime ruleset presentation.
Original PR description
Remove legacy widget="checkbox" usages that triggered the "Missing widget: checkbox" console warning; boolean fields now use the default boolean widget rendering. Also, removed tour actions related to the "Work Entries" removed in last version. task-5945764 Forward-Port-Of: odoo/enterprise#110777
This update reverses a previous change related to employee benefits, specifically the eco voucher. The change has been reverted to restore the standard payroll calculations. This ensures accurate and consistent payroll processing for employees using the Belgian HR payroll module.
Original PR description
Forward-Port-Of: odoo/enterprise#110515
This update resolves a technical problem with the validation schema used in the account reports and sign modules. The fix ensures that these components function correctly, preventing potential errors and improving data reliability. This change ensures smooth operation of key reporting and signature processes.
Original PR description
This commit corrects wrong props validation schema that could not work.
This update fixes an issue where salary-related fields within the HR Contract Salary configuration weren't being updated correctly. The change ensures that all relevant settings are accurately reflected after configuration adjustments, improving data consistency and accuracy for payroll and contract management.
Original PR description
Forward-Port-Of: odoo/enterprise#110950
This update fixes an issue where the auto-focus feature for the country selector in the VoIP keypad stopped working in version 19.2. The fix ensures the selector automatically receives focus when opened, improving user experience. This resolves a minor usability problem.
Original PR description
Commit [1] introduced the country selector on the VoIP keypad, for saas-19.1. However, for saas-19.2, the auto-focus of the country search input once the country selector dropdown is opened was…
Commit [1] introduced the country selector on the VoIP keypad, for saas-19.1. However, for saas-19.2, the auto-focus of the country search input once the country selector dropdown is opened was broken. This is because of [2] which trapped the focus inside the softphone to improve various keyboard behaviors... but the country selector is considered to be outside of the country selector as it is a dropdown, which broke the auto-focus. We now trap the focus inside the country selector once it opens, the same way [2] traps the focus inside the softphone once it opens. Doing that, using `useAutofocus` becomes actually useless as the input is the first focusable element of the dropdown and will thus automatically be focused when the menu becomes the active element. Also, the auto-focus introduced by [1] was not working on mobile. This commit changes that but does not consider that to be a bug so this still target 19.2+. Note: a tour already existed and wanted to check that feature works but it was not properly written. This commit adds a unit test about this only too, and for the mobile usecase. [1]: https://github.com/odoo/enterprise/commit/708aea78760392207f9148c31c67212dacaf3294 [2]: https://github.com/odoo/enterprise/commit/df1772e877a508150fd3f549526dec9d867354be task-5999452 Forward-Port-Of: odoo/enterprise#109871
This update corrects a technical issue preventing the installation of the Planning module when the 'planning_holidays' module was enabled. The fix involves reverting a recent change to the view structure, ensuring compatibility between the module's targeting of a specific HTML element and the underlying database structure. This resolves an installation error and allows the Planning module to function correctly.
Original PR description
**Steps to Reproduce:** - Revert the commit 2ff35d598346798bd00fd40687e0e214c0190c1f. - Install the Planning module. - Restore the original commit - Install 'planning_holidays' module. **Error:** ```…
**Steps to Reproduce:**
- Revert the commit 2ff35d598346798bd00fd40687e0e214c0190c1f.
- Install the Planning module.
- Restore the original commit
- Install 'planning_holidays' module.
**Error:**
```
ParseError: while parsing /home/odoo/src/enterprise/saas-19.2/planning_holidays/views/planning_slot_views.xml:26, somewhere inside <record id="planning_view_kanban_inherit_planning_holidays" model="ir.ui.view">
<field name="name">planning.slot.kanban</field>
<field name="model">planning.slot</field>
<field name="inherit_id" ref="planning.planning_view_kanban_inherit"/>
<field name="arch" type="xml">
<xpath expr="//span[@t-if='record.overlap_slot_count.raw_value']" position="after">
<field name="leave_warning" class="text-danger mb-2"/>
</xpath>
</field>
</record>
```
**Cause:**
The `planning_holidays` module targets a `<span>` element in its XPath, while the `overlap_slot_count` element is located in a `<p>` in the planning module. Since view changes in stable do not update already-installed databases, the old XPath cannot be found, and a ParseError is raised during module installation.
**Fix:**
Revert the changes in stable to restore the original view.
sentry-7338367664
Forward-Port-Of: odoo/enterprise#110826This update corrects a bug in the accounting module that occurred when multiple reconciled lines were present. The fix ensures the system handles reconciliation correctly, preventing errors when users manually reconcile multiple transactions. This improves the stability and reliability of the accounting process.
Original PR description
**Steps to reproduce:** - Install Accounting - From a Bank journal, create a transaction with an amount of -1000 - Set Account to "Liquidity Transfer" - From a Cash journal, create a transaction with…
**Steps to reproduce:** - Install Accounting - From a Bank journal, create a transaction with an amount of -1000 - Set Account to "Liquidity Transfer" - From a Cash journal, create a transaction with an amount of 999.99 - Set Account to "Liquidity Transfer" - Create a MISC entry: | Account | Debit | Credit | | -------------------- | ----- | ------ | | Liquidity Transfer | 0.00 | 0.01 | | Cash Difference Gain | 0.01 | 0.00 | - Post the entry - From Journal Items list, group by Account, select the 3 lines on "Liquidity Transfer" account and reconcile them - Go back to the Bank journal and try to edit the previous transaction **Issue:** A traceback is raised. **Cause:** In "_compute_full_amount_switch_html" method, the reconciled lines linked the current line are retrieved. A single line is expected and some operations that are only allowed on a singleton are performed. In our case, the reconciliation has been performed manually and there are several reconciled lines ; which violates the singleton condition. **Solution:** The value computed by "_compute_full_amount_switch_html" has no sense if there's more than one reconciled line. Therefore, the computation can be skipped in such a case. opw-6031879 Forward-Port-Of: odoo/enterprise#110857
This update ensures all data files within the Odoo Enterprise system are encoded as UTF-8. Previously, some files used a different encoding, which could lead to display or processing errors. This change improves data integrity and reliability across various Odoo modules.
Original PR description
https://github.com/odoo/odoo/pull/254394
This update fixes a bug that prevented users from removing external members with edit access from spreadsheets after archiving. The fix updates validation logic to correctly handle rule additions and deletions, resolving three related warnings and ensuring proper spreadsheet access. This improves the user experience and data accuracy.
Original PR description
Problem: A bug occurs when an internal user with "Edit" rights to a spreadsheet is archived. Upon archiving, the user transitions to an external user, a state where "Edit" rights are strictly…
Problem: A bug occurs when an internal user with "Edit" rights to a spreadsheet is archived. Upon archiving, the user transitions to an external user, a state where "Edit" rights are strictly prohibited. However, due to a validation error in the access rights wizard, users were unable to fix this. Cause: The validation logic in `documents_sharing.py` performed checks after any action was taken. If an illegal configuration was detected, it set a flag to hide the Save button. Because the check did not distinguish between adding an illegal rule and deleting one, users were blocked from removing the very records causing the validation failure. Solution: The validation checks have been updated to account for the operation- type (addition or deletion). This ensures that while new illegal rules are still blocked, existing illegal rules can be successfully removed to restore the system to a valid state. A test was also added to prevent this problem form happening in the future. This PR applies uses the solution to fix the state of 3 warnings, ensuring they are only displayed when actually relevant. Specifically, it covers: - The warning triggered when removing external users with edit access in `documents_spreadsheets`. - The `has_warning_no_access` warning in documents. - The `has_warning_link_with_more_rights` warning. task-5902391 Forward-Port-Of: odoo/enterprise#110668 Forward-Port-Of: odoo/enterprise#108140
This update resolves an issue where users were unable to correctly set start and end dates simultaneously within the Web Studio interface. The fix prevents the system from accepting both date fields being populated at the same time, ensuring data integrity and preventing invalid date range fields. This improves the overall usability of Web Studio for creating and managing date-based records.
Original PR description
Steps to reproduce ================== - Install project,web_studio - Click on the three dots in the top right of a project - Click on settings - Open studio - Add a new date field - Set the start date field to Start date - Set the end date field to Expiration Date - Exit studio => The date range field is marked as invalid (red outline) Cause of the issue ================== https://github.com/odoo/odoo/blob/ee15163fe516817da277760752892ea76a699e22/addons/web/static/src/views/fields/datetime/datetime_field.js#L371-L373 We cannot set both the start and end field at the same time. opw-5403670 Forward-Port-Of: odoo/enterprise#110580 Forward-Port-Of: odoo/enterprise#108562
This update resolves an issue where timesheet descriptions were being duplicated when updating values in the grid view. The fix ensures that new timesheet lines created from updated values retain the original description, maintaining data accuracy and consistency for project tracking. This improves the reliability of timesheet reporting.
Original PR description
To reproduce: ============= - on timesheet group by Project > Task > Description - on a line with a description, update a 0:00 cell to an other value - refresh or change view to list and back to grid - a new line with description '/' is created with the updated value Problem: ======== when creating the new timesheet it's by default given the name '/' which for the grid view is not in same group as the original line with the description. Solution: ========= when creating the new timesheet, we give it the same description as the original line. opw-5909249 Forward-Port-Of: odoo/enterprise#110800 Forward-Port-Of: odoo/enterprise#108894
This update resolves an issue where website content wasn't loading correctly due to a recent framework change. The fix ensures that website content is retrieved accurately, improving the user experience and functionality of the website. This change is a technical update to ensure proper operation.
Original PR description
Since a change in the framework to lazy load attachments content, raw is a LocalBinaryfile object rather than the content of the attachment. Instead we need to do .content to fetch the actual content.
This update fixes a display issue with XML invoices received through Peppol. Previously, the preview page showed unnecessary raw HTML content. Now, thumbnails are correctly generated for these invoices, providing a cleaner and more user-friendly preview experience. This ensures users can easily access and view their invoices.
Original PR description
Before this commit: - The preview page of XML invoices received via Peppol was split into two parts: one showing the PDF preview, and another showing the plain HTML of the PDF viewer page - Thumbnail were not generated for these XML invoices After the commit: - The second part of the preview (Text part) was removed. As the users won't be interested to see the raw XML content of the invoice, neither the plain HTML of the pdf preview page. - Thumbnails now are correctly generated for the XML invoices. Notes: This fix is part of the bug-fix task to ensure users can correctly open XML invoices received via Peppol. task-5246989 --- I confirm I have signed the CLA and read the PR guidelines at [www.odoo.com/submit-pr](http://www.odoo.com/submit-pr) Forward-Port-Of: odoo/enterprise#110481 Forward-Port-Of: odoo/enterprise#100137
This update corrects a reporting issue with NACHA payment files by prioritizing the actual bank account holder's name over the customer's name in Odoo. Using the correct account holder name ensures accurate reporting and compliance with NACHA standards. This change improves the reliability of payment processing.
Original PR description
The NACHA entry detail was using the partner's name (res.partner.name) for the Individual Name field. This should instead prioritize the Account Holder Name (acc_holder_name) from the bank account, as this reflects the actual name on the bank account which may differ from the partner's name in Odoo. The code now uses bank.acc_holder_name if set, and falls back to payment.partner_id.name if not set. Forward-Port-Of: odoo/enterprise#108804 Forward-Port-Of: odoo/enterprise#105582
This update resolves an error that occurred when importing website configurations. The issue stemmed from an attempt to use a field defined in a separate module when that module wasn't installed. The fix ensures the necessary module is only loaded if required, preventing the error and allowing users to successfully import their websites.
Original PR description
This error occurs when attempting to import a website from the Website settings. Steps to reproduce: - Install `website` module - Website > Configurations > Settings > `Import Website` - `Website…
This error occurs when attempting to import a website from the Website settings. Steps to reproduce: - Install `website` module - Website > Configurations > Settings > `Import Website` - `Website URL`(eg: `https://iap-scraper.odoo.com/`) > `Import my website` Traceback: `ValueError: Invalid field 'ecommerce_platform' in 'website_generator.request'` The `ecommerce_platform` field is defined in the `website_generator_sale` module. However, when this module is not installed, we still add this field in vals/[data] from the `website_generator` module. Because of this, when importing a website, the `import_website` method is called and a `website_generator.request` [record] is created. Since the `website_generator_sale` module is not installed, the `ecommerce_platform` field does not exist on the `website_generator.request` model, which results in an error. Solution: We only install the `website_generator_sale` module if the `ecommerce_platform` and `import_products` fields is present in `kwargs`. [data]: https://github.com/odoo/enterprise/blob/288c7d9c1f29746e0abe0338801621c033a2280c/website_generator/static/src/client_actions/import_form/import_form.js#L228 [record]: https://github.com/odoo/enterprise/blob/288c7d9c1f29746e0abe0338801621c033a2280c/website_generator/models/website.py#L33 sentry-7324538798 Forward-Port-Of: odoo/enterprise#110286
This update resolves an issue where the batch view in the Enterprise module incorrectly displayed multiple 'Validate' buttons. The fix ensures that only one 'Validate' button is visible, streamlining the quality check process for users. This improves usability and prevents confusion.
Original PR description
Steps to reproduce: - Create two storable products: “P1” and “P2” - Create two pickings, one with P1 and another with P2 - Create a quality check for P1 - From the picking list view: - Select both pickings and create a batch - Open the batch Problem: Two “Validate” buttons are displayed instead of one. The inherited view was overriding the original `invisible` attributes of the two existing `action_done` buttons and also adding an extra `action_done` button. Because the original visibility logic was replaced (instead of extended), the conditions were no longer mutually exclusive, causing multiple Validate buttons to be visible at the same time. Solution: - Remove the extra `action_done` button added in the inherited view - Extend the existing `invisible` conditions using `separator=" or "` so the original logic is preserved and the buttons remain mutually exclusive opw-5508871 Forward-Port-Of: odoo/enterprise#109911 Forward-Port-Of: odoo/enterprise#107993
This update resolves an issue where default theme colors were unintentionally affecting the Odoo Report Editor's styling. The change restricts the report editor from using these theme colors, ensuring consistent report design. This improves the stability and predictability of report creation within Studio.
Original PR description
Before this commit, there was no way to tell the ColorPicker to not use the DEFAULT_THEME_COLOR_VARS (ie classes of the form o-color-[n] with n some integer) Those colors are a bit special (see full…
Before this commit, there was no way to tell the ColorPicker to not use the DEFAULT_THEME_COLOR_VARS (ie classes of the form o-color-[n] with n some integer)
Those colors are a bit special (see full discussion on the opw)
Their existence is described in module web
Their CSS definition is implemented in module html_editor
Reports don't use them at all We probably don't want reports' style to be influenced by the presence or lack thereof of the html_editor module, which was originally made to customize the interface.
Those architecture issues should be solved downstream in master, but they are practically endemic in Odoo.
This commit addresses the fact that Studio's report editor should not allow those colors as possible customization by offering the components and plugins in the chain a props to disable them.
After this commit (and more broadly the PR bundle), the default theme colors are not available in studio's report editor.
see odoo/odoo#251446
opw-5892573
Forward-Port-Of: odoo/enterprise#110594
Forward-Port-Of: odoo/enterprise#109206Previously, email attachments in documents were displayed as raw base64 strings instead of their actual HTML content. This change fixes a technical issue where an update to the Odoo system incorrectly encoded email data. Now, email attachments will be correctly rendered as HTML, improving the user experience when viewing email documents.
Original PR description
When opening an email document from the kanban view or the attachment viewer, the content is currently displayed as a raw base64 string rather than the actual HTML text. This happens because an ORM update standardized the `read` method to always return binary fields (including `raw`) as base64-encoded strings to prevent RPC serialization crashes. Because the frontend was still expecting raw HTML text directly from the RPC response, it failed to render the emails correctly. This change was introduced in odoo/odoo@a6de2a5f This commit updates the kanban record and attachment models to explicitly decode the base64 payload back into a UTF-8 string upon fetching, restoring the correct display of email contents. Task-6012504 Forward-Port-Of: odoo/enterprise#110322
This update corrects a minor issue where the 'Discard' label was automatically added to a button within the document auto-form modal. This change ensures a cleaner and more professional user experience for users working with document management features. The fix prevents a confusing label from appearing.
Original PR description
Purpose ======= The default label "Discard" is now automatically added on button with `special="cancel"`. For the auto-form modal in document we don't want that label, and so we force the string to be empty. Task-6004879 Forward-Port-Of: odoo/enterprise#110624
This update ensures that a critical field within the timesheet timer form is now always required. This change improves data accuracy and prevents errors when recording timesheet hours, leading to more reliable reporting.
Original PR description
`this` is now mandatory Forward-Port-Of: odoo/enterprise#111125
Features or functions removed from Odoo
This update removes outdated and unused code within the l10n_pe_edi_pos module, addressing a dependency issue with an older version of the ‘account_edi’ form. This cleanup improves the stability and maintainability of the Odoo Enterprise system.
Original PR description
In this commit: - error due to dead code : http://pastebin.com/q65h1fME - Form 19.2v 'account_edi' is not in the dependencies, so we have to remove that dead code. - Here is the task which remove that dependencies : https://www.odoo.com/odoo/project/967/tasks/5164609 Forward-Port-Of: odoo/enterprise#109674
This update streamlines the Indian payroll system by removing duplicate salary structures for workers and non-executives. These structures were previously redundant, as their rules are now integrated into the main India: Employee Pay structure. This simplifies payroll management and reduces potential errors.
Original PR description
This PR removes the India: Worker and India: Non-Executives salary structures, as most of the rules defined in these structures are already present in the India: Employee Pay salary structure. These structures are therefore duplicated and redundant. task-5895174
Code cleanup and technical improvements
This update replaces `useEffect` with `useLayoutEffect` in several Odoo modules. This change enhances performance and stability by ensuring UI updates are applied before the browser paints the screen, leading to a smoother user experience. It's part of the ongoing migration to Owl3.
Original PR description
WIP community: https://github.com/odoo/odoo/pull/246838
Miscellaneous changes
This pull request updates the translations for various Odoo modules to align with the saas-19.2 release. These updates ensure that the Odoo Enterprise platform is localized correctly for users around the world, improving the user experience for international customers. The changes cover multiple languages and modules.
Original PR description
Forward-Port-Of: odoo/enterprise#108146