10000 Syncing from upstream odoo/odoo (staging.saas-18.3) by bt-admin · Pull Request #33743 · brain-tec/odoo · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Syncing from upstream odoo/odoo (staging.saas-18.3) #33743

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 39 commits into from
Jun 12, 2025

Conversation

bt-admin
Copy link
Collaborator

bt_gitbot

ande-odoo and others added 30 commits June 11, 2025 03:42
Current behaviour:
When displaying a malaysian address on an invoice,
the state code is shown.

Street 12
Cityname KTN 12345
Malaysia

In 17.0 and after, KTN is replaced by MY-03
(and other state codes) per ISO standards
KUL -> MY-14, PHG -> MY-06, etc.
a8204fc

Expected behaviour:
The state name should be displayed instead.

Street 12
Cityname Kelantan 12345
Malaysia

Steps to reproduce:
1. Go to Contacts
2. Create a new contact
3. Set country as Malaysia, and choose a state
4. Go to Invoice, create one
5. Select new malaysian contact
6. State code in address instead of name

Fix:
Added a custom address_format in res_country_data.xml

opw-4762300

closes #213617

X-original-commit: 7499e8d
Signed-off-by: John Laterre (jol) <jol@odoo.com>
Signed-off-by: Antoine Demany (ande) <ande@odoo.com>
- now transporter gst number is not required if vehicle_no is present
  and mode of transportation is by road
- vehicle number can be left empty if transportation_doc_no is set
  however transporter gst is required for that case

task-4807693

closes #213553

X-original-commit: e05383a
Signed-off-by: Josse Colpaert (jco) <jco@odoo.com>
Signed-off-by: Meet Bariya (meba) <meba@odoo.com>
Fix crash when a retention tax is applied on an invoice that
includes a down payment line.

Steps to reproduce:
1. Create a retention tax (negative, with retention checked)
2. Create a sale order with product A
3. Create and validate a down payment invoice
4. Create the full invoice and add the retention tax to the line of
product A
5. Try to submit to ZATCA

This raises:
IndexError: list index out of range
→ tax_category_vals = self._get_tax_category_list(...)[0]

The issue occurs because the retention tax is not filtered due
to a missing `filter_to_apply` parameter.

opw-4771567

closes #213619

X-original-commit: 8fd1848
Signed-off-by: Hugo Poncelet (hupo) <hupo@odoo.com>
Signed-off-by: Louis Gobert (loug) <loug@odoo.com>
Issue:
The BuyerReference field in Xrechnung is only mandatory to be filled with the
appropriate company reference for DE B2G invoices, but not having the company
reference resuts in the field being absent entirely from the document for B2C
and B2B invoices, which results in the document being rejected.
Solution:
If the BuyerReference is not filled, it is set to 'N/A' instead of being left
absent from the document.
Addresses ticket-4715709
task-4756812

closes #213612

X-original-commit: 4f27e61
Signed-off-by: Antoine Dupuis (andu) <andu@odoo.com>
Signed-off-by: Petr Nazin (nape) <nape@odoo.com>
This commit fixes an action service concurrency test that fails
randomly. The way the test was written was prone to errors as we
didn't wait for the router to be updated before doing browser
back. As a matter of fact, we even asserted that we went 2 actions
back in the breadcrumbs, whereas it should be only one as we did
one browser.history.back().

runbot error~163078

closes #213655

X-original-commit: 53b29a1
Signed-off-by: Julien Mougenot (jum) <jum@odoo.com>
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
**Problem:**
When setting a customer for an order in the restaurant, it wasn't
recorded unless a product was ordered with it. If all we it is add
a client in an already existing order, the client won't be recorded
and will not be set after we leave the page.

**Steps to reproduce:**
- Choose a table, create a new order and put a product in it, ordering it is not required.
- Go to another table, or just quit the command.
- Go back in the initial order, set a client and go to the *orders* tab without doing anything else.
- The order won't have a client, and going back to the order itself, the client is not set.

**Why the fix:**
The order wasn't read as having changed, so no data was saved. When
we set it at first or with a product, it was concidered changed
enough for it to be saved. But when changing the customer and only
the customer, it wasn't reported to the pending orders.

