Thursday, September 10, 2026
18 changes · master
Code cleanup and technical improvements
The upgrade tooling now updates older signing-related code to match Odoo's newer interface structure. This helps migrations stay compatible and reduces manual cleanup during upgrades.
Original PR description
`signInfoService` has been converted to an OWL3 Plugin, so existing useService("signInfo") call sites need to be rewritten.The Sign app's internal signing information service was reorganized into a newer plugin structure while keeping the old service available for compatibility. This should not change day-to-day signing behavior, but it helps maintain the feature and prepare it for the newer interface framework.
Original PR description
We rewrite the signInfo service as a plugin.
For legacy purposes, we keep the signInfo service (as a service).
`signInfoService` has been converted to an OWL3 Plugin, so existing
useService("signInfo") call sites need to be rewritten.This update modernizes internal user interface components across several Odoo apps by replacing an older component configuration pattern. It helps keep the platform compatible with the latest frontend framework standards and improves validation behind the scenes, with no expected change to day-to-day user workflows.
Original PR description
See commit messages for details. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update modernizes internal interface code across accounting, delivery, and related business apps to align with the latest framework standards. It improves long-term maintainability and validation without changing day-to-day user workflows.
Original PR description
See commit messages for details. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update modernizes internal screen components used across Documents and related business apps so they align with the latest Odoo interface framework. It improves maintainability and validation behind the scenes without changing day-to-day workflows for users.
Original PR description
See commit messages for details. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update reorganizes where inventory valuation and accrual account settings are managed, making accounting configuration more consistent across purchasing, sales, stock, manufacturing, and point of sale flows. It also improves performance for some Chilean electronic invoicing valuation calculations by avoiding repeated account lookups.
The grid view components were internally updated to use the newer validation approach required by the platform. This helps keep timesheet and grid-related screens maintainable and ready for future framework updates without changing user-facing behavior.
Original PR description
See commit messages for details. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This change relocates existing spreadsheet-related tests into the spreadsheet module. It does not change user-facing functionality, but it helps keep quality checks closer to the area they validate, making future maintenance more reliable.
Original PR description
Task: [4074487](https://www.odoo.com/web#id=4074487&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form) 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
The spreadsheet library was reorganized so it loads in a way that better supports Odoo's testing tools. This reduces the risk of test data mixing between editions and helps keep spreadsheet features more reliable over time.
Original PR description
Change the o_spreadsheet library from an IIFE to an ESModule. This is done because hoot doesn't support IIFE (the library is only loaded once, and the registries are filled with enterprise data in community tests). Task: [3995327](https://www.odoo.com/odoo/2328/tasks/3995327?cids=1) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Spanish electronic invoicing now uses one shared invoice type and VAT regime setup across SII, TicketBAI, Veri*Factu and related POS flows. This makes values visible and correctable before posting, then preserves them after posting so reported invoices do not change unexpectedly if tax settings are later updated.
Original PR description
Before this, SII, TicketBAI and Veri*Factu each re-derived a move's "TipoFactura" (F1/F2/R1-R5) and "ClaveRegimenEspecialOTrascendencia" at send time, from `l10n_es_is_simplified` (a boolean guessed…
Before this, SII, TicketBAI and Veri*Factu each re-derived a move's "TipoFactura" (F1/F2/R1-R5) and "ClaveRegimenEspecialOTrascendencia" at send time, from `l10n_es_is_simplified` (a boolean guessed from partner/amount) and ad hoc, slightly different tax-based rules per EDI. Credit notes needed a manual reason anyway, so each EDI kept its own private field for it (`l10n_es_sii_refund_reason`, `l10n_es_tbai_refund_reason`, `l10n_es_edi_verifactu_refund_reason` + `l10n_es_edi_verifactu_clave_regimen`). None of this was visible or correctable from the invoice before sending, and an already-declared move's values could silently drift if its tax configuration changed afterwards, since they were never actually stored. Both values now live directly on `account.move` as real fields: `l10n_es_invoice_type` (replacing `l10n_es_is_simplified`, since a boolean can't express F2 vs R5 vs a refund reason) and `l10n_es_regime_code`/`l10n_es_regime_code_additional`. They're computed once from the move's taxes and the company's special V regime, editable before posting to correct the odd case the com gets wrong, and frozen once posted so a declared invoice keeps what was sent regardless of later changes elsewhere. `account.tax` gets a matching `l10n_es_regime_code`, filled fro tax's own chart-template data instead of re-derived from its ty amount at report time. `l10n_es_applicability` (the tax's AEAT Impuesto: VAT/IPSI/IGIC) moves from `l10n_es_edi_verifactu` to alongside it, since it's a property of the tax itself, not of one EDI's document format, and `l10n_es`'s own regime-code catalog already keyed off it. This also fixes a silent gap: `l10n_eu_oss`'s EU_FIELD_ already stamped this field on the OSS taxes it generates, but t only existed when Veri*Factu happened to be installed, so OSS t a plain Spanish company silently lost their applicability. SII/TicketBAI/Veri*Factu no longer maintain their own refund-re field or re-derivation logic: they read `l10n_es_invoice_type`/ `l10n_es_regime_code` straight off the move, and only extend th catalog (`_l10n_es_regime_code_labels`/`_l10n_es_regime_available_codes` on `account.tax`/`res.company`) with the codes their own format each gated behind its own boolean so the EDI's can be installed together in any order without one silently exposing another's c The same `l10n_es_invoice_type` field is reused on `pos.order` TicketBAI/Veri*Factu POS integrations, replacing their own sepa refund-reason fields there too. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update simplifies how Odoo handles the visual layering of form stat buttons and related focus styling. It removes unnecessary styling logic, making the interface code easier to maintain without changing the user experience.
Original PR description
The custom property used to stack the states of a stat button had no effect on the cascade: the three states have the same specificity and are already declared in the order of their priority, so the value they set is resolved exactly like a plain z-index would be. Plus in this case, it doesn't improve the performance. The inset focus ring of the "More" dropdown duplicated the value of $focus-ring-box-shadow, with a comment asking for both to be kept in sync. It is now defined next to it, as $focus-ring-inset-box-shadow, so that the ring follows $focus-ring-width, $focus-ring-blur and $focus-ring-color on its own. task-6528444 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
This change updates internal accounting and related interface components to use the newer Owl component property handling. It helps keep the system compatible with upcoming framework changes while improving validation behind the scenes, with no expected change to day-to-day user workflows.
Original PR description
See commit messages for details. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update streamlines how command palette options are supplied across several Odoo apps. It is an internal cleanup that should make the code easier to maintain without changing the user experience.
Original PR description
* mail,spreadsheet,test_translation_mode,web,web_tour This commit removes the `env` param of the provide function of command providers. The env still can be retrieved with `useEnv()`.
This update streamlines how command palette actions access application context across Account Reports, AI, AI App, and Knowledge. It is an internal cleanup that should not change day-to-day user behavior, but helps keep the code easier to maintain.
Original PR description
* account_reports,ai,ai_app,knowledge This commit removes the `env` param of the provide function of command providers. The env still can be retrieved with `useEnv()`.
This update removes redundant test helper code and old commented-out test content from the accounting accountant module. It does not change product behavior, but makes the test suite easier to maintain and reduces clutter for future development.
Original PR description
This commit cleans up the test suite within the `account_accountant` module by removing redundant methods and old commented code. no-task Forward-Port-Of: odoo/enterprise#130857 Forward-Port-Of: odoo/enterprise#130644
This update refreshes several HR-related app screens to use the newer interface framework standards. It is an internal maintenance change that improves validation and long-term reliability without changing employee-facing workflows.
Original PR description
See commit messages for details. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The spreadsheet component now handles clipboard data through a centralized store, improving the internal structure of copy and paste behavior. This is mainly a technical cleanup that should make future spreadsheet maintenance and updates more reliable, with tests adjusted accordingly.
Original PR description
### [REF] spreadsheet: transform the clipboard into a store The `o-spreadsheet` commit tranformet the clipboard into a store. Some test needed to be adapted. Task: [6389205](https://www.odoo.com/web#id=6389205&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Spreadsheet-related automated tests were updated to align with an internal clipboard handling change. This keeps spreadsheet editing, charts, filters, pivots, comments, and sales spreadsheet behavior reliably covered without changing the user-facing workflow.
Original PR description
### [REF] spreadsheet_edition: transform the clipboard into a store The `o-spreadsheet` commit tranformet the clipboard into a store. Some test needed to be adapted. Task: [6389205](https://www.odoo.com/web#id=6389205&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form)