Wednesday, March 12, 2025
18 changes · 17.0
Resolved issues and error corrections
This fix ensures Indian stock e-way bills include tax fields set to zero when no tax applies. This prevents government API submissions from failing due to missing tax details in intra-state stock movements.
Original PR description
Use case: When sending stock ewaybill with no taxes at that time government API is expecting the taxes values as `0`. Issue: When there is no tax applied we get an empty list due to which it doesn't set the default taxes to `0` Fix: We make sure if there no taxes then return a default taxes as `0` opw-4639009 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update refreshes Odoo's spreadsheet component and fixes an issue when handling literal text in Excel files. Users should see more reliable spreadsheet behavior, especially when importing or exporting XLSX documents.
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/47dfd62be [REL] 17.0.53 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) https://github.com/odoo/o-spreadsheet/commit/a51de541e [FIX] Xlsx: do not nest literal strings [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) Co-authored-by: Anthony Hendrickx (anhe) <anhe@odoo.com> Co-authored-by: Alexis Lacroix (laa) <laa@odoo.com> Co-authored-by: Lucas Lefèvre (lul) <lul@odoo.com> Co-authored-by: Dhrutik Patel (dhrp) <dhrp@odoo.com> Co-authored-by: Adrien Minne (adrm) <adrm@odoo.com> Co-authored-by: Mehdi Rachico (mera) <mera@odoo.com> Co-authored-by: Florian Damhaut (flda) <flda@odoo.com> Co-authored-by: Rémi Rahir (rar) <rar@odoo.com> Co-authored-by: Pierre Rousseau (pro) <pro@odoo.com> Co-authored-by: Vincent Schippefilt (vsc) <vsc@odoo.com>
This fix prevents the online checkout from crashing when a customer pays with the Demo payment provider and their delivery address has no contact name. Customers can now complete payment in this edge case instead of seeing an error page.
Original PR description
If the user's contact have delivery address without contact name and the user pays for an order by the Demo payment provider, a traceback will appear. Steps to reproduce the error: - Install…
If the user's contact have delivery address without contact name and
the user pays for an order by the Demo payment provider,
a traceback will appear.
Steps to reproduce the error:
- Install "website_sale" and "contacts" module
- Activate Demo payment provider
- Go to Contacts > Open Mitchell Admin > Contacts & Addresses >
Add Delivery Address without Contact Name > Save
- Go to Website > Shop > Add a product to cart > Proceed to Checkout >
Pay with Demo > Pay
Traceback:
```
AttributeError: 'bool' object has no attribute 'endswith'
File "odoo/http.py", line 2256, in __call__
response = request._serve_db()
File "odoo/http.py", line 1832, in _serve_db
return self._transactioning(_serve_ir_http, readonly=ro)
File "odoo/http.py", line 1852, in _transactioning
return service_model.retrying(func, env=self.env)
File "odoo/service/model.py", line 134, in retrying
result = func()
File "odoo/http.py", line 1830, in _serve_ir_http
return self._serve_ir_http(rule, args)
File "odoo/http.py", line 1837, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 2062, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 220, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 742, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/website_sale/controllers/main.py", line 1365, in process_express_checkout
if order_sudo.partner_shipping_id.name.endswith(order_sudo.name):
```
https://github.com/odoo/odoo/blob/97d13089ba320ab20e564a45fcd2a6f8b33d8e9b/addons/website_sale/controllers/main.py#L1429
When the delivery address does not have a contact name,
Here, order_sudo.partner_shipping_id.name will be False,
So it will lead to the above traceback.
sentry-4664052401
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThe chat channel invitation search now waits briefly while users type before sending a lookup request. This reduces unnecessary server activity and should make the invite experience more efficient without changing how users interact with it.
Original PR description
Before this PR, a request was sent for each character typed inside the search of the invite to the channel panel. This PR introduces a debounce to avoid spamming the server with useless requests. Part of Task-4637517
The Training email template now correctly shows the unsubscribe link when mass mailing emails are sent. This helps recipients manage their preferences and supports compliant email communication.
Original PR description
### Steps to reproduce * install `mass_mailing` * send an email with the "Training" template You will see that the "unsubscribe" link does not appear in the email that is sent opw-4615170
The website header now keeps uploaded logos properly contained when using the Rounded Box Menu template. This prevents visual layout issues, especially after saving changes or viewing the site on mobile devices.
Original PR description
Specification: This update ensures that the logo remains contained within the header, preventing overflow when certain templates are applied. Steps to Reproduce: 1. Go to the website and enter Edit Mode. 2. Upload a logo and select the "Rounded Box Menu" header template. 3. Save the changes or switch to mobile view. 4. Observe that the logo overflows from the header. Solution: This commit adjusts the UI styling to keep the logo within header bounds, especially in mobile view. task-4310456
The expense module test setup was adjusted so it no longer depends on optional demo tax data. This helps keep automated checks reliable across different database configurations without changing day-to-day user behavior.
Original PR description
A [commit](https://github.com/odoo/odoo/pull/192524/commits/2694f9f9bfb8d3d92bd4618e041359150e1ba501) added a test that was failing when running it with demo data. It was due to a tax unnecessary for the test that was present with demo data. This commit ensures the test is run with no tax applied. opw-4389303
Mobile users will no longer see a keyboard shortcut tooltip in the chatter that does not apply to them. This removes confusing guidance on small screens and makes the messaging experience feel more appropriate for mobile devices.
Original PR description
This fix aims to improve the user experience on mobile by removing useless tooltips on the chatter. Since the user usually does not have a keyboard on the mobile, we do not show the keybind tooltip when the screen is small task-4633869
Manufacturing users can now print labels for a finished lot even when the current production quantity is still zero. This prevents empty labels during shop floor operations by using the planned quantity when no in-progress quantity has been entered.
Original PR description
### Issue: You can not print label for an mo is the qty_producing is at 0. ### Steps to reproduce: - Create a storable product FP tracked by LOT. - Create a bom for that product with 1 operation containing an instruction of type: "print label" - Create and confirm an MO for 10 units and set a lot by hand (but ensure that the qty_producing of the MO is still at 0). - Process the operation in the shopfloor and print label #### > The printed label is empty. ### Cause of the issue: The qty of label printed depends solely on the qty_producing of the workorder but in case this one is not set we should rather rely on the qty to be produced. https://github.com/odoo/enterprise/blob/2a91cb194d070879b5e1e5f5fa03178aa2dcc7ec/mrp_workorder/models/quality.py#L344-L351 https://github.com/odoo/enterprise/blob/2a91cb194d070879b5e1e5f5fa03178aa2dcc7ec/mrp_workorder/models/quality.py#L327-L332 opw-4583573
Upsell quotations for subscriptions now preserve customer-facing notes and section headers from the original subscription. This prevents important context and organization from being lost when preparing an upsell, reducing manual rework and quote errors.
Original PR description
…uotation steps to reproduce: - create a new subscription with notes and sections - invoice it, then upsell it -> the upsell lost the notes and sections This happened because of a condition checking if some sale order lines were non-recurring products, but the condition didn't take into account for "special" lines like notes and sections. opw-4632890
This fixes a duplicate warning label in the Brazilian electronic invoicing flow. The change helps ensure alerts are displayed clearly and avoids confusion when multiple invoicing warning messages appear.
Original PR description
The field `account.move.send.l10n_br_edi_warning` has the label `Warning` which is the same as the field `account.move.send.peppol_warning` in [`account_peppol`](https://github.com/odoo/odoo/blob/457de257fe0d3894f1a9075c0e7673561653f54b/addons/account_peppol/wizard/account_move_send.py#L20-L23) module. The field labels should be unique, and the labels are now shown in the [view](https://github.com/odoo/enterprise/blob/a71c38fa6325cd18c686352d8f68d350461d37d0/l10n_br_edi/wizard/account_move_send_views.xml#L8-L12) for the alerts. Both fields are removed in saas-17.4
Miscellaneous changes
Some of them were deprecated by AFIP so we target them with that tag (we deactivate them) Also add new AFIP responsibilities and fix the code and active status of the one valid. Also update the code that do the match of the document types related to docs types: * all cases that accepted A now also accept M documents * remove deprecated responsibility match * add match to new responsibility LATAM 1300 / Adhoc Task 47476 --- I confirm I have signed the CLA and read the PR
Original PR description
Some of them were deprecated by AFIP so we target them with that tag (we deactivate them) Also add new AFIP responsibilities and fix the code and active status of the one valid.
Also update the code that do the match of the document types related to docs types:
* all cases that accepted A now also accept M documents
* remove deprecated responsibility match
* add match to new responsibility
LATAM 1300 / Adhoc Task 47476
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#198247Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#200033
Original PR description
Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#200033
During the upgrade tests the test module will start with `odoo.upgrade` instead of `odoo.addons` Fixing the canonical tag to work in both cases. Forward-Port-Of: odoo/odoo#200942
Original PR description
During the upgrade tests the test module will start with `odoo.upgrade` instead of `odoo.addons` Fixing the canonical tag to work in both cases. Forward-Port-Of: odoo/odoo#200942
We call NotSupportedError with the keyword "new" in order to avoid this kind of errors in py_js: UncaughtPromiseError > TypeError Uncaught Promise > Class constructor NotSupportedError cannot be invoked without 'new' ... Forward-Port-Of: odoo/odoo#200971
Original PR description
We call NotSupportedError with the keyword "new" in order to avoid this kind of errors in py_js: UncaughtPromiseError > TypeError Uncaught Promise > Class constructor NotSupportedError cannot be invoked without 'new' ... Forward-Port-Of: odoo/odoo#200971
LATAM Task 1300 - ADHOC Task 47476 Forward-Port-Of: odoo/enterprise#79635
Original PR description
LATAM Task 1300 - ADHOC Task 47476 Forward-Port-Of: odoo/enterprise#79635
We support sending credit transfers using ISO 20022 to accommodate non SEPA bank transfers (any party having no IBAN number). However when generating the XML file, we assumed that our company always had an IBAN number and put it in an IBAN node. For non IBAN numbers however we need to put it in another node. This commit fixes that. [opw-4585994](https://www.odoo.com/odoo/project.task/4585994) Forward-Port-Of: odoo/enterprise#80757
Original PR description
We support sending credit transfers using ISO 20022 to accommodate non SEPA bank transfers (any party having no IBAN number). However when generating the XML file, we assumed that our company always had an IBAN number and put it in an IBAN node. For non IBAN numbers however we need to put it in another node. This commit fixes that. [opw-4585994](https://www.odoo.com/odoo/project.task/4585994) Forward-Port-Of: odoo/enterprise#80757
Before this commit a translated mail layout's header would be (e.g. in Dutch) 'Je signature'. After this commit, the model's description is translated (e.g. in Dutch) to 'Je Handtekening'. This replicates the same behavior as the _send_signature_access_mail() method. Impacted versions: 16.0, 17.0 and 18.0 Forward-Port-Of: odoo/enterprise#77948
Original PR description
Before this commit a translated mail layout's header would be (e.g. in Dutch) 'Je signature'. After this commit, the model's description is translated (e.g. in Dutch) to 'Je Handtekening'. This replicates the same behavior as the _send_signature_access_mail() method. Impacted versions: 16.0, 17.0 and 18.0 Forward-Port-Of: odoo/enterprise#77948