opw-4818110

closes #213650

X-original-commit: e3921a8
Signed-off-by: Adrien Guilliams (adgu) <adgu@odoo.com>
Signed-off-by: Arthur Nanson (artn) <artn@odoo.com>
Currently the signature of function `_notify_by_email_prepare_rendering_context`
in `account_peppol` is not compatible with all ways to call the super function.
This can lead to code breaking when `account_peppol` is installed (although
it works fine without).

This is fixed in this commit.

Detail:

In module `mail` the (super) function has signature
```python
    def _notify_by_email_prepare_rendering_context(self, message, msg_vals=False,
                                                   model_description=False,
                                                   force_email_company=False,
                                                   force_email_lang=False):
```

Currently in `acccount_peppol` the signature is
```python
    def _notify_by_email_prepare_rendering_context(self, message, **kwargs):
```

The super function can be called as follows while the function in `account_peppol` can not.
```python
    _notify_by_email_prepare_rendering_context(self, message, msg_vals)
```

opw-4846106

closes #213688

X-original-commit: e5273c5
Signed-off-by: Claire Bretton (clbr) <clbr@odoo.com>
Signed-off-by: Sven Führ (svfu) <svfu@odoo.com>
- When trying to send a vendor bill that uses a tax with l10n_es_type
'sujeto_agricultura' with ticketbai using the agency bizkaia, we are faced
with an error code. This is due to the amount of these taxes being different
than what is allowed (10.5% and 12%).

