From 638c1ac9366c0bc2a5c9ff9bc20e64cdd3167d7a Mon Sep 17 00:00:00 2001 From: Kitti U Date: Fri, 16 Oct 2020 16:51:31 +0700 Subject: [PATCH 01/38] [13.0][ADD] base_tier_validation_forward --- base_tier_validation_forward/__init__.py | 5 + base_tier_validation_forward/__manifest__.py | 23 + .../data/mail_data.xml | 13 + base_tier_validation_forward/hooks.py | 19 + .../models/__init__.py | 5 + .../models/tier_definition.py | 13 + .../models/tier_review.py | 50 ++ .../models/tier_validation.py | 90 +++ .../readme/CONFIGURE.rst | 1 + .../readme/CONTRIBUTORS.rst | 1 + .../readme/DESCRIPTION.rst | 15 + .../static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/index.html | 567 ++++++++++++++++++ .../static/src/xml/tier_review_template.xml | 12 + .../tests/__init__.py | 3 + .../tests/test_tier_validation.py | 120 ++++ .../tests/tier_validation_tester.py | 24 + .../views/tier_definition_view.xml | 15 + .../wizard/__init__.py | 4 + .../wizard/comment_wizard.py | 15 + .../wizard/forward_wizard.py | 44 ++ .../wizard/forward_wizard_view.xml | 33 + 22 files changed, 1072 insertions(+) create mode 100644 base_tier_validation_forward/__init__.py create mode 100644 base_tier_validation_forward/__manifest__.py create mode 100644 base_tier_validation_forward/data/mail_data.xml create mode 100644 base_tier_validation_forward/hooks.py create mode 100644 base_tier_validation_forward/models/__init__.py create mode 100644 base_tier_validation_forward/models/tier_definition.py create mode 100644 base_tier_validation_forward/models/tier_review.py create mode 100644 base_tier_validation_forward/models/tier_validation.py create mode 100644 base_tier_validation_forward/readme/CONFIGURE.rst create mode 100644 base_tier_validation_forward/readme/CONTRIBUTORS.rst create mode 100644 base_tier_validation_forward/readme/DESCRIPTION.rst create mode 100644 base_tier_validation_forward/static/description/icon.png create mode 100644 base_tier_validation_forward/static/description/index.html create mode 100644 base_tier_validation_forward/static/src/xml/tier_review_template.xml create mode 100644 base_tier_validation_forward/tests/__init__.py create mode 100644 base_tier_validation_forward/tests/test_tier_validation.py create mode 100644 base_tier_validation_forward/tests/tier_validation_tester.py create mode 100644 base_tier_validation_forward/views/tier_definition_view.xml create mode 100644 base_tier_validation_forward/wizard/__init__.py create mode 100644 base_tier_validation_forward/wizard/comment_wizard.py create mode 100644 base_tier_validation_forward/wizard/forward_wizard.py create mode 100644 base_tier_validation_forward/wizard/forward_wizard_view.xml diff --git a/base_tier_validation_forward/__init__.py b/base_tier_validation_forward/__init__.py new file mode 100644 index 0000000000..c0983903a9 --- /dev/null +++ b/base_tier_validation_forward/__init__.py @@ -0,0 +1,5 @@ +# Copyright 2020 Ecosoft Co., Ltd. (http://ecosoft.co.th) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from . import models +from . import wizard +from .hooks import uninstall_hook diff --git a/base_tier_validation_forward/__manifest__.py b/base_tier_validation_forward/__manifest__.py new file mode 100644 index 0000000000..7439cd7f8e --- /dev/null +++ b/base_tier_validation_forward/__manifest__.py @@ -0,0 +1,23 @@ +# Copyright 2020 Ecosoft Co., Ltd. (http://ecosoft.co.th) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +{ + "name": "Base Tier Validation Forward", + "summary": "Forward option for base tiers", + "version": "13.0.1.0.0", + "category": "Tools", + "website": "https://github.com/OCA/server-ux", + "author": "Ecosoft,Odoo Community Association (OCA)", + "license": "AGPL-3", + "depends": ["base_tier_validation"], + "data": [ + "data/mail_data.xml", + "views/tier_definition_view.xml", + "wizard/forward_wizard_view.xml", + ], + "development_status": "Alpha", + "maintainers": ["kittiu"], + "application": False, + "installable": True, + "qweb": ["static/src/xml/tier_review_template.xml"], + "uninstall_hook": "uninstall_hook", +} diff --git a/base_tier_validation_forward/data/mail_data.xml b/base_tier_validation_forward/data/mail_data.xml new file mode 100644 index 0000000000..7126beacb5 --- /dev/null +++ b/base_tier_validation_forward/data/mail_data.xml @@ -0,0 +1,13 @@ + + + + Tier Validation Forward Notification + + + + + diff --git a/base_tier_validation_forward/hooks.py b/base_tier_validation_forward/hooks.py new file mode 100644 index 0000000000..ebe6281c54 --- /dev/null +++ b/base_tier_validation_forward/hooks.py @@ -0,0 +1,19 @@ +# Copyright 2020 Ecosoft Co., Ltd. (http://ecosoft.co.th) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + + +def uninstall_hook(cr, registry): + """ Revert table tier_review back to original before this module """ + cr.execute( + "update tier_review a set sequence = " + "(select floor(sequence) from tier_review b where a.id = b.id);" + ) + cr.execute( + "update tier_review a set status = 'approved' where status = 'forwarded';" + ) + cr.execute("alter table tier_review drop column name cascade;") + cr.execute("alter table tier_review drop column review_type cascade;") + cr.execute("alter table tier_review drop column reviewer_id cascade;") + cr.execute("alter table tier_review drop column reviewer_group_id cascade;") + cr.execute("alter table tier_review drop column has_comment cascade;") + cr.execute("alter table tier_review drop column approve_sequence cascade;") diff --git a/base_tier_validation_forward/models/__init__.py b/base_tier_validation_forward/models/__init__.py new file mode 100644 index 0000000000..2176cc7489 --- /dev/null +++ b/base_tier_validation_forward/models/__init__.py @@ -0,0 +1,5 @@ +# Copyright 2020 Ecosoft Co., Ltd. (http://ecosoft.co.th) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from . import tier_definition +from . import tier_review +from . import tier_validation diff --git a/base_tier_validation_forward/models/tier_definition.py b/base_tier_validation_forward/models/tier_definition.py new file mode 100644 index 0000000000..941f7817ec --- /dev/null +++ b/base_tier_validation_forward/models/tier_definition.py @@ -0,0 +1,13 @@ +# Copyright 2020 Ecosoft Co., Ltd. (http://ecosoft.co.th) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from odoo import fields, models + + +class TierDefinition(models.Model): + _inherit = "tier.definition" + + has_forward = fields.Boolean( + string="Allow Forward", + default=False, + help="Allow option to 'Forward' to different person.", + ) diff --git a/base_tier_validation_forward/models/tier_review.py b/base_tier_validation_forward/models/tier_review.py new file mode 100644 index 0000000000..af2ece3a9a --- /dev/null +++ b/base_tier_validation_forward/models/tier_review.py @@ -0,0 +1,50 @@ +# Copyright 2020 Ecosoft Co., Ltd. (http://ecosoft.co.th) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from odoo import api, fields, models + + +class TierReview(models.Model): + _inherit = "tier.review" + _order = "sequence" + + name = fields.Char(compute="_compute_definition_data", store=True, readonly=False) + status = fields.Selection(selection_add=[("forwarded", "Forwarded")],) + review_type = fields.Selection( + compute="_compute_definition_data", store=True, readonly=False, + ) + reviewer_id = fields.Many2one( + comodel_name="res.users", + compute="_compute_definition_data", + store=True, + readonly=False, + ) + reviewer_group_id = fields.Many2one( + comodel_name="res.groups", + compute="_compute_definition_data", + store=True, + readonly=False, + ) + sequence = fields.Float() + has_comment = fields.Boolean( + compute="_compute_definition_data", store=True, readonly=False, + ) + approve_sequence = fields.Boolean( + compute="_compute_definition_data", store=True, readonly=False, + ) + + @api.depends( + "definition_id.name", + "definition_id.review_type", + "definition_id.reviewer_id", + "definition_id.reviewer_group_id", + "definition_id.has_comment", + "definition_id.approve_sequence", + ) + def _compute_definition_data(self): + for rec in self: + rec.name = rec.definition_id.name + rec.review_type = rec.definition_id.review_type + rec.reviewer_id = rec.definition_id.reviewer_id + rec.reviewer_group_id = rec.definition_id.reviewer_group_id + rec.has_comment = rec.definition_id.has_comment + rec.approve_sequence = rec.definition_id.approve_sequence diff --git a/base_tier_validation_forward/models/tier_validation.py b/base_tier_validation_forward/models/tier_validation.py new file mode 100644 index 0000000000..a37b902fa3 --- /dev/null +++ b/base_tier_validation_forward/models/tier_validation.py @@ -0,0 +1,90 @@ +# Copyright 2020 Ecosoft Co., Ltd. (http://ecosoft.co.th) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from odoo import _, api, fields, models + + +class TierValidation(models.AbstractModel): + _inherit = "tier.validation" + + can_forward = fields.Boolean(compute="_compute_can_forward") + + def _compute_can_forward(self): + for rec in self: + if not rec.can_review: + rec.can_forward = False + continue + sequences = self._get_sequences_to_approve(self.env.user) + reviews = rec.review_ids.filtered(lambda l: l.sequence in sequences) + definitions = reviews.mapped("definition_id") + rec.can_forward = True in definitions.mapped("has_forward") + + @api.model + def _calc_reviews_validated(self, reviews): + """Override for different validation policy.""" + if not reviews: + return False + return not any( + [s not in ("approved", "forwarded") for s in reviews.mapped("status")] + ) + + def _get_forwarded_notification_subtype(self): + return "base_tier_validation.mt_tier_validation_forwarded" + + def forward_tier(self): + self.ensure_one() + sequences = self._get_sequences_to_approve(self.env.user) + reviews = self.review_ids.filtered(lambda l: l.sequence in sequences) + ctx = self._add_comment("forward", reviews)["context"] + comment = self.env["comment.wizard"].with_context(ctx).create({"comment": "/"}) + wizard = self.env.ref("base_tier_validation_forward.view_forward_wizard") + return { + "name": _("Forward"), + "type": "ir.actions.act_window", + "view_mode": "form", + "res_model": "tier.validation.forward.wizard", + "views": [(wizard.id, "form")], + "view_id": wizard.id, + "target": "new", + "context": { + "default_res_id": self.id, + "default_res_model": self._name, + "comment_id": comment.id, + }, + } + + def _forward_tier(self, tiers=False): + self.ensure_one() + tier_reviews = tiers or self.review_ids + user_reviews = tier_reviews.filtered( + lambda r: r.status != "approved" and (self.env.user in r.reviewer_ids) + ) + user_reviews.write( + { + "status": "forwarded", + "done_by": self.env.user.id, + "reviewed_date": fields.Datetime.now(), + } + ) + for review in user_reviews: + rec = self.env[review.model].browse(review.res_id) + rec._notify_forwarded_reviews() + + def _notify_forwarded_reviews(self): + post = "message_post" + if hasattr(self, post): + # Notify state change + getattr(self, post)( + subtype=self._get_forwarded_notification_subtype(), + body=self._notify_forwarded_reviews_body(), + ) + + def _notify_forwarded_reviews_body(self): + has_comment = self.review_ids.filtered( + lambda r: (self.env.user in r.reviewer_ids) and r.comment + ) + if has_comment: + comment = has_comment.mapped("comment")[0] + return _( + "A review was forwarded from {} {}".format(self.env.user.name, comment) + ) + return _("A review was forwarded by %s.") % (self.env.user.name) diff --git a/base_tier_validation_forward/readme/CONFIGURE.rst b/base_tier_validation_forward/readme/CONFIGURE.rst new file mode 100644 index 0000000000..86822e6b42 --- /dev/null +++ b/base_tier_validation_forward/readme/CONFIGURE.rst @@ -0,0 +1 @@ +In any tier definition, check "Allow Forward" to enable this feature. diff --git a/base_tier_validation_forward/readme/CONTRIBUTORS.rst b/base_tier_validation_forward/readme/CONTRIBUTORS.rst new file mode 100644 index 0000000000..6ce956d961 --- /dev/null +++ b/base_tier_validation_forward/readme/CONTRIBUTORS.rst @@ -0,0 +1 @@ +* Kitti U. diff --git a/base_tier_validation_forward/readme/DESCRIPTION.rst b/base_tier_validation_forward/readme/DESCRIPTION.rst new file mode 100644 index 0000000000..cbd7053eef --- /dev/null +++ b/base_tier_validation_forward/readme/DESCRIPTION.rst @@ -0,0 +1,15 @@ +This module add an advance option to base_tier_validation. + +* To allow "Forward" the tier to different user. + +**Sample use case:** + +A user is appointed to approve a tire, but he/she don't want to make decision +for some reason, and want to pass/forward the decision to another person. + +User can then click on Forward instead of Approve. A new tier with minor sequence will be +created on the reviewer table, and new user will be able to make approval decision. + +**Note:** To enable Forward button in the desired view, you will need some development. + +See `purchase_tier_validation_forward `_ as an example of implementation. diff --git a/base_tier_validation_forward/static/description/icon.png b/base_tier_validation_forward/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/base_tier_validation_forward/static/description/index.html b/base_tier_validation_forward/static/description/index.html new file mode 100644 index 0000000000..daf8d77563 --- /dev/null +++ b/base_tier_validation_forward/static/description/index.html @@ -0,0 +1,567 @@ + + + + + + +Base Tier Validation + + + +
+

