Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
af5c1bf
[ADD] partner_tier_validation
dreispt Feb 16, 2021
0e88218
[14.0][MIG]partner_tier_validation
Freni-OSI Feb 17, 2021
c7bd5f1
[14.0][IMP]Improved partner_tier_validation
Freni-OSI Mar 3, 2021
06f0edb
[FIX] partner_tier_validation: workflow was not working
dreispt Mar 24, 2021
0a2d6de
partner_tier_validation 14.0.1.1.0
oca-travis Mar 3, 2021
efa7e48
[IMP]
patrickrwilson May 19, 2021
8f9828e
partner_tier_validation 14.0.2.0.0
oca-travis May 28, 2021
59f0efb
[FIX] partner_tier_validation: Defer rule activation for compatibility
victoralmau Oct 11, 2021
c8f24ec
[REF] partner_tier_validation: do not archive, depend on partner_stage
dreispt Feb 1, 2022
c44a343
partner_tier_validation 14.0.3.0.0
oca-travis Nov 11, 2021
113f05a
[FIX] partner_tier_validation: create does not need custom code, rest…
dreispt Feb 24, 2022
62fe616
[FIX] partner_tier_validation: fix tests
dreispt Mar 3, 2022
d896009
partner_tier_validation 14.0.3.0.1
OCA-git-bot Mar 4, 2022
117bc16
[IMP] partner_tier_validation (Prevent bypass)
patrickrwilson Apr 27, 2022
540f930
partner_tier_validation 14.0.3.0.2
OCA-git-bot Apr 30, 2022
816960e
[IMP] partner_tier_validation: black, isort, prettier
BT-dmontull Sep 14, 2022
180d5a6
[15.0][MIG] partner_tier_validation: Migration to 15.0
BT-dmontull Sep 14, 2022
6dc9a5a
[IMP] partner_tier_validation: pre-commit stuff
Urvisha-OSI Mar 20, 2023
03f7426
[MIG] partner_tier_validation: Migrated to 16.0
Urvisha-OSI Mar 20, 2023
d67f897
[17.0][MIG] partner_tier_validation: Migration to 17.0
oca-travis Apr 26, 2022
43d3b1d
[IMP] partner_tier_validation: pre-commit auto fixes
miikanissi Feb 4, 2025
9590d59
[MIG] partner_tier_validation: Migration to 18.0
miikanissi Feb 4, 2025
d7dc6fb
[UPD] Update partner_tier_validation.pot
Nov 28, 2025
e4cb696
[BOT] post-merge updates
OCA-git-bot Nov 28, 2025
23516b7
Translated using Weblate (Italian)
mymage Feb 10, 2026
9f40fa7
[ADD] partner_tier_validation: Add to 19.0
glitchov May 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
136 changes: 136 additions & 0 deletions partner_tier_validation/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association

=======================
Partner Tier Validation
=======================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:88d5716b7faaa58f99be747a4e696bf3529607c4e811ef13c99e450802507d7f
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Ftier--validation-lightgray.png?logo=github
:target: https://github.com/OCA/tier-validation/tree/19.0/partner_tier_validation
:alt: OCA/tier-validation
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/tier-validation-19-0/tier-validation-19-0-partner_tier_validation
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/tier-validation&target_branch=19.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

Adds an approval workflow to Partners. The default rule requires new
company Contacts to be approved before they can be used.

The rule can be extended to new non-company contact, but beware that may
cause issues with automatically created new contacts, such as the ones
generated when processing incoming emails.

If the 'Is Company' or 'Parent' field changes then the contact is
Request for approval.

For this, the new Contact record is kept as "Archived" until it is
approved.

**Table of contents**

.. contents::
:local:

Installation
============

This module depends on ``base_tier_validation``. You can find it at
`OCA/server-ux <https://github.com/OCA/server-ux>`__

Usage
=====

Before using, check Contact Stages configuration, to ensure that the
default stage has the "Related State" field set to "To Approve". For
example, having the "Draft" stage the default ensures this.

A regular user creates a new Contact and sends it for approval:

1. Create a Contact triggering at least one "Tier Definition". The
Contact will be in Draft state and marked as Archived until approved.
2. Click on *Request Validation* button.
3. In the *Reviews* section, at the bottom of the form, inspect the
pending reviews and their status.

The approver reviews Contacts to approve:

1. Navigate to the Contacts app, and select the filter "Needs my
Approval"
2. Open the Contact form to approve. It will display a "This Records
needs to be validated" banner, with "Validate" and "Reject" options.
3. The approver can change the state to "Active". This will
automatically unarchive the record and make it available to be used.

