Making revision(s) of a document is a common need across many area.
This module does not provide a functionality by itself but an abstract model to implement revision capality in other models (e.g. purchase orders, sales orders, budgets, expenses...).
Note: To be able to use this module in a new model you will need some development.
See sale_order_revision as an example of implementation.
Example with sale_order_revision installed,
On a cancelled orders, you can click on the "New copy of Quotation" button. This will create a new revision of the quotation, with the same base number and a '-revno' suffix appended. A message is added in the chatter saying that a new revision was created.
In the form view, a new tab is added that lists the previous revisions, with the date they were made obsolete and the user who performed the action.
The old revisions of a sale order are flagged as inactive, so they don't clutter up searches.
Special Remarks: Starting on version 14, this module was splitted from sale_order_revision to,
- base_revision
- sale_order_revision
auto_awesome What this module does
AI-generated from the code · Odoo 19.0This module is a technical building block that lets other Odoo documents keep a history of revisions. By itself it adds no menu or screen; developers use it to give documents like quotations or purchase orders a revision history.
This module does not add any button, menu or report on its own. It provides an abstract document type called base.revision that other modules can build on so that their documents can be versioned. Because it is abstract, nothing changes in Odoo until another module (for example a sales order revision module) uses it.
When a document type uses it, the following behaviour is available:
- Each document keeps an original reference (
unrevisioned_name), a revision number (revision_number) and a link to its current revision (current_revision_id). - A list of previous versions (
old_revision_ids) is stored, and the module counts them (revision_count) and flags whether any exist (has_old_revisions). - Creating a revision copies the document, gives it a new number, names it with the original reference plus the revision number, and marks the previous version as inactive and linked to the new one.
- A uniqueness rule prevents two documents from sharing the same original reference and revision number.
- If the document supports messages, notes are posted on both the old and the new document saying a revision was created.
- After creating a revision, Odoo opens a window listing the newly created revisions.
It touches only the base.revision model and depends on base.
Depends on
Required by other modules
Models and fields (1)
- base.revision · new modelactive, revision_count (Previous versions count), revision_number (Revision), old_revision_ids (Old revisions), has_old_revisions, unrevisioned_name (Original Reference), current_revision_id (Current revision)
Text generated by AI (DeepSeek) from reading the Odoo 19.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub
Availability by version
Reviewed: 2026-11-03Confirmation status: 6 confirmed, 3 with no information of 9 versions.
Sources · Odoo 19.0
Confirmed on 2026-11-03 in branch 19.0 of OCA/server-ux.
terminal Installation and usage
No verified informationInstallation instructions, the distribution package, dependencies and configuration steps are not shown because they have not yet been verified in the module documentation for any version.
Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.