Base Tier Validation

+ + +

Mature License: AGPL-3 OCA/server-ux Translate me on Weblate Try me on Runbot

+

This module does not provide a functionality by itself but an abstract model +to implement a validation process based on tiers on other models (e.g. +purchase orders, sales orders…).

+

Note: To be able to use this module in a new model you will need some +development.

+

See purchase_tier_validation as an example of implementation.

+

Table of contents

+ +
+

Configuration

+

To configure this module, you need to:

+
    +
  1. Go to Settings > Technical > Tier Validations > Tier Definition.
  2. +
  3. Create as many tiers as you want for any model having tier validation +functionality.
  4. +
+

Note:

+
    +
  • If check Notify Reviewers on Creation, all possible reviewers will be notified by email when this definition is triggered.
  • +
  • If check Comment, reviewers can comment after click Validate or Reject.
  • +
  • If check Approve by sequence, reviewers is forced to review by specified sequence.
  • +
+
+
+

Known issues / Roadmap

+

This is the list of known issues for this module. Any proposal for improvement will +be very valuable.

+
    +
  • Issue:

    +

    When using approve_sequence option in any tier.definition there can be inconsistencies +in the systray notifications.

    +

    Description:

    +

    Field can_review in tier.review is used to filter out, in the systray notifications, +the reviews a user can approve. This can_review field is updated in the database +in method review_user_count, this can make it very inconsistent for databases +with a lot of users and recurring updates that can change the expected behavior.

    +
  • +
+
+
+

Changelog

+
+

13.0.1.2.2 (2020-08-30)

+

Fixes:

+
    +
  • When using approve_sequence option in any tier.definition there can be inconsistencies in the systray notifications
  • +
  • When using approve_sequence, still not approve only the needed sequence, but also other sequence for the same approver
  • +
+
+
+

12.0.3.3.1 (2019-12-02)

+

Fixes:

+
    +
  • Show comment on Reviews Table.
  • +
  • Edit notification with approve_sequence.
  • +
+
+
+

12.0.3.3.0 (2019-11-27)

+

New features:

+
    +
  • Add comment on Reviews Table.
  • +
  • Approve by sequence.
  • +
+
+
+

12.0.3.2.1 (2019-11-26)

+

Fixes:

+
    +
  • Remove message_subscribe_users
  • +
+
+
+

12.0.3.2.0 (2019-11-25)

+

New features:

+
    +
  • Notify reviewers
  • +
+
+
+

12.0.3.1.0 (2019-07-08)

+

Fixes:

+
    +
  • Singleton error
  • +
+
+
+

12.0.3.0.0 (2019-12-02)

+

Fixes:

+
    +
  • Edit Reviews Table
  • +
+
+
+

12.0.2.1.0 (2019-05-29)

+

Fixes:

+
    +
  • Edit drop-down style width and position
  • +
+
+
+

12.0.2.0.0 (2019-05-28)

+

New features:

+
    +
  • Pass parameters as functions.
  • +
  • Add Systray.
  • +
+
+
+

12.0.1.0.0 (2019-02-18)

+

Migrated to Odoo 12.

+
+
+

11.0.1.0.0 (2018-05-09)

+

Migrated to Odoo 11.

+
+
+

10.0.1.0.0 (2018-03-26)

+

Migrated to Odoo 10.

+
+
+

9.0.1.0.0 (2017-12-02)

+

First version.

+
+
+
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +feedback.

+

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

+
+
+

Credits

+
+

Authors

+
    +
  • ForgeFlow
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

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.

+

Current maintainer:

+

LoisRForgeFlow

+

