Base Revision (abstract)

base_revision
REPOSITORY
REPOSITORYOCA/server-ux
GIT
GIThttps://github.com/OCA/server-ux.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-ux/tree/19.0/base_revision
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYTools
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, Camptocamp, Agile Business Group, Serpent Consulting Services Pvt. Ltd., Ecosoft, Dreambits
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion, Camptocamp, Agile Business Group, Serpent Consulting Services Pvt. Ltd., Ecosoft, Dreambits
COMMITTERS
COMMITTERSOCA-git-bot, oca-ci, Paula Marfull
WEBSITE
WEBSITEhttps://github.com/OCA/server-ux
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:40:49
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
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](https://github.com/OCA/sale-workflow) 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

Code Analysis

Views touched (0)

No views found for this module.

Models touched (1)

New fields (7)
  • active Boolean
    default=True
  • current_revision_id Many2one → base.revision
    comodel_name='base.revision' copy=True readonly=True string='Current revision'
  • has_old_revisions Boolean
    compute='_compute_has_old_revisions'
  • old_revision_ids One2many → base.revision
    comodel_name='base.revision' context={'active_test': False} domain=['|', ('active', '=', False), ('active', '=', True)] inverse_name='current_revision_id' readonly=True string='Old revisions'
  • revision_count Integer
    compute='_compute_revision_count' string='Previous versions count'
  • revision_number Integer
    copy=False default=0 string='Revision'
  • unrevisioned_name Char
    copy=True readonly=True string='Original Reference'
Public methods (4)
  • copy(self, default=None)
  • copy_revision_with_context(self)
  • create(self, vals_list)
    @api.model_create_multi
  • create_revision(self)
REPOSITORY
REPOSITORYOCA/server-ux
GIT
GIThttps://github.com/OCA/server-ux.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-ux/tree/18.0/base_revision
VERSION
VERSION 1.0.2
CATEGORY
CATEGORYTools
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, Camptocamp, Agile Business Group, Serpent Consulting Services Pvt. Ltd., Ecosoft, Dreambits
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion, Camptocamp, Agile Business Group, Serpent Consulting Services Pvt. Ltd., Ecosoft, Dreambits
COMMITTERS
COMMITTERSPedro M. Baeza, Ruchir Shukla, Weblate, OCA-git-bot, oca-ci, Christopher Rogos, SIP
WEBSITE
WEBSITEhttps://github.com/OCA/server-ux
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:16
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
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](https://github.com/OCA/sale-workflow) 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

Code Analysis

Views touched (0)

No views found for this module.

Models touched (1)

New fields (7)
  • active Boolean
    default=True
  • current_revision_id Many2one → base.revision
    comodel_name='base.revision' copy=True readonly=True string='Current revision'
  • has_old_revisions Boolean
    compute='_compute_has_old_revisions'
  • old_revision_ids One2many → base.revision
    comodel_name='base.revision' context={'active_test': False} domain=['|', ('active', '=', False), ('active', '=', True)] inverse_name='current_revision_id' readonly=True string='Old revisions'
  • revision_count Integer
    compute='_compute_revision_count' string='Previous versions count'
  • revision_number Integer
    copy=False default=0 string='Revision'
  • unrevisioned_name Char
    copy=True readonly=True string='Original Reference'
Public methods (4)
  • copy(self, default=None)
  • copy_revision_with_context(self)
  • create(self, vals_list)
    @api.model_create_multi
  • create_revision(self)
REPOSITORY
REPOSITORYOCA/server-ux
GIT
GIThttps://github.com/OCA/server-ux.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-ux/tree/17.0/base_revision
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYTools
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, Camptocamp, Agile Business Group, Serpent Consulting Services Pvt. Ltd., Ecosoft, Dreambits
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion, Camptocamp, Agile Business Group, Serpent Consulting Services Pvt. Ltd., Ecosoft, Dreambits
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, siemenv
WEBSITE
WEBSITEhttps://github.com/OCA/server-ux
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:20:08
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
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](https://github.com/OCA/sale-workflow) 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

Code Analysis

Views touched (0)

No views found for this module.

Models touched (1)

New fields (7)
  • active Boolean
    default=True
  • current_revision_id Many2one → base.revision
    comodel_name='base.revision' copy=True readonly=True string='Current revision'
  • has_old_revisions Boolean
    compute='_compute_has_old_revisions'
  • old_revision_ids One2many → base.revision
    comodel_name='base.revision' context={'active_test': False} domain=['|', ('active', '=', False), ('active', '=', True)] inverse_name='current_revision_id' readonly=True string='Old revisions'
  • revision_count Integer
    compute='_compute_revision_count' string='Previous versions count'
  • revision_number Integer
    copy=False default=0 string='Revision'
  • unrevisioned_name Char
    copy=True readonly=True string='Original Reference'
Public methods (4)
  • copy(self, default=None)
    @api.returns('self', <expr>)
  • copy_revision_with_context(self)
  • create(self, vals_list)
    @api.model_create_multi
  • create_revision(self)
REPOSITORY
REPOSITORYOCA/server-ux
GIT
GIThttps://github.com/OCA/server-ux.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-ux/tree/16.0/base_revision
VERSION
VERSION 1.0.2
CATEGORY
CATEGORYTools
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, Camptocamp, Agile Business Group, Serpent Consulting Services Pvt. Ltd., Ecosoft, Dreambits
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion, Camptocamp, Agile Business Group, Serpent Consulting Services Pvt. Ltd., Ecosoft, Dreambits
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Christopher Rogos
WEBSITE
WEBSITEhttps://github.com/OCA/server-ux
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:54
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (0)

No views found for this module.

Models touched (1)

New fields (7)
  • active Boolean
    default=True
  • current_revision_id Many2one → base.revision
    comodel_name='base.revision' copy=True readonly=True string='Current revision'
  • has_old_revisions Boolean
    compute='_compute_has_old_revisions'
  • old_revision_ids One2many → base.revision
    comodel_name='base.revision' context={'active_test': False} domain=['|', ('active', '=', False), ('active', '=', True)] inverse_name='current_revision_id' readonly=True string='Old revisions'
  • revision_count Integer
    compute='_compute_revision_count' string='Previous versions count'
  • revision_number Integer
    copy=False default=0 string='Revision'
  • unrevisioned_name Char
    copy=True readonly=True string='Original Reference'
Public methods (4)
  • copy(self, default=None)
    @api.returns('self', <expr>)
  • copy_revision_with_context(self)
  • create(self, vals_list)
    @api.model_create_multi
  • create_revision(self)
REPOSITORY
REPOSITORYOCA/server-ux
GIT
GIThttps://github.com/OCA/server-ux.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-ux/tree/15.0/base_revision
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYTools
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, Camptocamp, Agile Business Group, Serpent Consulting Services Pvt. Ltd., Ecosoft, Dreambits
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion, Camptocamp, Agile Business Group, Serpent Consulting Services Pvt. Ltd., Ecosoft, Dreambits
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Aritz Olea
WEBSITE
WEBSITEhttps://github.com/OCA/server-ux
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:46:39
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (0)

No views found for this module.

Models touched (1)

New fields (7)
  • active Boolean
    default=True
  • current_revision_id Many2one → base.revision
    comodel_name='base.revision' copy=True readonly=True string='Current revision'
  • has_old_revisions Boolean
    compute='_compute_has_old_revisions'
  • old_revision_ids One2many → base.revision
    comodel_name='base.revision' context={'active_test': False} domain=['|', ('active', '=', False), ('active', '=', True)] inverse_name='current_revision_id' readonly=True string='Old revisions'
  • revision_count Integer
    compute='_compute_revision_count' string='Previous versions count'
  • revision_number Integer
    copy=False default=0 string='Revision'
  • unrevisioned_name Char
    copy=True readonly=True string='Original Reference'
Public methods (4)
  • copy(self, default=None)
    @api.returns('self', <expr>)
  • copy_revision_with_context(self)
  • create(self, values)
    @api.model
  • create_revision(self)
REPOSITORY
REPOSITORYOCA/server-ux
GIT
GIThttps://github.com/OCA/server-ux.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/server-ux/tree/14.0/base_revision
VERSION
VERSION 1.1.1
CATEGORY
CATEGORYTools
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Akretion, Camptocamp, Agile Business Group, Serpent Consulting Services Pvt. Ltd., Ecosoft, Dreambits
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Akretion, Camptocamp, Agile Business Group, Serpent Consulting Services Pvt. Ltd., Ecosoft, Dreambits
COMMITTERS
COMMITTERSDaniel Reis, OCA Transbot, Víctor Martínez, oca-travis, Weblate, OCA-git-bot, Kitti U
WEBSITE
WEBSITEhttps://github.com/OCA/server-ux
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:07
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - base
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (0)

No views found for this module.

Models touched (1)

New fields (7)
  • active Boolean
    default=True
  • current_revision_id Many2one → base.revision
    comodel_name='base.revision' copy=True readonly=True string='Current revision'
  • has_old_revisions Boolean
    compute='_compute_has_old_revisions'
  • old_revision_ids One2many → base.revision
    comodel_name='base.revision' context={'active_test': False} domain=['|', ('active', '=', False), ('active', '=', True)] inverse_name='current_revision_id' readonly=True string='Old revisions'
  • revision_count Integer
    compute='_compute_revision_count' string='Previous versions count'
  • revision_number Integer
    copy=False default=0 string='Revision'
  • unrevisioned_name Char
    copy=True readonly=True string='Original Reference'
Public methods (4)
  • copy(self, default=None)
    @api.returns('self', <expr>)
  • copy_revision_with_context(self)
  • create(self, values)
    @api.model
  • create_revision(self)