Skip to main content
Auto Save Restrict — A build-to-order Odoo module that suppresses the framework's implicit auto-save on form views, replacing — 1/1Illustrative preview

A build-to-order Odoo module that suppresses the framework's implicit auto-save on form views,

replacing silent commits with an explicit, permission-aware save gate across the models you choose.

ECOSIRE scopes, builds, installs, and supports it — it is not an off-the-shelf download.

What is Auto Save Restrict?

A build-to-order Odoo module that suppresses the framework's implicit auto-save on form views, replacing silent commits with an explicit, permission-aware save gate across the models you choose. ECOSIRE scopes, builds, installs, and supports it — it is not an off-the-shelf download. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $999.00 USD; request a quote for a scoped proposal.

Key Features

Intercepts the OWL FormController implicit save so breadcrumb navigation, related-record opens, and view discards no longer silently commit a dirty record
Explicit "Save / Discard / Stay on page" confirmation dialog on any restricted form before a write is persisted
Optional mode that makes the toolbar Save button the only path to a commit, fully disabling auto-save on chosen models
Per-model allowlist configured via res.config.settings so you restrict, e.g., account.move and mrp.production while leaving other models on Odoo defaults
Optional res.groups ("Confirm before save") so the restriction applies only to selected users and power users can be exempted
Prevents premature @api.onchange side effects and unintended writes on partially edited records
Covers list/tree inline-edit save paths in addition to form views where in scope
Layered over the standard ORM create/write — record rules, ir.model.access.csv, and Python constraints still enforce on the real save
Dirty-state detection that warns on browser tab close/refresh for restricted records where the browser permits
Config exposed through ir.config_parameter for a headless/default behavior without per-user setup
Built against public framework patch points rather than full template replacement, so it survives 17/18/19 point upgrades
Compatible with Community and Enterprise, including Enterprise-only form views present in your edition
XML-RPC/JSON-RPC writes are unaffected by design — the gate is a UI safeguard, not an API lock (documented explicitly)
Audit-friendly: reduces accidental writes so mail.thread chatter and field-tracking reflect only intentional changes

Built to order, done for you

No DIY setup — a working app, built, installed and supported by ECOSIRE.

  1. 1

    You order

    Start with a one-time build price. We scope it with you at kickoff.

  2. 2

    We build & install

    ECOSIRE builds, configures and installs it on your Odoo.

  3. 3

    Go live + support

    You go live in about one working week, with two weeks of go-live support. Defects in the code we deliver are fixed free of charge.

Technical Specifications

Odoo Compatibility
Odoo 17, Odoo 18, Odoo 19
Editions
Enterprise & Community
License
Licence confirmation required
Python Requirement
Python 3.10+
Database
PostgreSQL 12+

About this Product

Odoo's web client saves aggressively by design: a dirty form is auto-committed when the user clicks away via the breadcrumb, opens a related record, presses a smart button, or discards the view. For high-stakes records — draft invoices, manufacturing orders, priced sales lines, HR data, inventory adjustments — that helpful behavior becomes a liability. Users commit half-finished edits without meaning to, @api.onchange side effects fire prematurely, and audit trails fill with unintended writes. Odoo core gives you no setting to disable this: the auto-save is baked into the OWL form controller and the standard breadcrumb/discard flow, and record rules or ir.model.access.csv only govern whether a write is allowed, never when it happens. That is exactly where native runs out of road.

Auto Save Restrict is a module we build to your specification that intercepts the form view's implicit save path and requires an explicit user action before any commit is persisted. Technically, we patch the web client form controller (the OWL FormController in 17.0+) so that navigation away, smart-button clicks, and view discards no longer silently flush a dirty record; instead the user gets a deliberate "Save / Discard / Stay" decision, or — where you prefer — the toolbar Save button becomes the only route to a write. Scope is configured per model through a small settings model (res.config.settings toggles plus a target-model allowlist), so you decide which models are restricted (for example account.move and mrp.production) and which keep Odoo's default behavior. Because the gate is client-side interception layered over the standard ORM create/write, no data path is bypassed — security, record rules, and constraints all still apply on the actual save.

Under the hood the module ships as a standard addon: a __manifest__.py declaring the web and relevant business dependencies, a JS asset bundle that extends the form controller and (optionally) the list-view inline-edit save, an ir.model.access.csv for the configuration model, and an optional res.groups so that only users in a "Confirm before save" group are affected — letting you exempt power users if desired. Behavior can be driven by an automated action or server-side ir.config_parameter where you want a headless default. It is engineered against the framework's public patch points rather than brittle template overrides, so it survives point upgrades, and we build and test it explicitly for Odoo 17.0, 18.0, and 19.0 on both Community and Enterprise (Enterprise-only views such as certain accounting and studio-generated forms are handled where present in your edition).

Delivery is build-to-order: after a short scoping call we confirm the exact models, user groups, and confirmation UX, then build, test on a staging copy of your database, and install on your environment — typical delivery is one working week from confirmed scope. You receive the full source, documentation, and a support window; nothing is a pre-existing download you install yourself. Pricing starts from $999 (indicative, single-company base scope); the number of restricted models, custom confirmation workflows, per-group exemption logic, and multi-company or Enterprise-view coverage increases the quoted scope.

