Skip to content

Syncing from upstream odoo/odoo (tmp.18.0) #34216

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 16 commits into from
Jul 10, 2025
Merged

Conversation

bt-admin
Copy link
Collaborator

bt_gitbot

lase-odoo and others added 16 commits July 9, 2025 06:49
…thout packaging

Steps to reproduce:

- In the settings enable "Product Packagings"
- Create a product P with a kit bom: 1 x COMP
- Create and confirm a delivery for 1 unit of P
- Reserve 1 unit of COMP (put the quantity of the move to 1)
- Go to Inventory > Reporting > Moves history
- Add the field "Reserved Packaging Quantity" in the view (with studio)
- remove the "done" filter
> Traceback: ZeroDivisionError in _compute_product_packaging_qty

Cause of the issue:

The computation of the `product_packaging_qty` can not succeed for a
kit move line without `packaging_id` on its move since:
`move_line.move_id.product_packaging_id.qty` will be 0:
https://github.com/odoo/odoo/blob/b87c896969cc576a799ac63f03501be1e87b0e84/addons/mrp/models/stock_move.py#L107
By contrast since if the packaging is set, there should not be an issue
since the field is required and since there is a positive constraint:
https://github.com/odoo/odoo/blob/b87c896969cc576a799ac63f03501be1e87b0e84/addons/product/models/product_packaging.py#L21-L27

opw-4781180

closes #217927

X-original-commit: 0800d8c
Signed-off-by: Quentin Wolfs (quwo) <[email protected]>
Signed-off-by: Lancelot Semal (lase) <[email protected]>
Since [1], #207974 websocket timeout
has been increased during test. Fetching notification only returns the
notifications of the last 50 seconds initially. When runbot is under
high load, this can lead to non deterministic failures.

This commit patches the cursor date to bypass this issue.

[1]: #207974

fixes rubot-223758

closes #218104

Signed-off-by: Matthieu Stockbauer (tsm) <[email protected]>
Event with the document integration correctly setup, e-invoice xml
generated in the send&print wizard will not create an associated
document unless the attachment is actually sent via mail

Steps to reproduce:
- Have a EU Company setup
- Enable and configure Peppol Electronic Invoicing
- Enable documents integration with accounting
- Create an invoice to a Peppol enabled customer, confirm
- Open send&print wizard, enable only 'Download' and 'BIS Billing 3.0'

Issue: Document related to the xml attachment is not created. This will
work as expected when the message is sent to the customer

opw-4720588

closes #217771

X-original-commit: 3531f7e
Related: odoo/enterprise#89666
Signed-off-by: Ruben Gomes (rugo) <[email protected]>
Signed-off-by: Andrea Grazioso (agr) <[email protected]>
This commit c5a98c7 removed custom `z-index` utilities. Replaces
`z-index-1` with Bootstrap's default `z-1` class.

Before this commit:

- The icon used `z-index-1`, which is not a valid Bootstrap class.

After this commit:

-  Replaced with `z-1`, the correct Bootstrap 5 utility class for `z-index: 1`.

task-4903381

closes #216261

Signed-off-by: David Monjoie (dmo) <[email protected]>
step to reproduce
- Create a quotation,
- Select a product
- Update the price manually
- change the product
- The amount stays the same
expectation: with change of product in SO, price should also recompute

issue:
currently,`_compute_price_unit` depends on `technical_price_unit` such that
price_unit` won't update if price_unit` and technical_price_unit are not same.
 which is the case when price_unit was manually set, regardless of the product

we should reset to original price with change of product

opw-4813069

closes #213912

Signed-off-by: Ajit Kumar  Krishnanand Singh (aksi) <[email protected]>
Before this commit:

`pre` was not considered paragraph related element. Also it allowed flow content.

After this commit:

`pre` is considered paragraph related element and now it only allows phrasing
content also anything pasted within `pre` is now pasted as plain text and list
numbering and markers are preserved.

task-4766648

closes #213910

Signed-off-by: David Monjoie (dmo) <[email protected]>
Versions
--------
- 17.0+

Steps
-----
1. Configure website to display prices tax-included;
2. disable selling out-of-stock products;
3. go to an out-of-stock product page;
4. request a reminder email;
5. replenish product stock;
6. run the `_send_availability_email` action;
7. check email that was sent.

Issue
-----
The price display in the email does not include taxes.

Cause
-----
The email only checks the `list_price` defined on the product.

Solution
--------
Don't include the price in the email:
  - On stable: hide the element to avoid breaking xpaths
  - On master: remove the element from the template

opw-4712613

closes #217716

X-original-commit: 22c333d
Signed-off-by: Levi Siuzdak <[email protected]>
Versions
--------
- 16.0+

Steps
-----
1. Have a fiscal position with a country-based tax mapping;
2. go to `/shop` as a public user,
3. create a new account;
4. add a product to your cart;
5. go to user settings & add an address that matches the fiscal position;
6. go to checkout & pay for the cart.

