Saturday, July 25, 2026
3 changes · saas-18.4
Resolved issues and error corrections
This fixes an error that could stop cloud storage migration checks from running when unsupported attachment models are present. The change makes the database query use valid syntax, helping migrations proceed reliably without unexpected failures.
Original PR description
Currentyl the unsupported models will be checked like the following
```sql
ia.res_model NOT IN ARRAY['model1', 'model2']
```
This causes a syntax error. Use `ANY` to avoid the issue
```sql
ia.res_model != ANY(ARRAY['model1', 'model2'])
```
Reproduce in Odoo shell
```python
from odoo.tools import SQL
query = SQL("""
SELECT ia.id
FROM ir_attachment ia
WHERE ia.res_model NOT IN %(unsupported_models)s
LIMIT 1;
""",
unsupported_models=self.env['ir.attachment']._get_cloud_storage_unsupported_models(),
)
```
opw-6404861
Forward-Port-Of: odoo/odoo#277971This fix restores the ability to reset certain Italian vendor bills to draft when they were imported from the tax authority system. It prevents legitimate imported bills from being blocked just because they carry an electronic invoicing transaction reference.
Original PR description
backport of b07624fdae794ae129fbe31cebf7a158be8bf39e - Install l10n_it_edi - Create and confirm vendor bill - Use studio to make the field l10n_it_edi_transaction editable - Input any value - The reset to draft button disappears In _compute_show_reset_to_draft_button we hide the reset to draft button if l10n_it_edi_transaction is populated in order to filter out moves already sent to the tax agency. Normally invoices and bills sent to the SDI cannot be modified. However it is possible to import vendor bills from the SDI, and their transaction field is also imported. It should be possible to modified those imported invoices. opw-6385498 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#277994
Discuss now avoids opening a profile card for livechat chatbot members that do not have a linked user account. This prevents an error when users click certain chatbot entries in the member list, improving reliability without changing normal user profile behavior.
Original PR description
In Discuss, clicking a livechat chatbot member from the member list can lead to a traceback because the avatar card is opened with member.persona.userId, while chatbot operators can be partner-only records with no related user. This happens when the bot member is not filtered out as is_bot, notably in the chatbot script test flow where the channel has no livechat_channel_id. We cannot simply block on a missing member.persona.userId: the user relation may exist but not be fetched yet. In the is commit we resolve the partner through mail.store.getPartner() before opening the avatar card, so valid users are fetched lazily and true partner-only records are ignored. task-4642940 Forward-Port-Of: odoo/odoo#275284