Daily updates from Odoo
Thursday, November 20, 2025
54 changes
9 changes
Resolved issues and error corrections
This change removes a unit test that depended on a different add-on and on Enterprise-only fields, which caused automated builds to fail. The test will be reintroduced later in the appropriate module if needed, helping keep the codebase stable and build results reliable.
Original PR description
The unit test `test_can_reset_deferred_invoice()` has several issues. 1. It should be in the `account_audit_trail` module, as the test requires this module. [Unit test documentation: modules](https://www.odoo.com/documentation/19.0/developer/tutorials/unit_tests.html#modules). 2. The test references fields from the Enterprise module `account_accountant`, `account.move.line.deferred_start_date` and `account.move.line.deferred_end_date`. This causes build tests to fail. As such, the test should be removed now and replaced later if necessary. Fixes [PR 235223](https://github.com/odoo/odoo/pull/235223) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#235813
This change updates a test so it uses the same product editing flow a user would follow in the interface. As a result, the expected validation error is now correctly triggered, improving the reliability of the test suite and preventing false failures.
Original PR description
Versions -------- - 18.0+ Steps ----- 1. Have a minimal database with `event_product` installed; 2. run `:TestEventProduct.test_ensure_event_service_tracking`. Issue ----- > FAIL:…
Versions -------- - 18.0+ Steps ----- 1. Have a minimal database with `event_product` installed; 2. run `:TestEventProduct.test_ensure_event_service_tracking`. Issue ----- > FAIL: TestEventProduct.test_ensure_event_service_tracking > AssertionError: ValidationError not raised Cause ----- The test works as expected with `sale_project` installed due to a `write` override of `product.product`, setting the `service_tracking` to 'no' if `type` is no longer 'service': https://github.com/odoo/odoo/blob/dc57ea4d306f8745d37f2c5d2c3d3fa4bcaf7253/addons/sale_project/models/product_product.py#L25-L30 This change still occurs without `sale_project` installed, but via the `_compute_service_tracking` method defined in `product`: https://github.com/odoo/odoo/blob/dc57ea4d306f8745d37f2c5d2c3d3fa4bcaf7253/addons/product/models/product_template.py#L181-L183 As this value is set via a compute method instead of `write`, the `_check_event_ticket_service_tracking` method isn't triggered, and no error is raised. Solution -------- Simulate a front-end flow by changing the `type` to 'consu' on a product form. This way, the constraint method does get triggered as expected. runbot-234024 Forward-Port-Of: odoo/odoo#236045
This fix makes the rating cards in Website Slides use the same background color as the rest of the page. It improves visual consistency so the module matches the intended website theme more cleanly.
Original PR description
PR #229272 sets the background color of the portal chatter to `body-bg`, aligning it correctly with the other parts of the chatter and website themes. However, `website_slides` module has a customized scss variable to change its main body background color which makes the background color for the rating cards (chatter top) being different in this module. This change sets the `--body-bg` in this customized scss to the same variable used for the background color, aligning the background colors with each other. Before: <img width="1182" height="552" alt="image" src="https://github.com/user-attachments/assets/6aba4609-e99c-48de-8af7-a97029859fab" /> After: <img width="1097" height="555" alt="image" src="https://github.com/user-attachments/assets/0d4ed53b-6d83-4eba-8499-0d38b10b4234" /> Forward-Port-Of: odoo/odoo#236527
This change moves a small customization to the module that actually depends on the portal features. It keeps the code organized correctly and reduces the risk of future maintenance issues.
Original PR description
Since #234356, `_get_allowed_message_post_params` method of the `PortalChatter` has been overridden in the `rating` module. As the `rating` has no dependency on the portal, the current change moves this override to the `portal_rating` module. Forward-Port-Of: odoo/odoo#236436 Forward-Port-Of: odoo/odoo#236249
This change adds automated coverage for @mention suggestions in channels restricted to a specific group. It helps ensure people only see the right suggestions in these channels, reducing the chance of incorrect or confusing mentions.
Original PR description
This commit adds a test for mention suggestions in group-restricted channels (`group_public_id`). task-5258925 Forward-Port-Of: odoo/odoo#235478
This change fixes an issue where the message composer could fail while loading suggestions if no message was attached yet. It makes the feature more reliable and prevents an internal error from blocking the user experience.
Original PR description
This commit solves a runbot issue created by the debounced nature of the suggestion fetch. A composer could not have a message associated with it and was therefore failing to find the related thread. Now, the thread is set to undefined in that case since we do not need the result anyway. fixes-runbot-230311 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#236262
This fix prevents calendar event titles from being cut off in day view, especially on mobile devices. Users can now read the full event name at a glance, making it easier to review what needs to be done.
Original PR description
Before this commit, when the user goes to a calendar view in day to check what he have to do. He cannot see the event title properly in his mobile phone since the title is truncated. This commit makes sure the event title is not truncated to clearly see the whole event title. Before the fix: <img width="1172" height="802" alt="image" src="https://github.com/user-attachments/assets/f85a4a03-89a3-48c8-bda7-38e72854ce1f" /> After the fix: <img width="1179" height="808" alt="image" src="https://github.com/user-attachments/assets/7b0b31ba-10f5-412b-837b-8399c78c5bac" /> Forward-Port-Of: odoo/odoo#235823
The website now hides mega menu links when their content is not available to the current visitor, instead of showing empty dropdowns. This makes the navigation cleaner on both desktop and mobile and avoids confusing users with menu items they cannot use.
Original PR description
Before this commit, when setting the mega menu content visibility, the navbar link would still appear even if the user does not have access to the mega menu content. This commit hides the navbar link for the mega menu in the mobile and desktop view when the user does not have access to the mega menu content, in order to prevent unnecessary elements in the navbar. Steps to reproduce the bug: - Add a mega menu element in the navbar - Open the mega menu - Set the mega menu content visibility to conditional (logged in) - Open the website while logged out (The mega menu link is here but the content is not displayed. However, the dropdown is still opened but it is empty.) task-3992066 Forward-Port-Of: odoo/odoo#235516 Forward-Port-Of: odoo/odoo#179454
Website card images no longer show unwanted white borders when a hover animation is applied. This keeps the image filling its container correctly and improves the visual quality of edited website pages.
Original PR description
Step to reproduce: 1. Open website 2. Click edit button and drop s_three_columns snippet 3. Click image and change animation option into hover 4. Some extra white space shown. Before this commit: Applying a hover animation on card images caused the `object-fit` property to unintentionally switch from `cover` to `contain`, resulting in visible white borders around the image.This happened because of the `geo_square` shape, which is automatically injected when a hover effect is applied and no user shape is chosen. This behavior was intentionally introduced in PR [1]. After this commit: Now cropped images use object-fit: contain to preserve the visible properly. and after stretch option apply it can take cover of this container. so his ensures the image fully covers its container without leaving any white gaps. [1]:https://github.com/odoo/odoo/pull/119197 task:4875770 Forward-Port-Of: odoo/odoo#215766
6 changes
Resolved issues and error corrections
Hover animations on website card images could leave visible white gaps around the image. This update keeps the image filling its container properly, so pages look cleaner when editors enable hover effects.
Original PR description
Step to reproduce: 1. Open website 2. Click edit button and drop s_three_columns snippet 3. Click image and change animation option into hover 4. Some extra white space shown. Before this commit: Applying a hover animation on card images caused the `object-fit` property to unintentionally switch from `cover` to `contain`, resulting in visible white borders around the image.This happened because of the `geo_square` shape, which is automatically injected when a hover effect is applied and no user shape is chosen. This behavior was intentionally introduced in PR [1]. After this commit: Now cropped images use object-fit: contain to preserve the visible properly. and after stretch option apply it can take cover of this container. so his ensures the image fully covers its container without leaving any white gaps. [1]:https://github.com/odoo/odoo/pull/119197 task:4875770 Forward-Port-Of: odoo/odoo#215766
This update makes the rating cards in Website Slides use the same background color as the rest of the page area. It improves visual consistency so the interface looks more polished and matches the website theme better.
Original PR description
PR #229272 sets the background color of the portal chatter to `body-bg`, aligning it correctly with the other parts of the chatter and website themes. However, `website_slides` module has a customized scss variable to change its main body background color which makes the background color for the rating cards (chatter top) being different in this module. This change sets the `--body-bg` in this customized scss to the same variable used for the background color, aligning the background colors with each other. Before: <img width="1182" height="552" alt="image" src="https://github.com/user-attachments/assets/6aba4609-e99c-48de-8af7-a97029859fab" /> After: <img width="1097" height="555" alt="image" src="https://github.com/user-attachments/assets/0d4ed53b-6d83-4eba-8499-0d38b10b4234" /> Forward-Port-Of: odoo/odoo#236527
This fix prevents Odoo Studio from crashing when a user adds a Selection field option without typing a value first. Instead of showing an error, the interface now handles the empty input safely, making field configuration more reliable and forgiving.
Original PR description
**Before this commit:** When a user added a new Selection field and clicked the “Add Selection” :white_check_mark: button without entering any value, a `Client Error: (Cannot read properties of undefined (reading 'trim'))` was raised, resulting in a crash of the Studio interface. **After this commit:** Clicking the “Add Selection” :white_check_mark: button with an empty input no longer triggers an error. task-5159376 Forward-Port-Of: odoo/enterprise#99783 Forward-Port-Of: odoo/enterprise#98767
This change moves a messaging override to the module that actually depends on portal features. It keeps the code structure correct and reduces the risk of future maintenance issues without changing how users interact with the feature.
Original PR description
Since #234356, `_get_allowed_message_post_params` method of the `PortalChatter` has been overridden in the `rating` module. As the `rating` has no dependency on the portal, the current change moves this override to the `portal_rating` module. Forward-Port-Of: odoo/odoo#236436 Forward-Port-Of: odoo/odoo#236249
This update prevents the message composer from failing when no message is attached to it during suggestion loading. It ensures the related thread is treated as unavailable in that case, which avoids an error and keeps suggestions working reliably.
Original PR description
This commit solves a runbot issue created by the debounced nature of the suggestion fetch. A composer could not have a message associated with it and was therefore failing to find the related thread. Now, the thread is set to undefined in that case since we do not need the result anyway. fixes-runbot-230311 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#236262
When editing a website, discussion bubbles will now shift aside instead of covering the editor. This makes it easier to select and edit content, especially for users with many active conversations.
Original PR description
Before this commit, discuss bubbles would appear on top of the editor when editing a website. I was therefore be difficult to select some snippets, especially when the user had a lot of conversations at the same time and he wanted to keep the discuss bubbles visible. This commit shift the discuss bubbles on edit to solve the issue. task-4266898 Forward-Port-Of: odoo/odoo#184671
2 changes
Resolved issues and error corrections
This update removes duplicate methods found across a few enterprise modules. It does not change business behavior, but it makes the codebase cleaner and easier to maintain, which helps reduce the risk of future issues.
Original PR description
found by pylint 4 Forward-Port-Of: odoo/enterprise#99867 Forward-Port-Of: odoo/enterprise#99809
This update corrects a test used for localized Point of Sale setups so automated checks run reliably again. It helps prevent false failures in the validation process without changing day-to-day store operations.
Original PR description
Fix runbot issue runbot-233183 Forward-Port-Of: odoo/enterprise#99370
11 changes
Enhancements to existing features
The IoT module files were reformatted using a standard formatting tool to make the codebase more consistent and easier to maintain. This is an internal cleanup with no expected change to user-facing behavior, and future checks will help keep the formatting consistent.
Original PR description
This commit formats all the files in the `iot` module using `prettier`. This formatting will be enforced by the ESLint test (see associated Community PR https://github.com/odoo/odoo/pull/236516).
Users can now mark or unmark documents as favorites directly from the list view, matching the behavior already available in Kanban view. The shortcut only appears when documents are selected, reducing clutter and making the action more relevant.
Original PR description
- Previously, toggling favorites was only supported in the Kanban view and not available in the list view. - Favorites can now be toggled in the list view, and provide consistency across all views. - Additionally, the shortcut command is now only available when at least one record is selected, as it doesn't make sense to show the command when no documents are selected. Task-4822074
The default Administrator employee is no longer included in standard company data and is only available with demo data. This keeps new databases cleaner and avoids an incomplete placeholder employee getting in the way, while users can still create an Administrator employee when needed.
Original PR description
## Purpose The default administrator employee (in master data) sometimes can get annoying, making it difficult to code easy features. Moreover, almost all the fields of this employee are empty, and the user can easily create its own Administrator employee by clicking the "Create Employee" button from the Admin User View. ## Solution Moving the admin employee to the demo data. [community#232627](https://github.com/odoo/odoo/pull/232627) [upgrade#8806](https://github.com/odoo/upgrade/pull/8806) [task-5138634](https://www.odoo.com/odoo/all-tasks/5138634)
This update aligns several business workflows with a platform change where asking for zero records now correctly returns none. It helps avoid unintended records appearing in manufacturing planning, subscriptions, and barcode/package operations when a zero-result limit is expected.
Original PR description
https://github.com/odoo/odoo/pull/234231
The manufacturing work order display no longer keeps an unused reference in its setup logic. This removes outdated code tied to a previous storage naming approach, reducing confusion and making future maintenance safer.
Original PR description
Picking type Was only used in the previous local storage key name and was undefined. see odoo/enterprise#88073 (original PR) see odoo/enterprise#93841 (Fix PR were we remove the `picking_type_id` key from local storage name)
The U.S. direct deposit settings are now connected to the community accounting setup, making them easier for users to discover in the right place. This improves configuration clarity without changing the direct deposit feature itself.
Original PR description
Change the new settings panel from being defined in enterprise to being defined in l10n_us_account and overriden here for proper discoverability. task-5080414
Resolved issues and error corrections
Fixes an issue where reusing a saved AI live chat website block could crash the website editor. Users can now save and re-add the AI chat snippet from custom blocks without interruption.
Original PR description
Steps to reproduce: ------------------------- 1. Install Website and AI modules. 2. Open the website editor. 3. From the Intro block, search for the AI snippet and add the snippet contains 'Need…
Steps to reproduce:
-------------------------
1. Install Website and AI modules.
2. Open the website editor.
3. From the Intro block, search for the AI snippet and add the snippet contains 'Need Help?'.
4. Click on the added block, then click the Save icon from the Style tab.
5. Save the snippet
6. Go to Blocks → Custom Blocks and add the saved snippet.
Observation:
-------------------------
A traceback is raised:
```
TypeError: Cannot read properties of null (reading 'remove')
at AILivechatOptionPlugin.onSnippetDropped
```
Issue:
-------------------------
The `onSnippetDropped` method
https://github.com/odoo/enterprise/blob/bb3699cc112acb3ec545d3aa5f3d8f7263a5dac6/ai_website_livechat/static/src/website/plugins/ai_livechat_option_plugin.js#L39-L51 executes every time a snippet is dropped into the layout. When the snippet is first added, the method removes the `<div>` with class `s_ai_livechat_preview`. Upon saving, the snippet is stored without that `div`. When re-adding the saved snippet from custom tab, the method runs again but fails since the `s_ai_livechat_preview` element no longer exists, resulting in the traceback.
Solution:
-------------------------
Added the optional chaining operator to safely remove the `s_ai_livechat_preview` div only when it exists.
opw-5227072
Forward-Port-Of: odoo/enterprise#99276The Copy to Clipboard option now appears correctly for regular conversations when the AI module is installed. This fixes a visibility issue in message actions and adds test coverage to help prevent the problem from returning.
Original PR description
Before this commit, "Copy to Clipboard" was sometimes not visible in the message action list when message had some text content. This happens because message actions can condition overridden by some…
Before this commit, "Copy to Clipboard" was sometimes not visible in the message action list when message had some text content. This happens because message actions can condition overridden by some other modules, and the way overrides of action condition work is to have boolean value taking precedence over the local condition of action. This architecture is meant to provide exhaustive list of actions to allow, which is quite useful to control what livechat visitors can have. However this architecture requires overrides to properly return `undefined` when the local condition should apply, which was not the case for an override by `ai` module. So when `ai` module is installed, the "copy to clipboard" feature as not available. This commit fixes the issue by adapting the condition in `ai` module to return `undefined` on non-AI conversations, and add test coverage for both `@mail` discuss suite and all overrides of discuss in `@test_discuss_full_enterprise`. opw-5240768 https://github.com/odoo/odoo/pull/236295 Forward-Port-Of: odoo/enterprise#99794
The IoT connection flow now checks the device token before looking up older device records. This prevents unnecessary error logs when an IoT box reconnects after being unpaired or used with another database.
Original PR description
Steps to reproduce: 1. Connect an IoT box 2. Now unpair it from the IoT box homepage (record stays in DB) 3. Connect the same box again to a different DB but with the same IP (e.g. when a developer switches branch) 4. Now go back to the original DB 5. Observe a traceback in the DB logs when the IoT calls /iot/setup (`cannot access id on NoneType`) This traceback occurs because we were checking for an old IoT box record before checking if the token matches. We simply swap the checks around to prevent the traceback.
Website content generation issues are now recorded as warnings instead of errors when they do not block the user. This keeps monitoring reports cleaner while users still receive the appropriate notification when generation fails.
Original PR description
- Currently, we log an error whenever an error occurs during content generation for any webpage. - However, it is a non-blocking error so it can be safely converted to a `_logger.warning`, as we already notify user about the error through a notification [1]. - Additionally, the errors caught here will be all UserErrors so no need to log another error, so we log a warning instead. - This commit converts the `_logger.error` into `_logger.warning`. [1]: https://github.com/odoo/enterprise/blob/b001e9cc2af0f800e2a7965b61aa9b9c5bd4e89e/ai_website/static/src/components/dialog/add_page_dialog.js#L74-L80 sentry-6974000714 Forward-Port-Of: odoo/enterprise#98844
Fixed an issue where using backspace on the VoIP keypad did not delete highlighted characters when the selection started at the beginning. This restores expected editing behavior for users entering or correcting phone numbers while preserving safeguards against cursor errors.
Original PR description
This commit fixes a regression introduced in commit [1] prevented deleting when a selection began at index 0; extend the guard so the numpad (keypad) backspace still removes the highlighted characters while keeping the cursor-safety logic. [1]: https://github.com/odoo/enterprise/commit/73b01fa5e1f56d4ab71d67760b15942fb2fa0e31 task-5217676 Forward-Port-Of: odoo/enterprise#99835 Forward-Port-Of: odoo/enterprise#99358
18 changes
Enhancements to existing features
The stock return wizard now shows one main action button, with the other options styled as secondary actions. The cancel action is also relabeled to "Discard," and users get clearer feedback when trying to return items with zero quantity, making the flow easier to understand and use.
Original PR description
Previously, the return wizard displayed multiple primary buttons, which could confuse users and affect the clarity of actions. This commit updates the wizard to have a single primary button, with all other action buttons changed to secondary for better user experience. Additionally, some button labels have been updated for clarity: - `Cancel` → `Discard` These changes make the return wizard more consistent, intuitive, and easier to use for all types of stock operations. This commit also enables improved user error when attempting to return products with zero quantities. Task - 5144914
Resolved issues and error corrections
This change adjusts an automated test so it follows the same product-editing flow a user would use in the interface. As a result, the system now correctly detects and reports invalid event ticket settings during testing, preventing false test failures.
Original PR description
Versions -------- - 18.0+ Steps ----- 1. Have a minimal database with `event_product` installed; 2. run `:TestEventProduct.test_ensure_event_service_tracking`. Issue ----- > FAIL:…
Versions -------- - 18.0+ Steps ----- 1. Have a minimal database with `event_product` installed; 2. run `:TestEventProduct.test_ensure_event_service_tracking`. Issue ----- > FAIL: TestEventProduct.test_ensure_event_service_tracking > AssertionError: ValidationError not raised Cause ----- The test works as expected with `sale_project` installed due to a `write` override of `product.product`, setting the `service_tracking` to 'no' if `type` is no longer 'service': https://github.com/odoo/odoo/blob/dc57ea4d306f8745d37f2c5d2c3d3fa4bcaf7253/addons/sale_project/models/product_product.py#L25-L30 This change still occurs without `sale_project` installed, but via the `_compute_service_tracking` method defined in `product`: https://github.com/odoo/odoo/blob/dc57ea4d306f8745d37f2c5d2c3d3fa4bcaf7253/addons/product/models/product_template.py#L181-L183 As this value is set via a compute method instead of `write`, the `_check_event_ticket_service_tracking` method isn't triggered, and no error is raised. Solution -------- Simulate a front-end flow by changing the `type` to 'consu' on a product form. This way, the constraint method does get triggered as expected. runbot-234024 Forward-Port-Of: odoo/odoo#236045
This update makes the Discuss app look cleaner on desktop by reducing extra header spacing, fixing a clipped badge in the sidebar, and lowering the message composer. It also aligns typing and livechat guidance with the standard chat window behavior, making the interface feel more consistent and easier to use.
Original PR description
Minor style improvements to discuss app in desktop: - less vertical padding of the header - no cropped badge on mailbox below "New meeting" in sidebar compact - composer is lower The composer was…
Minor style improvements to discuss app in desktop: - less vertical padding of the header - no cropped badge on mailbox below "New meeting" in sidebar compact - composer is lower The composer was higher to give room for "is typing" and "Tab to next livechat" features that were at bottom of composer in discuss app. They were changed to match chat window style: - "is typing" is above composer - "Tab to next livechat" is suggested in placeholder of composer Before (left) / After (right) <img width="1521" height="792" alt="Screenshot 2025-11-18 at 19 05 55" src="https://github.com/user-attachments/assets/216dd9de-601b-44fe-9169-66f50a243992" /> Before <img width="959" height="997" alt="Screenshot 2025-11-18 at 18 23 27" src="https://github.com/user-attachments/assets/9d9dfef0-8412-4a38-b0c7-7f9c66b084e5" /> After <img width="958" height="993" alt="Screenshot 2025-11-18 at 19 05 12" src="https://github.com/user-attachments/assets/cd6a9d14-e058-4159-920c-69778c6b3ec9" />
This fix restores the missing expand/collapse icon in email-style messages when quoted content is shown with a read more/less control. It improves the readability and usability of messages in the web interface by making the toggle button visible again.
Original PR description
Before this commit, when a message is of type "email" and contains parts are in foldable with more/less (like `<quote>`), the icon of the button for fold/unfold is missing. This happens because the icon is `.oi` and requires `odoo_ui_icons`. Message of type "email" have their content inside a shadow DOM, because we want to preserve the style of email inside the web client, at least in white theme. Shadow-DOM prevents the parent document to pass `odoo_ui_icons` thus the Shadow-DOM could not apply expected style on `.oi` icons. This commit fixes the issue by passing the required CSS as stylesheet to the shadow DOM, so that `.oi` icons are working inside the shadow DOM of message content of type "email". Forward-Port-Of: odoo/odoo#228741
This change prevents an error in payroll-related calculations when an employee contract does not have a start date. It makes the system handle incomplete employee data more safely, which helps tests and background updates run reliably.
Original PR description
The test_version_cron_update_no_fields from hr/tests/test_hr_employee.py didn't pass on runbot saas-18.4 due to the absence of a start date of contract leading to an error when trying to substract False to a datetime object. I added a verification in the concerned compute function in order to ensure the employee has a contract_date_start. If it's not the case, I set it to 0 as the compute method needs to compute the target field. Runbot error: 233590 Forward-Port-Of: odoo/enterprise#99815
This update makes the rating cards in Website Slides use the same background color as the rest of the page. It improves visual consistency so the interface looks cleaner and better aligned with the site theme.
Original PR description
PR #229272 sets the background color of the portal chatter to `body-bg`, aligning it correctly with the other parts of the chatter and website themes. However, `website_slides` module has a customized scss variable to change its main body background color which makes the background color for the rating cards (chatter top) being different in this module. This change sets the `--body-bg` in this customized scss to the same variable used for the background color, aligning the background colors with each other. Before: <img width="1182" height="552" alt="image" src="https://github.com/user-attachments/assets/6aba4609-e99c-48de-8af7-a97029859fab" /> After: <img width="1097" height="555" alt="image" src="https://github.com/user-attachments/assets/0d4ed53b-6d83-4eba-8499-0d38b10b4234" /> Forward-Port-Of: odoo/odoo#236527
This fix makes JSON fields more tolerant when they receive common business objects such as domains or frozen dictionaries. It reduces the risk of errors when storing and retrieving unstructured data in the system.
Original PR description
The field did not change for quite some time. It mainly serves as a way of storing and retrieving some unstructured data. Use default serialization function when assiging values to Json fields. Some business code may assign domains or frozendicts to json fields. That should not fail. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This change relocates a portal-related customization from the Rating module to the Portal Rating module, where it belongs. It keeps the module structure consistent and reduces the risk of dependencies being mixed up in future updates.
Original PR description
Since #234356, `_get_allowed_message_post_params` method of the `PortalChatter` has been overridden in the `rating` module. As the `rating` has no dependency on the portal, the current change moves this override to the `portal_rating` module. Forward-Port-Of: odoo/odoo#236436 Forward-Port-Of: odoo/odoo#236249
This fixes an issue where the message composer could fail when there was no existing message linked to it. The update makes suggestion loading more reliable, preventing an internal error and improving the user experience.
Original PR description
This commit solves a runbot issue created by the debounced nature of the suggestion fetch. A composer could not have a message associated with it and was therefore failing to find the related thread. Now, the thread is set to undefined in that case since we do not need the result anyway. fixes-runbot-230311 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#236262
This update makes the Swiss payroll transmission tests work independently from accounting-specific setup. It reduces test coupling, making the payroll module easier to validate and less likely to fail because of unrelated accounting configuration changes.
Original PR description
Forward-Port-Of: odoo/enterprise#99748 Forward-Port-Of: odoo/enterprise#98672
The calendar day view now keeps event titles visible instead of cutting them off on mobile devices. This makes it easier for users to quickly identify what each event is without opening it.
Original PR description
Before this commit, when the user goes to a calendar view in day to check what he have to do. He cannot see the event title properly in his mobile phone since the title is truncated. This commit makes sure the event title is not truncated to clearly see the whole event title. Before the fix: <img width="1172" height="802" alt="image" src="https://github.com/user-attachments/assets/f85a4a03-89a3-48c8-bda7-38e72854ce1f" /> After the fix: <img width="1179" height="808" alt="image" src="https://github.com/user-attachments/assets/7b0b31ba-10f5-412b-837b-8399c78c5bac" /> Forward-Port-Of: odoo/odoo#235823
This update keeps the external tax sales feature aligned with recent changes in the core Odoo community code. It helps prevent test or behavior mismatches so the sales experience remains reliable.
Original PR description
See Also: - https://github.com/odoo/odoo/pull/227241
This update adds automated coverage for mention suggestions inside channels that are limited to specific groups. It helps ensure users continue to see the correct mention behavior in these restricted discussions after future changes.
Original PR description
This commit adds a test for mention suggestions in group-restricted channels (`group_public_id`). task-5258925 Forward-Port-Of: odoo/odoo#235478
The helpdesk ticket view was updated so the status badge uses the new widget setup correctly. This keeps the interface working smoothly after an internal performance-related change and helps avoid display issues for users.
Original PR description
This commit adapts the definition of the field using the `badge_rotting` widget since that widget no longer extend to SelectionBadge widget due to a perfomance issue.
This update fixes an issue where card images could show white borders when a hover animation was applied on the website. It improves the visual presentation of image cards so they stay properly filled and look clean when users edit and preview pages.
Original PR description
Step to reproduce: 1. Open website 2. Click edit button and drop s_three_columns snippet 3. Click image and change animation option into hover 4. Some extra white space shown. Before this commit: Applying a hover animation on card images caused the `object-fit` property to unintentionally switch from `cover` to `contain`, resulting in visible white borders around the image.This happened because of the `geo_square` shape, which is automatically injected when a hover effect is applied and no user shape is chosen. This behavior was intentionally introduced in PR [1]. After this commit: Now cropped images use object-fit: contain to preserve the visible properly. and after stretch option apply it can take cover of this container. so his ensures the image fully covers its container without leaving any white gaps. [1]:https://github.com/odoo/odoo/pull/119197 task:4875770 Forward-Port-Of: odoo/odoo#215766
This change corrects missing test information in the VoIP test suite so automated HOOT runs no longer fail on invalid component data. It improves test reliability and helps ensure VoIP checks complete successfully during development and validation.
Original PR description
Before this commit, running VoIP tests in HOOT results in this error: > Global OwlError: Invalid props for component 'TabEntry': 'title' is not a string, 'phoneNumber' is not a string This is because one of the test is setup with incomplete data (no phone number). After this commit, test data is correctly set with a phone number, fixing the props validation error.
This update corrects how changes made in the document sharing wizard are saved when allowing link access. As a result, link-sharing settings are now applied properly and users can rely on the updated access options being kept.
Original PR description
This commit fix the 'action_allow_link_access' method in 'documents.sharing' model by adding the 'WRITE_VALUE_PREFIX' to the updated fields. Otherwise the changes wasn't taken into account. Task-5220965
Documentation and clarification updates
This change adds a signed contributor license agreement record for Trung Tin Nguyen. It is an administrative update that confirms the contribution can be accepted under Odoo's contribution rules.
Original PR description
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
4 changes
Enhancements to existing features
This update makes the fields used in Sign templates easier to customize and extend. It helps developers adapt template behavior more cleanly in future patches without changing core logic directly.
Original PR description
Introduced a dedicated _getTemplateFields() method to make easier to override or extend the fields in patches.
Resolved issues and error corrections
This update makes the rating cards in Website Slides use the same background color as the rest of the page. It improves visual consistency so the interface looks cleaner and more aligned with the website theme.
Original PR description
PR #229272 sets the background color of the portal chatter to `body-bg`, aligning it correctly with the other parts of the chatter and website themes. However, `website_slides` module has a customized scss variable to change its main body background color which makes the background color for the rating cards (chatter top) being different in this module. This change sets the `--body-bg` in this customized scss to the same variable used for the background color, aligning the background colors with each other. Before: <img width="1182" height="552" alt="image" src="https://github.com/user-attachments/assets/6aba4609-e99c-48de-8af7-a97029859fab" /> After: <img width="1097" height="555" alt="image" src="https://github.com/user-attachments/assets/0d4ed53b-6d83-4eba-8499-0d38b10b4234" />
This change corrects a field calculation issue in the Uruguay electronic invoicing stock flow. It prevents build failures and helps ensure stock-related documents are processed correctly.
Original PR description
runbot build error id: 234034
Documentation and clarification updates
This change updates the Adhoc Contributor License Agreement documentation by adding new members to the approved list. It matters because it keeps the legal records current and ensures contributions can be processed under the correct agreement.
Original PR description
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
4 changes
Resolved issues and error corrections
This fix ensures the editor’s color picker can see custom colors already used on the page, including for background colors. As a result, users get a consistent selection of page colors and can reuse existing branding colors more easily.
Original PR description
Before this commit, the colorpalette for the background color would not display custom colors already on the page. The issue appeared in 17.0 and worked in 16.0 before the conversion of wysiwyg to owl. github.com/https://github.com/odoo/odoo/pull/118966 The "getEditableCustomColors" method was not forwarded and therefore we used the default function, returning nothing. Steps to reproduce the issue: - Add a snippet - Set the background / font color of the snippet to a custom color - Add another snippet - Open the colorpicker for the text color (The colorpicker have access to the custom color set above) - Open the colorpicker for the background color (The colorpicker does not have access to the custom color set above) task-3806989
Anchor links with the “Open in New Window” option now behave as expected and open in a new tab instead of staying in the same page. This fixes a confusing issue that could make users think the setting was not working.
Original PR description
Steps to Reproduce: 1. Create an anchor link for any dropped snippet. 2. Insert the link through the link popover. 3. Enable the "Open in New Window" option. 4. Click on Save. 5. Click on the link. Issue: Even though the "Open in New Window" option is enabled, the page scrolls in the same tab instead of opening in a new window and scrolling to the targeted view. Reason: When an anchor link has target="_blank", `ev.preventDefault()` was still being called, which prevented the browser from performing its default behavior of opening the link in a new tab. Fix: Removed `ev.preventDefault()` for such links, as the expected behavior is to open them in a new tab whenever target="_blank" is set. Additionally, the offcanvas mobile-specific logic has been removed, as it is no longer necessary now that `ev.preventDefault()` is no longer used. task-5104027
Documentation and clarification updates
This change updates the Adhoc Contributor License Agreement documentation to include additional members. It matters because it keeps the project’s legal records current for contributors and helps ensure future contributions are properly covered.
Original PR description
--- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update refreshes the corporate contributor agreement record for Moduon. It matters for keeping legal and administrative documentation current and aligned with the company’s latest information.
Original PR description
@moduon MT-12696