Skip to content

Syncing from upstream odoo/odoo (saas-18.3) #34203

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 21 commits into from
Jul 10, 2025
Merged

Conversation

bt-admin
Copy link
Collaborator

bt_gitbot

kitan191 and others added 21 commits July 9, 2025 05:34
Steps to reproduce:
- Install l10n_it_edi
- Switch to an Italian company (e.g. IT Company)

- In Accounting settings, activate "Fattura Elettronica (FatturaPA)"
- When saving the settings, the system tries to create an EDI proxy
user if there is no existing EDI proxy user in "test" or "prod" mode

- Neutralize the database with the following command:
odoo-bin neutralize -d [db_name]

- Go the settings and save

Issue:
Upon save, the system will try to create an EDI proxy user in "prod"
mode (or "test" mode if "l10n_it_edi.proxy_user_edi_mode" system
parameter is set to "test").
The database is neutralized.
It should not create an EDI proxy user in "prod" mode by default.

Cause:
An EDI proxy user is created in "prod" mode automatically when there
is no existing proxy user in that mode and "FatturaPA" is activated.
During the neutralization of the database, all proxy users are
switched to "demo" mode, but "FatturaPA" is not deactivated.
Therefore, the configuration is set to create a "prod" EDI proxy user.

Solution:
As we want to create an EDI proxy user in "prod" mode by default on a
non-neutralized database, we can deactivate "FatturaPA" option during
the neutralization to prevent the creation of an EDI proxy user on a
neutralized database when saving the settings.

opw-4795396

closes #217985

X-original-commit: c337710
Signed-off-by: Paolo Gatti (pgi) <[email protected]>
Signed-off-by: Anh Thao Pham (pta) <[email protected]>
Otherwise, it causes it fails to assign value to certain records, which is unadvised.

closes #218070

X-original-commit: ce487c4
Signed-off-by: Nicolas Viseur (vin) <[email protected]>
The current validation uses stdnum.vn.mst.validate(), which only accepts
10- or 13-digit MST with legacy checksum logic. It does not support the
12-digit CCCD format now required for individuals from 01/07/2025
(per Circular 86/2024/TT-BTC).

* This patch introduces a separate format-level validator for:
  • 10-digit enterprise VAT
  • 13-digit branch VAT (10-digit + suffix)
  • 12-digit CCCD (from 01/07/2025)

* References:
  • Circular 86/2024/TT-BTC (tax registration & CCCD admin):
https://thuvienphapluat.vn/van-ban/Thue-Phi-Le-Phi/Thong-tu-86-2024-TT-BTC-dang-ky-thue-565309.aspx
  • CCCD replacing tax ID from 01 Jul 2025:
https://thuvienphapluat.vn/ma-so-thue/bai-viet/cach-doi-ma-so-thue-sang-ma-so-dinh-danh-ca-nhan-tu-0172025-200926.html
  • VAT ID structure 10/13 digits (Law, TT 105/2020):
https://thuvienphapluat.vn/phap-luat/cau-truc-ma-so-thue-la-10-chu-so-hay-13-chu-so-phan-loai-cau-truc-ma-so-thue-nhu-the-nao-theo-quy-d-796465-178397.html

closes #217914

X-original-commit: b87c896
Signed-off-by: Nicolas Viseur (vin) <[email protected]>
Problem:
When a user rotates an image, certain image sizes can cause the
editable area to become scrollable. This triggers `resetHandlers`
from `usePositionHook`, resulting in loss of focus on the rotate
controller.

Solution:
Add a flag to detect when the user is actively transforming
(`mousedown`). Delay the reset until interaction ends (`mouseup`),
preventing premature handler reset.

Steps to reproduce:
- Add a long image
- Transform > Rotate until a scrollbar appears
- You lose focus on the rotate controller

opw-4890029

closes #218036

X-original-commit: 1b5b239
Signed-off-by: David Monjoie (dmo) <[email protected]>
Signed-off-by: Walid Sahli (wasa) <[email protected]>
Before this commit:
If a tax detail of an invoice line has the None tax grouping key, there
is a traceback when generating the UBL InvoiceLine/ClassifiedTaxCategory

After this commit:
We exclude tax details that have the None grouping key when generating
the InvoiceLine/ClassifiedTaxCategory.

task-none

closes #217979