- The two 'sujeto_agricultura' taxes are actually part of a special regime and
should be exempted when sent [see this article for reference](https://sede.agenciatributaria.gob.es/Sede/iva/regimenes-tributacion-iva/regimen-especial-agricultura-ganaderia-pesca.html)

- Vendor bills with taxes of l10n_es_type == 'sujeto_agricultura' (REAGYP)
must be reported with regime code '19',and `TipoFactura` to `06` as per
TicketBAI specifications.
https://www.batuz.eus/fitxategiak/batuz/ticketbai/ticketbaiv1-2-2.xsd

opw-4532600

closes #213672

X-original-commit: 1cca873
Signed-off-by: Josse Colpaert (jco) <jco@odoo.com>
Signed-off-by: Devmitra Vedbandhu Sharma (dvsh) <dvsh@odoo.com>
Before this commit, the live chat button would show even
when a rule asked to hide it This commit fixes the issue.
This condition was lost when refactoring "/livechat/init"
route to use "/mail/action" in [1].

[1]: #194399

closes #213605

Signed-off-by: Matthieu Stockbauer (tsm) <tsm@odoo.com>
Improve the error message when the response is HTTP 403.
Currently, the content is empty for such errors, making it
difficult to identify the source of the problem for users.

Step to reproduce:
- Try to send an invoice with wrong credentials.
- The error message is empty, making it hard to understand
  what went wrong.

Also added the missing .pot file.

opw-4823950
opw-4628908

closes #213725

X-original-commit: 7a7687e
Signed-off-by: Habib Ayob (ayh) <ayh@odoo.com>
Signed-off-by: Louis Gobert (loug) <loug@odoo.com>
closes #213576

X-original-commit: dc1038c
Signed-off-by: Didier Debondt (did) <did@odoo.com>
Signed-off-by: Thanh Son Dodeur (tso) <tso@odoo.com>
Added a method to check the if event is over to avoid sending useless invitations or changes' updates to the users.

closes #213670

Task-id: 4684432
X-original-commit: 6c09b11
Signed-off-by: Arnaud Joset (arj) <arj@odoo.com>
Signed-off-by: Abdelrahman Shaaban (ABDH) <abdh@odoo.com>
- Install l10n_it_edi.
- Install l10n_it_edi_withholding
- Uninstall l10n_it_edi_withholding
- Attempt an install of l10n_it_edi_withholding

The following error appears: Invoice and credit note distribution should each contain exactly one line for the base.

When uninstalling l10n_it_edi_withholding, the account.tax data are not unlinked which causes issues when _l10n_it_edi_withholding_post_init tries to _load_data with them.

This commit prevents already existing account tax from being loaded from data during the installation.

opw-4798659

closes #213681

X-original-commit: 8a8d95f
Signed-off-by: Paolo Gatti (pgi) <pgi@odoo.com>
Signed-off-by: Guillaume Teboul-Tornezy (gute) <gute@odoo.com>
Problem:
When a video is added to the `website_description` field using the
website editor, it appears visually shifted to the left (by 50%) when
viewed from the Contacts page in the "Website Partner Full Description"
field.

Cause:
The class `o-position-absolute` sets `left: auto` which was evaluated
as `50%`, and`margin-left: -50%` was added to center absolutely
positioned elements. However, this causes issues when rendered
in `html_field` context, where `left: auto` evaluates to `0px`.
As a result, the `-50%` margin shifts the video offscreen.

Solution:
Set both `left` and `right` to `0` in `.o-position-absolute`
to ensure proper centering. Remove `margin-left: -50%` to
prevent misalignment in non-editor contexts.

Steps to reproduce:
- Go to Contacts > "Gemini Furniture".
- Add a video in the "Website Partner Full Description" field.
- Save and open the partner on the website (`partners/gemini-furniture-11`).
- Return to the Contacts page.
→ The video appears shifted 50% to the left.

opw-4752567

closes #213648

X-original-commit: 5ecc631
Signed-off-by: Walid Sahli (wasa) <wasa@odoo.com>
Previously, the delivery carrier partner was forced to be located in Romania. This restriction has been removed to allow broader flexibility for delivery carriers.

X-original-commit: 25eefd6
Part-of: #213439
Signed-off-by: Antoine Boonen (aboo) <aboo@odoo.com>
Removed an extra blank line in the `stock_picking.py` file for better readability and code consistency. This is a minor cleanup with no functional impact.

X-original-commit: cbff6fe
Part-of: #213439
Signed-off-by: Antoine Boonen (aboo) <aboo@odoo.com>
…artner

Description of the issue/feature this PR addresses:
The system enforced a strict check that the delivery carrier partner must be located in Romania. This was limiting for companies that work with international carriers or operate across borders.

Current behavior before PR:
Delivery carriers not based in Romania triggered an error and could not be used in the delivery process.

Desired behavior after PR is merged:
Delivery carriers can now be located in any country. This provides greater flexibility in managing logistics and integrating international shipping partners.

closes #213439

Forward-port-of: #212476
Signed-off-by: Antoine Boonen (aboo) <aboo@odoo.com>
Currently, an error occurs when clicking the AI icon to calculate the
probability of CRM leads.

Steps to Reproduce:

 - Install the crm module.
 - Go to Leads > List View > Click "New".
 - Click on the AI (automated probability) icon.

ValueError: Expected singleton: crm.lead()

This error occurs when the user clicks on the AI icon to calculate the
probability of CRM leads. Since the record does not exist [1], the system
raises an error.

This commit will fix the above issue by not preparing tooltip data when
`resId` in the record is not available.

[1] https://github.com/odoo/odoo/blob/d3b4d1e8d35eebbc015f5ead02f249e8ae5267d8/addons/crm/models/crm_lead.py#L2763

sentry-6657175088

closes #213179

Signed-off-by: Jérémy Hennecart (jeh) <jeh@odoo.com>
Exported the SignatureForm class to allow overriding from other modules

closes #213510

closes #213712

X-original-commit: 85067b5
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
… item name

This error occurs when attempting to create a submenu item under a menu item.

Steps to reproduce:

 - Go to menu items.
 - Click New > In Submenus click Add a line

TypeError: unsupported operand type(s) for +: 'bool' and 'str'

This error occurs when attempting to create a submenu item under a menu item
that does not have a name. Since the menu item record has not been saved yet,
the system assigns a new ID to the menu item and sets its name to False.
When computing the complete name for the submenu item, the
menu(parent menu) item's name is False, which causes the error.

https://github.com/odoo/odoo/blob/d2ea23f252f0f8f329e2b0ff96de6ee2a14b922f/odoo/addons/base/models/ir_ui_menu.py#L56

This commit ensures that if the parent menu item record has not been saved
and its name is False, an empty string is used in its place.

sentry-6368548342

closes #213657

X-original-commit: 4317cc7
Signed-off-by: Raphael Collet <rco@odoo.com>
Commit 8847342
changed `sortedColumn.measure` that was the field name
`'expected_revenue'` to the fully qualified measure id `'expected_revenue:sum'`

However, the spreadsheet client-side upgrade forgot to change that.
As a consequence, the sorting was just ignored.

closes #212941

Task: 4818107
X-original-commit: 4d769cc
Signed-off-by: Pierre Rousseau (pro) <pro@odoo.com>
Signed-off-by: Lucas Lefèvre (lul) <lul@odoo.com>
Steps to reproduce the bug:
- Create a storable product “P1”:
    - Update the quantity to 1 in "WH/Stock"
    - Create a putaway rule:
        - From "WH/Stock" to "WH/Stock/Shelf1"

- Create a manufacturing order:
    - Select any product to produce
    - Add a component:
        - 1 unit of P1

- Confirm and validate the MO
- Unbuild the order

Problem:
A stock move for P1 is created from "Virtual Location/Production" to
"WH/Stock/Shelf1" instead of "WH/Stock".
This happens because the `_apply_putaway_strategy` method is not
called on the `stock.move.line` linked to the move.

In previous versions (e.g., v17), this issue didn't occur because the
quantity was directly set on the move. This triggered a write on
the `stock.move` model, which in turn called `_set_quantity`. Since
no `st
10000
ock.move.line` was linked at that point, a new one was created,
and its quantity was set via `_set_quantity_done`, which itself
called `_apply_putaway_strategy`:

- https://github.com/odoo/odoo/blob/002724506123b8160dc05cc3654cf87e49b67933/addons/mrp/models/mrp_unbuild.py#L202
- https://github.com/odoo/odoo/blob/b377e7d586f75ea8418deb498d2d551999ec5143/addons/stock/models/stock_move.py#L399
- https://github.com/odoo/odoo/blob/b377e7d586f75ea8418deb498d2d551999ec5143/addons/stock/models/stock_move.py#L384
- https://github.com/odoo/odoo/blob/b377e7d586f75ea8418deb498d2d551999ec5143/addons/stock/models/stock_move.py#L2133

This scenario used to work only when the product was untracked:
- https://github.com/odoo/odoo/blob/002724506123b8160dc05cc3654cf87e49b67933/addons/mrp/models/mrp_unbuild.py#L186

However, starting from v18, some code was refactored to clean up
unnecessary conditions. The `else` block was removed, and now,
regardless of the product type, the quantity is not set directly on
the move anymore. Instead, a `stock.move.line` is created using
`_prepare_move_line_vals`:
- https://github.com/odoo/odoo/blob/002724506123b8160dc05cc3654cf87e49b67933/addons/mrp/models/mrp_unbuild.py#L197

But `_apply_putaway_strategy` is not called in this flow.

Bug introduced in v18.0, commit:
79d9dd7

opw-4830952

closes #213614

X-original-commit: 856cf27
Signed-off-by: William Henrotin (whe) <whe@odoo.com>
Signed-off-by: Djamel Touati (otd) <otd@odoo.com>
Consider this situation:
- Customer invoice.
- All invoice lines use a tax type with l10n_es_type=no_sujeto_loc.
- The sum of the invoice is 0€.
- Sent to SII.

Before this patch, the process would raise a wrong `UserError`. If the process was being executed by the cron, **no invoice would be sent**, even if there was only one failing.

After this patch, the invoice will be notified nevertheless. If there's any kind of real validation problem, the SII servers will return an error that will get logged in the invoice. No exceptions raised in Odoo. The process can continue. Faulty invoices are marked; others work.

Apart from that, there's also the fix to support the specific case outlined above.

@moduon MT-7949 OPW-4344661

This needed adapting in the fw-port.  This error had already been fixed in 18.0, but we still
want to avoid the UserError.

closes #212851

X-original-commit: 14b439b
Signed-off-by: Josse Colpaert (jco) <jco@odoo.com>
The code to create foreign taxes (and tax groups) from another country's
chart template had a bug in it (discovered during the change of tax
accounts in 18.0).

The process works as follows, given we are a US company wanting to map
taxes from the BE localization:
1. We loop over all BE taxes and create a mapping from each account used
   in a BE tax's repartition lines to a (new) account in the US company,
   created based on the account in the BE repartition line.
2. We create tax groups in the US company, copied from the BE
   localization, but their accounts replaced by looking them up in the
   mapping we created in the previous step.

In the second step however, instead of mapping the account from the
original BE tax group, we were mapping the last account encountered in
step 1. This was incorrect.

This commit fixes that.

task-3763030

Part-of: #213027
Related: odoo/enterprise#87034
Signed-off-by: Olivier Colson (oco) <oco@odoo.com>
Signed-off-by: Dylan Kiss (dyki) <dyki@odoo.com>
In some localizations, the same accounts were used on tax groups (for
tax closings), on tax repartition lines, and/or as default payable or
receivable account. Having the same account on two of these types causes
issues with the tax closing amounts being incorrect.

This commit makes sure all accounts are distinct for the different types
and creates new ones if necessary.

It also adapts the tax closing accounts in all localizations to be
reconcilable accounts, either payable or receivable, but non-trade. That
way users can easily reconcile bank transactions with the tax
authorities.

task-3763030

closes #213027

Related: odoo/enterprise#87034
Signed-off-by: Olivier Colson (oco) <oco@odoo.com>
Signed-off-by: Dylan Kiss (dyki) <dyki@odoo.com>
When a loyalty program is already applied in a sale order, the same
loyalty program could also be triggered in the POS.

Steps to reproduce:
-------------------
* Create a simple loyalty program with a discount of 10% on order that
  is applied automatically if the total of the order is more than 1$
* Create a sale order with a product of 10$ and apply the loyalty
  program
* You will have a disount of 1$ in the sale order
* Open the PoS and settle the order
* A new discount will appear in the PoS with a discount of 0.9$.
> Observation: You now have 2 discounts coming from the same program

Why the fix:
------------
We now adapt the `_programIsApplicable` function to check if the program
was already used in the sale order. If it was, we ignore the program in
the PoS.

opw-4381890

closes #213646

X-original-commit: 6ce03c6
Signed-off-by: Adrien Guilliams (adgu) <adgu@odoo.com>
Signed-off-by: Robin Engels (roen) <roen@odoo.com>
This aggregation expression used to have 'cross_report' as subformula. Though, it was useless (since the aggregation only uses term from the same report), and the subformula was removed from the data file without explicitly resetting it to False. This became a problem in 18.3, because the cross_report syntax changes. Because of that, a migrated report failed to open, since it still was using the old syntax on that expression. We fix that by explicitly emptying the subformula.

closes #213761

Signed-off-by: Hugo Poncelet (hupo) <hupo@odoo.com>
Steps to reproduce 1:
- Install l10n_tz_account
- Switch to a Tanzanian company (e.g. TZ Company)
- Check the taxes

Issue 1:
Each tax has the same tax grids (i.e. same number and same sign)
for the invoice section and the refund section, which leads to have
the amount of the credit notes being added (instead of subtracted)
in the Tax report.

Solution 1:
Invert the sign of the tax grids in the refund section.

Steps to reproduce 2:
- Create an invoice for a Tanzanian customer without VAT

Issue 2:
The default fiscal position will be "International", instead of
"Domestic".
A domestic fiscal position for customer without VAT is missing.

Solution 2:
Add a "Domestic individual" fiscal position that is the same as the
"Domestic" one except for the VAT that is not required.

opw-4840609

closes #213673

X-original-commit: 24b52cf
Signed-off-by: Olivier Colson (oco) <oco@odoo.com>
Signed-off-by: Anh Thao Pham (pta) <pta@odoo.com>
Before this commit, LED status was managed from within Odoo.
This could lead to issues: for example, when we stopped Odoo on the iot box,
the leds stay in constant green (last used) colour despite odoo not running.

We now use a systemd service, separated from the Odoo service, that continues running
even if Odoo stops.

closes #212415

Task: 4813935
X-original-commit: ac1137c
Signed-off-by: Yaroslav Soroko (yaso) <yaso@odoo.com>
Signed-off-by: Louis Travaux (lotr) <lotr@odoo.com>
Versions
--------
- 17.0+

Steps
-----
1. Create a Stripe transaction;
2. check server logs.

Issue
-----
The `client_secret` value gets logged, Stripe documentation says this
value should not be stored or logged[^1].

[^1]: https://docs.stripe.com/api/payment_intents/object#payment_intent_object-client_secret

Cause
-----
Currently we're just raw-logging the processing values.

Solution
--------
Add a `_get_specific_secret_keys` method to `payment.transaction`, to be
used when logging processing values that may contain secret information.

Also mute the logger when redirecting to `/payment/status` from Stripe,
as the `client_secret` would otherwise be logged by `werkzeug`.

opw-4818301

closes #213695

X-original-commit: 1a25738
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Signed-off-by: Levi Siuzdak <sile@odoo.com>
res-odoo and others added 9 commits June 11, 2025 13:51
Because the `location.assign` method also triggers a `beforeunload`
event, the `error_service` doesn't handle errors when downloading a file
with the action target `download` (for example download vCard). See [1]
for more details about the original fix.

task-4457865

[1]: e96d3aa

closes #213771

X-original-commit: 7076d59
Signed-off-by: Romain Estievenart (res) <res@odoo.com>
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Before this commit, when opening a conversation in chat
window, it always show a small flicker at opening.

This happens because there's a template part to show
start message text `"Welcome to #channel"` at the very
beginning of conversation. This must be shown only
at the very beginning, but when opening a conversation
in a chat window, there's a short period of time when
the component is not fully loaded and mounted. This
`"Welcome to #channel"` start message text was not
conditionally awaiting mounted and loaded thread component.

closes #213784

Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
When an unknown reaction is hovered (old emojis not present in
emoji data anymore for example), shortcode can not be found and
a crash occur. This commit fixes the issue.

closes #213794

Signed-off-by: Didier Debondt (did) <did@odoo.com>
This commit adds a default index on the order of `crm.lead`.
It will support the `web_search_read` that are done in the kanban view.

closes #213793

Signed-off-by: Rémy Voet (ryv) <ryv@odoo.com>
Co-authored-by: ryv-odoo <ryv@odoo.com>
- Add an options `keepCommands` inside `serializeForORM` method in order to keep the record dirty, so the next call to `serializeForORM` will again return the commands to apply for the ORM.

closes #213361

Task-id: 4848882
Related: odoo/enterprise#87193
Signed-off-by: Adrien Guilliams (adgu) <adgu@odoo.com>
Since refactoring of avatar widget, the name of the dirver is not
displayed anymore in the kanban view.

closes #213803

Signed-off-by: Pierre Masereel (pim) <pim@odoo.com>
In our [previous commit][1], there were still a few missing bits:
- We forgot to check for the `reconcile` option on the accounts set on
  a tax group.
- The Bolivian 
57A6
localization had its receivable and payable accounts
  mixed for the tax groups. We reversed them and created a new one.
- The 0% tax group for Spain had its receivable and payable accounts
  reversed. We changed them as well.

[1]: 925f8cb

task-3763030

closes #213052

X-original-commit: 609e552
Signed-off-by: Olivier Colson (oco) <oco@odoo.com>
Signed-off-by: Dylan Kiss (dyki) <dyki@odoo.com>
The shot value chartJs plugin would show the same value for a waterfall
chart than a bar chart (the value of the top of the bar), instead of the
correct value for a waterfall chart (the difference between the top and
the bottom of the bar).

Also the odoo_pyramid_chart would show negative values for the values
of the left of the pyramid, instead of the absolute value.

closes #213860

Task: 4812692
X-original-commit: d070597
Signed-off-by: Pierre Rousseau (pro) <pro@odoo.com>
@bt-admin bt-admin merged commit f35c7ee into brain-tec:staging.saas-18.3 Jun 12, 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.

0