Base Tier Validation Correction

base_tier_validation_correction
REPOSITORY
REPOSITORYOCA/tier-validation
GIT
GIThttps://github.com/OCA/tier-validation.git
GIT FOLDER
GIT FOLDERhttps://github.com/OCA/tier-validation/tree/19.0/base_tier_validation_correction
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYTools
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Ecosoft
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Ecosoft
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Maksym Yankin
WEBSITE
WEBSITEhttps://github.com/OCA/tier-validation
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:40:46
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/tier-validation:
    - base_tier_validation
odoo/odoo:
    - mail
    - base
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module provide a new operation to correct the information in
tier.review for any document under tier validation.

For example, a document started validation, a tier review is assigned to
Mr. Smith.

However, since Mr. Smith has urgent business oversea for a few days, all
document need to get approved by Mr. John as person in charge.

This module allow user with Tier Review Correction role to change the
reviewer to Mr. John.

Note: Currently, only correction type available is to reassign the
reviewer, but it is possible to add in the future.

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
tier_correction_view_form tier.correction.form tier.correction form New
tier_correction_view_search tier.correction.search tier.correction search New
tier_correction_view_tree tier.correction.list tier.correction list New
tier_validation_label_forward tier_validation_label_forward ir.ui.view qweb Inherits base_tier_validation.tier_validation_label
view_affected_tier_reviews_form affected.tier.reviews.form affected.tier.reviews form New
Models touched (4)

New fields (1)
  • review_ids Many2many → tier.review
    comodel_name='tier.review' default=<expr>
Public methods (0)

No public methods.

New fields (14)
  • correction_type Selection
    default='reviewer' required=True selection=[('reviewer', 'Reassign Reviewer(s)')]
  • date_actual_correct Datetime
    copy=False string='Actual Correction Date'
  • date_actual_revert Datetime
    copy=False string='Actual Revert Date'
  • date_schedule_correct Datetime
    copy=False string='Scheduled Correction Date'
  • date_schedule_revert Datetime
    copy=False string='Scheduled Revert Date'
  • item_ids One2many → tier.correction.item
    comodel_name='tier.correction.item' inverse_name='correction_id'
  • model Char
    index=True related='model_id.model' store=True
  • model_id Many2one → ir.model
    comodel_name='ir.model' domain=<expr> string='On Model'
  • name Char
    required=True string='Description'
  • new_reviewer_ids Many2many → res.users
    comodel_name='res.users' help='Reassign these reviewers to the tier reviews of the found document' relation='tier_correction_new_reviewer_rel' string='Reassign Reviewer(s)'
  • old_reviewer_ids Many2many → res.users
    comodel_name='res.users' help='Find documents with tier reviews matching some reviewers' relation='tier_correction_old_reviewer_rel' string='Original Reviewer(s)'
  • reference Char
    compute='_compute_reference' store=True string='Affected Documents'
  • search_name Char
    string='Name Search'
  • state Selection
    copy=False default='draft' index=True selection=[('draft', 'Draft'), ('prepare', 'Preparing'), ('done', 'Corrected'), ('cancel', 'Cancelled'), ('revert', 'Reverted')] string='Status' tracking=1
Public methods (9)
  • action_cancel(self)
  • action_done(self)
  • action_draft(self)
  • action_prepare(self)
  • action_revert(self)
  • do_correct(self)
  • do_revert(self)
  • search_document(self)
  • view_scheduled_action(self)

New fields (7)
  • correction_id Many2one → tier.correction
    comodel_name='tier.correction' index=True
  • new_reviewer_ids Many2many → res.users
    comodel_name='res.users' help='These reviewers will overwrite the existing reviewer_ids in tier.review' relation='tier_correction_item_new_reviewer_rel' string='New Reviewers'
  • reference Char
    readonly=True
  • res_id Integer
    readonly=True
  • res_model Char
    readonly=True
  • resource_ref Reference
    readonly=True selection=<expr> string='Resource'
  • review_ids Many2many → tier.review
    comodel_name='tier.review' help='Tier reivews that will be affected by this correction.' string='Affected Tier Reviews'
Public methods (2)
  • correct(self)
  • revert(self)

New fields (0)

No new fields.

