Monday, May 27, 2024
32 changes · saas-17.2
Enhancements to existing features
This update adjusts automated checks for the website rental stock feature so they stay aligned with recent changes in the core Odoo platform. It helps keep quality controls reliable without changing customer-facing rental or stock behavior.
Original PR description
Adapt tests to community change See also: - https://github.com/odoo/odoo/pull/166609
When users copy charts in spreadsheets, links back to the relevant Odoo menu are now preserved. This avoids losing navigation context and makes duplicated charts behave consistently with the originals.
Original PR description
## Task Description: When copying a chart in a spreadsheet, the link to the Odoo menu is not kept This PR aims to fix it by taking advantage of the new clipboard refactoring, with a new clipboard handler saving the odooMenuLink in the clipboard data and putting it back in the newly created chart. ## Related Task: - Task: 3380568 - https://github.com/odoo/o-spreadsheet/pull/3670
Resolved issues and error corrections
Forms opened in pop-up dialogs no longer include an unnecessary hidden discussion panel. This prevents unwanted spacing and horizontal scrollbars, making dialog forms cleaner and easier to use.
Original PR description
Completely remove the unnecessary chatter node when the form is in a dialog instead of simply hiding it with a d-none css class. This also fixes css rules that used the presence of a chatter to differentiate between a basic form and a modal form. For example, this related PR adds a padding right to forms when the chatter is present aside. However as a hidden chatter is also present when the form is in a modal, the padding right is applied and a horizontal scrollbar appears at the bottom of the dialog. This fix prevents it to happen. related PR: https://github.com/odoo/odoo/pull/149832 Task-10888 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
Description of the issue/feature this PR addresses: Improve versatility of `_get_cart_qty` method for 'product.product' model. As of now, this method automatically returns zero, for all products that allow ordering when out-of-stock. This bit of logic is only necessary in one place (to generate combination info to display in `website_sale_stock.product_availability` view), making the method effectively useless in other places, like community modules. This commit simplifies the `_get_cart_qty`
Original PR description
Description of the issue/feature this PR addresses: Improve versatility of `_get_cart_qty` method for 'product.product' model. As of now, this method automatically returns zero, for all products that…
Description of the issue/feature this PR addresses: Improve versatility of `_get_cart_qty` method for 'product.product' model. As of now, this method automatically returns zero, for all products that allow ordering when out-of-stock. This bit of logic is only necessary in one place (to generate combination info to display in `website_sale_stock.product_availability` view), making the method effectively useless in other places, like community modules. This commit simplifies the `_get_cart_qty` method logic, to make it more usable, and delegates the removed check only to the `_get_additionnal_combination_info` override. This also allows the method to be used in `_get_cart_and_free_qty`, to avoid needing to override cart quantity acquisition logic in multiple places. Current behavior before PR: The `_get_cart_qty` method, automatically returns zero, for all products, that allow ordering out-of-stock, preventing acquisition of cart quantity using this method, for these products. Desired behavior after PR is merged: Being able to get the current cart quantity for all products, using this method. See also: - https://github.com/odoo/enterprise/pull/63191 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#164785
This change reverts a previous adjustment to rental stock tests because a related change introduced a problem. It helps keep the website rental stock behavior aligned with the stable version while the underlying issue is addressed.
Original PR description
This reverts commit 07b6077e51d4956e5d5d5ea72526db0e8098f507. The related community commit introduced an issue and has to be reverted.
This change prevents an error when staff open the restaurant Mobile View after a register has been closed and there are no active orders. It keeps the self-ordering page accessible instead of triggering a backend failure, improving reliability for restaurant operations.
Original PR description
This error usually occurs when there are no active orders present, and we've closed the register and then tried to access the ``Mobile View`` feature. Steps to reproduce: - Install the…
This error usually occurs when there are no active orders present, and we've closed the register and then tried to access the ``Mobile View`` feature. Steps to reproduce: - Install the ``pos_restaurant`` and ``point_of_sale`` modules - Make sure there are no active orders in the restaurant - Dashboard > Open Register > Open session > Close Register - Dashboard > Restaurant > Dropdown Menu > Mobile View - An Error will be generated in the terminal Traceback : ``ValueError: bus.Bus only string channels are allowed.`` This situation arises because we have two self-ordering modes: i) ``Mobile`` and ii) ``kiosk``. When the condition at [1] is evaluated, it will become false because the session has been closed, causing ``pos_config.has_active_session`` to be false. Additionally, since the mode is ``Mobile``, the condition in the ``elif`` statement at [1] also evaluates to false. As a result, we will get the value of ``config_access_token`` as a boolean value from line [2] because the value of ``config_access_token`` will not be set from both of the above conditions. Due to ``config_access_token`` being a boolean value, the value of ``channels`` ends up being a boolean value. This commit will fix the above error by providing an empty string within ``config_access_token``, rather than boolean values. So, the value of ``channels`` will consistently be a string. [1]: https://github.com/odoo/odoo/blob/16120774d6e7b16b44f771ca8224426e78676295/addons/pos_self_order/controllers/self_entry.py#L35-L47 [2]: https://github.com/odoo/odoo/blob/16120774d6e7b16b44f771ca8224426e78676295/addons/pos_self_order/controllers/self_entry.py#L16C8-L23C50 sentry-5136273134 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Settings page now properly activates developer mode when users click the option. This ensures administrators can access advanced configuration tools without needing a manual workaround or page refresh.
Original PR description
Steps to reproduce ================== - Go to settings - Click on "Activate the developer mode" => Nothing happens Cause of the issue ================== The page isn't reloaded Solution ======== Use the router and pass the reload option. The same call is done in debug_provider.js opw-3922717
Before this commit, recomputing the taxes on a sale order after updating the fiscal position will not update the `price_unit` set on the sale order lines. As a consequence, when taxes included in the price are mapped by the new fiscal position, this will change the price before taxes. In contrast, when adding the same product after updating the fiscal position, the `price_unit` does reflect the changed taxes and will adapt the `price_unit` to make sure the price before taxes stays the same.
Original PR description
Before this commit, recomputing the taxes on a sale order after updating the fiscal position will not update the `price_unit` set on the sale order lines. As a consequence, when taxes included in the price are mapped by the new fiscal position, this will change the price before taxes. In contrast, when adding the same product after updating the fiscal position, the `price_unit` does reflect the changed taxes and will adapt the `price_unit` to make sure the price before taxes stays the same. This makes sense: let's say the fiscal position applies a tax exemption for a selected partner: this should not change the price before taxes. This commit makes sure the computed prices are the same, regardless of when the product was added: before or after changing the fiscal position. Ticket [here](https://www.odoo.com/web#model=project.task&id=3335939) opw-3335939 Forward-Port-Of: odoo/odoo#135948
Steps to reproduce: ------------------- - create an employee at a time (E) - create a public holiday at some point in the future (PH) - create a user linked to the employee (U) With E < PH < U Issue: ------ The user has no timesheets linked to him/her, even though the employee was already present. As a result, the user does not see the timesheet in the timesheet grid. Solution: --------- Update the timesheet `user_id` field if an employee's user is modified. opw-3876732
Original PR description
Steps to reproduce: ------------------- - create an employee at a time (E) - create a public holiday at some point in the future (PH) - create a user linked to the employee (U) With E < PH < U Issue: ------ The user has no timesheets linked to him/her, even though the employee was already present. As a result, the user does not see the timesheet in the timesheet grid. Solution: --------- Update the timesheet `user_id` field if an employee's user is modified. opw-3876732 Forward-Port-Of: odoo/odoo#166578 Forward-Port-Of: odoo/odoo#166189
Steps to reproduce: ------------------- - create a product: - service - based on timesheet - create on order: project & task - create a sale order with this product - confirm the sale order - go on the created task - add timesheets with an employee - go to timesheet - validate created timesheets - go to the project settings - in invoicing tab, change de sale order item for the employee Issue: ------ The sale order item linked to the validated timesheets are mo
Original PR description
Steps to reproduce:
-------------------
- create a product:
- service
- based on timesheet
- create on order: project & task
- create a sale order with this product
- confirm the sale order
- go on the created task
- add timesheets with an employee
- go to timesheet
- validate created timesheets
- go to the project settings
- in invoicing tab, change de sale order item for the employee
Issue:
------
The sale order item linked to the validated timesheets are modified.
This behaviour causes negative side effects.
A validated timesheet should no longer be modified, but the backend logic does, which is not consistent.
Solution:
---------
Make the condition that filters timesheets to update take account of whether the timesheet is validated or not.
opw-3791062
Forward-Port-Of: odoo/odoo#166665
Forward-Port-Of: odoo/odoo#162558Fine tunning of 447ac7fb97b5 Forward-Port-Of: odoo/odoo#166603 Forward-Port-Of: odoo/odoo#166483
Original PR description
Fine tunning of 447ac7fb97b5 Forward-Port-Of: odoo/odoo#166603 Forward-Port-Of: odoo/odoo#166483
Issue: In the upgraded version, we have implemented the condition vals['name'] == _('New'). However, the data type of the 'name' field is character and translate = False. Additionally, the default value for the 'name' field is set to 'New', causing this condition to evaluate to false and consequently terminating the execution of the if block. Solution: To address this, we propose changing the condition to vals['name'] == 'New'
Original PR description
Issue: In the upgraded version, we have implemented the condition vals['name'] == _('New'). However, the data type of the 'name' field is character and translate = False. Additionally, the default…
Issue: In the upgraded version, we have implemented the condition vals['name'] == _('New').
However, the data type of the 'name' field is character and translate = False.
Additionally, the default value for the 'name' field is set to 'New', causing
this condition to evaluate to false and consequently terminating the execution
of the if block.
Solution: To address this, we propose changing the condition to vals['name'] == 'New'
to ensure correct comparison. This modification is warranted due to the
[configuration](https://github.com/odoo/odoo/blob/89fbb75659ba71b8c76dddd62ba331966161f59b/addons/repair/models/repair.py#L31)
of the field:
The field is not translatable.
The field is required and set to readonly true, preventing customers from inputting values.
The default value for the field is set to 'New'.
Before:
Unable to obtain the auto-generated sequence (receiving default value 'New').
After:
The sequence is generated automatically.
OPW-3887638
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#165771- Previously,Odoo considers the invoice address as the place of supply. However, according to GST regulations, the place of supply may not always be the same as the invoice address. For movable goods, it should be the place of delivery and for Bill-to-Ship-to transactions, it should be the invoice address. - In situations other than Bill-to-Ship-to transactions, choose customer's delivery address as place of supply. task-3715853 Forward-Port-Of: odoo/odoo#160448
Original PR description
- Previously,Odoo considers the invoice address as the place of supply. However, according to GST regulations, the place of supply may not always be the same as the invoice address. For movable goods, it should be the place of delivery and for Bill-to-Ship-to transactions, it should be the invoice address. - In situations other than Bill-to-Ship-to transactions, choose customer's delivery address as place of supply. task-3715853 Forward-Port-Of: odoo/odoo#160448
Add a setup allowing you to easily create xmls at today date and switch from external to standard mode. That way, in external mode, the XMLs are really send to the SAT in order to ensure their validity. community PR: https://github.com/odoo/odoo/pull/163938 Forward-Port-Of: odoo/enterprise#63118 Forward-Port-Of: odoo/enterprise#61741
Original PR description
Add a setup allowing you to easily create xmls at today date and switch from external to standard mode. That way, in external mode, the XMLs are really send to the SAT in order to ensure their validity. community PR: https://github.com/odoo/odoo/pull/163938 Forward-Port-Of: odoo/enterprise#63118 Forward-Port-Of: odoo/enterprise#61741
The commit 0c84f2d86b982d1b244622f2d86ca474f0ba496b fixes the fact than users could scan any locations as the source, even if the scanned location is not related to the picking's source location. But for immediate transfer, it is not very wise to limited which location the user can scan because they have no way to set source or destination for picking created on the fly from the Barcode app. This commit fixes this issue. How to reproduce: - Inventory -> Settings -> Enable "Multi-Step Routes
Original PR description
The commit 0c84f2d86b982d1b244622f2d86ca474f0ba496b fixes the fact than users could scan any locations as the source, even if the scanned location is not related to the picking's source location. But…
The commit 0c84f2d86b982d1b244622f2d86ca474f0ba496b fixes the fact than users could scan any locations as the source, even if the scanned location is not related to the picking's source location. But for immediate transfer, it is not very wise to limited which location the user can scan because they have no way to set source or destination for picking created on the fly from the Barcode app. This commit fixes this issue. How to reproduce: - Inventory -> Settings -> Enable "Multi-Step Routes"; - Go to your warehouse and choose 3 steps for incoming and/or outgoing shipments; - Go to the Barcode App > Operations > Internal Transfers > New; - In the newly created transfer, try to scan who is not a sublocation of WH/Stock (WH/input for example, barcode: WH-INPUT) - :arrow_right: An error message is displayed because you are not allowed to scan this location. The exact same issue happens for destination too since 61d378b0a49ba734cff84a39aa2693fe4226225d. Also, fix a minor unrelated bug where locations on the barcode line are not correctly written when there name include the picking's defaut location's name (eg.: WH/Stock 2 when the default location is WH/Stock.) [OPW-3843358](https://www.odoo.com/web#id=3843358&cids=1&model=project.task&view_type=form) Forward-Port-Of: odoo/enterprise#63058 Forward-Port-Of: odoo/enterprise#62480
Steps to reproduce: - go to planning app - choose a month for a user without any planned or open shifts - publish - go to frontend via the email link - error raised Source: - many attributes like default_start are not present in planning_get reponse, trying to accessing default_start = undefined and converting it to a valid date that can be used to display the calendar raises an error. Solution: - when no_data = True, start function in fullcalendar should not compute anything as the
Original PR description
Steps to reproduce: - go to planning app - choose a month for a user without any planned or open shifts - publish - go to frontend via the email link - error raised Source: - many attributes like default_start are not present in planning_get reponse, trying to accessing default_start = undefined and converting it to a valid date that can be used to display the calendar raises an error. Solution: - when no_data = True, start function in fullcalendar should not compute anything as there are no data to display. task-3906551 task-3186609 Forward-Port-Of: odoo/enterprise#62941 Forward-Port-Of: odoo/enterprise#61866
Steps to reproduce: - Install `stock_barcode` - Create two product "aaa" and "bbb" with both of them being tracked by lots with the same lot number "123" - Open the Inventory app and go to Configuration > Operation Types > Delivery Orders - Enable Product in the Barcode App - Go to the barcode app > Operations > Delivery Orders and click on New - Scan 123 - Scan aaa (or bbb it probably depends on order of creation of product) - Scan 123 Issues: bbb has been added even though we
Original PR description
Steps to reproduce: - Install `stock_barcode` - Create two product "aaa" and "bbb" with both of them being tracked by lots with the same lot number "123" - Open the Inventory app and go to…
Steps to reproduce: - Install `stock_barcode` - Create two product "aaa" and "bbb" with both of them being tracked by lots with the same lot number "123" - Open the Inventory app and go to Configuration > Operation Types > Delivery Orders - Enable Product in the Barcode App - Go to the barcode app > Operations > Delivery Orders and click on New - Scan 123 - Scan aaa (or bbb it probably depends on order of creation of product) - Scan 123 Issues: bbb has been added even though we never scanned it. The reason for this bug is that when we scan 123 we don't have it in the cache as such we make an RPC and store 123 in `missCache`. https://github.com/odoo/enterprise/blob/ed30bde4af5d77261f3a44ba4235fd435153c7ce/stock_barcode/static/src/lazy_barcode_cache.js#L184-L185 After this when we scan aaa we retrieve the record, and add the line as intended. The problem arise when we scan 123, since it's already in our cache. https://github.com/odoo/enterprise/blob/ed30bde4af5d77261f3a44ba4235fd435153c7ce/stock_barcode/static/src/lazy_barcode_cache.js#L130 However that record is not right since this lot is linked to the wrong product bbb. https://github.com/odoo/enterprise/blob/ed30bde4af5d77261f3a44ba4235fd435153c7ce/stock_barcode/static/src/lazy_barcode_cache.js#L135-L138 We will try to retrieve again the right record, however we will once again get a hit on the cache. As such no RPC call will be made to retrieve the lot we're looking for. We will go in the function once again, where we will have the same problem this time in the `if (model)` condition. https://github.com/odoo/enterprise/blob/ed30bde4af5d77261f3a44ba4235fd435153c7ce/stock_barcode/static/src/lazy_barcode_cache.js#L112-L115 Later in the execution we will get to this line where we call the function without a filters which will allow the wrong record to be added. https://github.com/odoo/enterprise/blob/ed30bde4af5d77261f3a44ba4235fd435153c7ce/stock_barcode/static/src/models/barcode_model.js#L943 The root of this problem lies in the way we set the key to the cache, since two product can share the same barcode we need a more precise cache key to differentiate them. The proposed solutions is to cache result based on the provided arguments to the function. This means fewer hit if we retrieve the same record with different filter for example, however it's safer as when we hit we are sure to get the right record. opw-3862263 Forward-Port-Of: odoo/enterprise#63094 Forward-Port-Of: odoo/enterprise#61844
TaskID: 3942303 Forward-Port-Of: odoo/enterprise#62956
Original PR description
TaskID: 3942303 Forward-Port-Of: odoo/enterprise#62956
The number of months worked in the previous year was not including previous occupations. Thus, the commissions were not added as the number of months was 0. Forward-Port-Of: odoo/enterprise#63160
Original PR description
The number of months worked in the previous year was not including previous occupations. Thus, the commissions were not added as the number of months was 0. Forward-Port-Of: odoo/enterprise#63160
Steps to reproduce: ------------------- - create a product: - service - based on timesheet - create on order: project & task - create a sale order with this product - confirm the sale order - go on the created task - add timesheets with an employee - go to timesheet - validate created timesheets - go to the project settings - in invoicing tab, change de sale order item for the employee Issue: ------ The sale order item linked to the validated timesheets are mo
Original PR description
Steps to reproduce:
-------------------
- create a product:
- service
- based on timesheet
- create on order: project & task
- create a sale order with this product
- confirm the sale order
- go on the created task
- add timesheets with an employee
- go to timesheet
- validate created timesheets
- go to the project settings
- in invoicing tab, change de sale order item for the employee
Issue:
------
The sale order item linked to the validated timesheets are modified.
This behaviour causes negative side effects.
A validated timesheet should no longer be modified, but the backend logic does, which is not consistent.
Solution:
---------
Make the condition that filters timesheets to update take account of whether the timesheet is validated or not.
opw-3791062
Forward-Port-Of: odoo/enterprise#63163
Forward-Port-Of: odoo/enterprise#61122To reproduce: Create an asset. Reevaluate, with an increase, last month. => the move of Value Increase has today's date. We decided to instead put the acquisition date of the child asset. (so it won't be the same in 16.0) opw-3922067 Forward-Port-Of: odoo/enterprise#63115 Forward-Port-Of: odoo/enterprise#63097
Original PR description
To reproduce: Create an asset. Reevaluate, with an increase, last month. => the move of Value Increase has today's date. We decided to instead put the acquisition date of the child asset. (so it won't be the same in 16.0) opw-3922067 Forward-Port-Of: odoo/enterprise#63115 Forward-Port-Of: odoo/enterprise#63097
Steps to reproduce the bug: - In Website edit mode. - Drop 2 "Columns" snippets. - Hide one of the columns in the first snippet by clicking on the "Hide on desktop" button of the "Column" options in the side panel. - Start to drag another snippet. - Bug: There is no dropzone between the 2 "Column" snippets. The issue happens because when the column becomes invisible, after clicking the button, the attribute `data-invisible="1"` is added to the column in the DOM thanks the 'snippet_o
Original PR description
Steps to reproduce the bug: - In Website edit mode. - Drop 2 "Columns" snippets. - Hide one of the columns in the first snippet by clicking on the "Hide on desktop" button of the "Column" options in…
Steps to reproduce the bug: - In Website edit mode. - Drop 2 "Columns" snippets. - Hide one of the columns in the first snippet by clicking on the "Hide on desktop" button of the "Column" options in the side panel. - Start to drag another snippet. - Bug: There is no dropzone between the 2 "Column" snippets. The issue happens because when the column becomes invisible, after clicking the button, the attribute `data-invisible="1"` is added to the column in the DOM thanks the 'snippet_option_visibility_update' event. However, this event then propagates to the column's parent elements (`<section>` and `<main>`). So, the attribute `data-invisible="1"` is also added to the `<section>`, causing the dropzone not to be inserted as expected. We should investigate this further later because it doesn't seem consistent. For now, we prefer not to make changes at this level to avoid introducing other bugs. In this commit, we change the selector that determines where not to insert dropzones so that it no longer considers `data-invisible="1"`. This was added by this commit [1], but it seems unnecessary, and ':not(:visible)' in the selector is sufficient to avoid placing dropzones between two non-visible elements. [1]: https://github.com/odoo/odoo/commit/f9bd3033b21dbd1e4487d6d6cd1d8d8fdfbfb2ac Forward-Port-Of: odoo/odoo#165797
refactor 'scan_barcode' method to use barcodes function task id: 3674936 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#155029 Forward-Port-Of: odoo/odoo#153993
Original PR description
refactor 'scan_barcode' method to use barcodes function task id: 3674936 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#155029 Forward-Port-Of: odoo/odoo#153993
If some of the taxes in l10n_hu have been deleted, the installation of l10n_hu_edi fails with a NotNullViolation. This is not ideal, because sometimes users have heavily customized taxes and may want to use the EDI without reloading the default taxes. We now avoid failing the installation if the tax configuration would fail. This therefore gives users 3 options: - manually setting the NAV tax code on their Hungarian taxes - reloading the CoA after installing l10n_hu_edi - uninstalling l
Original PR description
If some of the taxes in l10n_hu have been deleted, the installation of l10n_hu_edi fails with a NotNullViolation. This is not ideal, because sometimes users have heavily customized taxes and may want to use the EDI without reloading the default taxes. We now avoid failing the installation if the tax configuration would fail. This therefore gives users 3 options: - manually setting the NAV tax code on their Hungarian taxes - reloading the CoA after installing l10n_hu_edi - uninstalling l10n_hu_edi (if they don't want to use it) opw-3912298 Forward-Port-Of: odoo/odoo#166043
## Issue: - When a customer places an order on the website and there are errors in the shipping informations, such as an invalid address format, the shipping costs drop to 0€ if only one shipping method is available. - Despite these errors, Odoo does not block the "Pay now" button, allowing the customer to proceed and pay 0€ for shipping. ## Steps To Reproduce: - Install UPS US on your db and publish it. - unpublish the other shipping methods. - Go to /shop and purchase any product a
Original PR description
## Issue: - When a customer places an order on the website and there are errors in the shipping informations, such as an invalid address format, the shipping costs drop to 0€ if only one shipping…
## Issue:
- When a customer places an order on the website and there are errors in the shipping informations, such as an invalid address format, the shipping costs drop to 0€ if only one shipping method is available.
- Despite these errors, Odoo does not block the "Pay now" button, allowing the customer to proceed and pay 0€ for shipping.
## Steps To Reproduce:
- Install UPS US on your db and publish it.
- unpublish the other shipping methods.
- Go to /shop and purchase any product as a customer
- During the checkout process, add an address that has more than 35 characters
- Notice you'll be allowed to pay and your order will be confirmed.
In an other scenario:
- Install Fedex US on your db and publish it.
- Set Fedex service type to STANDARD_OVERNIGHT
- unpublish the other shipping methods.
- Go to /shop and purchase any product as a customer
- During the checkout process, set Hawaii in state/Povince
- Notice you'll be allowed to pay and your order will be confirmed even though Hawaii doesn't support STANDARD_OVERNIGHT shipping.
## Explanation and Solution:
- The first issue arises when there is only one shipping provider available; it gets selected by default. After this selection, the `start` method of `websiteSaleDelivery` is triggered, which attempts to force-click the already checked shipping carrier. Consequently, it returns without completing the logic because the click event handler `_onCarrierClick` dismisses with the following condition:
`if (radio.checked && !this._shouldDisplayPickupLocations(ev)) {return;}`
- The second problem occurs because the `start` method is triggered as soon as the `websiteSaleDelivery` public widget is rendered, which does not allow enough time for the `PaymentButton` to be rendered. This delay causes the `_disablePayButton` method to fail.
- To address the first issue, I added a flag `refreshclick` to indicate that the shipping carrier was set by default.
- To address the second issue, I modified the `_enableButton` method to actively disable the button if the status is false. This change ensures that the `PaymentButton` widget has sufficient time to render since `_enableButton` is called within `_handleCarrierUpdateResult` after awaiting the response from an RPC call.
opw-3844214
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#165832
Forward-Port-Of: odoo/odoo#161704### Issue: Trying to validate a wave transfer with an empty picking will raise and error. ### Expected behavior: The empty picking should be removed from the wave transfer and the rest of the operations should be validated. ### Steps to reproduce: - In the settings: enable Batch Transfers > Wave Transfers - Create 2 receipts: 1) 1 x product P1 2) 1 x product P2 - In the inventory overview, click on the dots of receipts > operations - Select your receipts > Add to w
Original PR description
### Issue: Trying to validate a wave transfer with an empty picking will raise and error. ### Expected behavior: The empty picking should be removed from the wave transfer and the rest of the…
### Issue:
Trying to validate a wave transfer with an empty picking will raise and error.
### Expected behavior:
The empty picking should be removed from the wave transfer and the rest of the operations should be validated.
### Steps to reproduce:
- In the settings: enable Batch Transfers > Wave Transfers
- Create 2 receipts:
1) 1 x product P1
2) 1 x product P2
- In the inventory overview, click on the dots of receipts > operations
- Select your receipts > Add to wave > Create new wave transfer
- Go to inventory > Operations > Transfers > Wave transfers
- Open your wave transfer and set the quantity of P1 to 0
### Cause of the issue:
Currently, only the empty pickings 'waiting for another operation' are removed from the batch when it is validated:
https://github.com/odoo/odoo/blob/3cfe548ee03f96713c7a6d462409be9c825d22e7/addons/stock_picking_batch/models/stock_picking_batch.py#L201-L204
In particlar, other empty pickings will not pass the sanity check: https://github.com/odoo/odoo/blob/3cfe548ee03f96713c7a6d462409be9c825d22e7/addons/stock_picking_batch/models/stock_picking_batch.py#L217-L218 and an operation error will be raised for them.
opw-3884043
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#163320**Current behavior before PR:** Opening a chatwindow for a channel the user is not a member of would result in an error. This occurs because the chatwindow' fold state is saved to the server, but the server expects the user be a member of the channel. **Steps to reproduce:** 1. Create a channel and change it's Authorized group to null making it public 2. Mention a user who is not a member of this channel. 3. Login through the mentioned user. 4. Open the systray and click on the mess
Original PR description
**Current behavior before PR:** Opening a chatwindow for a channel the user is not a member of would result in an error. This occurs because the chatwindow' fold state is saved to the server, but the server expects the user be a member of the channel. **Steps to reproduce:** 1. Create a channel and change it's Authorized group to null making it public 2. Mention a user who is not a member of this channel. 3. Login through the mentioned user. 4. Open the systray and click on the message notification. 5. It will open the chatwindow and throw the error. **Desired behavior after PR is merged:** Prevent saving the fold state to server if the user is not a member of the channel. task-[3890519](https://www.odoo.com/web?debug=1#id=3890519&cids=2&menu_id=6478&action=4043&model=project.task&view_type=form) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#163161
Inside our `_fetchQuiz` we pass the markup() to the quiz description to check that the description we have introduced is safe to be converted into html, the problem is that this markup() is not handling properly when the value of `quiz_data.slide_description` is false, so instead of not displaying anything we are sending a string of 'false'. Steps to reproduce: 1. Create quiz-type content inside a course in the e-learning app. 2. Do not add a description to the quiz. 3. Go to the website p
Original PR description
Inside our `_fetchQuiz` we pass the markup() to the quiz description to check that the description we have introduced is safe to be converted into html, the problem is that this markup() is not handling properly when the value of `quiz_data.slide_description` is false, so instead of not displaying anything we are sending a string of 'false'. Steps to reproduce: 1. Create quiz-type content inside a course in the e-learning app. 2. Do not add a description to the quiz. 3. Go to the website page of the course. 4. Open the quiz in fullscreen. 5. A "false" message is displayed on the top-left corner. opw-3887445 Forward-Port-Of: odoo/odoo#164549
Steps to reproduce: > The Company Currency is the Dollar > Create a product > Set FIFO and Manual valuation > Set BIlling policy as Ordered Quantities > Create Purchase order in Euro > Create Vendor bill in USD (10 $) > Now Receive the quantities > Check the valuation > Wrong value (15.92 $) the value should be 10$ (taken from the bill) Bug: In the case of BIlling policy on Ordered Quantities and PO in a foreign currency we assume the bill will be in same currency as the PO Fix:
Original PR description
Steps to reproduce: > The Company Currency is the Dollar > Create a product > Set FIFO and Manual valuation > Set BIlling policy as Ordered Quantities > Create Purchase order in Euro > Create Vendor…
Steps to reproduce: > The Company Currency is the Dollar > Create a product > Set FIFO and Manual valuation > Set BIlling policy as Ordered Quantities > Create Purchase order in Euro > Create Vendor bill in USD (10 $) > Now Receive the quantities > Check the valuation > Wrong value (15.92 $) the value should be 10$ (taken from the bill) Bug: In the case of BIlling policy on Ordered Quantities and PO in a foreign currency we assume the bill will be in same currency as the PO Fix: currently unit price is first computed in PO currency and then converted in the end to company currency added conversion from bill to PO opw-[3805454](https://www.odoo.com/web#id=3805454&view_type=form&model=project.task) also fixed a rounding issue opw-[3773413](https://www.odoo.com/web#id=3773413&view_type=form&model=project.task) alternative fix: compute everything in company currency (https://github.com/odoo/odoo/pull/155937) Forward-Port-Of: odoo/odoo#166346 Forward-Port-Of: odoo/odoo#162827
Default Price on POS would not show on older versions if there was a default pricelist set already on the POS. But would show default price if it was unset. This was not changed in the refactor, so the line that was referenced to see if default pricelist was set was referring to a variable that was no longer being set. Using the current default pricelist that is stored at pos.config.pricelist_id achieves the same functionality as before on this version of the POS. opw-3926123 --- I con
Original PR description
Default Price on POS would not show on older versions if there was a default pricelist set already on the POS. But would show default price if it was unset. This was not changed in the refactor, so the line that was referenced to see if default pricelist was set was referring to a variable that was no longer being set. Using the current default pricelist that is stored at pos.config.pricelist_id achieves the same functionality as before on this version of the POS. opw-3926123 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#166577
When company is not passed as parameter, take the company from the environment by consistency with 'retrieve_partner'. Also, search for a product explicitely linked to the company in priority. enterprise PR: https://github.com/odoo/enterprise/pull/61741 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#166597 Forward-Port-Of: odoo/odoo#163938
Original PR description
When company is not passed as parameter, take the company from the environment by consistency with 'retrieve_partner'. Also, search for a product explicitely linked to the company in priority. enterprise PR: https://github.com/odoo/enterprise/pull/61741 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#166597 Forward-Port-Of: odoo/odoo#163938
In september 2023 7422eb643c5922bde8c70edfbe7b6f8dad53c1d9 replaced this._rpc by `this.bindService("rpc")`. In may 2024 58324ee59946c7bfe9970b5202cce8d4a36a69b0 was forward-ported without adaptating it to the new way rpc is used. This is causing report of an error in some case when using stripe express checkout. note: in saas-17.1 the code has to be changed again to `await rpc`. opw-3917632 Forward-Port-Of: odoo/odoo#166602
Original PR description
In september 2023 7422eb643c5922bde8c70edfbe7b6f8dad53c1d9 replaced
this._rpc by `this.bindService("rpc")`.
In may 2024 58324ee59946c7bfe9970b5202cce8d4a36a69b0 was
forward-ported without adaptating it to the new way rpc is used.
This is causing report of an error in some case when using stripe
express checkout.
note: in saas-17.1 the code has to be changed again to `await rpc`.
opw-3917632
Forward-Port-Of: odoo/odoo#166602