This module is part of the OCA/server-ux project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/base_tier_validation_forward/static/src/xml/tier_review_template.xml b/base_tier_validation_forward/static/src/xml/tier_review_template.xml new file mode 100644 index 0000000000..d270c2c101 --- /dev/null +++ b/base_tier_validation_forward/static/src/xml/tier_review_template.xml @@ -0,0 +1,12 @@ + + + + + + + + diff --git a/base_tier_validation_forward/tests/__init__.py b/base_tier_validation_forward/tests/__init__.py new file mode 100644 index 0000000000..b439a531dc --- /dev/null +++ b/base_tier_validation_forward/tests/__init__.py @@ -0,0 +1,3 @@ +# Copyright 2020 Ecosoft Co., Ltd. (http://ecosoft.co.th) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from . import test_tier_validation diff --git a/base_tier_validation_forward/tests/test_tier_validation.py b/base_tier_validation_forward/tests/test_tier_validation.py new file mode 100644 index 0000000000..32ab9a6ad2 --- /dev/null +++ b/base_tier_validation_forward/tests/test_tier_validation.py @@ -0,0 +1,120 @@ +# Copyright 2018 ForgeFlow S.L. +# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). + +from odoo.tests import Form, common + +from odoo.addons.base_tier_validation.tests.common import ( + setup_test_model, + teardown_test_model, +) + +from .tier_validation_tester import TierValidationTester + + +@common.at_install(False) +@common.post_install(True) +class TierTierValidation(common.SavepointCase): + @classmethod + def setUpClass(cls): + super(TierTierValidation, cls).setUpClass() + + setup_test_model(cls.env, [TierValidationTester]) + + cls.test_model = cls.env[TierValidationTester._name] + + cls.tester_model = cls.env["ir.model"].search( + [("model", "=", "tier.validation.tester")] + ) + + # Access record: + cls.env["ir.model.access"].create( + { + "name": "access.tester", + "model_id": cls.tester_model.id, + "perm_read": 1, + "perm_write": 1, + "perm_create": 1, + "perm_unlink": 1, + } + ) + + # Create users: + group_ids = cls.env.ref("base.group_system").ids + cls.test_user_1 = cls.env["res.users"].create( + {"name": "John", "login": "test1", "groups_id": [(6, 0, group_ids)]} + ) + cls.test_user_2 = cls.env["res.users"].create( + {"name": "Mike", "login": "test2"} + ) + cls.test_user_3 = cls.env["res.users"].create( + {"name": "Mary", "login": "test3"} + ) + + # Create tier definitions: + cls.tier_def_obj = cls.env["tier.definition"] + cls.tier_def_obj.create( + { + "model_id": cls.tester_model.id, + "review_type": "individual", + "reviewer_id": cls.test_user_1.id, + "definition_domain": "[('test_field', '>', 1.0)]", + } + ) + + cls.test_record = cls.test_model.create({"test_field": 2.5}) + + @classmethod + def tearDownClass(cls): + teardown_test_model(cls.env, [TierValidationTester]) + super(TierTierValidation, cls).tearDownClass() + + def test_01_forward_tier(self): + # Create new test record + test_record = self.test_model.create({"test_field": 2.5}) + # Create tier definitions + self.tier_def_obj.create( + { + "model_id": self.tester_model.id, + "review_type": "individual", + "reviewer_id": self.test_user_2.id, + "definition_domain": "[('test_field', '>', 1.0)]", + "approve_sequence": True, + "has_forward": True, + } + ) + # Request validation + review = test_record.with_user(self.test_user_2.id).request_validation() + self.assertTrue(review) + record = test_record.with_user(self.test_user_1.id) + record.invalidate_cache() + record.validate_tier() + self.assertFalse(record.can_forward) + # User 2 forward to user 1 + record = test_record.with_user(self.test_user_2.id) + record.invalidate_cache() + self.assertTrue(record.can_forward) + res = record.forward_tier() + ctx = res.get("context") + wizard = Form( + self.env["tier.validation.forward.wizard"] + .with_user(self.test_user_2.id) + .with_context(ctx) + ) + wizard.forward_reviewer_id = self.test_user_1 + wizard.forward_description = "Please review again" + wiz = wizard.save() + wiz.add_forward() + # Newly created forwarded review will have no definition + record = test_record.with_user(self.test_user_2.id) + record.invalidate_cache() + self.assertTrue(record.review_ids.filtered(lambda l: not l.definition_id)) + # User 1 validate + res = record.with_user(self.test_user_1.id).validate_tier() + ctx = res.get("context") + wizard = Form( + self.env["comment.wizard"].with_user(self.test_user_1.id).with_context(ctx) + ) + wizard.comment = "Forward tier is reviewed" + wiz = wizard.save() + wiz.add_comment() + self.assertTrue(record.validated) diff --git a/base_tier_validation_forward/tests/tier_validation_tester.py b/base_tier_validation_forward/tests/tier_validation_tester.py new file mode 100644 index 0000000000..21bb4fef26 --- /dev/null +++ b/base_tier_validation_forward/tests/tier_validation_tester.py @@ -0,0 +1,24 @@ +# Copyright 2018 ForgeFlow S.L. +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class TierValidationTester(models.Model): + _name = "tier.validation.tester" + _description = "Tier Validation Tester" + _inherit = ["tier.validation"] + + state = fields.Selection( + selection=[ + ("draft", "Draft"), + ("confirmed", "Confirmed"), + ("cancel", "Cancel"), + ], + default="draft", + ) + test_field = fields.Float() + user_id = fields.Many2one(string="Assigned to:", comodel_name="res.users") + + def action_confirm(self): + self.write({"state": "confirmed"}) diff --git a/base_tier_validation_forward/views/tier_definition_view.xml b/base_tier_validation_forward/views/tier_definition_view.xml new file mode 100644 index 0000000000..dc46510f7e --- /dev/null +++ b/base_tier_validation_forward/views/tier_definition_view.xml @@ -0,0 +1,15 @@ + + + + + tier.definition.form + tier.definition + + + + + + + + diff --git a/base_tier_validation_forward/wizard/__init__.py b/base_tier_validation_forward/wizard/__init__.py new file mode 100644 index 0000000000..d93afa0dea --- /dev/null +++ b/base_tier_validation_forward/wizard/__init__.py @@ -0,0 +1,4 @@ +# Copyright 2020 Ecosoft Co., Ltd. (http://ecosoft.co.th) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from . import comment_wizard +from . import forward_wizard diff --git a/base_tier_validation_forward/wizard/comment_wizard.py b/base_tier_validation_forward/wizard/comment_wizard.py new file mode 100644 index 0000000000..31e4ac02b9 --- /dev/null +++ b/base_tier_validation_forward/wizard/comment_wizard.py @@ -0,0 +1,15 @@ +# Copyright 2020 Ecosoft Co., Ltd. (http://ecosoft.co.th) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from odoo import models + + +class CommentWizard(models.TransientModel): + _inherit = "comment.wizard" + + def add_comment(self): + super().add_comment() + rec = self.env[self.res_model].browse(self.res_id) + if self.validate_reject == "forward": + rec._forward_tier(self.review_ids) + rec._update_counter() + return self.review_ids diff --git a/base_tier_validation_forward/wizard/forward_wizard.py b/base_tier_validation_forward/wizard/forward_wizard.py new file mode 100644 index 0000000000..a778dac171 --- /dev/null +++ b/base_tier_validation_forward/wizard/forward_wizard.py @@ -0,0 +1,44 @@ +# Copyright 2020 Ecosoft Co., Ltd. (http://ecosoft.co.th) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from odoo import _, fields, models + + +class ValidationForwardWizard(models.TransientModel): + _name = "tier.validation.forward.wizard" + _description = "Forward Wizard" + + res_model = fields.Char() + res_id = fields.Integer() + forward_reviewer_id = fields.Many2one( + comodel_name="res.users", string="Next Reviewer", required=True, + ) + forward_description = fields.Char() + has_comment = fields.Boolean(string="Allow Comment", default=True) + approve_sequence = fields.Boolean(string="Approve by sequence", default=True,) + + def add_forward(self): + """ Add extra step, with specific reviewer """ + self.ensure_one() + rec = self.env[self.res_model].browse(self.res_id) + prev_comment = self.env["comment.wizard"].browse( + self._context.get("comment_id") + ) + prev_comment.write( + {"comment": _(">> %s") % self.forward_reviewer_id.display_name} + ) + prev_reviews = prev_comment.add_comment() + self.env["tier.review"].create( + { + "name": self.forward_description, + "model": rec._name, + "res_id": rec.id, + "sequence": max(prev_reviews.mapped("sequence")) + 0.1, + "requested_by": self.env.uid, + "review_type": "individual", + "reviewer_id": self.forward_reviewer_id.id, + "has_comment": self.has_comment, + "approve_sequence": self.approve_sequence, + } + ) + rec.invalidate_cache() + rec.review_ids._compute_can_review() diff --git a/base_tier_validation_forward/wizard/forward_wizard_view.xml b/base_tier_validation_forward/wizard/forward_wizard_view.xml new file mode 100644 index 0000000000..909bf60ded --- /dev/null +++ b/base_tier_validation_forward/wizard/forward_wizard_view.xml @@ -0,0 +1,33 @@ + + + + + Forward Wizard + tier.validation.forward.wizard + form + +
+ + + + + + + + + + +
+
+
+
+
+
From 59b96d91f09d893a0af9fbd35550fda9599eccb1 Mon Sep 17 00:00:00 2001 From: oca-travis Date: Wed, 25 Nov 2020 14:45:51 +0000 Subject: [PATCH 02/38] [UPD] Update base_tier_validation_forward.pot --- .../i18n/base_tier_validation_forward.pot | 194 ++++++++++++++++++ 1 file changed, 194 insertions(+) create mode 100644 base_tier_validation_forward/i18n/base_tier_validation_forward.pot diff --git a/base_tier_validation_forward/i18n/base_tier_validation_forward.pot b/base_tier_validation_forward/i18n/base_tier_validation_forward.pot new file mode 100644 index 0000000000..69f259a3d7 --- /dev/null +++ b/base_tier_validation_forward/i18n/base_tier_validation_forward.pot @@ -0,0 +1,194 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_tier_validation_forward +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 13.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: base_tier_validation_forward +#: code:addons/base_tier_validation_forward/models/tier_validation.py:0 +#, python-format +msgid "A review was forwarded by %s." +msgstr "" + +#. module: base_tier_validation_forward +#: code:addons/base_tier_validation_forward/models/tier_validation.py:0 +#, python-format +msgid "A review was forwarded from {} {}" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__has_comment +msgid "Allow Comment" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_definition__has_forward +msgid "Allow Forward" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,help:base_tier_validation_forward.field_tier_definition__has_forward +msgid "Allow option to 'Forward' to different person." +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,help:base_tier_validation_forward.field_tier_review__approve_sequence +msgid "Approval order by the specified sequence number" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__approve_sequence +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__approve_sequence +msgid "Approve by sequence" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation__can_forward +msgid "Can Forward" +msgstr "" + +#. module: base_tier_validation_forward +#: model_terms:ir.ui.view,arch_db:base_tier_validation_forward.view_forward_wizard +msgid "Cancel" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__has_comment +msgid "Comment" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model,name:base_tier_validation_forward.model_comment_wizard +msgid "Comment Wizard" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__create_uid +msgid "Created by" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__create_date +msgid "Created on" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__name +msgid "Description" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__display_name +msgid "Display Name" +msgstr "" + +#. module: base_tier_validation_forward +#: code:addons/base_tier_validation_forward/models/tier_validation.py:0 +#: model_terms:ir.ui.view,arch_db:base_tier_validation_forward.view_forward_wizard +#, python-format +msgid "Forward" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__forward_description +msgid "Forward Description" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model,name:base_tier_validation_forward.model_tier_validation_forward_wizard +msgid "Forward Wizard" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields.selection,name:base_tier_validation_forward.selection__tier_review__status__forwarded +msgid "Forwarded" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__id +msgid "ID" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard____last_update +msgid "Last Modified on" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__write_date +msgid "Last Updated on" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__forward_reviewer_id +msgid "Next Reviewer" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__res_id +msgid "Res" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__res_model +msgid "Res Model" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__reviewer_id +msgid "Reviewer" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__reviewer_group_id +msgid "Reviewer group" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__sequence +msgid "Sequence" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__status +msgid "Status" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model,name:base_tier_validation_forward.model_tier_definition +msgid "Tier Definition" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model,name:base_tier_validation_forward.model_tier_review +msgid "Tier Review" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model,name:base_tier_validation_forward.model_tier_validation +msgid "Tier Validation (abstract)" +msgstr "" + +#. module: base_tier_validation_forward +#: model:mail.message.subtype,name:base_tier_validation_forward.mt_tier_validation_forwarded +msgid "Tier Validation Forward Notification" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__review_type +msgid "Validated by" +msgstr "" From 5c6ac4454ed60dbbaf0dc328c5e302947cb40a5a Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Wed, 25 Nov 2020 14:51:47 +0000 Subject: [PATCH 03/38] [UPD] README.rst --- base_tier_validation_forward/README.rst | 105 +++++++++ .../static/description/index.html | 201 ++++-------------- 2 files changed, 143 insertions(+), 163 deletions(-) create mode 100644 base_tier_validation_forward/README.rst diff --git a/base_tier_validation_forward/README.rst b/base_tier_validation_forward/README.rst new file mode 100644 index 0000000000..f0032e8fc6 --- /dev/null +++ b/base_tier_validation_forward/README.rst @@ -0,0 +1,105 @@ +============================ +Base Tier Validation Forward +============================ + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png + :target: https://odoo-community.org/page/development-status + :alt: Alpha +.. |badge2| image:: https://img.shields.io/badge/licence-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%2Fserver--ux-lightgray.png?logo=github + :target: https://github.com/OCA/server-ux/tree/13.0/base_tier_validation_forward + :alt: OCA/server-ux +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/server-ux-13-0/server-ux-13-0-base_tier_validation_forward + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/250/13.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module add an advance option to base_tier_validation. + +* To allow "Forward" the tier to different user. + +**Sample use case:** + +A user is appointed to approve a tire, but he/she don't want to make decision +for some reason, and want to pass/forward the decision to another person. + +User can then click on Forward instead of Approve. A new tier with minor sequence will be +created on the reviewer table, and new user will be able to make approval decision. + +**Note:** To enable Forward button in the desired view, you will need some development. + +See `purchase_tier_validation_forward `_ as an example of implementation. + +.. IMPORTANT:: + This is an alpha version, the data model and design can change at any time without warning. + Only for development or testing purpose, do not use in production. + `More details on development status `_ + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +In any tier definition, check "Allow Forward" to enable this feature. + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Ecosoft + +Contributors +~~~~~~~~~~~~ + +* Kitti U. + +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-kittiu| image:: https://github.com/kittiu.png?size=40px + :target: https://github.com/kittiu + :alt: kittiu + +Current `maintainer `__: + +|maintainer-kittiu| + +This module is part of the `OCA/server-ux `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/base_tier_validation_forward/static/description/index.html b/base_tier_validation_forward/static/description/index.html index daf8d77563..064bac2aba 100644 --- a/base_tier_validation_forward/static/description/index.html +++ b/base_tier_validation_forward/static/description/index.html @@ -4,7 +4,7 @@ -Base Tier Validation +Base Tier Validation Forward -
-

Base Tier Validation

+
+

Base Tier Validation Forward

-

Mature License: AGPL-3 OCA/server-ux Translate me on Weblate Try me on Runbot

-

This module does not provide a functionality by itself but an abstract model -to implement a validation process based on tiers on other models (e.g. -purchase orders, sales orders…).

-

Note: To be able to use this module in a new model you will need some -development.

-

See purchase_tier_validation as an example of implementation.

-

Table of contents

-
+

Alpha License: AGPL-3 OCA/server-ux Translate me on Weblate Try me on Runbot

+

This module add an advance option to base_tier_validation.

+

Sample use case:

+

A user is appointed to approve a tire, but he/she don’t want to make decision +for some reason, and want to pass/forward the decision to another person.

+

User can then click on Forward instead of Approve. A new tier with minor sequence will be +created on the reviewer table, and new user will be able to make approval decision.

+

Note: To enable Forward button in the desired view, you will need some development.

+

See purchase_tier_validation_forward as an example of implementation.

+
+

Important

+

This is an alpha version, the data model and design can change at any time without warning. +Only for development or testing purpose, do not use in production. +More details on development status

-
-

Configuration

-

To configure this module, you need to:

-
    -
  1. Go to Settings > Technical > Tier Validations > Tier Definition.
  2. -
  3. Create as many tiers as you want for any model having tier validation -functionality.
  4. -
-

Note:

+

Table of contents

+
    -
  • If check Notify Reviewers on Creation, all possible reviewers will be notified by email when this definition is triggered.
  • -
  • If check Comment, reviewers can comment after click Validate or Reject.
  • -
  • If check Approve by sequence, reviewers is forced to review by specified sequence.
  • +
  • Configuration
  • +
  • Bug Tracker
  • +
  • Credits -
-
-

Known issues / Roadmap

-

This is the list of known issues for this module. Any proposal for improvement will -be very valuable.

