Daily updates from Odoo
Saturday, November 22, 2025
11 changes · saas-18.3
Resolved issues and error corrections
This update makes sure date placeholders in signing documents only appear for the signer they belong to. It prevents one signer from seeing the next signer’s placeholder, reducing confusion during the signing process.
Original PR description
Version: - saas-18.3 Steps to reproduce: - Add date fields for multiple signers. - When the first signer signs, the date placeholder for the next signer becomes visible to the first signer. Issue: - Date fields for next signers were showing placeholders to the current signer. Fix: - Added a condition to only set the placeholder when it has a valid value. Impact: - Ensures date placeholders are visible only to the correct signer. task-5218970
This change fixes an issue where the French balance sheet could become unbalanced after the 2024 chart of accounts update. It restores missing income and expense amounts in the retained earnings calculation so the report stays correct and consistent for 2025 reporting.
Original PR description
[FIX] l10n_fr_reports: unbalanced Balance Sheet when coming from the 2024 CoA https://github.com/odoo/odoo/commit/8f3a86925e0301c15ca93b64d6237b69a534d71a introduced a new version of the French CoA,…
[FIX] l10n_fr_reports: unbalanced Balance Sheet when coming from the 2024 CoA https://github.com/odoo/odoo/commit/8f3a86925e0301c15ca93b64d6237b69a534d71a introduced a new version of the French CoA, legally mandatory starting in 2025. Doing so, it also adapted the P&L and BS reports accordingly. However, it did not take into account the fact that some deprecated account codes would disappear from the P&L, causing the BS to be unbalanced when computing the retained earnings (by calling the P&L with a forced date_scope to run it on the full history). We fix that by reinjecting the balance of the missing Income and Expense accounts in the computation of the BS's Retained Earnings line. opw-5212801 =============================================================== [FIX] l10n_fr_reports : add new accounts in P&L Backport from https://github.com/odoo/enterprise/commit/eb35916f4f5a45e0c11919e0ee1a16e0caee010f , which was done in master for 18.2, but should have targetted older versions as well. Forward-Port-Of: odoo/enterprise#100116 Forward-Port-Of: odoo/enterprise#100077
This change prevents partner information from being unnecessarily recalculated on bank statement lines after an edit or deletion. It helps keep the correct partner on each line and avoids unexpected changes during reconciliation.
Original PR description
Before this commit, when having multiple lines in a statement line. By default, all the lines have a partner since we compute the partner depending of other lines. But in the case of an edit or a delete we don't want to recompute. What was happening is that the partner keep getting recomputed on the other lines even the one that was previously edited. This commit will add a context key when using the reconcile button to recompute the partners. opw-5179670
The OSS refresh action now correctly handles one company at a time instead of trying to run across all selected companies. This prevents an error when users work with multiple companies enabled and refresh the mapping on the active company.
Original PR description
To reproduce: - Activate multiple companies in the selector - Enable OSS on the active company - Click the refresh mapping button ===> Traceback, because a function expects to be called on a single company and is instead called on all the active companies. Forward-Port-Of: odoo/odoo#236103
Importing CSV files encoded in UTF-16 no longer fails with a low-level Python decoding error. Instead, users now get a clearer warning, making it easier to understand and fix file import issues.
Original PR description
Currently, an error occurs when importing CSV files encoded in utf-16. **Steps to reproduce:** - Install the `account_bank_statement_import_csv` module. - Open invoicing and upload file [1] in Bank transactions. - Change the encoding to `utf-16` and click `test`. **Error:** `UnicodeDecodeError: 'utf-16-le' codec can't decode byte 0x0a in position 376: truncated data` **Root Cause:** At [2], the CSV data is decoded strictly with the specified encoding. When decoding detects incomplete or unexpected byte sequences, Python raises an `error`. **Fix:** This commit ensures raising a `warning`, improving the `error message clarity`. [1]: https://drive.google.com/file/d/14thHRN210aeY8fcUBAb01PniVrd7QHer/view?usp=sharing [2]: https://github.com/odoo/odoo/blob/67503c0ce7ede8373800caa0a12203d271b7f1ae/addons/base_import/models/base_import.py#L544 sentry-6864546266 Forward-Port-Of: odoo/odoo#226023
When a document is locked from the preview screen, the actions menu now updates immediately to show the correct options. This prevents users from seeing outdated actions and makes the document workflow more reliable.
Original PR description
Steps to reproduce =================== - Preview any documents. - Click on the actions menu and lock the document. - Now go to the actions menu again. => The set of options is not updated. Technical =========== - The action menu, which we are using inside the file previewer, is passed explicitly inside the FileViewer component of the document. We were using the `record.load()`, which will not have any effect on the FileViewer component and that's why the action menu was not updating. After this commit ================== - Used the `this._notifyChange()` method, which closes the preview and loads the model to align with the same behaviour as other actions. Task-4988116 Forward-Port-Of: odoo/enterprise#91760
The German DATEV export now uses the manually adjusted tax amount on vendor bills instead of an older calculated value. This ensures the exported accounting file matches what users see in the ledger and avoids reporting discrepancies.
Original PR description
- Install Accounting and `l10n_de_reports` - Switch to a German company - Create a bill: * Price: `100.00` * Taxes: `19%` - Edit the tax total with the pencil button - Go to "Accounting / Reporting /…
- Install Accounting and `l10n_de_reports` - Switch to a German company - Create a bill: * Price: `100.00` * Taxes: `19%` - Edit the tax total with the pencil button - Go to "Accounting / Reporting / Audit Reports / General Ledger" => The tax amount is the one that has been edited manually - Download `Datev DATA (zip)` - Open `EXTF_accounting_entries.csv` file The total amount in the file is the one before the edition of the tax amount. The Datev data depends on `price_total` field of the invoice lines, but this field is not updated when the tax amount is edited manually. We now check the total by adding `price_total` of each invoice line and the total amount defined in `tax_totals` field. If there is a difference, compute the delta for each tax group and split it between all the lines where a tax of that group is used. Ticket [link](https://www.odoo.com/odoo/project.task/4951488) opw-4951488 Forward-Port-Of: odoo/enterprise#100086 Forward-Port-Of: odoo/enterprise#98684
Invoicing-only users can now create and open invoices even when a TDS/TCS warning is present on the related account. This prevents access errors and avoids blocking normal billing work for users who do not have full accounting rights.
Original PR description
Invoicing users were unable to create or open invoices because the `l10n_in.section.alert` model (used for TDS/TCS warning on the chart of account) was restricted only to Accounting groups (Administrator and Read-only). **Steps to Reproduce** 1. Install l10n_in,account_accountant 2. Create two users: - Admin user - Invoicing user (only invoicing rights) 3. As Admin: - Enable TDS/TCS module - Open any Chart of Account - Select a TDS/TCS Section - Save 4. As Invoicing user: - Try to create an Invoice/Bill with that Chart of Account → Access Error occurs Fix Result Invoicing-only users can now create and access invoices without access errors. Task-5346551 Forward-Port-Of: odoo/odoo#236965 Forward-Port-Of: odoo/odoo#236896
This change prevents a stray “undefined” label from appearing when parts of a form are hidden. It keeps the page clean and avoids confusing users, especially in larger forms where action buttons are loaded separately.
Original PR description
Currently if the root node of a template is invisible at compile time the "new root" will contain the word "undefined" in plain text. Instead if we skip rendering the root for whatever reason, the new root should simply be an empty t node. This lead to issues in full-size forms specifically as the controller compiles the buttons separately. Meaning if the buttons div was evaluated to be invisible for whatever reason you would get "undefined" where stats buttons normally go. task-5322823 Forward-Port-Of: odoo/odoo#236724 Forward-Port-Of: odoo/odoo#236461
When an invoice is duplicated, it will no longer retain the original sales order as its source document. This prevents copied invoices from showing misleading links and avoids export or EDI issues caused by outdated source information.
Original PR description
Currently we copy the `invoice_origin` field on moves (when copying / duplicating moves). I.e. when copying a move that was created from a SO we end up with the `invoice_origin` filled on the copied move (but the SO is not linked and does not really have anything to do with the move anymore) This can i.e. lead to issues in EDIs (`l10n_es_edi_verifactu` like in the ticket) that send the `invoice_origin` as part of the data about the move. Reproduce 1. Create a sales order (SO). 2. Create an invoice from the SO (and confirm). You can see that the SO is linked at the top (smart button). 3. Copy the invoice (and confirm). You can see that the SO is not linked. 4. Go to the invoices list view and make the "Source Document" visible. 5. Both the invoices have the same SO as their "Source Document". opw-5115495 Forward-Port-Of: odoo/odoo#236656
This update fixes how Facebook statistics are calculated for connected accounts and posts after Facebook changed several reporting metrics. It helps keep the audience and post performance numbers working correctly, though one audience trend value is temporarily set to zero until a fuller fix is ready.
Original PR description
Bug === Facebook deprecated some of the endpoints related to statistics https://developers.facebook.com/docs/platforminsights/page/deprecated-metrics For the accounts, `page_fan_adds` and `page_fan_removes`, we are still unsure about unfollow, and so to get a fix quickly, we set the audience trend to zero, and we will fix it later. For live post, we used `post_impressions` in the API call, but that metric was not used, so we just remove it. For stream post, `post_impressions` has been replaced by `post_media_view`, as suggested in the migration note from Facebook. Task-5346965 Forward-Port-Of: odoo/enterprise#100119