Thursday, February 13, 2025
21 changes · saas-17.4
Enhancements to existing features
Customers now see more specific details when a card payment submission fails because information is incorrectly formatted. This makes it easier for users to understand what went wrong and correct their payment details without extra support.
Original PR description
When there was an error of bad formatted data on submitting card form, it was not clear for the user what was wrong. After this commit the details of the error message from Xendit (if any) will be displayed.
Resolved issues and error corrections
This fix prevents the same record from being processed more than once when users select grouped items in list views. It reduces the risk of unexpected errors during bulk updates or deletions by sending a clean list of selected records to the system.
Original PR description
In the context of grouping records on a Many2Many field (e.g. tags of tasks) in the list view, it's possible to select the same record multiple times. In such case, when modifying the selected records, there could be duplicated ids in the arguments of the different RPCs (write, unlink, call). Processing the same record multiple times in backend could cause unexpected issues. So in this PR, we filter out the duplicated records ids before each call, to work with a clean recordset in backend. version-17.4 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
Since odoo/odoo#128570, there was a typo in `sortPartnerSuggestions` (`searchTerms` instead of `searchTerm`) which caused searchTerm to have no effect. This PR fixes that typo and adds a test to make sure the searchTerm is included in the returned suggestions. Forward-Port-Of: odoo/odoo#197379
Original PR description
Since odoo/odoo#128570, there was a typo in `sortPartnerSuggestions` (`searchTerms` instead of `searchTerm`) which caused searchTerm to have no effect. This PR fixes that typo and adds a test to make sure the searchTerm is included in the returned suggestions. Forward-Port-Of: odoo/odoo#197379
Fixed an issue where email templates created for one mailing type, such as event registrations, could appear when creating a different type of mailing. This helps users choose only relevant templates and reduces the risk of sending messages with the wrong content.
Original PR description
Bug === 1. Create a mailing for an event registration 2. Add that mailing to the template 3. Create a new mailing for "mailing list" => The "event registration" template is proposed and it should be. Since 5226dc972560870d03e7e4bc5a838f1951b90ac7 , we removed the JS form view, which added `mailingFilterTemplates: true` in the env. That environment variable was responsible for the HTML component to filter the templates based on the model. Task-4568452
This fix ensures dark mode styling files for Gantt views are only loaded when appropriate, rather than being included with the standard light mode assets. It helps prevent unintended visual issues for restaurant appointment users while keeping the change limited to asset loading behavior.
Original PR description
This commit fixes an asset issue with web_gantt where the dark mode specific assets from web_gantt were included in the main (light mode) assets from pos_restaurant_appointment. Part of task-4571228
Duplicating a field service task no longer automatically carries over the warranty status from the original task. This helps avoid incorrect warranty handling and lets users decide whether the new intervention should be covered.
Original PR description
Before this commit, the under warranty field is always copied when the user duplicates a task which it does not make sense since the new task could not have exactly the same context and the intervention could be different. This commit avoid copying the under warranty field when the user duplicates a task to let the user decide if the new task should be also in warranty or not. opw-4571460
The appointment app no longer shows an appointment reservation status for regular calendar meetings. This prevents users who decline a standard meeting from seeing a misleading “Appointment Reserved” message, reducing confusion in email response flows.
Original PR description
Status indicator was designed independently from the calendar indicator. Overriding its behavior leads to the situation where we show appointment status instead of the calendar indicator. This commit attempts to keep the changes minimal so we are hiding the status indicator for non-appointment events from the appointment template. Reproduce --- - Install appointment. - Schedule a meeting in the calendar. - Open the "Decline" link from the received confirmation email (as public_user). - BUG: See "Appointment Reserved!" even tho we clicked "Decline" Note: The bug doesn't occur when the appointment is not installed. opw-[4295448](https://www.odoo.com/web#id=4295448&view_type=form&model=project.task)
--- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#197489
Original PR description
--- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#197489
Steps to reproduce: - Run project tour. - Change the language - Proceed with the tour Isuse: - The tours fails. Problem: - It is due to the triggers using english text in :contains. Fix: - Replace all the :contains with concrete triggers. task-4479518 Forward-Port-Of: odoo/odoo#194314
Original PR description
Steps to reproduce: - Run project tour. - Change the language - Proceed with the tour Isuse: - The tours fails. Problem: - It is due to the triggers using english text in :contains. Fix: - Replace all the :contains with concrete triggers. task-4479518 Forward-Port-Of: odoo/odoo#194314
We add the variable msg_id and references to the test mail template MAIL_EML_ATTACHMENT to allow to use it as a response to another mail. We also add "subject" to allow to use test-related subject. Task-3707821 Forward-Port-Of: odoo/odoo#154332
Original PR description
We add the variable msg_id and references to the test mail template MAIL_EML_ATTACHMENT to allow to use it as a response to another mail. We also add "subject" to allow to use test-related subject. Task-3707821 Forward-Port-Of: odoo/odoo#154332
Having no country on a portal user would cause attempting to edit personal information through the portal to have an internal server error. Added a check to country_id to ensure that the country_id is a numerical value before casting to an int to avoid this internal server error. opw-4309159 Forward-Port-Of: odoo/odoo#186374
Original PR description
Having no country on a portal user would cause attempting to edit personal information through the portal to have an internal server error. Added a check to country_id to ensure that the country_id is a numerical value before casting to an int to avoid this internal server error. opw-4309159 Forward-Port-Of: odoo/odoo#186374
Before this commit: === - The `pos-receipt-order-data` class was used as an XPath reference in multiple modules (l10n_fr_pos_cert, l10n_co_pos, pos_mercury, and pos_restaurant). - In point_of_sale, first of this class was used to add a QR code (pos_qr_code) to the receipt, but it was wrapped in a t-if="pos_qr_code" condition. - Due to this, the XPath content from other modules was only visible when pos_qr_code was present. After this commit: === - Added an empty `<div class="pos-rece
Original PR description
Before this commit: === - The `pos-receipt-order-data` class was used as an XPath reference in multiple modules (l10n_fr_pos_cert, l10n_co_pos, pos_mercury, and pos_restaurant). - In point_of_sale, first of this class was used to add a QR code (pos_qr_code) to the receipt, but it was wrapped in a t-if="pos_qr_code" condition. - Due to this, the XPath content from other modules was only visible when pos_qr_code was present. After this commit: === - Added an empty `<div class="pos-receipt-order-data" />` outside the conditional block. - This ensures that the XPath reference is always available. task-4552477 Forward-Port-Of: odoo/odoo#196915
### Issues: Creating and validating a picking from the barcode app does not behave correctly with respect to quality check trigger and creation. Depending on your flow, you might end up with QC created twice or with QC not being triggered before validation. ### Cause of the issues: The quality checks are created during the "_action_confirm" of moves: https://github.com/odoo/enterprise/blob/dd4a1ec4aaa7cbb95d6e40a8bb6ab1d6c88fc7b7/quality_control/models/stock_move.py#L12-L15 However, d
Original PR description
### Issues: Creating and validating a picking from the barcode app does not behave correctly with respect to quality check trigger and creation. Depending on your flow, you might end up with QC…
### Issues:
Creating and validating a picking from the barcode app does not behave correctly with respect to quality check trigger and creation. Depending on your flow, you might end up with QC created twice or with QC not being triggered before validation.
### Cause of the issues:
The quality checks are created during the "_action_confirm" of moves: https://github.com/odoo/enterprise/blob/dd4a1ec4aaa7cbb95d6e40a8bb6ab1d6c88fc7b7/quality_control/models/stock_move.py#L12-L15
However, depending on where you click in the barcode app, the moves might end up being assigned and hence skip the "_action_confirm" of the picking (which is computed to be assigned) prior to the `_pre_action_done_hook` of the `button_validate` of the picking wich is suppose to return already created quality check:
https://github.com/odoo/odoo/blob/08f0c6481a190349369ead5ab9328886392ddbeb/addons/stock/models/stock_picking.py#L1145-L1147
In which case, the quality check is not triggered (Issue 1). Furthermore, since the `_action_confirm` of moves can also be applied to extra moves created to update the demand and to be merged to the initial move during the validation, the quality check creation might be called twice on a move once during its own `action_confirm` and once during the `_action_confirm` of its extra move (Issue2).
### Issue 1:
1. Create a storable product P with a barcode: XXX
2. Go to Quality > Quality Control > Quality Points > New
3. Create a new quality point for your product:
- Control per: "Operation"
- Operations: "Receipts"
4. Go to the barcode app > Operations > Receipts > New
5. Scan your product
6. Click on the pencil (key step)
7. Either edit the quantity from the digipad and confirm or go back to the picking and edit it from there.
8. Validate the receipt
#### > Even thought a quality check was created using your quality point for your receipt, it was not triggered before validation.
### Cause of the Issue:
Clicking on the pencil will trigger a call of the `save_barcode_data` which will in turn create a stock move line related to the picking during the write performed on the picking:
https://github.com/odoo/enterprise/blob/dd4a1ec4aaa7cbb95d6e40a8bb6ab1d6c88fc7b7/stock_barcode/controllers/stock_barcode.py#L68-L74
After this edition of the quantity of the picking will write on the `qty_done` dummy field of that move line which will in turn trigger a call of its inverse method and modify its quantity: https://github.com/odoo/enterprise/blob/dd4a1ec4aaa7cbb95d6e40a8bb6ab1d6c88fc7b7/stock_barcode/models/stock_move_line.py#L58-L61
Changing the quantity of the ml will then update the state of the move to "assigned" because of these lines:
https://github.com/odoo/odoo/blob/a74684777c27e26639b75b0668bb15afadb78c4f/addons/stock/models/stock_move_line.py#L487-L488 https://github.com/odoo/odoo/blob/a74684777c27e26639b75b0668bb15afadb78c4f/addons/stock/models/stock_move_line.py#L530-L531 https://github.com/odoo/odoo/blob/08f0c6481a190349369ead5ab9328886392ddbeb/addons/stock/models/stock_move.py#L2022-L2023 In turns, the state compute method of the picking will determine that the picking is assigned and the picking will not be confirmed during its `button_validate` prior to the `_pre_action_done_hook` of the `button_validate` as it is not in draft anymore.
### Fix:
The state of the move should stay as draft just as if we didn't created the move line through the pencil if we were to edit the qty_done via the barcode app.
### Note:
The inverse method of the "qty_done" computed field was introduced in 17.0+ by commit: 4f19668c51a90e8c12e57b6353bbe5194f83ca10 during the quantity refactoring so that the issue is not reproducible prior to that version.
### Issue 2:
Same steps 1 -> 5.
6'. click on the +1 button.
7'. Validate > this opens the quality check
8'. Pass the quality check > Validate again
9'. Go to Quality > Quality Control > Quality check
#### > Two quality checks were created isntead of one for your receipt
### Cause of the issue:
At some later point in the button validate of the picking, an `_action_done` is called to put the pickings and its move in done state: https://github.com/odoo/odoo/blob/a74684777c27e26639b75b0668bb15afadb78c4f/addons/stock/models/stock_picking.py#L1157
However, during the `_action_done` of the moves if the quantity of the move exceeds its `product_uom_qty`, extra moves will be created, confirmed and merged back to the move in order to update its `product_uom_qty`:
https://github.com/odoo/odoo/blob/607d63fd4d9c07bac9cb68b2d31d86551e93d5b1/addons/stock/models/stock_move.py#L1885-L1890 https://github.com/odoo/odoo/blob/607d63fd4d9c07bac9cb68b2d31d86551e93d5b1/addons/stock/models/stock_move.py#L1823-L1832 However, the action confirm of this extra move will trigger the same override of the `_action_confirm` that creates a quality check and it will even be called on the original move that was already confirmed and already created its QC since the extra move was merged into it: https://github.com/odoo/enterprise/blob/dd4a1ec4aaa7cbb95d6e40a8bb6ab1d6c88fc7b7/quality_control/models/stock_move.py#L12-L15
As a result we end up with an extra quality check creation.
### Fix:
We avoid quality check creation during extra move confirmation.
Enterprise: https://github.com/odoo/enterprise/pull/76301
opw-4266053
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#192034**Issue:** When splitting an expense, all products are available to define the split expense categories.  **Expected:** The wizard should only display products related to `Expense Categories` to keep consistency with base expense creation. **Steps to reproduce:** - Activate Expense app; - Create a new expense; - *(opt) Try changing the expense category and see av
Original PR description
**Issue:** When splitting an expense, all products are available to define the split expense categories.  **Expected:** The wizard should only display products related to `Expense Categories` to keep consistency with base expense creation. **Steps to reproduce:** - Activate Expense app; - Create a new expense; - *(opt) Try changing the expense category and see available categories to compare;*  - Save and click `Split Expense`; - In the `Product` column, select a product not listed in `Expense Categories` (cf. optional step); - Split expense and see the new expenses having the normally unavailable product as category.  **Cause:** All products are retrieved by the wizard, unlike the category field of the base `hr_expense`. **Fix:** Add restrictive domain as for base `hr_expense`. https://github.com/odoo/odoo/blob/573cbe3b19e91a134ee65168b3021437a39b6093/addons/hr_expense/models/hr_expense.py#L57 <img width="1439" alt="Capture d’écran 2024-12-16 à 16 32 57" src="https://github.com/user-attachments/assets/c9fa8b43-bd7b-4ab3-8759-b4d6a0e269d6" /> opw-4357521 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#197399 Forward-Port-Of: odoo/odoo#190738
Problem with stock valuation rounding. Steps to reproduce: - Create a product with automated valuation in AVCO - Set the product cost to 16.83 - Update the quantity to 10 - Make a purchase order with this product: quantity 10 and unit price 20 - Receive the product - On the product, reduce the quantity to: 10 (-10), then 1 (-9), then 0 (-1) - Check the valuation, it will remain -0.05 with a quantity of 0 This commit improves the previous commit: 795ce67 by using float_compare to ch
Original PR description
Problem with stock valuation rounding. Steps to reproduce: - Create a product with automated valuation in AVCO - Set the product cost to 16.83 - Update the quantity to 10 - Make a purchase order with this product: quantity 10 and unit price 20 - Receive the product - On the product, reduce the quantity to: 10 (-10), then 1 (-9), then 0 (-1) - Check the valuation, it will remain -0.05 with a quantity of 0 This commit improves the previous commit: 795ce67 by using float_compare to check if the rounding error should be considered a rounding issue. opw-4387534 Forward-Port-Of: odoo/odoo#197499
https://github.com/odoo/odoo/pull/112800 added a fix to ignore planning done or cancelled workorders. However it introduced an issue where any unfinished workorders before the ignored workorder will also be ignored and cause a traceback in certain workflows. Steps to reproduce ----- 1. Create a manufacturing order, and add 2 workorders 2. Start and finish the 2nd workorder 3. Attempt to add a 3rd workorder 4. Traceback occurs ``` 'date_planned_start': min([workorder.leave_id.date_f
Original PR description
https://github.com/odoo/odoo/pull/112800 added a fix to ignore planning done or cancelled workorders. However it introduced an issue where any unfinished workorders before the ignored workorder will…
https://github.com/odoo/odoo/pull/112800 added a fix to ignore planning done or cancelled workorders. However it introduced an issue where any unfinished workorders before the ignored workorder will also be ignored and cause a traceback in certain workflows.
Steps to reproduce
-----
1. Create a manufacturing order, and add 2 workorders
2. Start and finish the 2nd workorder
3. Attempt to add a 3rd workorder
4. Traceback occurs
```
'date_planned_start': min([workorder.leave_id.date_from for workorder in workorders]),
TypeError: '<' not supported between instances of 'datetime.datetime' and 'bool'
```
Cause
-----
This early continue added in https://github.com/odoo/odoo/pull/112800 is too eager: https://github.com/odoo/odoo/blob/f19b61b640c6623aad3269d8f0e515b5480e6880/addons/mrp/models/mrp_workorder.py#L525-L526
Although the specified workorder should be ignored, it could potentially have children (`workorder.blocked_by_workorder_ids`) that need to be planned.
Solution
-----
Remove the early continue and keep running `_plan_workorder` on the done/cancelled workorder. All of its children `workorder.blocked_by_workorder_ids` will be correctly planned in the recursive call, and the done/cancelled workorder will still be correctly ignored afterwards in this existing early return:
https://github.com/odoo/odoo/blob/f19b61b640c6623aad3269d8f0e515b5480e6880/addons/mrp/models/mrp_workorder.py#L529-L531
Also backport the fix from https://github.com/odoo/odoo/pull/123802 to handle the null `date_planned_finished` from the ignored workorder.
opw-4497704
Forward-Port-Of: odoo/odoo#197380
Forward-Port-Of: odoo/odoo#195910The assistant to create relation filters only suggested a limited amount of related models, namely the direct co-models of the available datasources. This limitation was quite bothersome if a user wanted to filter on another model that did not have a direct link to the datasource models. Task-4572098 Forward-Port-Of: odoo/enterprise#79205 Forward-Port-Of: odoo/enterprise#79183
Original PR description
The assistant to create relation filters only suggested a limited amount of related models, namely the direct co-models of the available datasources. This limitation was quite bothersome if a user wanted to filter on another model that did not have a direct link to the datasource models. Task-4572098 Forward-Port-Of: odoo/enterprise#79205 Forward-Port-Of: odoo/enterprise#79183
[FIX] documents: fix documents creation on documents 1. Fix reply with an attachment on message from existing document How to reproduce: - Go to the chatter of a document - Add yourself as a follower - Send a message from the chatter: you should receive an email - Reply to this email with an attachment You receive a delivery error message ("Address not found") and your reply doesn't appear in the chatter, nor your attachment. With this fix, the message with its attachment appears
Original PR description
[FIX] documents: fix documents creation on documents 1. Fix reply with an attachment on message from existing document How to reproduce: - Go to the chatter of a document - Add yourself as a follower…
[FIX] documents: fix documents creation on documents
1. Fix reply with an attachment on message from existing document
How to reproduce:
- Go to the chatter of a document
- Add yourself as a follower
- Send a message from the chatter: you should receive an email
- Reply to this email with an attachment
You receive a delivery error message ("Address not found") and your reply doesn't appear in the chatter, nor your attachment.
With this fix, the message with its attachment appears in the chatter and there is no delivery error message.
2. Fix sending a message with an attachment on a request
How to reproduce:
- Go to the chatter of a request
- Send a message with an attachment from its chatter
You get the error "The operation cannot be completed: This attachment is already a document." while the message with its attachment should be added in the chatter.
With this fix, the message with its attachment appears in the chatter and the request remains to be fulfilled.
3. Error while uploading a requested document through activity popover
How to reproduce:
- As user A, create a requested document for User B
- As user B, click on the activity of that request and upload a document
You get the error "The operation cannot be completed: This attachment is already a document." while the uploaded file should be linked to the request.
With this fix, the request is fulfilled, and you get no error.
We solve those problems by not creating document by default when messages with attachments are posted on a document and delegate the creation of the documents to the _message_post_after_hook method for the case of a post on a folder alias. We have chosen that default behavior as in all uses case except the alias, we expect the attachment to be added to the chatter and not as a new document.
TestMailGateway already tests that incoming mail with attachment on an alias create the related documents, and we introduce a test for each case described above in other commits.
[IMP] documents: add a test on replying with an attachment on a document post
We add a test that check that when answering a mail posted on a document with an attachment, that the attachment is added to the document and the message is posted on the document.
We also modify slightly an existing test because a parameter given to _message_post_after_hook was incorrect.
[IMP] documents: add a test on document type change when sending a message
We add a test that check that when sending a message on a URL or a request document, it is not turned into a binary document.
[IMP] documents: add a test that upload a document in the activity popover
We add a test that upload requested document through activity popover.
Task-3707821
Forward-Port-Of: odoo/enterprise#56779### Issues: Creating and validating a picking from the barcode app does not behave correctly with respect to quality check trigger and creation. Depending on your flow, you might end up with QC created twice or with QC not being triggered before validation. ### Cause of the issues: The quality checks are created during the "_action_confirm" of moves: https://github.com/odoo/enterprise/blob/dd4a1ec4aaa7cbb95d6e40a8bb6ab1d6c88fc7b7/quality_control/models/stock_move.py#L12-L15 However, d
Original PR description
### Issues: Creating and validating a picking from the barcode app does not behave correctly with respect to quality check trigger and creation. Depending on your flow, you might end up with QC…
### Issues:
Creating and validating a picking from the barcode app does not behave correctly with respect to quality check trigger and creation. Depending on your flow, you might end up with QC created twice or with QC not being triggered before validation.
### Cause of the issues:
The quality checks are created during the "_action_confirm" of moves: https://github.com/odoo/enterprise/blob/dd4a1ec4aaa7cbb95d6e40a8bb6ab1d6c88fc7b7/quality_control/models/stock_move.py#L12-L15
However, depending on where you click in the barcode app, the moves might end up being assigned and hence skip the "_action_confirm" of the picking (which is computed to be assigned) prior to the `_pre_action_done_hook` of the `button_validate` of the picking wich is suppose to return already created quality check:
https://github.com/odoo/odoo/blob/08f0c6481a190349369ead5ab9328886392ddbeb/addons/stock/models/stock_picking.py#L1145-L1147
In which case, the quality check is not triggered (Issue 1). Furthermore, since the `_action_confirm` of moves can also be applied to extra moves created to update the demand and to be merged to the initial move during the validation, the quality check creation might be called twice on a move once during its own `action_confirm` and once during the `_action_confirm` of its extra move (Issue2).
### Issue 1:
1. Create a storable product P with a barcode: XXX
2. Go to Quality > Quality Control > Quality Points > New
3. Create a new quality point for your product:
- Control per: "Operation"
- Operations: "Receipts"
4. Go to the barcode app > Operations > Receipts > New
5. Scan your product
6. Click on the pencil (key step)
7. Either edit the quantity from the digipad and confirm or go back to the picking and edit it from there.
8. Validate the receipt
#### > Even thought a quality check was created using your quality point for your receipt, it was not triggered before validation.
### Cause of the Issue:
Clicking on the pencil will trigger a call of the `save_barcode_data` which will in turn create a stock move line related to the picking during the write performed on the picking:
https://github.com/odoo/enterprise/blob/dd4a1ec4aaa7cbb95d6e40a8bb6ab1d6c88fc7b7/stock_barcode/controllers/stock_barcode.py#L68-L74
After this edition of the quantity of the picking will write on the `qty_done` dummy field of that move line which will in turn trigger a call of its inverse method and modify its quantity: https://github.com/odoo/enterprise/blob/dd4a1ec4aaa7cbb95d6e40a8bb6ab1d6c88fc7b7/stock_barcode/models/stock_move_line.py#L58-L61
Changing the quantity of the ml will then update the state of the move to "assigned" because of these lines:
https://github.com/odoo/odoo/blob/a74684777c27e26639b75b0668bb15afadb78c4f/addons/stock/models/stock_move_line.py#L487-L488 https://github.com/odoo/odoo/blob/a74684777c27e26639b75b0668bb15afadb78c4f/addons/stock/models/stock_move_line.py#L530-L531 https://github.com/odoo/odoo/blob/08f0c6481a190349369ead5ab9328886392ddbeb/addons/stock/models/stock_move.py#L2022-L2023 In turns, the state compute method of the picking will determine that the picking is assigned and the picking will not be confirmed during its `button_validate` prior to the `_pre_action_done_hook` of the `button_validate` as it is not in draft anymore.
### Fix:
The state of the move should stay as draft just as if we didn't created the move line through the pencil if we were to edit the qty_done via the barcode app.
### Note:
The inverse method of the "qty_done" computed field was introduced in 17.0+ by commit: 4f19668c51a90e8c12e57b6353bbe5194f83ca10 during the quantity refactoring so that the issue is not reproducible prior to that version.
### Issue 2:
Same steps 1 -> 5.
6'. click on the +1 button.
7'. Validate > this opens the quality check
8'. Pass the quality check > Validate again
9'. Go to Quality > Quality Control > Quality check
#### > Two quality checks were created isntead of one for your receipt
### Cause of the issue:
At some later point in the button validate of the picking, an `_action_done` is called to put the pickings and its move in done state: https://github.com/odoo/odoo/blob/a74684777c27e26639b75b0668bb15afadb78c4f/addons/stock/models/stock_picking.py#L1157
However, during the `_action_done` of the moves if the quantity of the move exceeds its `product_uom_qty`, extra moves will be created, confirmed and merged back to the move in order to update its `product_uom_qty`:
https://github.com/odoo/odoo/blob/607d63fd4d9c07bac9cb68b2d31d86551e93d5b1/addons/stock/models/stock_move.py#L1885-L1890 https://github.com/odoo/odoo/blob/607d63fd4d9c07bac9cb68b2d31d86551e93d5b1/addons/stock/models/stock_move.py#L1823-L1832 However, the action confirm of this extra move will trigger the same override of the `_action_confirm` that creates a quality check and it will even be called on the original move that was already confirmed and already created its QC since the extra move was merged into it: https://github.com/odoo/enterprise/blob/dd4a1ec4aaa7cbb95d6e40a8bb6ab1d6c88fc7b7/quality_control/models/stock_move.py#L12-L15
As a result we end up with an extra quality check creation.
### Fix:
We avoid quality check creation during extra move confirmation.
Community: https://github.com/odoo/odoo/pull/192034
opw-4266053
---
Forward-Port-Of: odoo/enterprise#77607
Forward-Port-Of: odoo/enterprise#76301Before this commit the class `TestMockedDeliveryUSPS` used `'standard', '-external'` which is the opposite of what it was supposed to do. As a result the tests were run during normal builds, and led to errors when the tests were run without demo data. This commit also removes the reference to demo data to make the tests more robust. Runbot Errors: + https://runbot.odoo.com/odoo/action-573/114550 + https://runbot.odoo.com/odoo/action-573/114551 + https://runbot.odoo.com/odoo/action-573/1
Original PR description
Before this commit the class `TestMockedDeliveryUSPS` used `'standard', '-external'` which is the opposite of what it was supposed to do. As a result the tests were run during normal builds, and led to errors when the tests were run without demo data. This commit also removes the reference to demo data to make the tests more robust. Runbot Errors: + https://runbot.odoo.com/odoo/action-573/114550 + https://runbot.odoo.com/odoo/action-573/114551 + https://runbot.odoo.com/odoo/action-573/114552 Forward-Port-Of: odoo/enterprise#78706
## Versions: 17.0+ ## Issue: Translation of the English "Balance" word is displayed as "Balanza" in all Spanish files but should be "Balance" as well. "Balanza" meaning "Scale", the translation is sometimes right. opw-4461450 Forward-Port-Of: odoo/enterprise#78116
Original PR description
## Versions: 17.0+ ## Issue: Translation of the English "Balance" word is displayed as "Balanza" in all Spanish files but should be "Balance" as well. "Balanza" meaning "Scale", the translation is sometimes right. opw-4461450 Forward-Port-Of: odoo/enterprise#78116