Wednesday, March 18, 2026
21 changes · 19.0
Enhancements to existing features
The HTML editor’s table picker now uses a background color that displays correctly in both light and dark mode. This makes the table selection interface easier to read and more visually consistent for users.
Original PR description
Currently in dark mode, we don't display the right bg color for (non active) cells in table picker. This PR uses the right variable for the bg color of non active cell that is more suitable for both light and dark mode. task-6009282 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update adapts the French accounting reports to a new way of receiving data from the system. Instead of downloading large files, the system now streams the data, improving efficiency and reducing download times. This change ensures continued accurate reporting for French businesses using Odoo Enterprise.
Original PR description
This commit aims to adapt the usage of 'account.fr.fec' to the changes made in community. In particular `fec_data` field is not used any more. and we use `_get_fec_stream` to stream the content of the file. task-5404142 Forward-Port-Of: odoo/enterprise#106920 Forward-Port-Of: odoo/enterprise#102783
Resolved issues and error corrections
Replacing an image with another type of media in the HTML editor now removes the old image caption automatically. This prevents an error that could interrupt users when they click outside the editor after changing media.
Original PR description
**Current behavior before PR:** Steps to reproduce: - Add a caption on an image - Click on image - Replace image by an icon using replace option from Toolbar - Putting cursor on caption input and clicking anywhere outside editable leads to traceback. This happens because after replacing image with an icon, caption is still there but there is no image inside caption. As result, in `cleanForSave` accessing image leads to traceback. **Desired behavior after PR is merged:** Now, if image is replaced by any other media than image, caption is removed. task-5950977 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#249452
Code cleanup and technical improvements
The website cookie banner was reorganized so the cookie policy link can be handled separately from the rest of the banner startup process. This is an internal cleanup that makes future customizations easier and reduces the risk of changing unrelated behavior.
Original PR description
Move the cookie policy footer link injection out of `start()` into a dedicated `insertCookiePolicyLink()` method. This makes patching simpler for cases where the link should not be added, without having to override the whole `start()` flow.
Documentation and clarification updates
Henry Backman has been added to Camptocamp's corporate contributor agreement records. This confirms contribution eligibility under Odoo's legal contribution process and has no impact on product functionality.
Original PR description
Please add me as a member of the Camptocamp organization. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#254367
Fixed an issue where phone numbers entered during self-order takeaway checkout were not saved with the order. This ensures restaurant staff can see complete customer contact details in the backend for follow-up or pickup coordination.
Original PR description
Currently, when using the takeaway preset, the phone information filled in is not registered on the order. Steps to reproduce: ------------------- * Change restaurant setting to enable self order * Open mobile menu (make sure session is opened prior) * Select takeout preset * Place an order * Fill in all information, time, name, email & phone * Validate order * Go to the orders in the backend > Observe that the contact info does not register the phone (mobile) Why the fix: ------------ Nothing was done with the phone information so we now register it on the order. opw-6014340
The Activities kanban view no longer offers a quick-create path that could open a form users could not complete successfully. This prevents confusing access errors when creating personal activities from grouped activity columns.
Original PR description
**Steps to reproduce:** - Go to View all activities - Switch to kanban view - Group by Activity Type to show the quick_create button - Try to create a new activity in one of the column - First call…
**Steps to reproduce:** - Go to View all activities - Switch to kanban view - Group by Activity Type to show the quick_create button - Try to create a new activity in one of the column - First call to name_create will fail (no user_id as it's not required) `The operation cannot be completed: Activities must be assigned if not attached to a document.` - On failure it opens the activity creation form - Change the user to someone else - Doing so will raise an access error **Issue:** Form allows the user to be modified but is restricted to personal activities as we can't add the related target model. Different forms are used between the `New` button and the quick_create logic (`mail.activity` vs `mail.activity.schedule`). **Fix:** Restrict the form creation to the current user to avoid access error. Could also: - Allow setting a related model on the `mail.activity` form, using something like `widget="activity_model_selector"` to match `mail.activity.schedule` flow - Overwrite the quick create on the activities to use the same flow as the scheduler - Remove the quick create in this case similar issue: https://github.com/odoo/odoo/commit/24919c7288cc2aed1c5ba92ea21ec1e805b3954f personal activities: https://github.com/odoo/odoo/commit/165b060473be8a5d33d62d311f0dc55ed6332d69 opw-5939969
This change makes an internal accounting test more reliable by avoiding account selections that require a specific secondary currency. It helps prevent false test failures across different accounting configurations without changing business behavior for users.
Original PR description
Description of the issue this commit addresses: test_transfer_wizard setUpClass selected generic non-reconcile accounts. In some charts one account enforces a secondary currency causing move_1.action_post() to fail with a UserError. --- Desired behavior after this commit is merged: This commit filters accounts to those without forced account currency so setup moves always post without changing tested business flows. --- runbot-241090 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Editing an existing chat message no longer shows the sender as “typing” to other participants. This avoids confusion, since typing indicators should signal that a new message is being written, while edits are already marked with an “edited” label.
Original PR description
Before this commit, when editing a message, this was triggering the "is typing" on this member. This "is typing" was only stopped after the long timeout of 1 min. Typing indicator is meant to expect other others to receive a new message, so this is misleading to show the "is typing" when editing the message. Usually editing message is to fix small typo in a very short time, so it's quite expected for other people to see the new changes without requiring UI indicator other than the "(edited)" label on message textual content. This commit fixes the issue by not notifying is typing on composer of message edition. Task-6045905
This update fixes a spelling mistake in a help message for country states, changing "Departement" to the correct wording. It improves the clarity and professionalism of the user interface with no functional impact.
Original PR description
Fixes #202198 Split from #249963 per reviewer feedback. **CLA sign-off:** Individual CLA signed (doc/cla/individual/vedantmadane.md) Forward-Port-Of: odoo/odoo#253224
The Mexican localization now avoids showing the CLABE bank account field twice when creating or editing a customer's bank details. This reduces confusion for users entering bank information and keeps the form cleaner without changing the underlying data.
Original PR description
Currently, the CLABE field appears twice in the bank account form for mexican companies. **Steps to reproduce:** - Install the `l10n_mx` module and switch to the `ESCUELA KEMPER URGATE` company. - Go…
Currently, the CLABE field appears twice in the bank account form for mexican companies. **Steps to reproduce:** - Install the `l10n_mx` module and switch to the `ESCUELA KEMPER URGATE` company. - Go to Invoicing > Customers > Customers and open any company partner. - Open the `Invoicing` tab. - For `Banks`, enter any number and click `Create and edit...`. **Observation:** The `CLABE` field is displayed twice in the bank account form. **Root Cause:** In previous versions, Banks were displayed as `lines` in the contact form. However, starting from `saas-18.2`, Banks are displayed as a `regular field with an internal link` that opens the bank form view. After commit [1], the view at [2] indirectly inherits from `base.view_partner_bank_form`, while the view at [3] directly inherits from the same base view. Both views add the field `l10n_mx_edi_clabe`, resulting in the `CLABE` field being displayed twice for Mexican companies. **Fix:** Since removing an XML view is not considered a stable solution, in the stable versions, so we make this field invisible. In the master, removes the redundant inherited view [2]. [1]: https://github.com/odoo/odoo/pull/187357/commits/05575b10d90cedb1ca9910aaa9f1293c3fafdd26 [2]: https://github.com/odoo/odoo/blob/6c0baa2a976eace1f414731d66674243e90664f2/addons/l10n_mx/views/partner_view.xml#L1-L13 [3]: https://github.com/odoo/odoo/blob/6c0baa2a976eace1f414731d66674243e90664f2/addons/l10n_mx/views/res_bank_view.xml#L15-L25 opw-6014799 Forward-Port-Of: odoo/odoo#252963
The partner autocomplete feature now recognizes valid Indian GSTIN tax IDs for non-resident taxpayers that were previously rejected. This helps users create or update company records more smoothly and ensures autocomplete can trigger for legitimate tax identifiers.
Original PR description
Currently, certain `valid GSTINs` for Non-Resident taxpayers are not recognized by the partner `autocomplete` feature. **Steps to reproduce:** - Install the `l10n_in` and `partner_autocomplete`…
Currently, certain `valid GSTINs` for Non-Resident taxpayers are not recognized by the partner `autocomplete` feature. **Steps to reproduce:** - Install the `l10n_in` and `partner_autocomplete` modules. - Navigate to Settings > Users & Companies > Companies. - Click `New` and set `Tax ID` to `9922JPN29001OSU`. - Wait for 5–10 seconds. **Observation:** The partner autocomplete does not trigger, although it is valid and verifiable on the official GST portal: https://services.gst.gov.in/services/searchtp **Root Cause:** The issue was already fixed in core validation by PR [1], but the GSTIN validation logic used in partner autocomplete was not updated. At [2], the GSTIN validation regex for NRI taxpayers only supports formats ending with `NRX` (X = any alphanumeric character). However, certain valid GSTINs follow a revised structure and therefore are not matched by the existing regex. **Fix**: This commit ensures that valid NRI GSTIN formats are accepted during validation by applying a fix similar to [1] to the partner autocomplete GSTIN validation at [2]. Related IAP PR: https://github.com/odoo/iap-apps/pull/1491 [1]: https://github.com/odoo/odoo/pull/251760 [2]: https://github.com/odoo/odoo/blob/3016c08a7aa8701ec9b0092b5aafc282b16dd9f3/addons/partner_autocomplete/static/src/js/partner_autocomplete_core.js#L36-L52 Forward-Port-Of: odoo/odoo#253799
Belgian tax records now use the correct exemption codes and reasons. This helps ensure tax reporting and invoice documentation reflect the proper legal basis for exemptions.
Original PR description
Some taxes had a wrong tax exemption code and tax exemption reason. This commit corrects them. task-4976471 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves an issue where users were receiving an error message when exporting payroll data to SDWorx for freelance employees. The fix ensures that the system correctly skips the SDWorx code validation step for freelancers, streamlining the export process and preventing unnecessary errors.
Original PR description
Steps to reproduce: ------------------------------- 1. Install `l10n_be_hr_payroll_sd_worx` module 2. Switch the active company to a Belgian company 3. Go to Employees and create a new employee. Set the Employee Type to Freelancer from HR Settings page. 4. Navigate to Payroll > Reporting > Export Work Entries to SDWorx Observation: ------------------------------- A user error is raised stating: ``` There is no SDWorx code defined for the following employees ``` Issue: ------------------------------- The filter checking for missing SDWorx codes did not exclude employees with the Freelance employee type. SDWorx code does not passed to the freelancers Solution: ------------------------------- Add a condition to the employee filter to exclude freelance employees from the SDWorx code validation. opw-5387342 Forward-Port-Of: odoo/enterprise#102211
This update corrects a problem where employee documents were being accessed using the wrong website domain, leading to incorrect URLs. The fix ensures documents are accessed using the correct, system-defined base URL, improving document access reliability.
Original PR description
Steps to reproduce: --------------------------------- 1. Install `documents_hr` and `website_documents` modules 2. Go to website > configuration > websites 3. In My Website set any arbitary domain…
Steps to reproduce: --------------------------------- 1. Install `documents_hr` and `website_documents` modules 2. Go to website > configuration > websites 3. In My Website set any arbitary domain (e.g. https://test.com) 4. Open any employee record 5. Click on Documents smart button Observation: --------------------------------- It will try to open employee's documents with the website's domain, e.g. `https://test.com/odoo/documents/xyz` Issue: --------------------------------- After the following commit: https://github.com/odoo/enterprise/pull/92774/changes/46c43c14fb2a0fb7b693ede53cc84dbf8bdc9bcb the smart button redirects to the document folder via an access token. The `access_url` is computed using `get_base_url()`, which is overridden by the website module to return the website domain instead of the system base URL. https://github.com/odoo/odoo/blob/f6cf0d067e5f30e2b22ea513071cd7c5e3d9f44c/addons/website/models/ir_model.py#L10-L36 Solution: --------------------------------- Added a context-based check to `get_base_url()`. When the context key `use_config_parameter_domain` is set, and the record has a `website_id` field, the system base URL from the configuration parameters is used instead of the website domain. This allows any model to explicitly rely on the configured base URL when required NOTE: No module installs `hr`, `documents` and `website`, so test case is not possible without bridge module of all three Related Community PR: https://github.com/odoo/odoo/pull/247920 opw-5471683
This update corrects a display issue in the employee profile where the 'Relationship' field was incorrectly shown to employees outside of India. The fix ensures this field is only visible for employees associated with Indian companies, aligning with localization requirements. This change improves the user experience for all employees.
Original PR description
### Steps to reproduce: - Install l10n_in_hr_payroll. - Create an employee (also link a user) in an Indian company and another company. - Go to My Profile > Private Information > Emergency. - The Relationship field is shown for non-Indian employees as well as employees from other countries. ### Issue: - We're not hiding the relationship field if employee is from other country. ### Fix: - We'll hide this field if an employee belongs to non-indian company. Task: 6008888 Forward-Port-Of: odoo/enterprise#109775
This update fixes an issue where the report editor in Web Studio wouldn't automatically focus after deleting rows or columns. The change prevents a test failure caused by browser behavior, ensuring the editor is immediately ready for use when a user clicks on it. This improves the user experience and efficiency within the report design process.
Original PR description
PR [1] ensures that editable is focused after deleting row or column from table menu by preventing default while clicking on table menu button. This change causes test [2] to fail if a table menu test runs beforehand, due to browser’s native focus behavior. This commit ensures that editable is focused whenever clicking on t-field. [1]: https://github.com/odoo/odoo/pull/249256 [2]: https://github.com/odoo/enterprise/blob/19.0/web_studio/static/tests/client_action/report_editor/report_editor_dom_edition.test.js#L456-L478 Community PR: https://github.com/odoo/odoo/pull/249256 task-5725593
This update resolves a technical issue within Odoo's Studio feature where actions incorrectly linked views to inherited ones. Previously, this caused errors when creating new studio designs. Now, the system correctly identifies and uses inherited views, ensuring stable design creation and eliminating the error.
Original PR description
This commit is a followup to odoo/enterprise#94747 which was made incomplete by odoo/enterprise@52f27c4. Sometimes actions set one of their view to an inherited view rather than the primary. This created traceback because the to-be-created studio arch was normalized against the inheritance tree without the given inherited view, which is wrong. After this commit, there is no crash. opw-5955734
This update fixes a usability issue on mobile devices where a key button was hidden within a dropdown, requiring scrolling to access. The change ensures the loan record creation process is smoother and more intuitive on smaller screens, allowing users to easily complete the process.
Original PR description
Forward-Port-Of: odoo/enterprise#110552 Forward-Port-Of: odoo/enterprise#110120
This update adds Edilianny Sánchez to Vauxoo's corporate contributor agreement records. It helps ensure contributions are properly covered by the required legal documentation before inclusion in Odoo.
Original PR description
Incorporate Edilianny Sánchez (edy1192) as Vauxoo's contributor. I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#252369
The company contributor agreement for Therp has been refreshed to reflect current employees. This keeps the legal contributor records accurate and aligned with the people currently covered by the agreement.
Original PR description
Description of the issue/feature this PR addresses: It makes our company CLA up to date with the reality Current behavior before PR: Our company CLA had some old employees in it, and didn't have some new ones Desired behavior after PR is merged: Our company CLA is up to date. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#230333