The Approve/Reject actions do not automatically change the State. This
could be a future improvement.

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/tier-validation/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/tier-validation/issues/new?body=module:%20partner_tier_validation%0Aversion:%2019.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
-------

* Open Source Integrators

Contributors
------------

- `Open Source Integrators <https://opensourceintegrators.com>`__.

- Antonio Yamuta <ayamuta@opensourceintegrators.com>
- Daniel Reis <dreis@opensourceintegrators.com>
- Urvisha Desai <udesai@opensourceintegrators.com>

Maintainers
-----------

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

.. |maintainer-dreispt| image:: https://github.com/dreispt.png?size=40px
:target: https://github.com/dreispt
:alt: dreispt

Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-dreispt|

This module is part of the `OCA/tier-validation <https://github.com/OCA/tier-validation/tree/19.0/partner_tier_validation>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
2 changes: 2 additions & 0 deletions partner_tier_validation/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from . import models
18 changes: 18 additions & 0 deletions partner_tier_validation/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Copyright 2019 Open Source Integrators
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
{
"name": "Partner Tier Validation",
"summary": "Support a tier validation process for Contacts",
"version": "19.0.1.0.0",
"website": "https://github.com/OCA/tier-validation",
"category": "Contact",
"author": "Open Source Integrators, Odoo Community Association (OCA)",
"license": "AGPL-3",
"installable": True,
"depends": ["contacts", "base_tier_validation", "partner_stage"],
"data": [
"data/tier_definition.xml",
"views/res_partner_view.xml",
],
"maintainers": ["dreispt"],
}
11 changes: 11 additions & 0 deletions partner_tier_validation/data/tier_definition.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<odoo noupdate="1">
<record id="partner_tier_definition_company_only" model="tier.definition">
<field name="name">Validate New Company</field>
<field name="model_id" ref="base.model_res_partner" />
<field name="review_type">group</field>
<field name="reviewer_group_id" ref="base.group_user" />
<field name="definition_type">domain</field>
<field name="active" eval="False" />
<field name="definition_domain">[["is_company","=",True]]</field>
</record>
</odoo>
102 changes: 102 additions & 0 deletions partner_tier_validation/i18n/es.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * partner_tier_validation
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2023-11-03 21:36+0000\n"
"Last-Translator: Ivorra78 <informatica@totmaterial.es>\n"
"Language-Team: none\n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.17\n"

#. module: partner_tier_validation
#: model:ir.model.fields,field_description:partner_tier_validation.field_res_partner__can_review
msgid "Can Review"
msgstr "Puede Revisar"

#. module: partner_tier_validation
#: model:ir.model,name:partner_tier_validation.model_res_partner
msgid "Contact"
msgstr "Contacto"

#. module: partner_tier_validation
#: model:ir.model.fields,field_description:partner_tier_validation.field_res_partner__has_comment
msgid "Has Comment"
msgstr "Tiene Comentario"

#. module: partner_tier_validation
#: model:ir.model.fields,field_description:partner_tier_validation.field_res_partner__need_validation
msgid "Need Validation"
msgstr "Necesita Validación"

#. module: partner_tier_validation
#: model_terms:ir.ui.view,arch_db:partner_tier_validation.partner_form_tier_filter
msgid "Needs my Approval"
msgstr "Necesita mi aprobación"

#. module: partner_tier_validation
#: model:ir.model.fields,field_description:partner_tier_validation.field_res_partner__next_review
msgid "Next Review"
msgstr "Siguiente Revisión"

#. module: partner_tier_validation
#: model_terms:ir.ui.view,arch_db:partner_tier_validation.partner_form_tier_filter
msgid "Partner(s) to Approve"
msgstr "Socio(s) a aprobar"

#. module: partner_tier_validation
#: model:ir.model.fields,field_description:partner_tier_validation.field_res_partner__rejected
msgid "Rejected"
msgstr "Rechazado/a"

#. module: partner_tier_validation
#: model:ir.model.fields,field_description:partner_tier_validation.field_res_partner__rejected_message
msgid "Rejected Message"
msgstr "Mensaje rechazado"

#. module: partner_tier_validation
#: model:ir.model.fields,field_description:partner_tier_validation.field_res_partner__reviewer_ids
msgid "Reviewers"
msgstr "Revisores"

#. module: partner_tier_validation
#: model:ir.model,name:partner_tier_validation.model_tier_definition
msgid "Tier Definition"
msgstr "Definición del nivel"

#. module: partner_tier_validation
#: model:ir.model.fields,field_description:partner_tier_validation.field_res_partner__to_validate_message
msgid "To Validate Message"
msgstr "Para validar el mensaje"

#. module: partner_tier_validation
#: model:tier.definition,name:partner_tier_validation.partner_tier_definition_company_only
msgid "Validate New Company"
msgstr "Validar nueva compañía"

#. module: partner_tier_validation
#: model:ir.model.fields,field_description:partner_tier_validation.field_res_partner__validated
msgid "Validated"
msgstr "Validada"

#. module: partner_tier_validation
#: model:ir.model.fields,field_description:partner_tier_validation.field_res_partner__validated_message
msgid "Validated Message"
msgstr "Mensaje Validado"

#. module: partner_tier_validation
#: model:ir.model.fields,field_description:partner_tier_validation.field_res_partner__validation_status
msgid "Validation Status"
msgstr "Estado de la Validación"

#. module: partner_tier_validation
#: model:ir.model.fields,field_description:partner_tier_validation.field_res_partner__review_ids
msgid "Validations"
msgstr "Validaciones"
102 changes: 102 additions & 0 deletions partner_tier_validation/i18n/it.po
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * partner_tier_validation
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 16.0\n"
"Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2026-02-10 11:46+0000\n"
"Last-Translator: mymage <stefano.consolaro@mymage.it>\n"
"Language-Team: none\n"
"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.15.2\n"

#. module: partner_tier_validation
#: model:ir.model.fields,field_description:partner_tier_validation.field_res_partner__can_review
msgid "Can Review"
msgstr "Può revisionare"

#. module: partner_tier_validation
#: model:ir.model,name:partner_tier_validation.model_res_partner
msgid "Contact"
msgstr "Contatto"

#. module: partner_tier_validation
#: model:ir.model.fields,field_description:partner_tier_validation.field_res_partner__has_comment
msgid "Has Comment"
msgstr "Ha commenti"

#. module: partner_tier_validation
#: model:ir.model.fields,field_description:partner_tier_validation.field_res_partner__need_validation
msgid "Need Validation"
msgstr "Richiede conferma"

#. module: partner_tier_validation
#: model_terms:ir.ui.view,arch_db:partner_tier_validation.partner_form_tier_filter
msgid "Needs my Approval"
msgstr "Richiede la mia approvazione"

#. module: partner_tier_validation
#: model:ir.model.fields,field_description:partner_tier_validation.field_res_partner__next_review
msgid "Next Review"
msgstr "Prossima revisione"

#. module: partner_tier_validation
#: model_terms:ir.ui.view,arch_db:partner_tier_validation.partner_form_tier_filter
msgid "Partner(s) to Approve"
msgstr "Partner da approvare"

#. module: partner_tier_validation
#: model:ir.model.fields,field_description:partner_tier_validation.field_res_partner__rejected
msgid "Rejected"
msgstr "Respinto"

#. module: partner_tier_validation
#: model:ir.model.fields,field_description:partner_tier_validation.field_res_partner__rejected_message
msgid "Rejected Message"
msgstr "Messaggio di rifiuto"

#. module: partner_tier_validation
#: model:ir.model.fields,field_description:partner_tier_validation.field_res_partner__reviewer_ids
msgid "Reviewers"
msgstr "Revisori"

#. module: partner_tier_validation
#: model:ir.model,name:partner_tier_validation.model_tier_definition
msgid "Tier Definition"
msgstr "Definizione livello"

#. module: partner_tier_validation
#: model:ir.model.fields,field_description:partner_tier_validation.field_res_partner__to_validate_message
msgid "To Validate Message"
msgstr "Messaggio per 'Da validare'"

#. module: partner_tier_validation
#: model:tier.definition,name:partner_tier_validation.partner_tier_definition_company_only
msgid "Validate New Company"
msgstr "Valida nuova azienda"

#. module: partner_tier_validation
#: model:ir.model.fields,field_description:partner_tier_validation.field_res_partner__validated
msgid "Validated"
msgstr "Validato"

#. module: partner_tier_validation
#: model:ir.model.fields,field_description:partner_tier_validation.field_res_partner__validated_message
msgid "Validated Message"
msgstr "Messaggio per 'Validato'"

#. module: partner_tier_validation
#: model:ir.model.fields,field_description:partner_tier_validation.field_res_partner__validation_status
msgid "Validation Status"
msgstr "Stato validazione"

#. module: partner_tier_validation
#: model:ir.model.fields,field_description:partner_tier_validation.field_res_partner__review_ids
msgid "Validations"
msgstr "Validazioni"
Loading
Loading