diff --git a/agreement_tier_validation/__init__.py b/agreement_tier_validation/__init__.py new file mode 100644 index 0000000000..31660d6a96 --- /dev/null +++ b/agreement_tier_validation/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from . import models diff --git a/agreement_tier_validation/__manifest__.py b/agreement_tier_validation/__manifest__.py new file mode 100644 index 0000000000..46db20e782 --- /dev/null +++ b/agreement_tier_validation/__manifest__.py @@ -0,0 +1,16 @@ +# Copyright 2022 Ecosoft Co., Ltd. +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +{ + "name": "Agreement Tier Validation", + "summary": "Extends the functionality of Agreement to " + "support a tier validation process.", + "version": "14.0.1.0.0", + "category": "Contract Management", + "website": "https://github.com/OCA/contract", + "author": "Ecosoft, Odoo Community Association (OCA)", + "license": "AGPL-3", + "application": False, + "installable": True, + "depends": ["agreement_legal", "base_tier_validation"], + "data": ["views/agreement_view.xml"], +} diff --git a/agreement_tier_validation/models/__init__.py b/agreement_tier_validation/models/__init__.py new file mode 100644 index 0000000000..5fce29e227 --- /dev/null +++ b/agreement_tier_validation/models/__init__.py @@ -0,0 +1,4 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from . import agreement +from . import tier_definition diff --git a/agreement_tier_validation/models/agreement.py b/agreement_tier_validation/models/agreement.py new file mode 100644 index 0000000000..5800ddc521 --- /dev/null +++ b/agreement_tier_validation/models/agreement.py @@ -0,0 +1,13 @@ +# Copyright 2022 Ecosoft Co., Ltd. +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import models + + +class Agreement(models.Model): + _name = "agreement" + _inherit = ["agreement", "tier.validation"] + _state_from = ["draft"] + _state_to = ["active"] + + _tier_validation_manual_config = False diff --git a/agreement_tier_validation/models/tier_definition.py b/agreement_tier_validation/models/tier_definition.py new file mode 100644 index 0000000000..7bdc95a985 --- /dev/null +++ b/agreement_tier_validation/models/tier_definition.py @@ -0,0 +1,14 @@ +# Copyright 2022 Ecosoft Co., Ltd. +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import api, models + + +class TierDefinition(models.Model): + _inherit = "tier.definition" + + @api.model + def _get_tier_validation_model_names(self): + res = super(TierDefinition, self)._get_tier_validation_model_names() + res.append("agreement") + return res diff --git a/agreement_tier_validation/readme/CONFIGURE.rst b/agreement_tier_validation/readme/CONFIGURE.rst new file mode 100644 index 0000000000..6190755944 --- /dev/null +++ b/agreement_tier_validation/readme/CONFIGURE.rst @@ -0,0 +1,4 @@ +To configure this module, you need to: + +#. Go to *Settings > Technical > Tier Validations > Tier Definition*. +#. Create as many tiers as you want for Agreement model. diff --git a/agreement_tier_validation/readme/CONTRIBUTORS.rst b/agreement_tier_validation/readme/CONTRIBUTORS.rst new file mode 100644 index 0000000000..6ce956d961 --- /dev/null +++ b/agreement_tier_validation/readme/CONTRIBUTORS.rst @@ -0,0 +1 @@ +* Kitti U. diff --git a/agreement_tier_validation/readme/DESCRIPTION.rst b/agreement_tier_validation/readme/DESCRIPTION.rst new file mode 100644 index 0000000000..28f9f0802e --- /dev/null +++ b/agreement_tier_validation/readme/DESCRIPTION.rst @@ -0,0 +1,2 @@ +This module extends the functionality of Agreement to support a tier +validation process. diff --git a/agreement_tier_validation/readme/INSTALL.rst b/agreement_tier_validation/readme/INSTALL.rst new file mode 100644 index 0000000000..638fbd2d68 --- /dev/null +++ b/agreement_tier_validation/readme/INSTALL.rst @@ -0,0 +1,2 @@ +This module depends on ``base_tier_validation``. You can find it at +`OCA/server-ux `_ diff --git a/agreement_tier_validation/readme/USAGE.rst b/agreement_tier_validation/readme/USAGE.rst new file mode 100644 index 0000000000..794c90a4c8 --- /dev/null +++ b/agreement_tier_validation/readme/USAGE.rst @@ -0,0 +1,14 @@ +To use this module, you need to: + +#. Create a Agreement triggering at least one "Tier Definition". +#. Click on *Request Validation* button. +#. Under the tab *Reviews* have a look to pending reviews and their statuses. +#. Once all reviews are validated the State can be set to "active". + +Additional features: + +* You can filter the Agreement requesting your review through the filter *Needs my + Review*. +* User with rights to confirm the Agreement (validate all tiers that would + be generated) can directly do the operation, this is, there is no need for + her/him to request a validation. diff --git a/agreement_tier_validation/static/description/icon.png b/agreement_tier_validation/static/description/icon.png new file mode 100644 index 0000000000..3a0328b516 Binary files /dev/null and b/agreement_tier_validation/static/description/icon.png differ diff --git a/agreement_tier_validation/tests/__init__.py b/agreement_tier_validation/tests/__init__.py new file mode 100644 index 0000000000..f39596410e --- /dev/null +++ b/agreement_tier_validation/tests/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from . import test_tier_validation diff --git a/agreement_tier_validation/tests/test_tier_validation.py b/agreement_tier_validation/tests/test_tier_validation.py new file mode 100644 index 0000000000..37975cc7f9 --- /dev/null +++ b/agreement_tier_validation/tests/test_tier_validation.py @@ -0,0 +1,10 @@ +# Copyright 2022 Ecosoft Co., Ltd. +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). + +from odoo.addons.base_tier_validation.tests.common import CommonTierValidation + + +class TestAgreementTierValidation(CommonTierValidation): + def test_01_tier_definition_models(self): + res = self.tier_def_obj._get_tier_validation_model_names() + self.assertIn("agreement", res) diff --git a/agreement_tier_validation/views/agreement_view.xml b/agreement_tier_validation/views/agreement_view.xml new file mode 100644 index 0000000000..4b59e6d928 --- /dev/null +++ b/agreement_tier_validation/views/agreement_view.xml @@ -0,0 +1,25 @@ + + + + agreement.select - agreement_tier_validation + agreement + + + + + + + + + + diff --git a/setup/agreement_tier_validation/odoo/addons/agreement_tier_validation b/setup/agreement_tier_validation/odoo/addons/agreement_tier_validation new file mode 120000 index 0000000000..8f4d3523a5 --- /dev/null +++ b/setup/agreement_tier_validation/odoo/addons/agreement_tier_validation @@ -0,0 +1 @@ +../../../../agreement_tier_validation \ No newline at end of file diff --git a/setup/agreement_tier_validation/setup.py b/setup/agreement_tier_validation/setup.py new file mode 100644 index 0000000000..28c57bb640 --- /dev/null +++ b/setup/agreement_tier_validation/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +) diff --git a/test-requirements.txt b/test-requirements.txt new file mode 100644 index 0000000000..66bc2cbae3 --- /dev/null +++ b/test-requirements.txt @@ -0,0 +1 @@ +odoo_test_helper