-
    -
  • Issue:

    -

    When using approve_sequence option in any tier.definition there can be inconsistencies -in the systray notifications.

    -

    Description:

    -

    Field can_review in tier.review is used to filter out, in the systray notifications, -the reviews a user can approve. This can_review field is updated in the database -in method review_user_count, this can make it very inconsistent for databases -with a lot of users and recurring updates that can change the expected behavior.

-
-

Changelog

-
-

13.0.1.2.2 (2020-08-30)

-

Fixes:

-
    -
  • When using approve_sequence option in any tier.definition there can be inconsistencies in the systray notifications
  • -
  • When using approve_sequence, still not approve only the needed sequence, but also other sequence for the same approver
  • -
-
-
-

12.0.3.3.1 (2019-12-02)

-

Fixes:

-
    -
  • Show comment on Reviews Table.
  • -
  • Edit notification with approve_sequence.
  • -
-
-
-

12.0.3.3.0 (2019-11-27)

-

New features:

-
    -
  • Add comment on Reviews Table.
  • -
  • Approve by sequence.
  • -
-
-
-

12.0.3.2.1 (2019-11-26)

-

Fixes:

-
    -
  • Remove message_subscribe_users
  • -
-
-
-

12.0.3.2.0 (2019-11-25)

-

New features:

-
    -
  • Notify reviewers
  • -
-
-
-

12.0.3.1.0 (2019-07-08)

-

Fixes:

-
    -
  • Singleton error
  • -
-
-
-

12.0.3.0.0 (2019-12-02)

-

Fixes:

-
    -
  • Edit Reviews Table
  • -
-
-
-

12.0.2.1.0 (2019-05-29)

-

Fixes:

-
    -
  • Edit drop-down style width and position
  • -
-
-
-

12.0.2.0.0 (2019-05-28)

-

New features:

-
    -
  • Pass parameters as functions.
  • -
  • Add Systray.
  • -
-
-
-

12.0.1.0.0 (2019-02-18)

-

Migrated to Odoo 12.

-
-
-

11.0.1.0.0 (2018-05-09)

-

Migrated to Odoo 11.

-
-
-

10.0.1.0.0 (2018-03-26)

-

Migrated to Odoo 10.

-
-
-

9.0.1.0.0 (2017-12-02)

-

First version.

-
+
+

Configuration

+

In any tier definition, check “Allow Forward” to enable this feature.

-

Bug Tracker

+

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed -feedback.

+feedback.

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

-

Credits

+

Credits

-

Authors

+

Authors

    -
  • ForgeFlow
  • +
  • Ecosoft
-

Contributors

+

Contributors

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association

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.

Current maintainer:

-

LoisRForgeFlow

-

This module is part of the OCA/server-ux project on GitHub.

+

kittiu

+

This module is part of the OCA/server-ux project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