X-original-commit: 2c2e86d
Signed-off-by: Laurent Smet (las) <[email protected]>
Signed-off-by: Antoine Dupuis (andu) <[email protected]>
This commit fixes the `test_session_history_open` test that fails in
a non-deterministic fashion. This test creates two channels, opens the
first one in Discuss, and ensures that we can navigate to the other one
using the pager. However, since chats are ordered by `create_date`, the
order is non-deterministic. As a result, navigating to the next chat from
chat A will not always lead to chat B.

This commit updates the default ordering to fall back on the `id` field,
making the order of the chats deterministic.

fixes runbot-223125

Part-of: #218103
Signed-off-by: Sébastien Theys (seb) <[email protected]>
Some live chat tours open the command palette. However, they do so
without waiting for the webclient to be mounted. Moreover, the
window should be focused in order for the command palette to open.
This commit fixes those tours by waiting for the action manager to
be mounted and adapts the tour to focus the window before opening
the palette.

See similar fixes:
- #212620
- #182775

fixes runbot-161482,229637

closes #218103

Signed-off-by: Sébastien Theys (seb) <[email protected]>
Steps to reproduce
===============
1. Create a company called Acme.
2. Create a child contact of type Invoicing address but do not give it any name.
3. Go to Sales.
4. Open send mail composer and add this partner as a recipient.
---> The recipient tag will show Unnamed.

From [Commit 1], the fallback for partner without name and email was unnamed.

After this commit, consider display_name for the tag's text before falling back
to the `Unnamed`.

[Commit 1]: cba81ac

Task-4812554

closes #218012

X-original-commit: 6a80886
Signed-off-by: Warnon Aurélien (awa) <[email protected]>
- Make `invoice_currency_rate` editable.
- Add a date picker widget that let the user apply the rate of a
certain date.
- Add a refresh button when the rate is not the expected one.

To that end, the computed field `expected_currency_rate` is added.

task-4378994

closes #218041

X-original-commit: 2d486fb
Signed-off-by: William André (wan) <[email protected]>
Before this commit in some snippets background overlay wouldn't have
proper height and/or width because of the snippets `h-{}, w-{}` classes.
This commit overrides it with `!important`.
To reproduce the issue:
- open website and start editing
- drop columns snippet, add background image to one of the cards, click
on it
- Click on the background position option to change it(the one with
a crosshair icon)
- the overlay isn't shown properly, which also breaks the tooltip
position

task-4930050

closes #218098

X-original-commit: 85dde1d
Signed-off-by: Colin Louis (loco) <[email protected]>
Signed-off-by: Serhii Rubanskyi (seru) <[email protected]>
When modifying or deleting an Analytic Account on an Analytic Item, it
is not reflected on the Analytic Distribution of the Journal Item.
The user can be mislead, given on the business objects (invoice lines),
he sees the initial Analytic Distribution but there is no guarantee
that the related Analytic Item remains consistent.

task-4378407

closes #218048

X-original-commit: f1deebe
Signed-off-by: William André (wan) <[email protected]>
**PROBLEM**
When changing the vat label associated to the country of the user's company, it should change the label of the `vat` field. The cached partners views are not invalidated as they should and the old views with the old label  are presented to the user instead of the new ones. This can be confusing to the user, because while their change had an effect on the database, it doesn't reflect on the views showed to them.

**STEP TO REPRODUCE**
1. On a fresh database, install the contact app.
2. From the contact app, Configuration->Countries, select United States which should be the country of the demo company.
3. Change the Vat Label field value.
4. Go on any contact form view, and notice the label of the `vat` field wasn't updated.
5. You can refresh the pages, and sometimes the new value will be there, sometimes not.

**CAUSE**
https://github.com/odoo/odoo/blob/ac106704f3c2d3e3fa94415134b9d5522b325378/odoo/addons/base/models/res_partner.py#L41C1-L55C1
In the mixin `FormatVATLabelMixin` we modify the form view, changing the label of the vat field accordingly. However, the `_get_view_cache_key` override that would add the field used to make the change (`self.env.company.country_id.vat_label`) to the cache key is missing. Which means the cache isn't invalidated when it should.

**FIX**
Invalidating cache when writing on `vat_label`

opw-4825749

closes #218047

