Daily updates from Odoo
Friday, July 18, 2025
56 changes
35 changes
Resolved issues and error corrections
This fix adds the missing database lookup support needed when opening related invoice records for Indian withholding flows. It helps avoid slow searches on large accounting datasets, improving performance without changing user-facing features.
Original PR description
FK columns in large tables like `account.move` need to be indexed if an opposite one-to-many relationship is defined, otherwise reading that o2m requires a full Seq Scan of the table. Introduced via #183335 Forward-Port-Of: odoo/odoo#218517 Forward-Port-Of: odoo/odoo#218497
The CRM Lost filter now correctly includes records that were archived when marked as lost. This helps sales teams review lost opportunities and activity reporting without missing important historical records.
Original PR description
#### Issue: The `Lost` filter does not reveal any records, as any records moved to the lost status are archived. #### Solution: Override default context that hides archived records when using the filter. opw-4937003 Forward-Port-Of: odoo/odoo#219524
Importing Italian electronic invoices now handles zero-price lines with a zero discount or surcharge without causing an error. This prevents affected vendor bills or invoices from being blocked during import, improving reliability for Italian localization users.
Original PR description
Error "division by zero" raised when importing a XML invoice with `price_unit == 0` and `ScontoMaggiorazione == 0` introduced by #206238 Forward-Port-Of: odoo/odoo#217670
One-day employee leaves now create timesheet entries using the average daily hours, aligning them with leave calculations. This prevents flexible schedules from causing incorrect timesheet amounts for single-day absences.
Original PR description
After https://github.com/odoo/odoo/pull/209570 , the way work intervals are computed might not reflect real working time for flexible employees, since the virtual schedule is based on a weekly span. In this PR we chose to allocate a timesheet for single day leaves corresponding to average hours per day to be consistent with hr_holidays calculation. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#219230 Forward-Port-Of: odoo/odoo#218353
Theme preset colors in the website builder now apply the full styling marker needed for consistent color combinations. This prevents selected presets from appearing incomplete and ensures the styling is also cleaned up when a color is removed.
Original PR description
In the `html_builder`-based website builder, when a theme preset is selected, the `o_cc1~5` class is applied, but the `o_cc` (without number) class is not added. This commit adds the `o_cc` class when applying a theme preset, and removes it when the color is removed. task-4367641
This update increases the allowed time for a website test that checks a full page flow with several embedded frames. It helps prevent false test failures in some Odoo editions, improving release validation reliability without changing customer-facing features.
Original PR description
## Version 18.0+ ## Issue Task 4141409 introduced long tests to simulate complete flow. As this test relies on many iframe checks and these iframes being slow to load, the test time limit is reached. The test fails on Single App and Community but not with Enterprise might be related to performances linked to modules interactions. runbot-223225 Forward-Port-Of: odoo/odoo#214870
The “Seen by” popup in Mail no longer shows a date that could be mistaken for when someone actually read a specific message. This avoids confusion caused by showing a general channel activity date instead of a true per-message seen time.
Original PR description
Before this commit, the “Seen by” tooltip displayed each member’s channel-level `last_seen_dt`, which for older messages could misleadingly be interpreted as “seen today” even if the user hadn’t actually viewed it recently. Furthermore `last_seen_dt` isn’t kept up to date client-side (and only gets fetched on reload), thus causing more confusion. This commit removes the date from the “Seen by” popup. Tracking a true per-message “seen at” timestamp for every user would require significantly more complex modeling and will be revisited later if necessary. task-4630168 Forward-Port-Of: odoo/odoo#219441 Forward-Port-Of: odoo/odoo#211490
Tables marked as non-editable no longer show editing controls in the website editor. This prevents accidental changes to important checkout totals and keeps protected page content consistent.
Original PR description
Before this commit tables that should not be editable were instead editable by using the table_menu overlay Steps to reproduce - go to shop - add any item to cart - go to checkout - open editor => the checkout total table is editable using the table_menu overlay when it shouldn't After this commit uneditable tables do not display the table_menu overlay
This fixes an issue where editing all text inside certain website navigation bar buttons could accidentally remove the button. Navbar buttons now behave like regular buttons in the website editor, making menu button text changes safer and more predictable.
Original PR description
reproduction: 1. Go to website, and edit the website 2. In the navigation bar, the `contact us` button cannot be fully edited, e.g. when editing the text inside the button, when delete all the text…
reproduction: 1. Go to website, and edit the website 2. In the navigation bar, the `contact us` button cannot be fully edited, e.g. when editing the text inside the button, when delete all the text and then add new text, the button is removed **Before this commit:** Buttons in the navbar without the `nav-link` class were excluded from the `feff` padding. In saas-18.3, even without introducing the new website builder or using the html editor, the issue is still there. This suggests that the old `zwnbsp` padding mechanism also excluded these buttons in the navbar. However, since editing a button in the navbar follows the same flow as editing one in the main editing area, these buttons should be properly padded like normal buttons. **After this commit:** Buttons in the navbar without the `nav-link` class are now padded like normal buttons in the main editing area, to make sure the text inside the button can be fully edited. task-4898446 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Users can now return to the expense list after opening an expense from dashboard filters such as “To Submit.” This fixes a navigation issue that left users stuck on a record view and improves day-to-day expense review workflows.
Original PR description
**Steps to reproduce:**
- Install the `hr_expense` module.
- Go to the Expense menu and click on "To Submit" in the My Expense dashboard.
- Open any record from the list view.
**Observation:**
- You can't go back to the list view after opening a record.
**Cause:**
- A tag `menu` was added to the action to hide breadcrumbs, but it removed all breadcrumb navigation, unable to go back.
https://github.com/odoo/odoo/blob/92993d7790bb641e5822a5358db35c7fcc7bd091/addons/hr_expense/static/src/components/expense_dashboard.js#L44
**Solution:**
- Used a better way by passing `{ clearBreadcrumbs: true }` to stop the breadcrumb from changing when a filter is applied.
opw-4790643
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#218397
Forward-Port-Of: odoo/odoo#217492This change increases the allowed run time for the web unit test suite so normal test runs are less likely to fail just because they take slightly longer. It helps reduce false failures in development checks and supports smoother maintenance without changing customer-facing behavior.
Original PR description
The suite usualy lasts around ~~33~~ 38 minutes. The timeout of ~~35~~ 40 minutes seems too close and thus fails too often.
This update makes an internal mail suggestion tool available for custom extensions. It helps partners and developers apply custom mail behavior more cleanly without changing core code.
Original PR description
Useful for custom patches. Forward-Port-Of: odoo/odoo#219470
Users can now enter decimal values in website shadow settings without triggering an error. This prevents editing interruptions when fine-tuning visual styling such as header shadows.
Original PR description
**Problem** Before this commit, if the user entered a decimal value in any of the shadow settings, a traceback popped up. This was due to a regex not supporting decimal values. **How to reproduce** 1. In edit mode 2. Click on header 3. Enter a decimal value (e.g. "1.1") in any of the shadow settings (e.g. "blur") 4. Press enter 5. Problem: traceback when clicking on the header, even after saving and reloading **Solution** This commit fixes the regex in `parseBoxShadow` such that it correctly matches decimal values. task-4367641
This update polishes several website builder controls so they are easier to scan and use. Product page option headings now align consistently, accordion actions are more prominent, border style choices have more room, and undo/redo icons behave correctly for right-to-left languages.
Original PR description
**[FIX] website_sale, html_builder: fix alignment of options title** Steps to reproduce: - Go to /shop and click on a product - Edit the page => "Product Images" and "Product Details" don't have any left margin, they are not aligned with the rest of the options. task-4879833 **[FIX] website: set accordion Add New option to primary** task-4879833 **[FIX] html_builder: set more space on border style select** task-4879833 **[FIX] html_builder: reverse undo/redo icons in RTL languages** Undo and redo icons should be reversed in RTL languages. Culturally, like in LTR languages, the "forward" icon should go in the direction of reading, while the "reward" icon should go in the opposite direction. task-4879833
This fixes how the HTML editor identifies content that should be excluded from its history tracking. It helps prevent incorrect undo or history behavior in edited website content after recent website changes.
Original PR description
`data-skip-history-hack` was introduced during initial website refactor, the selector to detect the nodes under that attribute was incorrect. Website refactor: 9fe45e2b7ddbbfd0445ffe25a859e67a316d02b2 task-4367641
Internal users who have a passkey can now complete portal identity checks without being blocked by an unsupported verification method. This keeps portal access working reliably while passkey support for portal users is still being prepared.
Original PR description
When an internal user has a passkey and attempts to pass the portal identitycheck, then the identitycheck's auth_method is set to webauthn which breaks the flow since portal's identitycheck only supports passwords. This scenario is unlikely to occur but it does break the internal users' portal. This is a temporary solution because once I implement passkeys for portal users, I will allow portal users to use webauthn to verify their identity. Forward-Port-Of: odoo/odoo#219162 Forward-Port-Of: odoo/odoo#218427
The website theme editor now reads saved measurement units correctly when showing number fields. This prevents misleading values, such as a 1px border appearing as 16px, helping users adjust button styling accurately.
Original PR description
When a value is converted to the used display unit, the builder number input only relies on the configured `saveUnit`. This is wrong when the existing value is not stored using that unit. This commit uses the actual saved unit when converting saved values to the display unit. Steps to reproduce: - Go to Theme/Buttons - Select "Outline" as "Primary Style" => "Border Width" indicates 16px while it is actually 1px, because it is interpreted as 1rem. task-4367641
This fix ensures the website/page builder no longer replaces other active style settings when updating its own design variables. It reduces the risk of visual conflicts with other Odoo features, customizations, or browser extensions.
Original PR description
Commit [1] used the `adoptedStyleSheets` property, but overrides it every time `setBuilderCSSVariables` is called. This means the document can never have more than one adopted stylesheet, and it will override stylesheets adopted either on other parts of the code (Odoo codebase, custom code) or from outside (browser extensions). By pushing it once and updating the same stylesheet on subsequent calls, we avoid potential clashes. [1]: https://github.com/odoo/odoo/commit/4cf0b7c51dadd05433c4d77222b65aafad39269b
Fixes an issue in the website editor where previewing a Form snippet success message could crash and leave the preview button out of sync. This makes it easier for website editors to check form confirmation messages before publishing.
Original PR description
This commit fixes the `toggleEndMessage` option, showing/hiding the success message preview. Steps to reproduce: - Drop a "Form" snippet and click on it. - Set its "On Success" option to "Show…
This commit fixes the `toggleEndMessage` option, showing/hiding the success message preview. Steps to reproduce: - Drop a "Form" snippet and click on it. - Set its "On Success" option to "Show Message". - Click on the eye button to show the message preview. => Traceback This happens because the `builderOptions` dependency was missing in the `ToggleEndMessageAction` class. Once that fixed, another issue was revealed: - Click on the eye. => The button state does not match the fact that the preview is now toggled. This happens because the added preview class is a system class, meaning that the mutations containing it are ignored. This caused the button action to not add a step in the history (since there is no mutation), preventing the `DOM_UPDATED` event to be triggered, which is the one triggering the update of the widgets. This commit therefore makes this class observed (so not a system class anymore) and cleaned when needed, so in the `clean_for_save_handlers` and `on_cloned_handlers` resources. This class was also renamed to be more relevant. The CSS was also changed to scope this class rules in the "Form" snippet ones, to be applicable only in that snippet. A bit of cleaning was also done. Notably, the `updateContainers` calls to activate the newly added fields were replaced by `setNextTarget`, following what was done in commit [1]. This allows to properly update the containers and to stay consistent on undo/redo. [1]: 203a7af2c2b27c02be7b201f5c707f46caa34573 task-4367641
This fix updates editor and website test automation to use the proper toolbar expansion helper. It reduces intermittent test failures caused by timing delays, helping keep future releases more stable without changing user-facing behavior.
Original PR description
This commit will use the expandToolbar utility in all tests that need to expand the toolbar. Tests that didn't use this utils could fail indeterministically. They fail because the expand is debounced, which means you have to wait longer than a frame animation sometimes. So we opted to use the waitFor. Here's the commit that introduces debounce: https://github.com/odoo/odoo/commit/982fbd75267787c26abf7c6c3c73acaeb6d5bf38#diff-bbe541897d87fdda0566776a1f38db00c056baeb2a5a992bba92ac82816c2d37R320
The website HTML/CSS resource editor now automatically hides when users navigate to another page or start editing or translating content. This prevents an outdated editor panel from staying visible and creating confusion while managing website pages.
Original PR description
In the [html_builder refactoring] functionality that was hiding the resource editor was lost. Before, whenever you had opened the editor and navigated to another page/ started editing/translating, it would hide it. **To reproduce the issue:** 1. Open the website and click on "Site" in the navbar. 2. Select the HTML/CSS editor. 3. Click on Edit/New or navigate to another page (e.g., "Contact Us"). Observe that the resource editor remains visible. [html_builder refactoring]: https://github.com/odoo/odoo/commit/9fe45e2b7ddb Related to task-4367641.
The website builder now clears its saved reload selection when users save or discard changes, so reopening the editor starts in the expected default state. This prevents the header or another previously edited area from being automatically reselected, reducing confusion for website editors.
Original PR description
> [QSM] Cannot find the right steps to systematically reproduce it: sometimes, when I enter edit mode, the header is automatically selected if I clicked on it outside of edit mode first (instead of…
> [QSM] Cannot find the right steps to systematically reproduce it: sometimes, when I enter edit mode, the header is automatically selected if I clicked on it outside of edit mode first (instead of being in the "Add blocks" panel) -> Could you look at the code to see if the issue can be found there? Idea: could it be that some event handlers of the editor are not properly cleaned up when discarding? Steps to reproduce: - Open website builder - Click on the header - Change "Content Width" (or any other option that triggers a reload) - Optionally do other changes anywhere that do not trigger reloads - Click "Discard" (or "Save") to close the builder - Click "Edit" to open it again - Bug: The "Edit" tab is active, and the header selected again With the initial website refactor, keeping the target after a reload was done by saving the target in the state of the component `WebsiteBuilderClientAction`, and using it during setup of editor (which is re-created after a reload). The stored value was not cleared when exiting the builder, so the last one stored got reused on the next normal opening NOTE: In `builderOptions` plugin, this commit move the initialization of containers from the setup of the plugin to the resource `start_edition_handlers`. This is because `updateContainers` requires (in the general case) that the plugins `dragAndDrop` and `setup_editor_plugin` have been setup. (this is not achievable through `dependencies` because `dragAndDrop` already depends on `builderOptions`). This issue was not caught manually because the options concerned with `reloadTarget`: - have `editableOnly: false`, which bypass the check for `o_editable` that is added in the setup of `setup_editor_plugin` - target elements that have `.oe_unmovable`, which bypass the search made by `dragAndDrop` (which needs values from setup) These 2 conditions have no strong reasons to always be true, and were not in the test for simplicity (and because I did not know that constraint) Website refactor: 9fe45e2b7ddbbfd0445ffe25a859e67a316d02b2 task-4367641
This fixes an issue in the website builder where users could delete the footer's scroll-to-top button content and then had no way to restore it. The button can now only be removed through the intended sidebar setting, helping prevent accidental website layout problems.
Original PR description
> [VBAL] Footer: it is possible to manually delete the content of the of "scroll top" button, and there is no functional way to bring it back: https://drive.google.com/file/d/1IaEESlpSkfYRrc4b4wVjV2efS2-CHuGo/view?usp=drive_link. Steps to reproduce: - Open website builder - Click on the footer - Enable "Scroll Top Button" - Click on the button and delete its content - On the link tool that appears, click "Remove Link" - Bug: It is not possible to add it back With the website builder refactor, the removal of this button from within the document was not prevented NOTE: the supported way to remove the button is to disable it from the side bar by toggling "Scroll Top Button" Website refactor: 9fe45e2b7ddbbfd0445ffe25a859e67a316d02b2 task-4367641
Event reminder emails no longer fail when an event track has no scheduled date. The system now uses safe default values for missing date information, helping staff send reminders without unexpected errors.
Original PR description
In saas-18.3, a new mail template…
In saas-18.3, a new mail template [mail_template_data_track_reminder](https://github.com/odoo/odoo/blob/045ebed2c2e4645dd9c36452196f4c72b88d55af/addons/website_event_track/data/mail_template_data.xml#L33) was introduced for the `event.track` model. This template relies on the computed field `is_one_day`, which depends on the `date` and `date_end` fields. If the `date` is not set, evaluating [object.is_one_day](https://github.com/odoo/odoo/blob/045ebed2c2e4645dd9c36452196f4c72b88d55af/addons/website_event_track/data/mail_template_data.xml#L122C1-L123C1) in the template leads to a traceback during rendering. This commit resolves the issue by making the `_compute_is_one_day` method more robust. It now defaults `is_one_day` to False when both `date` and `date_end` are missing. Similarly, the `_compute_track_time_data` method has been updated to handle the absence of these fields, preventing any invalid date computations. The following test cases were added to verify the fix: - When both `date` and `date_end` are missing, `is_one_day` is correctly set to False. - When both fields are missing, all time-related computed fields are set to safe default values without raising errors. Steps to Reproduce: On a saas-18.3 runbot: 1. Create an Event Track record without setting a track date. 2. Try sending the email using the "Add reminder via email" feature. → This results in a traceback due to missing date values. [tbg-2099](https://upgrade.odoo.com/odoo/action-178/2099?debug=1) opw-4910692 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#217872
Accounting report errors shown after migration are now easier to understand. The message identifies the affected report, line, and label, and includes an example so teams can more quickly fix customized reports.
Original PR description
When customer migrate to 18.3, they might reach the cross-report error if they had customizations in a report using a subformula. The error message was very technical and is now improved by at specifying the report name (useful when using sections), line name and the label as well as providing an exemple on what a cross_report expression is. task-4938291 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#218658
The website editor now correctly prevents users from editing the logout button in the account dropdown. This avoids accidental changes to a standard navigation action and keeps the editing experience consistent after the recent website refactor.
Original PR description
During website refactor [1], the CSS snippet that prevents editing the logout button was not migrated to the new asset, making the button editable. This snippet was originally in `website.edit_mode.scss`. Steps to reproduce: - Enter edit mode - Click on username in navbar (e.g. Mitchell Admin) - Dropdown opens - The "Logout" button is editable, which it shouldn't be. [1]: https://github.com/odoo/odoo/commit/9fe45e2b7ddbbfd0445ffe25a859e67a316d02b2
Point of Sale users can now close several sessions at once without running into errors. This helps teams complete end-of-day operations more smoothly when managing multiple registers or sessions.
Original PR description
This commit ensures that multiple sessions can be closed without errors by using each record’s ID within the recordset. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#219308
Automation rules using the Update Record action now safely do nothing when no update path has been configured. This prevents scheduled automation from crashing and helps keep CRM workflows running smoothly even when an action is incomplete.
Original PR description
When executing an automation rule with an "Update Record" action, if no update path is configured, an error occurs. **Steps to reproduce:** 1. Install the **CRM** and **Automation Rules** modules. 2.…
When executing an automation rule with an "Update Record" action, if no update path is configured, an error occurs.
**Steps to reproduce:**
1. Install the **CRM** and **Automation Rules** modules.
2. Create a new **automation rule**:
- Model = Lead, Trigger = After Creation
3. Add an **action**. Type = Update Record (do not configure the update path)
(Tip: select another action type and switch back to reset the path.)
5. Create a new lead.
6. Run the scheduled action: Automation Rules: check and execute.
**Error:**
```
AttributeError: 'bool' object has no attribute 'split'
....
ValueError: AttributeError("'bool' object has no attribute 'split'") while
evaluating 'model._cron_process_time_based_actions()'
```
**Cause:**
In `_traverse_path`, the `update_path` is expected to be a string for `.split()`, but if not configured, it is `False`, leading to the traceback. - [1]
[1] - https://github.com/odoo/odoo/blob/5842c9f4821772fe44cfe7244162edec1ffff88e/odoo/addons/base/models/ir_actions.py#L701
**Fix:**
This commit ensures that no action is performed if the update path is not defined, avoiding the traceback.
sentry-6722927119
Forward-Port-Of: odoo/odoo#217723Fixed an issue where product tags on the online shop page could be duplicated in the page structure when product variants changed. This keeps product pages cleaner and helps avoid display or maintenance issues for tagged products.
Original PR description
Steps: - Open Odoo 18. - Go to Website > Shop. - Open any product with tags. - Inspect the DOM. Issue: - The `.o_product_tags` div was duplicated. - This resulted in a nested `.o_product_tags` block in the DOM. Reason: - The system was inserting the full HTML tags, including its wrapper, causing the nesting. Solution: - Now only the inside content of the tags is updated, not the whole wrapper. - This keeps the structure clean and avoids duplication. Result: Now, there will be no duplication in the `.o_product_tags` block div section. OPW:4863967 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#219001 Forward-Port-Of: odoo/odoo#218320
Fixed an issue in the Gantt view where selecting a custom range with the same start and end date could break the Today button and prevent moving to the next period. This ensures resource booking schedules remain navigable for same-day planning.
Original PR description
Steps to reproduce ================== - Go to Appointments > Schedule > Resources Bookings - Select a custom range with the same start date and stop date - Click apply - Click on Today - Use the next arrow => Nothing changes Cause of the issue ================== If there is 0 day between the start and stop dates, clicking on today will have the stop date before the start date. opw-4754203 Forward-Port-Of: odoo/enterprise#88919
The AI Composer no longer shows @ mention or # channel suggestions that do not work in this context. This prevents user confusion and avoids errors when slash commands are used in AI composer messages for channels.
Original PR description
* = test_discuss_full_enterprise Disabled all @ (mentions) and # (channel) suggestions in ai_composer to prevent non-functional options. also prevents error when using / commands in ai_composer type of the channels. task-4918914 Forward-Port-Of: odoo/enterprise#89415
This update removes an incorrect preset value from a Swiss payroll configuration field. It helps ensure payroll transmission settings reflect the actual company setup and avoids misleading default information.
Original PR description
…lated field Forward-Port-Of: odoo/enterprise#90425
This fixes an automated check for changing rental duration on the website shop by removing an unnecessary date picker click during the waiting step. It helps keep the rental shopping flow validation stable, reducing false build failures without changing the customer-facing experience.
Original PR description
remove click on datepicker in the wait step build-error-213702 Forward-Port-Of: odoo/enterprise#90355 Forward-Port-Of: odoo/enterprise#89873
Additional automated tests were added for the Planning calendar to confirm batch creation and deletion of records works as intended. This reduces the risk of regressions in calendar scheduling behavior after recent framework-related changes.
Original PR description
This commit's purpose is to add some testing for the task-4485911. This task implemented the use of the new framework tool that allows to create and delete records in batch in the calendar view. Some js customisation was needed in order to better fit our use case. Due to a short timing the testing is done in this followup commit instead of the initial task. task-4891810 target : saas-18.4
The Mexican electronic invoicing localization now shows the payment method field again on bank statement lines. This lets users edit required payment details during bank reconciliation, reducing manual workarounds and potential reporting issues.
Original PR description
Since https://github.com/odoo/enterprise/commit/2335c953723dce66af8811fdfbfd5b811d42b109 The field l10n_mx_edi_payment_method_id is no longer available on statement lines to be edited by the end user. Forward-Port-Of: odoo/enterprise#90195
9 changes
Resolved issues and error corrections
This fix updates the Mexican DIOT report so it uses the current column references introduced by a related accounting change. It helps ensure DIOT values are calculated and reported under the correct categories, reducing confusion and reporting errors.
Original PR description
Description of the issue/feature this PR addresses: The language used in the DIOT documentation was confusing and even though we had the exact same description for two columns it turns out they were…
Description of the issue/feature this PR addresses: The language used in the DIOT documentation was confusing and even though we had the exact same description for two columns it turns out they were different, so we need to change the logic of a few columns to make it work as needed. This issue was addressed in PR: https://github.com/odoo/odoo/pull/217441, but a small adjustment still needs to be made in the l10n_mx_reports module. Current behavior before PR: The l10n_mx_diot_get_values function uses references to the old account.report.expression that were removed in the pr mentioned above. Desired behavior after PR is merged: The l10n_mx_diot_get_values function uses the new references to account.report.expression that were introduced in the pr of the community repo. opw-[4920577](https://www.odoo.com/odoo/my-tasks/4920577) "I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr" Forward-Port-Of: odoo/enterprise#89984 Forward-Port-Of: odoo/enterprise#89481
This fixes an issue in the Gantt schedule view where using Today after selecting a one-day custom range could create an invalid date range. Users can now continue navigating the schedule normally with the next arrow, avoiding confusion during appointment resource planning.
Original PR description
Steps to reproduce ================== - Go to Appointments > Schedule > Resources Bookings - Select a custom range with the same start date and stop date - Click apply - Click on Today - Use the next arrow => Nothing changes Cause of the issue ================== If there is 0 day between the start and stop dates, clicking on today will have the stop date before the start date. opw-4754203 Forward-Port-Of: odoo/enterprise#88919
This fixes a configuration issue in the Swiss payroll ELM transmission module by removing an incorrect preset value from a linked setting. It helps ensure payroll transmission settings reflect the actual company configuration and avoids misleading defaults.
Original PR description
…lated field Forward-Port-Of: odoo/enterprise#90425
Spreadsheet users can now autofill pivot columns, including columns that were themselves created through autofill, without triggering a crash. This improves reliability when extending reports with date-based measures and reduces interruptions during spreadsheet analysis.
Original PR description
Fix crash when autofilling columns which where created by autofill. Task: 4719884 Forward-Port-Of: odoo/enterprise#86846 Forward-Port-Of: odoo/enterprise#83314
The AI Composer no longer shows user mention or channel suggestions that could not be used successfully. This prevents confusing options and avoids errors when slash commands are entered in AI Composer channel conversations.
Original PR description
* = test_discuss_full_enterprise Disabled all @ (mentions) and # (channel) suggestions in ai_composer to prevent non-functional options. also prevents error when using / commands in ai_composer type of the channels. task-4918914
This fix restores the Mexican electronic invoicing payment method field on bank statement lines. Users can again edit this information during bank reconciliation, helping keep payment reporting accurate for Mexican localization requirements.
Original PR description
Since https://github.com/odoo/enterprise/commit/2335c953723dce66af8811fdfbfd5b811d42b109 The field l10n_mx_edi_payment_method_id is no longer available on statement lines to be edited by the end user.
A website rental checkout test was adjusted so it waits correctly without interacting with the date picker. This helps keep automated checks stable and reduces false build failures, with no expected change for customers using the rental flow.
Original PR description
remove click on datepicker in the wait step build-error-213702 Forward-Port-Of: odoo/enterprise#89873
This change fixes an automated test for the Knowledge app by making it find the clipboard copy button more reliably. It helps keep release validation stable and avoids false test failures that could delay deployments.
Original PR description
This commit fixes an issue with the embedded clipboard steps in the commands tour. The selector for the problematic steps was too specific as the copy button isn't always the 1st button. runbot-114522 task-4748626 Forward-Port-Of: odoo/enterprise#80845
This fix prevents the Knowledge app from failing when optional information is missing. It improves stability by handling empty values safely instead of treating them as structured data.
Original PR description
Just be sure when using an argument that can be False instead of a dict. Task-4845982 Forward-Port-Of: odoo/enterprise#90285 Forward-Port-Of: odoo/enterprise#90254
5 changes
Resolved issues and error corrections
Renaming an employee no longer fails when the user lacks permission to rename the related document folder. This prevents unnecessary interruptions in HR workflows while keeping document access controls intact.
Original PR description
When an employee is renamed, it tries to rename the folder but if you don't have the rights on the folder, it raises an error and prevent you from renaming. Forward-Port-Of: odoo/enterprise#90269
This update fixes an automated test for the Knowledge app's command tour by making it find the clipboard copy button more reliably. It helps keep quality checks stable so valid updates are less likely to be blocked by inconsistent test behavior.
Original PR description
This commit fixes an issue with the embedded clipboard steps in the commands tour. The selector for the problematic steps was too specific as the copy button isn't always the 1st button. runbot-114522 task-4748626 Forward-Port-Of: odoo/enterprise#89496 Forward-Port-Of: odoo/enterprise#80845
Social post previews now use the correct preview content source after a recent editor change. Links in previews also keep the behavior expected by the Social app, preventing incorrect link handling before publishing.
Original PR description
This commit fixes an issue with a recent change done in 93aded56aa4f5623dfd4a984c4e52d1a9eac71a2. This commit changed the HtmlField used from the old web_editor to the new html_editor. Following this change the getter was wrongfully kept with the old name, which is what this commit is correcting. This commit also fixes an issue with link retargetting in social previews. The issue is that the links inside the HtmlViewer are retargetted to follow a specific structure which doesn't suit the social module needs. It creates an extension of the HtmlViewer that replaces itself in the components of FieldPostPreview. This extension replaces the retargetLink method to an empty function. task-4950837
This fix restores the Mexican EDI payment method field on bank statement lines so users can edit it during reconciliation. It corrects a missing field in the view, helping businesses keep payment information accurate for Mexican electronic invoicing requirements.
Original PR description
Since https://github.com/odoo/enterprise/commit/2335c953723dce66af8811fdfbfd5b811d42b109 The field l10n_mx_edi_payment_method_id is no longer available on statement lines to be edited by the end user. Forward-Port-Of: odoo/enterprise#90195
The manufacturing shop floor test setup now uses dedicated test warehouse, company, and manufacturing order naming data. This prevents demo data from interfering with automated checks, helping keep quality validation stable without changing user-facing workflows.
Original PR description
This commit modifies the MO sequence as defined in the test's setup from "WH/MO/" to "WH/TEST/MO", this way, there won't be any name's conflict with MO created by demo data. Runbot build error: [223328](https://runbot.odoo.com/odoo/error/223328) Forward-Port-Of: odoo/enterprise#89649
7 changes
Resolved issues and error corrections
This change makes automated website tours more stable when they navigate to another page. It helps reduce inconsistent test behavior, improving confidence in quality checks without changing normal user workflows.
Original PR description
In this commit, we add expectUloadPage to goToUrl util. This util redirect to another page an involves a unload event so we need to add this key to this util to avoid undeterministic behaviors in tours that use it. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix makes an automated mail test more reliable by shortening the simulated reconnect timing so the warning appears within the expected window. It helps prevent false test failures in busy environments without changing the user-facing product behavior.
Original PR description
The "show warning when bus connection encounters issues" test simulates a disconnected WebSocket that fails to reconnect. In this scenario, an alert is shown to warn the user that some features may…
The "show warning when bus connection encounters issues" test simulates a disconnected WebSocket that fails to reconnect. In this scenario, an alert is shown to warn the user that some features may be unavailable or slow. However, the websocket worker’s initial reconnect delay is 1.5s, with an added random jitter up to 1 second which means the first reconnect attempt can take up to 2.5s. The test waits up to 2.5s for the alert to show, which is not always enough. The reconnect attempt alone may be that long, and under high CPU load, processing the resulting event can take even longer. This commit reduces the initial reconnect delay and the jitter during this test, ensuring that the reconnect attempt fails and the alert is shown within the expected time. fixes runbot-226443 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Electronic invoice exports now include the product barcode in the same field already used when importing invoices. This improves consistency between incoming and outgoing UBL/CII documents and helps partners identify products more reliably.
Original PR description
[FIX] account_edi_ubl_cii: export product barcode too Currently we use the `Item/StandardItemIdentification` as the barcode when importing a product. But we do not export the same information. In 18.0+ the `Item/StandardItemIdentification` was added to the UBL XML (for exporting) in commit 72e312815f372de88388c47c612bb5f44b4d8b4e. But there it is only used in `l10n_co_dian`. After this commit we export and fill the tag "by default". task-4941855 Forward-Port-Of: odoo/odoo#218779
Automatic invoice sending now reports its scheduled job progress using the correct number of invoices processed and still pending. This avoids misleading logs that previously suggested no records were processed, making monitoring clearer for administrators.
Original PR description
The scheduled action for the automatic sending of invoices currently does not explictly use the `_notify_progress` method introduced since Odoo 18 to track the progress of CRON jobs. This means that implicitly, by default the CRON will log `processed 0 records, 0 records remaining` at each run. This can be confusing, as the automatic invoice sending CRON is batched, and might run multiple times in sucession, reporting each time that it processed 0 records (which might not be true). ## Proposed fix: We correctly count the total account moves that need to be processed (using a `search_count`) and calculate the number of processed records and the remaining ones. opw-4926541 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fix prevents an error that could occur while editing a website header and pressing the Tab key when no text area was selected. It improves editing stability by safely handling cases where the cursor selection is missing.
Original PR description
This PR fixes traceback issue: Steps to Reproduce for 1st traceback: 1. Go to Website in edit mode. 2. Click on the menu in the header such a way that the cursor is not placed inside. 3. Press the tab key. 4. You will receive the traceback. Issue: When the selection is null, the anchorNode also becomes null, resulting in closestUnbreakable being null. Therefore, we should avoid accessing nodeName on a null element to prevent errors. Fix: Safely access elements using optional chaining to prevent errors when elements are not found. task-4577864
This update makes an internal mail suggestion helper available for customizations. It helps partners and developers apply targeted custom patches more reliably without changing the standard mail behavior for everyday users.
Original PR description
Useful for custom patches.
This fix removes an incorrect default setting in the Swiss payroll ELM transmission configuration. It helps ensure payroll transmission settings use the proper company configuration instead of applying an unintended preset value.
Original PR description
…lated field Forward-Port-Of: odoo/enterprise#90425