Public methods (1)
  • view_tier_correction(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_tier_validation_correction
VERSION
VERSION 1.0.1
CATEGORY
CATEGORYTools
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Ecosoft
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Ecosoft
COMMITTERS
COMMITTERSCarlos Lopez, Weblate, OCA-git-bot, oca-ci, chaule97
WEBSITE
WEBSITEhttps://github.com/OCA/server-ux
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 19:30:16
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/server-ux:
    - base_tier_validation
odoo/odoo:
    - mail
    - base
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
This module provide a new operation to correct the information in
tier.review for any document under tier validation.

For example, a document started validation, a tier review is assigned to
Mr. Smith.

However, since Mr. Smith has urgent business oversea for a few days, all
document need to get approved by Mr. John as person in charge.

This module allow user with Tier Review Correction role to change the
reviewer to Mr. John.

Note: Currently, only correction type available is to reassign the
reviewer, but it is possible to add in the future.

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
tier_correction_view_form tier.correction.form tier.correction form New
tier_correction_view_search tier.correction.search tier.correction search New
tier_correction_view_tree tier.correction.list tier.correction list New
tier_validation_label_forward tier_validation_label_forward ir.ui.view qweb Inherits base_tier_validation.tier_validation_label
view_affected_tier_reviews_form affected.tier.reviews.form affected.tier.reviews form New
Models touched (4)

New fields (1)
  • review_ids Many2many → tier.review
    comodel_name='tier.review' default=<expr>
Public methods (0)

No public methods.

New fields (14)
  • correction_type Selection
    default='reviewer' required=True selection=[('reviewer', 'Reassign Reviewer(s)')]
  • date_actual_correct Datetime
    copy=False string='Actual Correction Date'
  • date_actual_revert Datetime
    copy=False string='Actual Revert Date'
  • date_schedule_correct Datetime
    copy=False string='Scheduled Correction Date'
  • date_schedule_revert Datetime
    copy=False string='Scheduled Revert Date'
  • item_ids One2many → tier.correction.item
    comodel_name='tier.correction.item' inverse_name='correction_id'
  • model Char
    index=True related='model_id.model' store=True
  • model_id Many2one → ir.model
    comodel_name='ir.model' domain=<expr> string='On Model'
  • name Char
    required=True string='Description'
  • new_reviewer_ids Many2many → res.users
    comodel_name='res.users' help='Reassign these reviewers to the tier reviews of the found document' relation='tier_correction_new_reviewer_rel' string='Reassign Reviewer(s)'
  • old_reviewer_ids Many2many → res.users
    comodel_name='res.users' help='Find documents with tier reviews matching some reviewers' relation='tier_correction_old_reviewer_rel' string='Original Reviewer(s)'
  • reference Char
    compute='_compute_reference' store=True string='Affected Documents'
  • search_name Char
    string='Name Search'
  • state Selection
    copy=False default='draft' index=True selection=[('draft', 'Draft'), ('prepare', 'Preparing'), ('done', 'Corrected'), ('cancel', 'Cancelled'), ('revert', 'Reverted')] string='Status' tracking=1
Public methods (9)
  • action_cancel(self)
  • action_done(self)
  • action_draft(self)
  • action_prepare(self)
  • action_revert(self)
  • do_correct(self)
  • do_revert(self)
  • search_document(self)
  • view_scheduled_action(self)

New fields (7)
  • correction_id Many2one → tier.correction
    comodel_name='tier.correction' index=True
  • new_reviewer_ids Many2many → res.users
    comodel_name='res.users' help='These reviewers will overwrite the existing reviewer_ids in tier.review' relation='tier_correction_item_new_reviewer_rel' string='New Reviewers'
  • reference Char
    readonly=True
  • res_id Integer
    readonly=True
  • res_model Char
    readonly=True
  • resource_ref Reference
    readonly=True selection=<expr> string='Resource'
  • review_ids Many2many → tier.review
    comodel_name='tier.review' help='Tier reivews that will be affected by this correction.' string='Affected Tier Reviews'
Public methods (2)
  • correct(self)
  • revert(self)

New fields (0)

No new fields.

Public methods (1)
  • view_tier_correction(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_tier_validation_correction
VERSION
VERSION 1.0.0
CATEGORY
CATEGORYTools
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Ecosoft
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Ecosoft
COMMITTERS
COMMITTERSWeblate, OCA-git-bot, oca-ci, Christopher Ormaza, AlexPForgeFlow
WEBSITE
WEBSITEhttps://github.com/OCA/server-ux
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:53:53
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/server-ux:
    - base_tier_validation
odoo/odoo:
    - mail
    - base
    - base_setup
    - web
    - bus
    - web_tour
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
tier_correction_view_form tier.correction.form tier.correction form New
tier_correction_view_search tier.correction.search tier.correction search New
tier_correction_view_tree tier.correction.tree tier.correction tree New
tier_validation_label_forward tier_validation_label_forward ir.ui.view qweb Inherits base_tier_validation.tier_validation_label
view_affected_tier_reviews_form affected.tier.reviews.form affected.tier.reviews form New
Models touched (4)

New fields (1)
  • review_ids Many2many → tier.review
    comodel_name='tier.review' default=<expr>
Public methods (0)

No public methods.

New fields (14)
  • correction_type Selection
    default='reviewer' readonly=True required=True selection=[('reviewer', 'Reassign Reviewer(s)')] states={'draft': [('readonly', False)]}
  • date_actual_correct Datetime
    copy=False readonly=True string='Actual Correction Date'
  • date_actual_revert Datetime
    copy=False readonly=True string='Actual Revert Date'
  • date_schedule_correct Datetime
    copy=False readonly=True states={'draft': [('readonly', False)], 'prepare': [('readonly', False)]} string='Scheduled Correction Date'
  • date_schedule_revert Datetime
    copy=False readonly=True states={'draft': [('readonly', False)], 'prepare': [('readonly', False)], 'done': [('readonly', False)]} string='Scheduled Revert Date'
  • item_ids One2many → tier.correction.item
    comodel_name='tier.correction.item' inverse_name='correction_id' readonly=True states={'draft': [('readonly', False)], 'prepare': [('readonly', False)]}
  • model Char
    index=True related='model_id.model' store=True
  • model_id Many2one → ir.model
    comodel_name='ir.model' domain=<expr> readonly=True states={'draft': [('readonly', False)]} string='On Model'
  • name Char
    readonly=True required=True states={'draft': [('readonly', False)]} string='Description'
  • new_reviewer_ids Many2many → res.users
    comodel_name='res.users' help='Reassign these reviewers to the tier reviews of the found document' readonly=True relation='tier_correction_new_reviewer_rel' states={'draft': [('readonly', False)]} string='Reassign Reviewer(s)'
  • old_reviewer_ids Many2many → res.users
    comodel_name='res.users' help='Find documents with tier reviews matching some reviewers' readonly=True relation='tier_correction_old_reviewer_rel' states={'draft': [('readonly', False)]} string='Original Reviewer(s)'
  • reference Char
    compute='_compute_reference' store=True string='Affected Documents'
  • search_name Char
    readonly=True states={'draft': [('readonly', False)]} string='Name Search'
  • state Selection
    copy=False default='draft' index=True readonly=True selection=[('draft', 'Draft'), ('prepare', 'Preparing'), ('done', 'Corrected'), ('cancel', 'Cancelled'), ('revert', 'Reverted')] string='Status' tracking=1
Public methods (9)
  • action_cancel(self)
  • action_done(self)
  • action_draft(self)
  • action_prepare(self)
  • action_revert(self)
  • do_correct(self)
  • do_revert(self)
  • search_document(self)
  • view_scheduled_action(self)

New fields (7)
  • correction_id Many2one → tier.correction
    comodel_name='tier.correction' index=True
  • new_reviewer_ids Many2many → res.users
    comodel_name='res.users' help='These reviewers will overwrite the existing reviewer_ids in tier.review' relation='tier_correction_item_new_reviewer_rel' string='New Reviewers'
  • reference Char
    readonly=True
  • res_id Integer
    readonly=True
  • res_model Char
    readonly=True
  • resource_ref Reference
    readonly=True selection=<expr> string='Resource'
  • review_ids Many2many → tier.review
    comodel_name='tier.review' help='Tier reivews that will be affected by this correction.' string='Affected Tier Reviews'
Public methods (2)
  • correct(self)
  • revert(self)

New fields (0)

No new fields.

Public methods (1)
  • view_tier_correction(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_tier_validation_correction
VERSION
VERSION 1.0.2
CATEGORY
CATEGORYTools
LICENSE
LICENSEAGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo Community Association (OCA), Ecosoft
MAINTAINERS
MAINTAINERSOdoo Community Association (OCA), Ecosoft
COMMITTERS
COMMITTERSEnric Tobella, Weblate, OCA-git-bot, oca-ci, Saran440, Kevin Luna
WEBSITE
WEBSITEhttps://github.com/OCA/server-ux
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:41:07
ODOO DEPENDENCIES
ODOO DEPENDENCIES OCA/server-ux:
    - base_tier_validation
odoo/odoo:
    - mail
    - base
    - base_setup
    - web
    - bus
    - web_tour
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
tier_correction_view_form tier.correction.form tier.correction form New
tier_correction_view_search tier.correction.search tier.correction search New
tier_correction_view_tree tier.correction.tree tier.correction tree New
tier_validation_label_forward tier_validation_label_forward ir.ui.view qweb Inherits base_tier_validation.tier_validation_label
view_affected_tier_reviews_form affected.tier.reviews.form affected.tier.reviews form New
Models touched (4)

New fields (1)
  • review_ids Many2many → tier.review
    comodel_name='tier.review' default=<expr>
Public methods (0)

No public methods.

New fields (14)
  • correction_type Selection
    default='reviewer' readonly=True required=True selection=[('reviewer', 'Reassign Reviewer(s)')] states={'draft': [('readonly', False)]} string='Correction Type'
  • date_actual_correct Datetime
    copy=False readonly=True string='Actual Correction Date'
  • date_actual_revert Datetime
    copy=False readonly=True string='Actual Revert Date'
  • date_schedule_correct Datetime
    copy=False readonly=True states={'draft': [('readonly', False)], 'prepare': [('readonly', False)]} string='Scheduled Correction Date'
  • date_schedule_revert Datetime
    copy=False readonly=True states={'draft': [('readonly', False)], 'prepare': [('readonly', False)], 'done': [('readonly', False)]} string='Scheduled Revert Date'
  • item_ids One2many → tier.correction.item
    comodel_name='tier.correction.item' inverse_name='correction_id' readonly=True states={'draft': [('readonly', False)], 'prepare': [('readonly', False)]}
  • model Char
    index=True related='model_id.model' store=True
  • model_id Many2one → ir.model
    comodel_name='ir.model' domain=<expr> readonly=True states={'draft': [('readonly', False)]} string='On Model'
  • name Char
    readonly=True required=True states={'draft': [('readonly', False)]} string='Description'
  • new_reviewer_ids Many2many → res.users
    comodel_name='res.users' help='Reassign these reviewers to the tier reviews of the found document' readonly=True relation='tier_correction_new_reviewer_rel' states={'draft': [('readonly', False)]} string='Reassign Reviewer(s)'
  • old_reviewer_ids Many2many → res.users
    comodel_name='res.users' help='Find documents with tier reviews matching some reviewers' readonly=True relation='tier_correction_old_reviewer_rel' states={'draft': [('readonly', False)]} string='Original Reviewer(s)'
  • reference Char
    compute='_compute_reference' store=True string='Affected Documents'
  • search_name Char
    readonly=True states={'draft': [('readonly', False)]} string='Name Search'
  • state Selection
    copy=False default='draft' index=True readonly=True selection=[('draft', 'Draft'), ('prepare', 'Preparing'), ('done', 'Corrected'), ('cancel', 'Cancelled'), ('revert', 'Reverted')] string='Status' tracking=1
Public methods (9)
  • action_cancel(self)
  • action_done(self)
  • action_draft(self)
  • action_prepare(self)
  • action_revert(self)
  • do_correct(self)
  • do_revert(self)
  • search_document(self)
  • view_scheduled_action(self)

New fields (7)
  • correction_id Many2one → tier.correction
    comodel_name='tier.correction' index=True
  • new_reviewer_ids Many2many → res.users
    comodel_name='res.users' help='These reviewers will overwrite the existing reviewer_ids in tier.review' relation='tier_correction_item_new_reviewer_rel' string='New Reviewers'
  • reference Char
    readonly=True
  • res_id Integer
    readonly=True
  • res_model Char
    readonly=True
  • resource_ref Reference
    readonly=True selection=<expr> string='Resource'
  • review_ids Many2many → tier.review
    comodel_name='tier.review' help='Tier reivews that will be affected by this correction.' string='Affected Tier Reviews'
Public methods (2)
  • correct(self)
  • revert(self)

New fields (0)

No new fields.

Public methods (1)
  • view_tier_correction(self)