What you get

  • Installable source code for your commissioned version, built for your target Odoo edition and version (17.0/18.0/19.0)
  • Installation and configuration on your environment, including the per-model allowlist and any user groups
  • Technical documentation covering the patch points, configuration model, and upgrade notes
  • End-user guide plus a live training session for the teams whose save flow changes
  • Post-go-live support window for defect fixes and configuration adjustments
  • UAT on a staging copy of your database with an agreed rollback plan before production install
  • Handover of the full git repository with commit history and manifest
  • Compatibility notes on Community vs Enterprise views and known XML-RPC/JSON-RPC behavior

Who this is for

Finance & Accounting Lead

Runs draft invoices and journal entries in account.move and needs users to deliberately confirm before a record is written, so partially keyed or mis-onchanged entries never silently post to the ledger or trigger premature side effects.

Operations / Manufacturing Manager

Manages mrp.production and inventory adjustments where an accidental auto-save on a dirty order can commit wrong quantities or states; wants an explicit save gate on the specific operational models without slowing down the rest of Odoo.

ERP Administrator / IT Owner

Owns the Odoo instance across 17/18/19 and needs a maintainable, upgrade-safe module scoped by model and by user group, with clean documentation and a git handover rather than a brittle one-off template override.

Compliance / Audit Stakeholder

Cares that field-tracking and chatter reflect intentional edits only; values reducing accidental writes so the audit trail is trustworthy for regulated or high-value records.

How Auto Save Restrict Compares

CriterionECOSIRECustom BuildCompetitorOdoo Native
AvailabilityBuilt to order, installed and supported by ECOSIREYou build and maintain it in-houseInstant download, generic behaviorNo such control exists
Auto-save control scopePer-model allowlist you choose (e.g. account.move, mrp.production)Whatever you build; drift riskFixed, often all-or-nothingAlways auto-saves on navigate/discard
User targetingOptional res.groups to exempt power usersMust design group logic yourselfRarely group-awareNot applicable
Upgrade safety (17/18/19)Built against public patch points, tested per versionDepends on your engineering disciplineVaries; may break on point upgradesN/A
Community vs EnterpriseTargeted and tested for your exact editionYour responsibility to cover bothOften Community-only assumptionsSame auto-save in both
Support & handoverSupport window, docs, training, git repo handoverNone beyond your teamVendor forum / limitedNone
Fit to your workflowConfirmation UX tailored in scopingFully custom but costly to get rightTake it as shippedFixed framework behavior
Total cost & riskFixed quote after scoping; from $999 indicativeHigh effort and ongoing maintenanceLow upfront, uncertain fit/maintenanceFree but no capability

Frequently Asked Questions about Auto Save Restrict

Is this an existing app I can download and install right now?

No. This is a build-to-order module. ECOSIRE builds it to your specification after a scoping call, then tests and installs it on your environment. There is no instant download — you receive the finished, installable source for your commissioned version.

How long does delivery take?

Typical delivery is one working week from confirmed scope. After the scoping call we finalize the target models, user groups, and confirmation UX, build and test on a staging copy of your database, and then schedule the production install. Broader scope (more models, multi-company, custom workflows) can extend the timeline, which we confirm in the quote.

How does pricing and scoping work?

Pricing starts from $999 as an indicative single-company base scope. After a short scoping call we give you a fixed quote. The number of restricted models, per-group exemption logic, custom confirmation workflows, and multi-company or Enterprise-view coverage are the main drivers that adjust the quoted scope.

What support and updates are included?

Every build includes a post-go-live support window for defect fixes and configuration adjustments, plus the full git repository so your team can maintain it. Because we build against the framework's public patch points, the module is designed to survive point upgrades; migrations across major Odoo versions can be quoted separately if needed.

Which models can be restricted, and can I exempt some users?

You choose the models via a configuration allowlist — for example account.move and mrp.production while everything else keeps Odoo's default behavior. An optional user group lets the restriction apply only to selected users, so power users can be exempted. We confirm the exact list during scoping.

Does this block writes made through the API?

No, and that is intentional. The gate is a UI safeguard layered over the standard ORM create/write, so record rules and access rights still enforce on the real save. Programmatic writes via XML-RPC or JSON-RPC are not affected — we document this behavior clearly so integrations behave predictably.

Will it work on my Odoo version and edition?

We build and test explicitly for Odoo 17.0, 18.0, and 19.0 on both Community and Enterprise. Enterprise-only form views present in your edition are handled where applicable. Tell us your exact version and edition during scoping and we target that build.

Request a quote

Auto Save Restrict

A build-to-order Odoo module that suppresses the framework's implicit auto-save on form views, replacing silent commits with an explicit, permission-aware save gate across the models you choose. ECOSIRE scopes, builds, installs, and supports it — it is not an off-the-shelf download.

  • Intercepts the OWL FormController implicit save so breadcrumb navigation, related-record opens, and view discards no longer silently commit a dirty record
  • Explicit "Save / Discard / Stay on page" confirmation dialog on any restricted form before a write is persisted
  • Optional mode that makes the toolbar Save button the only path to a commit, fully disabling auto-save on chosen models
  • Per-model allowlist configured via res.config.settings so you restrict, e.g., account.move and mrp.production while leaving other models on Odoo defaults

Request a Quotation

Tell us about your Auto Save Restrict requirements and we'll send pricing, licensing options and a tailored proposal — usually within one business day.

No payment now. This sends a quote request to our team — we'll follow up by email with pricing and next steps.