From 9a5a60e47f1cbdf4d67ef59fb6e5b399759b91da Mon Sep 17 00:00:00 2001 From: Kitti U Date: Mon, 30 Nov 2020 10:36:33 +0700 Subject: [PATCH 04/38] [IMP] : black, isort, prettier --- .../models/tier_review.py | 16 ++++++++++++---- .../wizard/forward_wizard.py | 9 +++++++-- 2 files changed, 19 insertions(+), 6 deletions(-) diff --git a/base_tier_validation_forward/models/tier_review.py b/base_tier_validation_forward/models/tier_review.py index af2ece3a9a..c5f8149bff 100644 --- a/base_tier_validation_forward/models/tier_review.py +++ b/base_tier_validation_forward/models/tier_review.py @@ -8,9 +8,13 @@ class TierReview(models.Model): _order = "sequence" name = fields.Char(compute="_compute_definition_data", store=True, readonly=False) - status = fields.Selection(selection_add=[("forwarded", "Forwarded")],) + status = fields.Selection( + selection_add=[("forwarded", "Forwarded")], + ) review_type = fields.Selection( - compute="_compute_definition_data", store=True, readonly=False, + compute="_compute_definition_data", + store=True, + readonly=False, ) reviewer_id = fields.Many2one( comodel_name="res.users", @@ -26,10 +30,14 @@ class TierReview(models.Model): ) sequence = fields.Float() has_comment = fields.Boolean( - compute="_compute_definition_data", store=True, readonly=False, + compute="_compute_definition_data", + store=True, + readonly=False, ) approve_sequence = fields.Boolean( - compute="_compute_definition_data", store=True, readonly=False, + compute="_compute_definition_data", + store=True, + readonly=False, ) @api.depends( diff --git a/base_tier_validation_forward/wizard/forward_wizard.py b/base_tier_validation_forward/wizard/forward_wizard.py index a778dac171..cc0e73162f 100644 --- a/base_tier_validation_forward/wizard/forward_wizard.py +++ b/base_tier_validation_forward/wizard/forward_wizard.py @@ -10,11 +10,16 @@ class ValidationForwardWizard(models.TransientModel): res_model = fields.Char() res_id = fields.Integer() forward_reviewer_id = fields.Many2one( - comodel_name="res.users", string="Next Reviewer", required=True, + comodel_name="res.users", + string="Next Reviewer", + required=True, ) forward_description = fields.Char() has_comment = fields.Boolean(string="Allow Comment", default=True) - approve_sequence = fields.Boolean(string="Approve by sequence", default=True,) + approve_sequence = fields.Boolean( + string="Approve by sequence", + default=True, + ) def add_forward(self): """ Add extra step, with specific reviewer """ From 3fa9d710d18a9743a46a137dfe110f1d8ffe89a3 Mon Sep 17 00:00:00 2001 From: Kitti U Date: Mon, 30 Nov 2020 10:37:22 +0700 Subject: [PATCH 05/38] [14.0][MIG] base_tier_validation_forward --- base_tier_validation_forward/README.rst | 105 ------------------ base_tier_validation_forward/__manifest__.py | 4 +- .../models/tier_validation.py | 2 +- .../readme/DESCRIPTION.rst | 4 - .../security/ir.model.access.csv | 2 + .../templates/tier_validation_templates.xml | 18 +++ .../tests/test_tier_validation.py | 24 ++-- .../tests/tier_validation_tester.py | 24 ---- 8 files changed, 36 insertions(+), 147 deletions(-) delete mode 100644 base_tier_validation_forward/README.rst create mode 100644 base_tier_validation_forward/security/ir.model.access.csv create mode 100644 base_tier_validation_forward/templates/tier_validation_templates.xml delete mode 100644 base_tier_validation_forward/tests/tier_validation_tester.py diff --git a/base_tier_validation_forward/README.rst b/base_tier_validation_forward/README.rst deleted file mode 100644 index f0032e8fc6..0000000000 --- a/base_tier_validation_forward/README.rst +++ /dev/null @@ -1,105 +0,0 @@ -============================ -Base Tier Validation Forward -============================ - -.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! This file is generated by oca-gen-addon-readme !! - !! changes will be overwritten. !! - !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - -.. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png - :target: https://odoo-community.org/page/development-status - :alt: Alpha -.. |badge2| image:: https://img.shields.io/badge/licence-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%2Fserver--ux-lightgray.png?logo=github - :target: https://github.com/OCA/server-ux/tree/13.0/base_tier_validation_forward - :alt: OCA/server-ux -.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/server-ux-13-0/server-ux-13-0-base_tier_validation_forward - :alt: Translate me on Weblate -.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/250/13.0 - :alt: Try me on Runbot - -|badge1| |badge2| |badge3| |badge4| |badge5| - -This module add an advance option to base_tier_validation. - -* To allow "Forward" the tier to different user. - -**Sample use case:** - -A user is appointed to approve a tire, but he/she don't want to make decision -for some reason, and want to pass/forward the decision to another person. - -User can then click on Forward instead of Approve. A new tier with minor sequence will be -created on the reviewer table, and new user will be able to make approval decision. - -**Note:** To enable Forward button in the desired view, you will need some development. - -See `purchase_tier_validation_forward `_ as an example of implementation. - -.. IMPORTANT:: - This is an alpha version, the data model and design can change at any time without warning. - Only for development or testing purpose, do not use in production. - `More details on development status `_ - -**Table of contents** - -.. contents:: - :local: - -Configuration -============= - -In any tier definition, check "Allow Forward" to enable this feature. - -Bug Tracker -=========== - -Bugs are tracked on `GitHub Issues `_. -In case of trouble, please check there if your issue has already been reported. -If you spotted it first, help us smashing it by providing a detailed and welcomed -`feedback `_. - -Do not contact contributors directly about support or help with technical issues. - -Credits -======= - -Authors -~~~~~~~ - -* Ecosoft - -Contributors -~~~~~~~~~~~~ - -* Kitti U. - -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-kittiu| image:: https://github.com/kittiu.png?size=40px - :target: https://github.com/kittiu - :alt: kittiu - -Current `maintainer `__: - -|maintainer-kittiu| - -This module is part of the `OCA/server-ux `_ project on GitHub. - -You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/base_tier_validation_forward/__manifest__.py b/base_tier_validation_forward/__manifest__.py index 7439cd7f8e..7c803e7e71 100644 --- a/base_tier_validation_forward/__manifest__.py +++ b/base_tier_validation_forward/__manifest__.py @@ -3,16 +3,18 @@ { "name": "Base Tier Validation Forward", "summary": "Forward option for base tiers", - "version": "13.0.1.0.0", + "version": "14.0.1.0.0", "category": "Tools", "website": "https://github.com/OCA/server-ux", "author": "Ecosoft,Odoo Community Association (OCA)", "license": "AGPL-3", "depends": ["base_tier_validation"], "data": [ + "security/ir.model.access.csv", "data/mail_data.xml", "views/tier_definition_view.xml", "wizard/forward_wizard_view.xml", + "templates/tier_validation_templates.xml", ], "development_status": "Alpha", "maintainers": ["kittiu"], diff --git a/base_tier_validation_forward/models/tier_validation.py b/base_tier_validation_forward/models/tier_validation.py index a37b902fa3..12ca76e6bb 100644 --- a/base_tier_validation_forward/models/tier_validation.py +++ b/base_tier_validation_forward/models/tier_validation.py @@ -74,7 +74,7 @@ def _notify_forwarded_reviews(self): if hasattr(self, post): # Notify state change getattr(self, post)( - subtype=self._get_forwarded_notification_subtype(), + subtype_xmlid=self._get_forwarded_notification_subtype(), body=self._notify_forwarded_reviews_body(), ) diff --git a/base_tier_validation_forward/readme/DESCRIPTION.rst b/base_tier_validation_forward/readme/DESCRIPTION.rst index cbd7053eef..43c6106aa7 100644 --- a/base_tier_validation_forward/readme/DESCRIPTION.rst +++ b/base_tier_validation_forward/readme/DESCRIPTION.rst @@ -9,7 +9,3 @@ for some reason, and want to pass/forward the decision to another person. User can then click on Forward instead of Approve. A new tier with minor sequence will be created on the reviewer table, and new user will be able to make approval decision. - -**Note:** To enable Forward button in the desired view, you will need some development. - -See `purchase_tier_validation_forward `_ as an example of implementation. diff --git a/base_tier_validation_forward/security/ir.model.access.csv b/base_tier_validation_forward/security/ir.model.access.csv new file mode 100644 index 0000000000..e5069b5198 --- /dev/null +++ b/base_tier_validation_forward/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_tier_validation_forward_wizard,access.tier.validation.forward.wizard,model_tier_validation_forward_wizard,,1,1,1,1 diff --git a/base_tier_validation_forward/templates/tier_validation_templates.xml b/base_tier_validation_forward/templates/tier_validation_templates.xml new file mode 100644 index 0000000000..676944cd03 --- /dev/null +++ b/base_tier_validation_forward/templates/tier_validation_templates.xml @@ -0,0 +1,18 @@ + + + diff --git a/base_tier_validation_forward/tests/test_tier_validation.py b/base_tier_validation_forward/tests/test_tier_validation.py index 32ab9a6ad2..aed583c7f0 100644 --- a/base_tier_validation_forward/tests/test_tier_validation.py +++ b/base_tier_validation_forward/tests/test_tier_validation.py @@ -1,25 +1,25 @@ # Copyright 2018 ForgeFlow S.L. # License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html). -from odoo.tests import Form, common +from odoo_test_helper import FakeModelLoader -from odoo.addons.base_tier_validation.tests.common import ( - setup_test_model, - teardown_test_model, -) +from odoo.tests import Form +from odoo.tests.common import SavepointCase, tagged -from .tier_validation_tester import TierValidationTester - -@common.at_install(False) -@common.post_install(True) -class TierTierValidation(common.SavepointCase): +@tagged("post_install", "-at_install") +class TierTierValidation(SavepointCase): @classmethod def setUpClass(cls): super(TierTierValidation, cls).setUpClass() - setup_test_model(cls.env, [TierValidationTester]) + cls.loader = FakeModelLoader(cls.env, cls.__module__) + cls.loader.backup_registry() + from odoo.addons.base_tier_validation.tests.tier_validation_tester import ( + TierValidationTester, + ) + cls.loader.update_registry((TierValidationTester,)) cls.test_model = cls.env[TierValidationTester._name] cls.tester_model = cls.env["ir.model"].search( @@ -65,7 +65,7 @@ def setUpClass(cls): @classmethod def tearDownClass(cls): - teardown_test_model(cls.env, [TierValidationTester]) + cls.loader.restore_registry() super(TierTierValidation, cls).tearDownClass() def test_01_forward_tier(self): diff --git a/base_tier_validation_forward/tests/tier_validation_tester.py b/base_tier_validation_forward/tests/tier_validation_tester.py deleted file mode 100644 index 21bb4fef26..0000000000 --- a/base_tier_validation_forward/tests/tier_validation_tester.py +++ /dev/null @@ -1,24 +0,0 @@ -# Copyright 2018 ForgeFlow S.L. -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from odoo import fields, models - - -class TierValidationTester(models.Model): - _name = "tier.validation.tester" - _description = "Tier Validation Tester" - _inherit = ["tier.validation"] - - state = fields.Selection( - selection=[ - ("draft", "Draft"), - ("confirmed", "Confirmed"), - ("cancel", "Cancel"), - ], - default="draft", - ) - test_field = fields.Float() - user_id = fields.Many2one(string="Assigned to:", comodel_name="res.users") - - def action_confirm(self): - self.write({"state": "confirmed"}) From ee679e9e38487f719636418af0ccfee146366794 Mon Sep 17 00:00:00 2001 From: oca-travis Date: Mon, 21 Dec 2020 14:20:21 +0000 Subject: [PATCH 06/38] [UPD] Update base_tier_validation_forward.pot --- .../i18n/base_tier_validation_forward.pot | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/base_tier_validation_forward/i18n/base_tier_validation_forward.pot b/base_tier_validation_forward/i18n/base_tier_validation_forward.pot index 69f259a3d7..4e3b906580 100644 --- a/base_tier_validation_forward/i18n/base_tier_validation_forward.pot +++ b/base_tier_validation_forward/i18n/base_tier_validation_forward.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 13.0\n" +"Project-Id-Version: Odoo Server 14.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -87,12 +87,17 @@ msgid "Description" msgstr "" #. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_comment_wizard__display_name +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_definition__display_name +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__display_name +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation__display_name #: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__display_name msgid "Display Name" msgstr "" #. module: base_tier_validation_forward #: code:addons/base_tier_validation_forward/models/tier_validation.py:0 +#: model_terms:ir.ui.view,arch_db:base_tier_validation_forward.tier_validation_label_forward #: model_terms:ir.ui.view,arch_db:base_tier_validation_forward.view_forward_wizard #, python-format msgid "Forward" @@ -114,11 +119,19 @@ msgid "Forwarded" msgstr "" #. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_comment_wizard__id +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_definition__id +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__id +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation__id #: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__id msgid "ID" msgstr "" #. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_comment_wizard____last_update +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_definition____last_update +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review____last_update +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation____last_update #: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard____last_update msgid "Last Modified on" msgstr "" From 917d3b481cfb8c4c8b94c6f8c0667bb768c0c77c Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Mon, 21 Dec 2020 14:23:54 +0000 Subject: [PATCH 07/38] [UPD] README.rst --- base_tier_validation_forward/README.rst | 101 ++++++++++++++++++ .../static/description/index.html | 8 +- 2 files changed, 104 insertions(+), 5 deletions(-) create mode 100644 base_tier_validation_forward/README.rst diff --git a/base_tier_validation_forward/README.rst b/base_tier_validation_forward/README.rst new file mode 100644 index 0000000000..6e2dcaf493 --- /dev/null +++ b/base_tier_validation_forward/README.rst @@ -0,0 +1,101 @@ +============================ +Base Tier Validation Forward +============================ + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png + :target: https://odoo-community.org/page/development-status + :alt: Alpha +.. |badge2| image:: https://img.shields.io/badge/licence-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%2Fserver--ux-lightgray.png?logo=github + :target: https://github.com/OCA/server-ux/tree/14.0/base_tier_validation_forward + :alt: OCA/server-ux +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/server-ux-14-0/server-ux-14-0-base_tier_validation_forward + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/250/14.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module add an advance option to base_tier_validation. + +* To allow "Forward" the tier to different user. + +**Sample use case:** + +A user is appointed to approve a tire, but he/she don't want to make decision +for some reason, and want to pass/forward the decision to another person. + +User can then click on Forward instead of Approve. A new tier with minor sequence will be +created on the reviewer table, and new user will be able to make approval decision. + +.. IMPORTANT:: + This is an alpha version, the data model and design can change at any time without warning. + Only for development or testing purpose, do not use in production. + `More details on development status `_ + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +In any tier definition, check "Allow Forward" to enable this feature. + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Ecosoft + +Contributors +~~~~~~~~~~~~ + +* Kitti U. + +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-kittiu| image:: https://github.com/kittiu.png?size=40px + :target: https://github.com/kittiu + :alt: kittiu + +Current `maintainer `__: + +|maintainer-kittiu| + +This module is part of the `OCA/server-ux `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/base_tier_validation_forward/static/description/index.html b/base_tier_validation_forward/static/description/index.html index 064bac2aba..7a11af54a8 100644 --- a/base_tier_validation_forward/static/description/index.html +++ b/base_tier_validation_forward/static/description/index.html @@ -367,7 +367,7 @@

Base Tier Validation Forward

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Alpha License: AGPL-3 OCA/server-ux Translate me on Weblate Try me on Runbot

+

Alpha License: AGPL-3 OCA/server-ux Translate me on Weblate Try me on Runbot

This module add an advance option to base_tier_validation.

  • To allow “Forward” the tier to different user.
  • @@ -377,8 +377,6 @@

    Base Tier Validation Forward

    for some reason, and want to pass/forward the decision to another person.

    User can then click on Forward instead of Approve. A new tier with minor sequence will be created on the reviewer table, and new user will be able to make approval decision.

    -

    Note: To enable Forward button in the desired view, you will need some development.

    -

    See purchase_tier_validation_forward as an example of implementation.

    Important

    This is an alpha version, the data model and design can change at any time without warning. @@ -407,7 +405,7 @@

    Bug Tracker

    Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed -feedback.

    +feedback.

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

    @@ -433,7 +431,7 @@

    Maintainers

    promote its widespread use.

    Current maintainer:

    kittiu

    -

    This module is part of the OCA/server-ux project on GitHub.

    +

    This module is part of the OCA/server-ux project on GitHub.

    You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

From a76d38a951eccc4311e08a1b47a29dcfd184762a Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Mon, 21 Dec 2020 14:23:57 +0000 Subject: [PATCH 08/38] base_tier_validation_forward 14.0.1.0.1 --- base_tier_validation_forward/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/base_tier_validation_forward/__manifest__.py b/base_tier_validation_forward/__manifest__.py index 7c803e7e71..15c2a73635 100644 --- a/base_tier_validation_forward/__manifest__.py +++ b/base_tier_validation_forward/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Base Tier Validation Forward", "summary": "Forward option for base tiers", - "version": "14.0.1.0.0", + "version": "14.0.1.0.1", "category": "Tools", "website": "https://github.com/OCA/server-ux", "author": "Ecosoft,Odoo Community Association (OCA)", From cc41241bdab7e71f53753417714536c03ed470a2 Mon Sep 17 00:00:00 2001 From: Kitti U Date: Tue, 2 Feb 2021 18:16:37 +0700 Subject: [PATCH 09/38] [14.0][FIX] base_tier_validation_forward --- base_tier_validation_forward/models/tier_review.py | 7 +------ base_tier_validation_forward/wizard/forward_wizard.py | 9 +++++++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/base_tier_validation_forward/models/tier_review.py b/base_tier_validation_forward/models/tier_review.py index c5f8149bff..60ae41e937 100644 --- a/base_tier_validation_forward/models/tier_review.py +++ b/base_tier_validation_forward/models/tier_review.py @@ -7,37 +7,32 @@ class TierReview(models.Model): _inherit = "tier.review" _order = "sequence" - name = fields.Char(compute="_compute_definition_data", store=True, readonly=False) + name = fields.Char(compute="_compute_definition_data", store=True) status = fields.Selection( selection_add=[("forwarded", "Forwarded")], ) review_type = fields.Selection( compute="_compute_definition_data", store=True, - readonly=False, ) reviewer_id = fields.Many2one( comodel_name="res.users", compute="_compute_definition_data", store=True, - readonly=False, ) reviewer_group_id = fields.Many2one( comodel_name="res.groups", compute="_compute_definition_data", store=True, - readonly=False, ) sequence = fields.Float() has_comment = fields.Boolean( compute="_compute_definition_data", store=True, - readonly=False, ) approve_sequence = fields.Boolean( compute="_compute_definition_data", store=True, - readonly=False, ) @api.depends( diff --git a/base_tier_validation_forward/wizard/forward_wizard.py b/base_tier_validation_forward/wizard/forward_wizard.py index cc0e73162f..aea41d4f75 100644 --- a/base_tier_validation_forward/wizard/forward_wizard.py +++ b/base_tier_validation_forward/wizard/forward_wizard.py @@ -32,13 +32,18 @@ def add_forward(self): {"comment": _(">> %s") % self.forward_reviewer_id.display_name} ) prev_reviews = prev_comment.add_comment() - self.env["tier.review"].create( + review = self.env["tier.review"].create( { - "name": self.forward_description, "model": rec._name, "res_id": rec.id, "sequence": max(prev_reviews.mapped("sequence")) + 0.1, "requested_by": self.env.uid, + } + ) + # Because following fileds are readonly, we need to write after create + review.write( + { + "name": self.forward_description, "review_type": "individual", "reviewer_id": self.forward_reviewer_id.id, "has_comment": self.has_comment, From dad482793045d6bfeb17a00ee093001c6c542b5e Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Wed, 3 Feb 2021 02:24:53 +0000 Subject: [PATCH 10/38] base_tier_validation_forward 14.0.1.0.2 --- base_tier_validation_forward/__manifest__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/base_tier_validation_forward/__manifest__.py b/base_tier_validation_forward/__manifest__.py index 15c2a73635..607e8e075d 100644 --- a/base_tier_validation_forward/__manifest__.py +++ b/base_tier_validation_forward/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Base Tier Validation Forward", "summary": "Forward option for base tiers", - "version": "14.0.1.0.1", + "version": "14.0.1.0.2", "category": "Tools", "website": "https://github.com/OCA/server-ux", "author": "Ecosoft,Odoo Community Association (OCA)", From b835ae81de51f957ccabb43faebc297c6110205f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ana=20Su=C3=A1rez?= Date: Tue, 16 Mar 2021 09:50:21 +0000 Subject: [PATCH 11/38] Added translation using Weblate (Spanish) --- base_tier_validation_forward/i18n/es.po | 208 ++++++++++++++++++++++++ 1 file changed, 208 insertions(+) create mode 100644 base_tier_validation_forward/i18n/es.po diff --git a/base_tier_validation_forward/i18n/es.po b/base_tier_validation_forward/i18n/es.po new file mode 100644 index 0000000000..04a83ccddc --- /dev/null +++ b/base_tier_validation_forward/i18n/es.po @@ -0,0 +1,208 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * base_tier_validation_forward +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\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" + +#. module: base_tier_validation_forward +#: code:addons/base_tier_validation_forward/models/tier_validation.py:0 +#, python-format +msgid "A review was forwarded by %s." +msgstr "" + +#. module: base_tier_validation_forward +#: code:addons/base_tier_validation_forward/models/tier_validation.py:0 +#, python-format +msgid "A review was forwarded from {} {}" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__has_comment +msgid "Allow Comment" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_definition__has_forward +msgid "Allow Forward" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,help:base_tier_validation_forward.field_tier_definition__has_forward +msgid "Allow option to 'Forward' to different person." +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,help:base_tier_validation_forward.field_tier_review__approve_sequence +msgid "Approval order by the specified sequence number" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__approve_sequence +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__approve_sequence +msgid "Approve by sequence" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation__can_forward +msgid "Can Forward" +msgstr "" + +#. module: base_tier_validation_forward +#: model_terms:ir.ui.view,arch_db:base_tier_validation_forward.view_forward_wizard +msgid "Cancel" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__has_comment +msgid "Comment" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model,name:base_tier_validation_forward.model_comment_wizard +msgid "Comment Wizard" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__create_uid +msgid "Created by" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__create_date +msgid "Created on" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__name +msgid "Description" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_comment_wizard__display_name +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_definition__display_name +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__display_name +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation__display_name +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__display_name +msgid "Display Name" +msgstr "" + +#. module: base_tier_validation_forward +#: code:addons/base_tier_validation_forward/models/tier_validation.py:0 +#: model_terms:ir.ui.view,arch_db:base_tier_validation_forward.tier_validation_label_forward +#: model_terms:ir.ui.view,arch_db:base_tier_validation_forward.view_forward_wizard +#, python-format +msgid "Forward" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__forward_description +msgid "Forward Description" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model,name:base_tier_validation_forward.model_tier_validation_forward_wizard +msgid "Forward Wizard" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields.selection,name:base_tier_validation_forward.selection__tier_review__status__forwarded +msgid "Forwarded" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_comment_wizard__id +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_definition__id +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__id +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation__id +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__id +msgid "ID" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_comment_wizard____last_update +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_definition____last_update +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review____last_update +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation____last_update +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard____last_update +msgid "Last Modified on" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__write_date +msgid "Last Updated on" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__forward_reviewer_id +msgid "Next Reviewer" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__res_id +msgid "Res" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__res_model +msgid "Res Model" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__reviewer_id +msgid "Reviewer" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__reviewer_group_id +msgid "Reviewer group" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__sequence +msgid "Sequence" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__status +msgid "Status" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model,name:base_tier_validation_forward.model_tier_definition +msgid "Tier Definition" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model,name:base_tier_validation_forward.model_tier_review +msgid "Tier Review" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model,name:base_tier_validation_forward.model_tier_validation +msgid "Tier Validation (abstract)" +msgstr "" + +#. module: base_tier_validation_forward +#: model:mail.message.subtype,name:base_tier_validation_forward.mt_tier_validation_forwarded +msgid "Tier Validation Forward Notification" +msgstr "" + +#. module: base_tier_validation_forward +#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__review_type +msgid "Validated by" +msgstr "" From ac84c85435d40fe78843a558212c307ececf38e5 Mon Sep 17 00:00:00 2001 From: oca-git-bot Date: Thu, 31 Mar 2022 17:42:52 +0200 Subject: [PATCH 12/38] [IMP] update dotfiles [ci skip] --- base_tier_validation_forward/hooks.py | 2 +- base_tier_validation_forward/wizard/forward_wizard.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/base_tier_validation_forward/hooks.py b/base_tier_validation_forward/hooks.py index ebe6281c54..998f60b9a4 100644 --- a/base_tier_validation_forward/hooks.py +++ b/base_tier_validation_forward/hooks.py @@ -3,7 +3,7 @@ def uninstall_hook(cr, registry): - """ Revert table tier_review back to original before this module """ + """Revert table tier_review back to original before this module""" cr.execute( "update tier_review a set sequence = " "(select floor(sequence) from tier_review b where a.id = b.id);" diff --git a/base_tier_validation_forward/wizard/forward_wizard.py b/base_tier_validation_forward/wizard/forward_wizard.py index aea41d4f75..8da1c2d456 100644 --- a/base_tier_validation_forward/wizard/forward_wizard.py +++ b/base_tier_validation_forward/wizard/forward_wizard.py @@ -22,7 +22,7 @@ class ValidationForwardWizard(models.TransientModel): ) def add_forward(self): - """ Add extra step, with specific reviewer """ + """Add extra step, with specific reviewer""" self.ensure_one() rec = self.env[self.res_model].browse(self.res_id) prev_comment = self.env["comment.wizard"].browse( From 086968b4d7fa58fd39162c4da62596323eeb4efe Mon Sep 17 00:00:00 2001 From: Jasmin Solanki Date: Thu, 8 Sep 2022 11:08:23 +0530 Subject: [PATCH 13/38] [MIG] base_tier_validation_forward: Migration to 15.0 --- base_tier_validation_forward/__manifest__.py | 8 ++++++-- .../models/tier_validation.py | 8 +++++--- .../tests/test_tier_validation.py | 12 +++++++----- 3 files changed, 18 insertions(+), 10 deletions(-) diff --git a/base_tier_validation_forward/__manifest__.py b/base_tier_validation_forward/__manifest__.py index 607e8e075d..22a5820e2a 100644 --- a/base_tier_validation_forward/__manifest__.py +++ b/base_tier_validation_forward/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Base Tier Validation Forward", "summary": "Forward option for base tiers", - "version": "14.0.1.0.2", + "version": "15.0.1.0.0", "category": "Tools", "website": "https://github.com/OCA/server-ux", "author": "Ecosoft,Odoo Community Association (OCA)", @@ -20,6 +20,10 @@ "maintainers": ["kittiu"], "application": False, "installable": True, - "qweb": ["static/src/xml/tier_review_template.xml"], + "assets": { + "web.assets_qweb": [ + "base_tier_validation_forward/static/src/xml/tier_review_template.xml" + ], + }, "uninstall_hook": "uninstall_hook", } diff --git a/base_tier_validation_forward/models/tier_validation.py b/base_tier_validation_forward/models/tier_validation.py index 12ca76e6bb..21d4d23b9a 100644 --- a/base_tier_validation_forward/models/tier_validation.py +++ b/base_tier_validation_forward/models/tier_validation.py @@ -35,7 +35,9 @@ def forward_tier(self): sequences = self._get_sequences_to_approve(self.env.user) reviews = self.review_ids.filtered(lambda l: l.sequence in sequences) ctx = self._add_comment("forward", reviews)["context"] - comment = self.env["comment.wizard"].with_context(ctx).create({"comment": "/"}) + comment = ( + self.env["comment.wizard"].with_context(**ctx).create({"comment": "/"}) + ) wizard = self.env.ref("base_tier_validation_forward.view_forward_wizard") return { "name": _("Forward"), @@ -84,7 +86,7 @@ def _notify_forwarded_reviews_body(self): ) if has_comment: comment = has_comment.mapped("comment")[0] - return _( - "A review was forwarded from {} {}".format(self.env.user.name, comment) + return _("A review was forwarded from %(user_name)s %(comment)s") % ( + {"user_name": self.env.user.name, "comment": comment} ) return _("A review was forwarded by %s.") % (self.env.user.name) diff --git a/base_tier_validation_forward/tests/test_tier_validation.py b/base_tier_validation_forward/tests/test_tier_validation.py index aed583c7f0..5215c3fce8 100644 --- a/base_tier_validation_forward/tests/test_tier_validation.py +++ b/base_tier_validation_forward/tests/test_tier_validation.py @@ -4,11 +4,11 @@ from odoo_test_helper import FakeModelLoader from odoo.tests import Form -from odoo.tests.common import SavepointCase, tagged +from odoo.tests.common import TransactionCase, tagged @tagged("post_install", "-at_install") -class TierTierValidation(SavepointCase): +class TierTierValidation(TransactionCase): @classmethod def setUpClass(cls): super(TierTierValidation, cls).setUpClass() @@ -66,7 +66,7 @@ def setUpClass(cls): @classmethod def tearDownClass(cls): cls.loader.restore_registry() - super(TierTierValidation, cls).tearDownClass() + return super(TierTierValidation, cls).tearDownClass() def test_01_forward_tier(self): # Create new test record @@ -98,7 +98,7 @@ def test_01_forward_tier(self): wizard = Form( self.env["tier.validation.forward.wizard"] .with_user(self.test_user_2.id) - .with_context(ctx) + .with_context(**ctx) ) wizard.forward_reviewer_id = self.test_user_1 wizard.forward_description = "Please review again" @@ -112,7 +112,9 @@ def test_01_forward_tier(self): res = record.with_user(self.test_user_1.id).validate_tier() ctx = res.get("context") wizard = Form( - self.env["comment.wizard"].with_user(self.test_user_1.id).with_context(ctx) + self.env["comment.wizard"] + .with_user(self.test_user_1.id) + .with_context(**ctx) ) wizard.comment = "Forward tier is reviewed" wiz = wizard.save() From 3254eb7e5fa699f985c4dc12ee0ef2e9fe0bf745 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Wed, 21 Sep 2022 06:28:42 +0000 Subject: [PATCH 14/38] [UPD] Update base_tier_validation_forward.pot --- .../i18n/base_tier_validation_forward.pot | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/base_tier_validation_forward/i18n/base_tier_validation_forward.pot b/base_tier_validation_forward/i18n/base_tier_validation_forward.pot index 4e3b906580..a0c48744db 100644 --- a/base_tier_validation_forward/i18n/base_tier_validation_forward.pot +++ b/base_tier_validation_forward/i18n/base_tier_validation_forward.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 14.0\n" +"Project-Id-Version: Odoo Server 15.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -22,7 +22,7 @@ msgstr "" #. module: base_tier_validation_forward #: code:addons/base_tier_validation_forward/models/tier_validation.py:0 #, python-format -msgid "A review was forwarded from {} {}" +msgid "A review was forwarded from %(user_name)s %(comment)s" msgstr "" #. module: base_tier_validation_forward @@ -87,10 +87,6 @@ msgid "Description" msgstr "" #. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_comment_wizard__display_name -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_definition__display_name -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__display_name -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation__display_name #: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__display_name msgid "Display Name" msgstr "" @@ -119,19 +115,11 @@ msgid "Forwarded" msgstr "" #. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_comment_wizard__id -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_definition__id -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__id -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation__id #: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__id msgid "ID" msgstr "" #. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_comment_wizard____last_update -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_definition____last_update -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review____last_update -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation____last_update #: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard____last_update msgid "Last Modified on" msgstr "" From 42a1cff051c6aab00fc5660007986e28cbab6eb4 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Wed, 21 Sep 2022 06:32:24 +0000 Subject: [PATCH 15/38] [UPD] README.rst --- base_tier_validation_forward/README.rst | 10 +++++----- .../static/description/index.html | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/base_tier_validation_forward/README.rst b/base_tier_validation_forward/README.rst index 6e2dcaf493..84bec5bc99 100644 --- a/base_tier_validation_forward/README.rst +++ b/base_tier_validation_forward/README.rst @@ -14,13 +14,13 @@ Base Tier Validation Forward :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--ux-lightgray.png?logo=github - :target: https://github.com/OCA/server-ux/tree/14.0/base_tier_validation_forward + :target: https://github.com/OCA/server-ux/tree/15.0/base_tier_validation_forward :alt: OCA/server-ux .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/server-ux-14-0/server-ux-14-0-base_tier_validation_forward + :target: https://translation.odoo-community.org/projects/server-ux-15-0/server-ux-15-0-base_tier_validation_forward :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/250/14.0 + :target: https://runbot.odoo-community.org/runbot/250/15.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -58,7 +58,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -96,6 +96,6 @@ Current `maintainer `__: |maintainer-kittiu| -This module is part of the `OCA/server-ux `_ project on GitHub. +This module is part of the `OCA/server-ux `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/base_tier_validation_forward/static/description/index.html b/base_tier_validation_forward/static/description/index.html index 7a11af54a8..2efba4df37 100644 --- a/base_tier_validation_forward/static/description/index.html +++ b/base_tier_validation_forward/static/description/index.html @@ -367,7 +367,7 @@

Base Tier Validation Forward

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Alpha License: AGPL-3 OCA/server-ux Translate me on Weblate Try me on Runbot

+

Alpha License: AGPL-3 OCA/server-ux Translate me on Weblate Try me on Runbot

This module add an advance option to base_tier_validation.

  • To allow “Forward” the tier to different user.
  • @@ -405,7 +405,7 @@

    Bug Tracker

    Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed -feedback.

    +feedback.

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

@@ -431,7 +431,7 @@

Maintainers

promote its widespread use.

Current maintainer:

kittiu

-

This module is part of the OCA/server-ux project on GitHub.

+

This module is part of the OCA/server-ux project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

From 70a37ca4cf3712be88bd0600cc2dfe62e8fe0044 Mon Sep 17 00:00:00 2001 From: Andrea Stirpe Date: Mon, 20 Mar 2023 12:52:56 +0100 Subject: [PATCH 16/38] [16.0][MIG] base_tier_validation_forward --- base_tier_validation_forward/__manifest__.py | 6 +++--- base_tier_validation_forward/readme/CONTRIBUTORS.rst | 1 + .../static/src/xml/tier_review_template.xml | 6 +++--- base_tier_validation_forward/tests/test_tier_validation.py | 6 +++--- base_tier_validation_forward/wizard/comment_wizard.py | 2 +- base_tier_validation_forward/wizard/forward_wizard.py | 2 +- 6 files changed, 12 insertions(+), 11 deletions(-) diff --git a/base_tier_validation_forward/__manifest__.py b/base_tier_validation_forward/__manifest__.py index 22a5820e2a..646d3f9deb 100644 --- a/base_tier_validation_forward/__manifest__.py +++ b/base_tier_validation_forward/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Base Tier Validation Forward", "summary": "Forward option for base tiers", - "version": "15.0.1.0.0", + "version": "16.0.1.0.0", "category": "Tools", "website": "https://github.com/OCA/server-ux", "author": "Ecosoft,Odoo Community Association (OCA)", @@ -21,8 +21,8 @@ "application": False, "installable": True, "assets": { - "web.assets_qweb": [ - "base_tier_validation_forward/static/src/xml/tier_review_template.xml" + "web.assets_backend": [ + "base_tier_validation_forward/static/src/xml/tier_review_template.xml", ], }, "uninstall_hook": "uninstall_hook", diff --git a/base_tier_validation_forward/readme/CONTRIBUTORS.rst b/base_tier_validation_forward/readme/CONTRIBUTORS.rst index 6ce956d961..b5c21d6998 100644 --- a/base_tier_validation_forward/readme/CONTRIBUTORS.rst +++ b/base_tier_validation_forward/readme/CONTRIBUTORS.rst @@ -1 +1,2 @@ * Kitti U. +* Andrea Stirpe diff --git a/base_tier_validation_forward/static/src/xml/tier_review_template.xml b/base_tier_validation_forward/static/src/xml/tier_review_template.xml index d270c2c101..d0a66b80fe 100644 --- a/base_tier_validation_forward/static/src/xml/tier_review_template.xml +++ b/base_tier_validation_forward/static/src/xml/tier_review_template.xml @@ -1,12 +1,12 @@ - - + + - + diff --git a/base_tier_validation_forward/tests/test_tier_validation.py b/base_tier_validation_forward/tests/test_tier_validation.py index 5215c3fce8..cc71c717c8 100644 --- a/base_tier_validation_forward/tests/test_tier_validation.py +++ b/base_tier_validation_forward/tests/test_tier_validation.py @@ -86,12 +86,12 @@ def test_01_forward_tier(self): review = test_record.with_user(self.test_user_2.id).request_validation() self.assertTrue(review) record = test_record.with_user(self.test_user_1.id) - record.invalidate_cache() + record.invalidate_recordset() record.validate_tier() self.assertFalse(record.can_forward) # User 2 forward to user 1 record = test_record.with_user(self.test_user_2.id) - record.invalidate_cache() + record.invalidate_recordset() self.assertTrue(record.can_forward) res = record.forward_tier() ctx = res.get("context") @@ -106,7 +106,7 @@ def test_01_forward_tier(self): wiz.add_forward() # Newly created forwarded review will have no definition record = test_record.with_user(self.test_user_2.id) - record.invalidate_cache() + record.invalidate_recordset() self.assertTrue(record.review_ids.filtered(lambda l: not l.definition_id)) # User 1 validate res = record.with_user(self.test_user_1.id).validate_tier() diff --git a/base_tier_validation_forward/wizard/comment_wizard.py b/base_tier_validation_forward/wizard/comment_wizard.py index 31e4ac02b9..cc6fc33af3 100644 --- a/base_tier_validation_forward/wizard/comment_wizard.py +++ b/base_tier_validation_forward/wizard/comment_wizard.py @@ -11,5 +11,5 @@ def add_comment(self): rec = self.env[self.res_model].browse(self.res_id) if self.validate_reject == "forward": rec._forward_tier(self.review_ids) - rec._update_counter() + rec._update_counter({"review_created": True}) return self.review_ids diff --git a/base_tier_validation_forward/wizard/forward_wizard.py b/base_tier_validation_forward/wizard/forward_wizard.py index 8da1c2d456..4563bcb1ed 100644 --- a/base_tier_validation_forward/wizard/forward_wizard.py +++ b/base_tier_validation_forward/wizard/forward_wizard.py @@ -50,5 +50,5 @@ def add_forward(self): "approve_sequence": self.approve_sequence, } ) - rec.invalidate_cache() + rec.invalidate_recordset() rec.review_ids._compute_can_review() From 83540a683070ed5faefb5923ae82edc34fa82a04 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Thu, 22 Jun 2023 16:25:06 +0000 Subject: [PATCH 17/38] [UPD] Update base_tier_validation_forward.pot --- .../i18n/base_tier_validation_forward.pot | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/base_tier_validation_forward/i18n/base_tier_validation_forward.pot b/base_tier_validation_forward/i18n/base_tier_validation_forward.pot index a0c48744db..69ee737422 100644 --- a/base_tier_validation_forward/i18n/base_tier_validation_forward.pot +++ b/base_tier_validation_forward/i18n/base_tier_validation_forward.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 15.0\n" +"Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -14,12 +14,14 @@ msgstr "" "Plural-Forms: \n" #. module: base_tier_validation_forward +#. odoo-python #: code:addons/base_tier_validation_forward/models/tier_validation.py:0 #, python-format msgid "A review was forwarded by %s." msgstr "" #. module: base_tier_validation_forward +#. odoo-python #: code:addons/base_tier_validation_forward/models/tier_validation.py:0 #, python-format msgid "A review was forwarded from %(user_name)s %(comment)s" @@ -92,6 +94,7 @@ msgid "Display Name" msgstr "" #. module: base_tier_validation_forward +#. odoo-python #: code:addons/base_tier_validation_forward/models/tier_validation.py:0 #: model_terms:ir.ui.view,arch_db:base_tier_validation_forward.tier_validation_label_forward #: model_terms:ir.ui.view,arch_db:base_tier_validation_forward.view_forward_wizard From 55a0103e1774ce6ab24149e2be0650bd19d8e62a Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Thu, 22 Jun 2023 16:31:56 +0000 Subject: [PATCH 18/38] [UPD] README.rst --- base_tier_validation_forward/README.rst | 11 ++++++----- .../static/description/index.html | 7 ++++--- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/base_tier_validation_forward/README.rst b/base_tier_validation_forward/README.rst index 84bec5bc99..84f3f1eda4 100644 --- a/base_tier_validation_forward/README.rst +++ b/base_tier_validation_forward/README.rst @@ -14,13 +14,13 @@ Base Tier Validation Forward :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fserver--ux-lightgray.png?logo=github - :target: https://github.com/OCA/server-ux/tree/15.0/base_tier_validation_forward + :target: https://github.com/OCA/server-ux/tree/16.0/base_tier_validation_forward :alt: OCA/server-ux .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/server-ux-15-0/server-ux-15-0-base_tier_validation_forward + :target: https://translation.odoo-community.org/projects/server-ux-16-0/server-ux-16-0-base_tier_validation_forward :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/250/15.0 + :target: https://runbot.odoo-community.org/runbot/250/16.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -58,7 +58,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -74,6 +74,7 @@ Contributors ~~~~~~~~~~~~ * Kitti U. +* Andrea Stirpe Maintainers ~~~~~~~~~~~ @@ -96,6 +97,6 @@ Current `maintainer `__: |maintainer-kittiu| -This module is part of the `OCA/server-ux `_ project on GitHub. +This module is part of the `OCA/server-ux `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/base_tier_validation_forward/static/description/index.html b/base_tier_validation_forward/static/description/index.html index 2efba4df37..6ba4045999 100644 --- a/base_tier_validation_forward/static/description/index.html +++ b/base_tier_validation_forward/static/description/index.html @@ -367,7 +367,7 @@

Base Tier Validation Forward

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Alpha License: AGPL-3 OCA/server-ux Translate me on Weblate Try me on Runbot

+

Alpha License: AGPL-3 OCA/server-ux Translate me on Weblate Try me on Runbot

This module add an advance option to base_tier_validation.

  • To allow “Forward” the tier to different user.
  • @@ -405,7 +405,7 @@

    Bug Tracker

    Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us smashing it by providing a detailed and welcomed -feedback.

    +feedback.

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

@@ -420,6 +420,7 @@

Authors

Contributors

@@ -431,7 +432,7 @@

Maintainers

promote its widespread use.

Current maintainer:

kittiu

-

This module is part of the OCA/server-ux project on GitHub.

+

This module is part of the OCA/server-ux project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

From cd7b8d2039cf00452d58c71edec3a558b6311474 Mon Sep 17 00:00:00 2001 From: Weblate Date: Thu, 22 Jun 2023 19:06:31 +0000 Subject: [PATCH 19/38] Update translation files Updated by "Update PO files to match POT (msgmerge)" hook in Weblate. Translation: server-ux-16.0/server-ux-16.0-base_tier_validation_forward Translate-URL: https://translation.odoo-community.org/projects/server-ux-16-0/server-ux-16-0-base_tier_validation_forward/ --- base_tier_validation_forward/i18n/es.po | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/base_tier_validation_forward/i18n/es.po b/base_tier_validation_forward/i18n/es.po index 04a83ccddc..858bdfda5b 100644 --- a/base_tier_validation_forward/i18n/es.po +++ b/base_tier_validation_forward/i18n/es.po @@ -15,15 +15,17 @@ msgstr "" "Plural-Forms: nplurals=2; plural=n != 1;\n" #. module: base_tier_validation_forward +#. odoo-python #: code:addons/base_tier_validation_forward/models/tier_validation.py:0 #, python-format msgid "A review was forwarded by %s." msgstr "" #. module: base_tier_validation_forward +#. odoo-python #: code:addons/base_tier_validation_forward/models/tier_validation.py:0 #, python-format -msgid "A review was forwarded from {} {}" +msgid "A review was forwarded from %(user_name)s %(comment)s" msgstr "" #. module: base_tier_validation_forward @@ -88,15 +90,12 @@ msgid "Description" msgstr "" #. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_comment_wizard__display_name -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_definition__display_name -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__display_name -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation__display_name #: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__display_name msgid "Display Name" msgstr "" #. module: base_tier_validation_forward +#. odoo-python #: code:addons/base_tier_validation_forward/models/tier_validation.py:0 #: model_terms:ir.ui.view,arch_db:base_tier_validation_forward.tier_validation_label_forward #: model_terms:ir.ui.view,arch_db:base_tier_validation_forward.view_forward_wizard @@ -120,19 +119,11 @@ msgid "Forwarded" msgstr "" #. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_comment_wizard__id -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_definition__id -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__id -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation__id #: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__id msgid "ID" msgstr "" #. module: base_tier_validation_forward -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_comment_wizard____last_update -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_definition____last_update -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review____last_update -#: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation____last_update #: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard____last_update msgid "Last Modified on" msgstr "" From 07236b1c5dfaa74853a9a10be62d1e0c91ebdc71 Mon Sep 17 00:00:00 2001 From: Ivorra78 Date: Sun, 27 Aug 2023 08:08:10 +0000 Subject: [PATCH 20/38] Translated using Weblate (Spanish) Currently translated at 100.0% (35 of 35 strings) Translation: server-ux-16.0/server-ux-16.0-base_tier_validation_forward Translate-URL: https://translation.odoo-community.org/projects/server-ux-16-0/server-ux-16-0-base_tier_validation_forward/es/ --- base_tier_validation_forward/i18n/es.po | 74 +++++++++++++------------ 1 file changed, 38 insertions(+), 36 deletions(-) diff --git a/base_tier_validation_forward/i18n/es.po b/base_tier_validation_forward/i18n/es.po index 858bdfda5b..6c55e1fd34 100644 --- a/base_tier_validation_forward/i18n/es.po +++ b/base_tier_validation_forward/i18n/es.po @@ -6,93 +6,95 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 14.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2023-08-27 16:07+0000\n" +"Last-Translator: Ivorra78 \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: base_tier_validation_forward #. odoo-python #: code:addons/base_tier_validation_forward/models/tier_validation.py:0 #, python-format msgid "A review was forwarded by %s." -msgstr "" +msgstr "%s ha enviado una reseña." #. module: base_tier_validation_forward #. odoo-python #: code:addons/base_tier_validation_forward/models/tier_validation.py:0 #, python-format msgid "A review was forwarded from %(user_name)s %(comment)s" -msgstr "" +msgstr "Se envió una reseña desde %(user_name)s %(comment)s" #. module: base_tier_validation_forward #: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__has_comment msgid "Allow Comment" -msgstr "" +msgstr "Permitir comentario" #. module: base_tier_validation_forward #: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_definition__has_forward msgid "Allow Forward" -msgstr "" +msgstr "Permitir reenviar" #. module: base_tier_validation_forward #: model:ir.model.fields,help:base_tier_validation_forward.field_tier_definition__has_forward msgid "Allow option to 'Forward' to different person." -msgstr "" +msgstr "Permitir la opción de 'Reenviar' a otra persona." #. module: base_tier_validation_forward #: model:ir.model.fields,help:base_tier_validation_forward.field_tier_review__approve_sequence msgid "Approval order by the specified sequence number" -msgstr "" +msgstr "Orden de aprobación por el número de secuencia especificado" #. module: base_tier_validation_forward #: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__approve_sequence #: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__approve_sequence msgid "Approve by sequence" -msgstr "" +msgstr "Aprobar por secuencia" #. module: base_tier_validation_forward #: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation__can_forward msgid "Can Forward" -msgstr "" +msgstr "Puede Reenviar" #. module: base_tier_validation_forward #: model_terms:ir.ui.view,arch_db:base_tier_validation_forward.view_forward_wizard msgid "Cancel" -msgstr "" +msgstr "Cancelar" #. module: base_tier_validation_forward #: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__has_comment msgid "Comment" -msgstr "" +msgstr "Comentario" #. module: base_tier_validation_forward #: model:ir.model,name:base_tier_validation_forward.model_comment_wizard msgid "Comment Wizard" -msgstr "" +msgstr "Asistente de comentarios" #. module: base_tier_validation_forward #: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__create_uid msgid "Created by" -msgstr "" +msgstr "Creado por" #. module: base_tier_validation_forward #: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__create_date msgid "Created on" -msgstr "" +msgstr "Creado el" #. module: base_tier_validation_forward #: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__name msgid "Description" -msgstr "" +msgstr "Descripción" #. module: base_tier_validation_forward #: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__display_name msgid "Display Name" -msgstr "" +msgstr "Mostrar Nombre" #. module: base_tier_validation_forward #. odoo-python @@ -101,99 +103,99 @@ msgstr "" #: model_terms:ir.ui.view,arch_db:base_tier_validation_forward.view_forward_wizard #, python-format msgid "Forward" -msgstr "" +msgstr "Avanzar" #. module: base_tier_validation_forward #: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__forward_description msgid "Forward Description" -msgstr "" +msgstr "Descripción directa" #. module: base_tier_validation_forward #: model:ir.model,name:base_tier_validation_forward.model_tier_validation_forward_wizard msgid "Forward Wizard" -msgstr "" +msgstr "Asistente de avance" #. module: base_tier_validation_forward #: model:ir.model.fields.selection,name:base_tier_validation_forward.selection__tier_review__status__forwarded msgid "Forwarded" -msgstr "" +msgstr "Reenviado" #. module: base_tier_validation_forward #: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__id msgid "ID" -msgstr "" +msgstr "ID (identificación)" #. module: base_tier_validation_forward #: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard____last_update msgid "Last Modified on" -msgstr "" +msgstr "Última Modificación el" #. module: base_tier_validation_forward #: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__write_uid msgid "Last Updated by" -msgstr "" +msgstr "Última actualización por" #. module: base_tier_validation_forward #: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__write_date msgid "Last Updated on" -msgstr "" +msgstr "Última Actualización el" #. module: base_tier_validation_forward #: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__forward_reviewer_id msgid "Next Reviewer" -msgstr "" +msgstr "Siguiente revisor" #. module: base_tier_validation_forward #: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__res_id msgid "Res" -msgstr "" +msgstr "Recurso" #. module: base_tier_validation_forward #: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_validation_forward_wizard__res_model msgid "Res Model" -msgstr "" +msgstr "Modelo Res" #. module: base_tier_validation_forward #: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__reviewer_id msgid "Reviewer" -msgstr "" +msgstr "Revisor" #. module: base_tier_validation_forward #: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__reviewer_group_id msgid "Reviewer group" -msgstr "" +msgstr "Grupo revisor" #. module: base_tier_validation_forward #: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__sequence msgid "Sequence" -msgstr "" +msgstr "Secuencia" #. module: base_tier_validation_forward #: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__status msgid "Status" -msgstr "" +msgstr "Estados" #. module: base_tier_validation_forward #: model:ir.model,name:base_tier_validation_forward.model_tier_definition msgid "Tier Definition" -msgstr "" +msgstr "Definición del nivel" #. module: base_tier_validation_forward #: model:ir.model,name:base_tier_validation_forward.model_tier_review msgid "Tier Review" -msgstr "" +msgstr "Definición de nivel" #. module: base_tier_validation_forward #: model:ir.model,name:base_tier_validation_forward.model_tier_validation msgid "Tier Validation (abstract)" -msgstr "" +msgstr "Validaciones de Nivel (abstracto)" #. module: base_tier_validation_forward #: model:mail.message.subtype,name:base_tier_validation_forward.mt_tier_validation_forwarded msgid "Tier Validation Forward Notification" -msgstr "" +msgstr "Validación de nivel Notificación previa" #. module: base_tier_validation_forward #: model:ir.model.fields,field_description:base_tier_validation_forward.field_tier_review__review_type msgid "Validated by" -msgstr "" +msgstr "Validado por" From e76b5d925366455b479d8f68c2698bb2fd351064 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Sun, 3 Sep 2023 16:55:27 +0000 Subject: [PATCH 21/38] [UPD] README.rst --- base_tier_validation_forward/README.rst | 15 ++++--- .../static/description/index.html | 40 ++++++++++--------- 2 files changed, 30 insertions(+), 25 deletions(-) diff --git a/base_tier_validation_forward/README.rst b/base_tier_validation_forward/README.rst index 84f3f1eda4..652af06a78 100644 --- a/base_tier_validation_forward/README.rst +++ b/base_tier_validation_forward/README.rst @@ -2,10 +2,13 @@ Base Tier Validation Forward ============================ -.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:a7d5e5d606039024c51b249187db75c6ddffefe69e297cd8ea593145186bcf93 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Alpha-red.png :target: https://odoo-community.org/page/development-status @@ -19,11 +22,11 @@ Base Tier Validation Forward .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png :target: https://translation.odoo-community.org/projects/server-ux-16-0/server-ux-16-0-base_tier_validation_forward :alt: Translate me on Weblate -.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/250/16.0 - :alt: Try me on Runbot +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/server-ux&target_branch=16.0 + :alt: Try me on Runboat -|badge1| |badge2| |badge3| |badge4| |badge5| +|badge1| |badge2| |badge3| |badge4| |badge5| This module add an advance option to base_tier_validation. @@ -57,7 +60,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. -If you spotted it first, help us smashing it by providing a detailed and welcomed +If you spotted it first, help us to smash it by providing a detailed and welcomed `feedback `_. Do not contact contributors directly about support or help with technical issues. diff --git a/base_tier_validation_forward/static/description/index.html b/base_tier_validation_forward/static/description/index.html index 6ba4045999..c8bb75c64e 100644 --- a/base_tier_validation_forward/static/description/index.html +++ b/base_tier_validation_forward/static/description/index.html @@ -1,20 +1,20 @@ - + - + Base Tier Validation Forward