Issue
-----
The fiscal position's taxes aren't applied to the order.

Cause
-----
The `_compute_fiscal_position_id` method is triggered when changing the
`partner_id` or `partner_shipping_id` of an order. It does not trigger
when modifying the address of the order's current partner.

There is logic in place to recompute fiscal position & taxes when an
address gets entered via checkout, but not via any other route.

Solution
--------
Adding address fields to the `api.depends` of the compute method could
introduce the unintended behavior of changing taxes & fiscal position of
confirmed sale orders. Instead, we can check for fields relevant to
fiscal position in `write`, then search for unconfirmed website orders,
and recompute their fiscal position & taxes if need be.

opw-4844132

closes #217911

X-original-commit: 40dc444
Signed-off-by: Levi Siuzdak <[email protected]>
- removed work email constraint as the partner is now created
  without the need of work email

closes #212211

Signed-off-by: Olivier Colson (oco) <[email protected]>
…ploading))

Backport of #217982

[FIX] mail: fix runbot error 222093 (o-mail-Message:contains(cheese))

Before this commit, tour "test_discuss_channel_public_page_as_guest"
would crash in test after posting a message in which we attempt to
add a reaction.

This happens because the step is a `hover && click 'Add a reaction'`,
so it hovers on selector `o-mail-Message:contains(cheese)` then
clicks on the 'Add a reaction' action.

In discuss channels, when sending a message, the message is
immediately shown on UI before there's a genuine message that is
created in DB. This optimistic behavior gives impression the app
is fast, but some actions require a genuine message like
'Add a reaction'. The problem of test is that selector
`.o-mail-Message:contains(cheese)` passes with temporary / transient
message of optimistic behavior, so the `hover` step would be
triggered on the temporary / transient message and 'Add a reaction'
action is awaited for click.

Problem is that when genuine message data is received, implementation
detail deletes the temporary / transient message and then shows the
genuine message. Because the genuine message is different, component
identity is different (it uses message.localId in `t-key`), thus
it awaits `Add a reaction` on UI but it's not visible because we
need to hover again, this time on genuine message.

This commit fixes the issue by awaiting message is shown on UI is
the persistent, i.e. non-temporary and non-transient, so that hover
and click on the 'Add a reaction' action works without issue.

fixes runbot error 181660
fixes runbot error 222093
fixes runbot error 227756
fixes runbot error 227758

closes #218143

Signed-off-by: Sébastien Theys (seb) <[email protected]>
Before this commit, test "Add the same reaction twice from the emoji
picker" may fail non-deterministically in 18.1 on last step: the
message reaction is sometimes kept, sometimes removed.

The feature works in 18.0 but no longer in 18.1. The test was still
passing though very rarely can fail and actually show the feature
doesn't work.

This happens because the test is clicking on reaction too fast and
doesn't assert on UI the 1st message reaction has been added, thus
it may flicker and keep showing there's 1 message reaction still.

This commit fixes the test in 18.0, in preparation to keep the same
test in 18.1 and show the bugged change of behaviour in 18.1 to fix.

Fixes runbot error 229340

closes #218152

Signed-off-by: Matthieu Stockbauer (tsm) <[email protected]>
The fix at [1] did not fix the issue. This is another attempt.

runbot-227759

[1]: 9a3c9ec

closes #218114

Signed-off-by: David Monjoie (dmo) <[email protected]>
Purpose of this commit:

- Backport a part of commit [1] which ensures that the font-size input
now changes its color appropriately in dark mode.

[1]-48c7cd1

task-4897771

closes #215865

Signed-off-by: David Monjoie (dmo) <[email protected]>
Before this commit, tour "discuss_channel_public_tour" was failing
non-deterministically at the following step:

```
.o-mail-Message:not(:has(.o-mail-MessageReaction))
```

This happens because prio steps added a new reaction and asserted it
was shown. It clicks on reaction to remove it and then page reload to
see the reaction is gone. Problem is that it can reload page too
fast and the RPC to remove the reaction did not have time to occurs.

This commit fixes the issue by awaiting message no longer has
reaction before page reload.

Fixes runbot-error-227769

closes #218132

Signed-off-by: Alexandre Kühn (aku) <[email protected]>
Currently we notify the database of any iot changes only if the iot box
discovered new devices.
However if its ip address/hostname/mac address/domain/version change the
db is never notified.

This PR adds this change + fixes the get_ip() method which was using
netifaces which is unreliable on Windows to now use socket to get the
iot box ip address

closes #218109

Signed-off-by: Louis Travaux (lotr) <[email protected]>
This commit makes a small change to move the code that calls the
weighing dialog into its own function. This is so it can more easily be
overridden.

task-4910716

closes #217135

Related: odoo/enterprise#89280
Signed-off-by: Yaroslav Soroko (yaso) <[email protected]>
@bt-admin bt-admin merged commit b74e063 into brain-tec:tmp.18.0 Jul 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.