Wednesday, September 16, 2026
15 changes · master
Code cleanup and technical improvements
This update modernizes how Odoo handles internal business actions across Studio and many enterprise apps. It should not change day-to-day workflows, but helps keep the platform easier to maintain and aligned with the latest web architecture.
Original PR description
web_studio: replace makeActionManager with StudioActionManagerPlugin (subclass of ActionManagerPlugin), and move its doAction override onto the plugin class instead of monkey-patching it in the service, matching how the dialog service was already handled. Second commit updates every import for odoo/odoo's action_service.js → action_plugin.js rename.
This update restructures how Odoo's web client manages navigation actions and internal messaging, without changing expected user workflows. It helps make the platform easier to maintain and prepares the interface architecture for future improvements while keeping compatibility for existing features.
Original PR description
Extracts env.bus into its own GlobalBusPlugin (temporary EnvBusBridgePlugin keeps env.bus working for legacy callers), then converts the action service into ActionManagerPlugin, keeping a backward-compatible action service shim for existing useService() callers. File renamed to action_plugin.js to match every other migrated service.
Several country-specific payroll, reporting, and localization screens were updated to use the current component validation approach. This is an internal modernization that helps keep these features maintainable and aligned with the platform, with no expected change to day-to-day user workflows.
Original PR description
Replaced deprecated uses of `static props` with calls to `useProps()`, providing actual props validation for Owl components.
Whenever possible, also removed "empty" props definition, being either:
- `static props = ["*"]` with no use of `this.props`;
- `static props = {}`.The AI app module and its related Documents and Knowledge connectors have been renamed to better reflect the agent-based AI direction. References, assets, and translations were updated so the renamed modules continue to work consistently, with a dependency simplified behind the scenes.
Original PR description
- Rename `ai_app` to `ai_agentic`. Rename the Documents and Knowledge bridge modules accordingly. - Update all references and asset paths to use the new module names. - Replace the `web_studio` dependency with `base_automation`. task-id-6497307
The AI question tool can now display markdown-style formatting when asking users questions. This makes prompts clearer and easier to read, improving the user experience with AI-assisted workflows.
Original PR description
This commit introduce markdown formatting for the `_ai_tool_ask_user_question` tool.
The barcode scanning system was reorganized to support Odoo's upcoming interface technology migration. This is mainly an internal change that helps keep barcode-related features reliable across areas like events, attendance, point of sale, and self-ordering, without introducing major visible changes for users.
Original PR description
Services need to be converted to Plugin as part of the Owl3 migration. This commit converts the barcodeService into a new BarcodePlugin.
This update modernizes how several Odoo Enterprise apps validate information passed between interface components. It reduces reliance on deprecated code patterns, helping keep manufacturing, planning, projects, rooms, sales, and related tools easier to maintain without changing day-to-day user workflows.
Original PR description
* mrp_mps,mrp_workorder,project_enterprise,obox*,planning*,room,sale_*
Replaced deprecated uses of `static props` with calls to `useProps()`,
providing actual props validation for Owl components.
Whenever possible, also removed "empty" props definition, being either:
- `static props = ["*"]` with no use of `this.props`;
- `static props = {}`.The point-of-sale enterprise barcode handling has been reorganized to support Odoo's upcoming platform technology migration. This is an internal change that should help keep barcode features compatible and maintainable without changing day-to-day business workflows.
Original PR description
Services need to be converted to Plugin as part of the Owl3 migration. This commit converts the barcodeService into a new BarcodePlugin.
This update modernizes internal component setup in the Sign and Social apps by replacing an older validation pattern with the current one. It helps keep these apps maintainable and aligned with the platform’s latest standards, with no expected change to day-to-day user workflows.
Original PR description
Replaced deprecated uses of `static props` with calls to `useProps()`,
providing actual props validation for Owl components.
Whenever possible, also removed "empty" props definition, being either:
- `static props = ["*"]` with no use of `this.props`;
- `static props = {}`.Egyptian electronic invoicing is now handled directly through the invoice sending flow, with separate demo, test, and production modes. Businesses can also retrieve official ETA invoice PDFs, request cancellations from invoices, and track submissions more clearly, reducing reliance on older infrastructure and improving operational visibility.
Original PR description
This PR does following changes: - removes the dependency of `account_edi` module. - moves the e-invoice send logic to Send wizard. - Introduces following modes for sending invoices: - Demo: invoice not sent to ETA, only internal validations - Pre-production: Invoices sent to ETA pre-prod/test server - Production: Invoices sent to ETA production server - Adds support to fetch invoice PDF from ETA once invoice is sent to ETA. - Adds support to Cancel Invoice on ETA via the new cancel wizard accessible through Request Cancel button on invoice. - Minor UI improvements in invoice list view. - Introduces new model to log the submissions to ETA. task-5190493 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This pull request appears to be a test related to the Singapore localization area rather than a functional business change. It should have little to no direct impact on users or day-to-day operations.
Original PR description
Ignore. Testing with VIN if the codeowner is properly set. task-because-why-not
This update modernizes internal component definitions across time tracking, timesheet grid, and barcode workflows. It helps keep these areas maintainable and aligned with the current framework, with no expected change to day-to-day user behavior.
Original PR description
Replaced deprecated uses of `static props` with calls to `useProps()`,
providing actual props validation for Owl components.
Whenever possible, also removed "empty" props definition, being either:
- `static props = ["*"]` with no use of `this.props`;
- `static props = {}`.This change reorganizes how Odoo handles internal page actions and shared event messaging across many apps. It should preserve existing user workflows while making the platform easier to maintain and extend in future releases.
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
This update modernizes the way Odoo opens and manages actions across several business apps, without changing the intended user workflows. It helps keep the platform easier to maintain and prepares these areas for more consistent behavior in future updates.
This update simplifies how inter-company sales, purchases, and stock transfers match related stock movements. It is an internal cleanup that should make the process easier to maintain without changing day-to-day user behavior.
Original PR description
Clean up context key in _find_corresponding_move. The 2 context keys assigned_move_ids and skip_price_check are only used in this specific method. This commit updates to use method parameters instead.