Tuesday, April 8, 2025
36 changes · saas-18.1
Resolved issues and error corrections
This fix makes point of sale automated test refreshes wait until local browser data updates are complete. It helps prevent intermittent test failures in quality checks, improving release reliability without changing normal user workflows.
Original PR description
When refreshing during tours, we need to ensure that all indexedDB transaction are done, otherwise we can have some issues. Runbot errors: 161900, 161901 Backport of #203690
This fixes an issue where automated tests could not be selected when the test file name contained dashes. It improves reliability for internal testing workflows and helps ensure relevant tests run as expected.
Original PR description
Before this commit a file containing dashes wouldn't work with test-tags Backport of odoo/odoo#196774
POS sessions now receive a temporary name until the opening amount is confirmed. This prevents unused session numbers from being skipped when a session is abandoned early, keeping records continuous and accurate.
Original PR description
Before this commit, opening a session would immediately assign a sequence name, even before the opening control step was completed. If the user clicks on the backend, the session would be deleted but the sequence number would be skipped, leading to gaps. With this fix, sessions are first assigned a temporary name upon creation. The final sequence name is only generated after the opening amount is set, ensuring that the sequence remains continuous and accurate. opw-4711954 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The mobile mail interface now correctly shows the Mark as Unread option for messages. This restores a missing action for mobile users, making message management consistent across devices.
Original PR description
Before this commit, The 'Mark as Unread' button was missing in the mobile view because the `set-new-message-separator` action relied on `component.isOriginThread`. `isOriginThread` property exists on the `Message` component but not on `MessageActionMenuMobile`, which is used in mobile view. This commit fixes the issue by removing the dependency on `isOriginThread` from `message-actions` and instead introducing an inline condition. As a result, the 'Mark as Unread' button now displays correctly on mobile. task-[4686591](https://www.odoo.com/odoo/project/1519/tasks/4686591)
This fix prevents an error from appearing when a user refreshes the page for an archived product that uses unit-of-measure fields. It ensures archived products are handled safely, improving reliability for product management workflows.
Original PR description
**Steps to reproduce the bug:** - Create a storable product - Archive it - Refresh the page **Problem:** A traceback is triggered: `TypeError: Cannot read properties of undefined (reading 'uom_id')`…
**Steps to reproduce the bug:** - Create a storable product - Archive it - Refresh the page **Problem:** A traceback is triggered: `TypeError: Cannot read properties of undefined (reading 'uom_id')` This happens because, during setup, the updateReferenceUnit function is called: https://github.com/odoo/odoo/blob/9fb46cdbc553e7ac91aeccf9779af37c018a7327/addons/uom/static/src/components/many2x_uom_tags/many2x_uom_tags.js#L38 In this function, a "search_read" is performed to fetch the product: https://github.com/odoo/odoo/blob/9fb46cdbc553e7ac91aeccf9779af37c018a7327/addons/uom/static/src/components/many2x_uom_tags/many2x_uom_tags.js#L43 However, by default, the search only looks for non-archived products. As a result, the archived product isn't found, and the code still tries to access its uom, which leads to an error: https://github.com/odoo/odoo/blob/9fb46cdbc553e7ac91aeccf9779af37c018a7327/addons/uom/static/src/components/many2x_uom_tags/many2x_uom_tags.js#L44 opw-4701779
After Brazilian electronic invoicing is completed, the system no longer shows a misleading warning about missing tax data. This reduces confusion for users because that tax data is intentionally cleared once it is no longer needed.
Original PR description
This doesn't end up blocking any flow, but it's confusing to have the warning there. l10n_br_edi_avatax_data is deliberately cleared after EDI, because it's no longer needed afterwards. opw-4673601
The POS IoT scale test now verifies that the price shown after weighing an item matches the expected amount. This helps prevent pricing errors from reaching users when products are sold by weight.
Original PR description
See community PR odoo/odoo#204757 for the bugfix. This commit adds a step to the scale tour to check that the computed price in the popup matches the expected value. The tour is also refactored slightly to make use of POS test helpers. task-4702650
Fixed an issue where dates in the Time Off Gantt view popover could appear with the day and month in the wrong order. This keeps the popover title consistent with the Gantt view and reduces confusion when reviewing time off entries.
Original PR description
Steps: - Navigate to Management > Time Off > Gantt View. - Click on a pill to open the popover. Issues: - The date format in the title showed 30/10/2025 instead of 03/10/2025. - Causing inconsistency between the title and the Gantt view. Fix: Updated date formatting to ensure the title and popover both display dates are same in the MM/DD/YYYY format with leading zeros. Task - 4660785
Miscellaneous changes
With this commit, the mail's body and subject is rendered when it was sent to the vehicle's driver. task-4671895 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#203250
Original PR description
With this commit, the mail's body and subject is rendered when it was sent to the vehicle's driver. task-4671895 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#203250
This error occurs when `o.tax_totals` returns `False`, causing an AttributeError when accessed in the QWeb template. Steps to Reproduce : - Install the module `accountant.` - Go to Reporting and open Tax Return. - Open Closing Entry and Print. `AttributeError: 'bool' object has no attribute 'get'` The error occurs when printing the tax report for the first time. The system first attempts to display the document configuration popup for the user based on the account move. However, si
Original PR description
This error occurs when `o.tax_totals` returns `False`, causing an AttributeError when accessed in the QWeb template. Steps to Reproduce : - Install the module `accountant.` - Go to Reporting and open…
This error occurs when `o.tax_totals` returns `False`, causing an AttributeError when accessed in the QWeb template. Steps to Reproduce : - Install the module `accountant.` - Go to Reporting and open Tax Return. - Open Closing Entry and Print. `AttributeError: 'bool' object has no attribute 'get'` The error occurs when printing the tax report for the first time. The system first attempts to display the document configuration popup for the user based on the account move. However, since `o.tax_totals is not available` in the tax report `(as it is a journal entry)`, and when the user`Configure Document Layout`, it raises a validation error. At [1] we cannot print pdf when `move_type == entry` so it is better to hide `Print` button in this condition. This error is resolved by hiding the `Print` button in the `Tax Return` `Journal Entries`, as it only contains journal items. Link [1] : https://github.com/odoo/odoo/blob/63fc0d1cefaf8f59acd0743a225d1002425ff156/addons/account/models/ir_actions_report.py#L72 sentry-6115648026 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#196542
**Problem**: Scroll was not working properly on selection change. **Solution**: Use the `getBoundingClientRect` of `Range` to calculate scrolling, which is more accurate in this case. Handle edge cases where the range consists only of `br` elements, which have no size or position. **Steps to reproduce**: 1. Go to Project → Task. 2. Type something and press `Shift + Enter` two or three times. 3. Press `Shift + Enter` twice. 4. Add a large image, making the scrollbar appear. 5. Go to
Original PR description
**Problem**: Scroll was not working properly on selection change. **Solution**: Use the `getBoundingClientRect` of `Range` to calculate scrolling, which is more accurate in this case. Handle edge cases where the range consists only of `br` elements, which have no size or position. **Steps to reproduce**: 1. Go to Project → Task. 2. Type something and press `Shift + Enter` two or three times. 3. Press `Shift + Enter` twice. 4. Add a large image, making the scrollbar appear. 5. Go to the top and try selecting the text. - **Issue**: The scroll automatically moves down to the image every time, preventing selection of the intended text. **opw-4686994** --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#204506
When you add a table via "/table" when you're in editing mode, and if there's a lot of content, then the content overlaps. This is noticable in the small devices as well as bigger devices. We'll stop the overflow by using overflow-wrap: break-word. Steps To Reproduce on Runbot: 1. Go to editor via website/elearning. 2. Add table via command "/table" 4. Make the table like size 11*2, and keep typing on a cell, eventually the text will start overflowing. opw-4317744 Forward-Port-Of:
Original PR description
When you add a table via "/table" when you're in editing mode, and if there's a lot of content, then the content overlaps. This is noticable in the small devices as well as bigger devices. We'll stop the overflow by using overflow-wrap: break-word. Steps To Reproduce on Runbot: 1. Go to editor via website/elearning. 2. Add table via command "/table" 4. Make the table like size 11*2, and keep typing on a cell, eventually the text will start overflowing. opw-4317744 Forward-Port-Of: odoo/odoo#192128
The 'object-fit' CSS property is currently not whitelisted in the sanitizer, leading to images not being displayed correctly in mails. opw-4655989 Forward-Port-Of: odoo/odoo#205028
Original PR description
The 'object-fit' CSS property is currently not whitelisted in the sanitizer, leading to images not being displayed correctly in mails. opw-4655989 Forward-Port-Of: odoo/odoo#205028
Recently, we've face an issue when multiple orders were opened. When one of them was paid, loyalty points were applied for all other opened orders. A fix has been applied to correct the situation: https://github.com/odoo/odoo/commit/2dcad5f32693471588bbe605601d3346b14196be Afterward it appears that the fix does not get rid of the problem 100% of the time. When there are more than 1 order on the payment screen with payment lines covering the total amount, and when one of them is finalized,
Original PR description
Recently, we've face an issue when multiple orders were opened. When one of them was paid, loyalty points were applied for all other opened orders. A fix has been applied to correct the situation:…
Recently, we've face an issue when multiple orders were opened. When one of them was paid, loyalty points were applied for all other opened orders. A fix has been applied to correct the situation: https://github.com/odoo/odoo/commit/2dcad5f32693471588bbe605601d3346b14196be Afterward it appears that the fix does not get rid of the problem 100% of the time. When there are more than 1 order on the payment screen with payment lines covering the total amount, and when one of them is finalized, the other orders are also getting points applied. Why the fix: ------------ The fix mentionned above uses `is_paid()` as a filter to select which orders should get points applied. It seems like `is_paid` is intended to be used to know if the payment lines cover the order amount before the order is truly finalized. https://github.com/odoo/odoo/blob/8be96595ce5795df25b9b7dbea14a0f8c75a804c/addons/point_of_sale/static/src/app/models/pos_order.js#L905-L911 We change the condition to be based on the state of the order instead. opw-4677541 Forward-Port-Of: odoo/odoo#204942
Versions -------- - 17.0+ Steps ----- 1. pay for a cart in eCommerce using Xendit; 2. leave the confirmation page before the payment confirms; 3. open cart & empty it. Issue ----- The payment gets confirmed for an empty cart. Cause ----- If a sale order has a transaction linked with a state of `pending`, `authorized` or `done`, the next call to `website.sale_get_order` will no longer return the order that was paid. The transaction's state only changes away from `draft` afte
Original PR description
Versions -------- - 17.0+ Steps ----- 1. pay for a cart in eCommerce using Xendit; 2. leave the confirmation page before the payment confirms; 3. open cart & empty it. Issue ----- The payment gets…
Versions
--------
- 17.0+
Steps
-----
1. pay for a cart in eCommerce using Xendit;
2. leave the confirmation page before the payment confirms;
3. open cart & empty it.
Issue
-----
The payment gets confirmed for an empty cart.
Cause
-----
If a sale order has a transaction linked with a state of `pending`, `authorized` or `done`, the next call to `website.sale_get_order` will no longer return the order that was paid.
The transaction's state only changes away from `draft` after receiving notification data from the provider. For Xendit, this can take up to half an hour[^1], leaving customers with a lot of time to (unintentionally) modify the cart they paid for.
Solution
--------
Use Xendit's `success_redirect_url` to mark transactions as pending while waiting for full notification data.
This way, any attempt to change the cart will force open a new one.
opw-4438779
[^1]: for this ticket's case:
8:26 AM: payment was sent to Xendit for Rp 18,000,000.00
8:39 AM: customer emptied their cart, setting total to Rp 0.00
8:56 AM: received confirmation that the transaction for Rp 18,000,000.00 was confirmed
Forward-Port-Of: odoo/odoo#204863
Forward-Port-Of: odoo/odoo#201611Versions -------- - 17.0+ Steps ----- 1. Configure website to prevent sale of zero-priced products; 2. add a zero-priced product as an alternative product to a product; 3. open the product in eCommerce. Issue ----- The alternative products block with the zero-priced product isn't shown. Cause ----- The `_get_products_alternative_products` method filters out zero-priced products out of its end result. It is the only snippet filter to do this. Solution -------- Don't filter
Original PR description
Versions -------- - 17.0+ Steps ----- 1. Configure website to prevent sale of zero-priced products; 2. add a zero-priced product as an alternative product to a product; 3. open the product in eCommerce. Issue ----- The alternative products block with the zero-priced product isn't shown. Cause ----- The `_get_products_alternative_products` method filters out zero-priced products out of its end result. It is the only snippet filter to do this. Solution -------- Don't filter out zero-priced products, as users may still want those products to be visible, even if not available for sale. opw-4443410 Forward-Port-Of: odoo/odoo#204777
Steps to reproduce: - Install sale, project apps - Create a service product that creates a task in a project - Create a quotation with this product and order line qty < 0 - Confirm the quotation to a sales order A traceback is thrown stating that the product lacks a project to create a task in. In previous versions, negative qty sales orders were allowed as refunds, but no task was created for them. The issue is in `_timesheet_service_generation`, where -ve qty is treated as if no proj
Original PR description
Steps to reproduce: - Install sale, project apps - Create a service product that creates a task in a project - Create a quotation with this product and order line qty < 0 - Confirm the quotation to a sales order A traceback is thrown stating that the product lacks a project to create a task in. In previous versions, negative qty sales orders were allowed as refunds, but no task was created for them. The issue is in `_timesheet_service_generation`, where -ve qty is treated as if no project is set for the product. This is incorrect since refunds should be allowed for service products. This fix ensures that negative qty sales orders function as refunds without triggering task creation. opw-4669488 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#204258
## Pull Request HOOT (PRHOOT) 30 This pull requests brings various improvements and fixes to Hoot and the Odoo unit test ecosystem. See the different commit messages for more details. Note: these changes are made in stable to avoid having to support multiple versions of the HOOT API. As such, these changes are intended to be strictly limited to unit tests as to not put the rest of the code base at risk. Enterprise: https://github.com/odoo/enterprise/pull/82351 --- I confirm I have s
Original PR description
## Pull Request HOOT (PRHOOT) 30 This pull requests brings various improvements and fixes to Hoot and the Odoo unit test ecosystem. See the different commit messages for more details. Note: these changes are made in stable to avoid having to support multiple versions of the HOOT API. As such, these changes are intended to be strictly limited to unit tests as to not put the rest of the code base at risk. Enterprise: https://github.com/odoo/enterprise/pull/82351 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#203713
**Before this commit:** The fiscal position computation method did not depend on `gst_treatment`, causing issues where changes to `gst_treatment` were not detected. As a result, the computation did not trigger as expected, leading to incorrect fiscal position determination. **After this commit:** The computation method now depends on `gst_treatment`, ensuring that any changes to it trigger a recalculation. This guarantees accurate fiscal position computation as required. --- I confi
Original PR description
**Before this commit:** The fiscal position computation method did not depend on `gst_treatment`, causing issues where changes to `gst_treatment` were not detected. As a result, the computation did not trigger as expected, leading to incorrect fiscal position determination. **After this commit:** The computation method now depends on `gst_treatment`, ensuring that any changes to it trigger a recalculation. This guarantees accurate fiscal position computation as required. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#203643 Forward-Port-Of: odoo/odoo#203445
I spotted three mistakes in the naming of the lines in the Modelo 303 and 390 reports. This PR fixes them and updates the .po, .pot files accordingly. Forward-Port-Of: odoo/odoo#201810 Forward-Port-Of: odoo/odoo#200201
Original PR description
I spotted three mistakes in the naming of the lines in the Modelo 303 and 390 reports. This PR fixes them and updates the .po, .pot files accordingly. Forward-Port-Of: odoo/odoo#201810 Forward-Port-Of: odoo/odoo#200201
Avoid using a set when loading server-wide modules to ensure a deterministic and consistent module loading order. This change ensures 'base' and 'web' are always loaded in that specific order, improving predictability. Forward-Port-Of: odoo/odoo#204967
Original PR description
Avoid using a set when loading server-wide modules to ensure a deterministic and consistent module loading order. This change ensures 'base' and 'web' are always loaded in that specific order, improving predictability. Forward-Port-Of: odoo/odoo#204967
**Problem**: On copy as HTML, if the content contains images saved on the server, the URLs will not include the origin. When pasted outside of Odoo (for example, in Gmail), the images will not be loaded. **Solution**: Add the origin to `img` tag `src` attributes when copying content. **Steps to reproduce**: 1. Paste an image in the editor. 2. Copy all content (including the image). 3. Paste it elsewhere as HTML (e.g., Gmail). 4. Observe that the HTML is pasted but the image is not lo
Original PR description
**Problem**: On copy as HTML, if the content contains images saved on the server, the URLs will not include the origin. When pasted outside of Odoo (for example, in Gmail), the images will not be loaded. **Solution**: Add the origin to `img` tag `src` attributes when copying content. **Steps to reproduce**: 1. Paste an image in the editor. 2. Copy all content (including the image). 3. Paste it elsewhere as HTML (e.g., Gmail). 4. Observe that the HTML is pasted but the image is not loaded. **opw-4652753** --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#204934
**Before this commit:** Long question and answers overlap the wizard while dragging with the handler. **After this commit:** Long question and answers do not overlap the wizard while dragging with handler. task-4452311 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#202257
Original PR description
**Before this commit:** Long question and answers overlap the wizard while dragging with the handler. **After this commit:** Long question and answers do not overlap the wizard while dragging with handler. task-4452311 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#202257
Commit f494e9d addressed an issue with an edge case of move/picking state conflicts. But in v16 this has the adverse effect of breaking valuation for scrap actions by generating additional corrective SVLs during the confirmation of a stock scrap. We should revert the change for v16, as the original use-case is very non-critical and the more changes made in this version, the higher chances of inadvertently breaking other things. opw-4574728 Forward-Port-Of: odoo/odoo#203945 Forward-Port
Original PR description
Commit f494e9d addressed an issue with an edge case of move/picking state conflicts. But in v16 this has the adverse effect of breaking valuation for scrap actions by generating additional corrective SVLs during the confirmation of a stock scrap. We should revert the change for v16, as the original use-case is very non-critical and the more changes made in this version, the higher chances of inadvertently breaking other things. opw-4574728 Forward-Port-Of: odoo/odoo#203945 Forward-Port-Of: odoo/odoo#203478
Before this PR: - A user with no access attempts to react with emojis on a comment, resulting in a traceback. After this PR: - The buttons for adding emoji reactions to comments will be hidden for that users. Task-4452408 Forward-Port-Of: odoo/odoo#193191
Original PR description
Before this PR: - A user with no access attempts to react with emojis on a comment, resulting in a traceback. After this PR: - The buttons for adding emoji reactions to comments will be hidden for that users. Task-4452408 Forward-Port-Of: odoo/odoo#193191
### Current behavior before PR: - Changing the protocol (http ↔ https) of an internal link in the editor caused a traceback due to a failed fetch request. ### Desired behavior after PR is merged: - The URL now always follows the current page's protocol, preventing mixed content issues and fetch errors. task-4531783 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#201146
Original PR description
### Current behavior before PR: - Changing the protocol (http ↔ https) of an internal link in the editor caused a traceback due to a failed fetch request. ### Desired behavior after PR is merged: - The URL now always follows the current page's protocol, preventing mixed content issues and fetch errors. task-4531783 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#201146
Discounts on non recurring products were being recomputed every time the subscription was paused and resumed. Added a protecting similar to action_confirm in order to prevent this behavior. opw-4440500 Forward-Port-Of: odoo/enterprise#82858
Original PR description
Discounts on non recurring products were being recomputed every time the subscription was paused and resumed. Added a protecting similar to action_confirm in order to prevent this behavior. opw-4440500 Forward-Port-Of: odoo/enterprise#82858
PR https://github.com/odoo/enterprise/pull/82924 makes use of the field l10n_ar_currency_rate. But that field is not present in Odoo versions above 17.0 This field was removed in favor of invoice_currecy_rate from account_move, that stores the currency rate used for a document in Odoo 17 and above. This fix adapts the l10n_ar module to use that field instead. opw-4708505 Forward-Port-Of: odoo/enterprise#82974
Original PR description
PR https://github.com/odoo/enterprise/pull/82924 makes use of the field l10n_ar_currency_rate. But that field is not present in Odoo versions above 17.0 This field was removed in favor of invoice_currecy_rate from account_move, that stores the currency rate used for a document in Odoo 17 and above. This fix adapts the l10n_ar module to use that field instead. opw-4708505 Forward-Port-Of: odoo/enterprise#82974
Partial revert of the odoo/enterprise#78827 fix. The payment due date is in facts the payment date itself. This way we are able to handle different lines each with a different due date. The user will have to put it correctly manually in the Register Payment wizard even if the Payment Terms are specified on the invoice. Ticket [link](https://www.odoo.com/odoo/project/967/tasks/4703520) opw-4703520 Forward-Port-Of: odoo/enterprise#82950
Original PR description
Partial revert of the odoo/enterprise#78827 fix. The payment due date is in facts the payment date itself. This way we are able to handle different lines each with a different due date. The user will have to put it correctly manually in the Register Payment wizard even if the Payment Terms are specified on the invoice. Ticket [link](https://www.odoo.com/odoo/project/967/tasks/4703520) opw-4703520 Forward-Port-Of: odoo/enterprise#82950
## Pull Request HOOT (PRHOOT) 30 This pull requests brings various improvements and fixes to Hoot and the Odoo unit test ecosystem. See the different commit messages for more details. Note: these changes are made in stable to avoid having to support multiple versions of the HOOT API. As such, these changes are intended to be strictly limited to unit tests as to not put the rest of the code base at risk. Community: https://github.com/odoo/odoo/pull/203713 --- I confirm I have signed
Original PR description
## Pull Request HOOT (PRHOOT) 30 This pull requests brings various improvements and fixes to Hoot and the Odoo unit test ecosystem. See the different commit messages for more details. Note: these changes are made in stable to avoid having to support multiple versions of the HOOT API. As such, these changes are intended to be strictly limited to unit tests as to not put the rest of the code base at risk. Community: https://github.com/odoo/odoo/pull/203713 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/enterprise#82351
- Replacing all special characters in generated EFT files with normal ascii counterparts to fit the requirements of the CPA005 standard. - Adding an assert for it in tests. task-4609483 Forward-Port-Of: odoo/enterprise#81015
Original PR description
- Replacing all special characters in generated EFT files with normal ascii counterparts to fit the requirements of the CPA005 standard. - Adding an assert for it in tests. task-4609483 Forward-Port-Of: odoo/enterprise#81015
In studio, editing a kanban, activate show invisible elements if needed Before this commit, when the footer had many items, those were not wrapped so, they overflew under the next card and were unreachable and unclickable. After this commit the overflowing elements are reachable and clickable, but still outside of the kanban box. They just have a z-index high enough to be visible and reachable. The motivation behind this choice is that we cannot really apply targetted visual rules as th
Original PR description
In studio, editing a kanban, activate show invisible elements if needed Before this commit, when the footer had many items, those were not wrapped so, they overflew under the next card and were unreachable and unclickable. After this commit the overflowing elements are reachable and clickable, but still outside of the kanban box. They just have a z-index high enough to be visible and reachable. The motivation behind this choice is that we cannot really apply targetted visual rules as those would betray the actual visual on the view in normal mode. task-4609581 Forward-Port-Of: odoo/enterprise#81820
Before this commit, the fetch error was not correctly caught, leading to a crash of the runbot when the server was not reachable. runbot: 160959 Forward-Port-Of: odoo/enterprise#82431
Original PR description
Before this commit, the fetch error was not correctly caught, leading to a crash of the runbot when the server was not reachable. runbot: 160959 Forward-Port-Of: odoo/enterprise#82431
This commit fixes an issue with the public sidebar. When you unfold an article the unfolding method was never linked to all the elements needed to unfold any children article. Now when clicking on the unfold button, we are adding the event on each children of the unfolded articles. Forward-Port-Of: odoo/enterprise#82003
Original PR description
This commit fixes an issue with the public sidebar. When you unfold an article the unfolding method was never linked to all the elements needed to unfold any children article. Now when clicking on the unfold button, we are adding the event on each children of the unfolded articles. Forward-Port-Of: odoo/enterprise#82003
When you apply a journal entry action (e.g. Create Vendor Bill) to several documents at once, you should be redirected to the journal list view. Since version 18.0, you're redirected to the form view of the last entry you've just created. The corresponding actions have several sub-actions and cannot be launched on several records at the same time. The selected documents are processed individually and the last sub-action returns systematically a form view. To fix this, we inject a con
Original PR description
When you apply a journal entry action (e.g. Create Vendor Bill) to several documents at once, you should be redirected to the journal list view. Since version 18.0, you're redirected to the form view of the last entry you've just created. The corresponding actions have several sub-actions and cannot be launched on several records at the same time. The selected documents are processed individually and the last sub-action returns systematically a form view. To fix this, we inject a context key containing the ids of the selection.Then the last sub-action uses it to determine the appropriate view(s) to return. task-4606751 Forward-Port-Of: odoo/enterprise#80273
When the parent product has a less precise rounding than its component, the indirect demand may sometimes be bypassed because float_compare will round one value to zero and compare it to zero, making them equal. Steps: - create product FINAL, UoM rounding at 1.0 - create product COMPONENT, different UoM with rounding at 0.01 - create a BoM for 16 units of FINAL, with COMPONENT at 0.4 on bom line - create MPS record for FINAL with its new BoM - set the safety stock of MPS FINAL at 10 and
Original PR description
When the parent product has a less precise rounding than its component, the indirect demand may sometimes be bypassed because float_compare will round one value to zero and compare it to zero, making them equal. Steps: - create product FINAL, UoM rounding at 1.0 - create product COMPONENT, different UoM with rounding at 0.01 - create a BoM for 16 units of FINAL, with COMPONENT at 0.4 on bom line - create MPS record for FINAL with its new BoM - set the safety stock of MPS FINAL at 10 and its minimum to replenish at 16 Issue: The indirect demand of MPS COMPONENT is not computed because float_compare will round (0.025*16) to zero and compare it with 0, thus bypassing the creation of indirect demand. Fix: Always use the more precise rounding between a product and its component. opw-4654955 Forward-Port-Of: odoo/enterprise#82944