Thursday, July 23, 2026
5 changes · 17.0
Resolved issues and error corrections
Issue: Users in debug mode can access chatter's form and alter it. Steps to reproduce: Enter debug mode ('?debug=1'); Go into any chatter (ex: Sales) Send a message In the debug menu go in "Manage Messages" Select the message you just sent and you should be able to alter, who sent it, what is in the message, sent date,... Cause: The fields on the xml form are missing readonly, as this information should not be edited. Solution: Added the readonly in order for users to not change
Original PR description
Issue:
Users in debug mode can access chatter's form and alter it.
Steps to reproduce:
Enter debug mode ('?debug=1');
Go into any chatter (ex: Sales)
Send a message
In the debug menu go in "Manage Messages"
Select the message you just sent and you should be able to alter, who sent it, what is in the message, sent date,...
Cause:
The fields on the xml form are missing readonly, as this information should not be edited.
Solution:
Added the readonly in order for users to not change this data.
opw-6270043The earlier fix that base64-decodes the /pdf response missed one test on 17.0 whose mock returned raw PDF bytes instead of the JSON-decoded base64 string `NilveraClient.request()` actually returns. On Python <=3.13 `b64decode` silently produced garbage and the mimetype-only assertion stayed green; on Python 3.14 strict validation rejects the raw bytes with `binascii.Error: Incorrect padding`. Encode the fixture with `b64encode(...).decode()` so the mock matches the real API. Descript
Original PR description
The earlier fix that base64-decodes the /pdf response missed one test on 17.0 whose mock returned raw PDF bytes instead of the JSON-decoded base64 string `NilveraClient.request()` actually returns. On Python <=3.13 `b64decode` silently produced garbage and the mimetype-only assertion stayed green; on Python 3.14 strict validation rejects the raw bytes with `binascii.Error: Incorrect padding`. Encode the fixture with `b64encode(...).decode()` so the mock matches the real API. 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
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/ff598a772e [REL] 17.0.104 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) https://github.com/odoo/o-spreadsheet/commit/30768e0885 [FIX] HeaderVisibility: fix `getNextVisibleCellPosition` getter [Task: 6340589](https://www.odoo.com/odoo/2328/tasks/6340589) https://github.com/odoo/o-spreadsheet/commit/b46950d130 [FIX] edition: do not change edition if not editing [Task: 6340589](https://www.odoo.com/odoo/2328/tasks
Original PR description
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/ff598a772e [REL] 17.0.104 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0)…
### Contains the following commits: https://github.com/odoo/o-spreadsheet/commit/ff598a772e [REL] 17.0.104 [Task: 0](https://www.odoo.com/odoo/2328/tasks/0) https://github.com/odoo/o-spreadsheet/commit/30768e0885 [FIX] HeaderVisibility: fix `getNextVisibleCellPosition` getter [Task: 6340589](https://www.odoo.com/odoo/2328/tasks/6340589) https://github.com/odoo/o-spreadsheet/commit/b46950d130 [FIX] edition: do not change edition if not editing [Task: 6340589](https://www.odoo.com/odoo/2328/tasks/6340589) Co-authored-by: Florian Damhaut (flda) <flda@odoo.com> 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: Adrien Minne (adrm) <adrm@odoo.com> Co-authored-by: Ronak Mukeshbhai Bharadiya (rmbh) <rmbh@odoo.com> Co-authored-by: Dhrutik Patel (dhrp) <dhrp@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> Co-authored-by: Marceline Thomas (matho) <matho@odoo.com>
Currently, sending a simplified invoice (`TD07`) to the Italian Tax Agency fails when an invoice line contains multiple taxes. **Steps to reproduce:** - Install the `l10n_it_edi_withholding` module and switch to an IT Company. - Create a new customer and set only the country to Italy and the Tax ID. - Create a new invoice for that customer. - Add a line with `22%` and `4% INPS` taxes. - Go to the `Electronic Invoicing` tab, set the `Document Type` to `TD07 - Simplified invoice`, and c
Original PR description
Currently, sending a simplified invoice (`TD07`) to the Italian Tax Agency fails when an invoice line contains multiple taxes. **Steps to reproduce:** - Install the `l10n_it_edi_withholding` module…
Currently, sending a simplified invoice (`TD07`) to the Italian Tax Agency fails when an invoice line contains multiple taxes. **Steps to reproduce:** - Install the `l10n_it_edi_withholding` module and switch to an IT Company. - Create a new customer and set only the country to Italy and the Tax ID. - Create a new invoice for that customer. - Add a line with `22%` and `4% INPS` taxes. - Go to the `Electronic Invoicing` tab, set the `Document Type` to `TD07 - Simplified invoice`, and confirm the invoice. - Try to `Send To Tax Agency`. **Error:** `Node: <Natura t-if="line.tax_ids.l10n_it_exempt_reason" t-out="line.tax_ids.l10n_it_exempt_reason"/>` `ValueError: Expected singleton: account.tax(102, 3)` **Root Cause:** At [1], the code accesses `line.tax_ids.l10n_it_exempt_reason`, but when an invoice contains multiple taxes, causing an error. **Fix:** This commit prevents the error and ensures the user can send a simplified invoice by applying a fix similar to [2]. [1]: https://github.com/odoo/odoo/blob/230483ffd7d8674cd6bf98a4ffb6591f755422e0/addons/l10n_it_edi/data/invoice_it_simplified_template.xml#L14 [2]: https://github.com/odoo/odoo/blob/230483ffd7d8674cd6bf98a4ffb6591f755422e0/addons/l10n_it_edi/data/invoice_it_template.xml#L28-L181 Ticket [link](https://www.odoo.com/odoo/project.task/6354138) Ticket [link](https://www.odoo.com/odoo/project.task/6379377) opw-6354138 opw-6379377
## Problem: Whitespace formatting in email template xmls (newline and tab) would find their way into the html editor, and would be made visible after interacting with feff injection. ## Solution: We will sanitize mail templates as they are loaded, removing any unnecessary formatting whitespace. ## Steps to replicate (runbot v17): 1. Open an email template (Purchase: Purchase Order) 2. Place your cursor at the very end of a t-out element that precedes another bit of text (like 'P00015')
Original PR description
## Problem: Whitespace formatting in email template xmls (newline and tab) would find their way into the html editor, and would be made visible after interacting with feff injection. ## Solution: We will sanitize mail templates as they are loaded, removing any unnecessary formatting whitespace. ## Steps to replicate (runbot v17): 1. Open an email template (Purchase: Purchase Order) 2. Place your cursor at the very end of a t-out element that precedes another bit of text (like 'P00015'), then type a character. 5 ` ` characters will be inserted after your character. opw-6124284