X-original-commit: 7c21830
Signed-off-by: Rémy Voet (ryv) <[email protected]>
Signed-off-by: Léo Gizard (legi) <[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 #218017

X-original-commit: 22c333d
Signed-off-by: Levi Siuzdak <[email protected]>
…ncy on expense report

When generating an expense report for an expense recorded in a currency different from the company's, the totals were shown with the symbol of the expense's currency, even though the amounts were actually in the company's currency.

opw-4807756

closes #215566

X-original-commit: dc384e6
Signed-off-by: Olivier Colson (oco) <[email protected]>
…rch panel

Before this commit:
- Long dashboard names were truncated in the search panel.
- There was no way for the user to see the full name.

After this commit:
- A tooltip has been added to display the full dashboard name on hover.

closes #218086

Task: 4903713
X-original-commit: b5c291a
Signed-off-by: Pierre Rousseau (pro) <[email protected]>
Signed-off-by: Ronakkumar Mukeshbhai Bharadiya (rmbh) <[email protected]>
Before this commit an error can appear if there two delivery line.
Use method in delivery module to compute delivery amont.
This method can compute if there are two line with delivery
https://github.com/odoo/odoo/blob/18.0/addons/delivery/models/sale_order.py#L27

closes #218015

X-original-commit: 173de20
Signed-off-by: Antoine Vandevenne (anv) <[email protected]>
When [1] introduced a cached version of the form data to compute
visibility, it did not take into account the values that are completed
through `prefillValues`. Because of this, input events are required for
those to be taken into account.

This commit fixes this by re-evaluating the form content after the
execution of `prefillValues`.

Steps to reproduce:
- Drop a "Form" snippet
- Make "Your Question" field visible only if "Your Email" is set.
- Save page.

=> Upon display, the email is populated with the user's email, but "Your
Question" did not become visible.

[1]: 027ce4e

task-jke

closes #218014

X-original-commit: 3682459
Signed-off-by: Francois Georis (fge) <[email protected]>
moving test to pos enterprise as this field `account_tax_periodicity_journal_id`
is available in the saas-18.2 version of Odoo 18.2 enterprise version.

pos_enterprise commit : https://github.com/odoo/enterprise/pull/88742/commits/2acc7ab586485c50d49b8d1e21ff513041c328bc

build_error-227602

closes #217003

X-original-commit: f16a7c8
Signed-off-by: David Monnom (moda) <[email protected]>
Signed-off-by: Omar Sherif Ali Hassan (osah) <[email protected]>
Since [1], a crash occurs when the Custom Amount option for the
`s_donation` snippet is `None` and you use it.

Steps to reproduce:
- Drop `s_donation` snippet
- Set Custom Amount option as `None`
- Save and exit edit mode
- Click on `Donate Now` button
- A traceback occurs instead of showing an error to select an amount

[1]: 22e777c

closes #218188

X-original-commit: 00c0936
Signed-off-by: Benoit Socias (bso) <[email protected]>
Signed-off-by: Augustin Dupin (duau) <[email protected]>
This commit adjusts setting `product_uom_id` field on the generated
purchase order line in the 3 main scenarios: manual purchase order,
procurement from MTO, and procurement from replenishment wizard. The
intended behavior is as follows:

* Manual PO:
The selected pricelist must respect the uom of the PO line. Even if the
quantity of the line matches a pricelist with a cheaper price (but
different uom), it should not be selected. If there is no pricelist with
the unit of the line, the pricelist with the product base unit is
chosen. If it doesn't exist too, no pricelist is chosen, and the price
is left to the user (default value of 0).

* Procurement from MTO:
The selected pricelist must be the cheapest pricelist that respects the
requested quantity, even if that cheaper pricelist has a different uom
than the source of procurement (SO, MO, etc.). However, the generated PO
line uses the uom of the pricelist not the source.

* Replenishment Wizard:
The behavior is similar to manual PO. The selected unit in the wizard
must be respected, even if there is a cheaper pricelist that matches the
requested quantity (with different uom). Also now, the selected vendor
in the wizard doesn't affect the chosen priclist. It's only used to look
for pricelists with the same partner.

Task-4471379

closes #218219

X-original-commit: fa984da
Signed-off-by: Arnold Moyaux (arm) <[email protected]>
Signed-off-by: Mohammad Abdulmoneim (abdu) <[email protected]>
This commit reverts b44a1bc
which is a part of /#203918
Issues have been found on the synchronization with Google related
to the duplication of events for synchronized users. As it is an
urgent matter and seems like this commit is most likely causing an infinite
loop for te synced events, we are dropping it.
task-4873605

closes #217955

Signed-off-by: Gabriel de Paula Felix (gdpf) <[email protected]>
@bt-admin bt-admin merged commit b78425d into brain-tec:saas-18.3 Jul 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.