OdooWiki OCA HUB

Base Revision (abstract)

base_revision folder_open OCA/server-ux open_in_new
Tools License: AGPL-3

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.0

This 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

base
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-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 6 confirmed, 3 with no information of 9 versions.

Sources · Odoo 15.0

Confirmed on 2026-11-03 in branch 15.0 of OCA/server-ux.

terminal Installation and usage

No verified information

Installation 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.

info

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.