Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ addon | version | maintainers | summary
[base_search_custom_field_filter](base_search_custom_field_filter/) | 18.0.1.0.1 | <a href='https://github.com/pedrobaeza'><img src='https://github.com/pedrobaeza.png' width='32' height='32' style='border-radius:50%;' alt='pedrobaeza'/></a> | Add custom filters for fields via UI
[base_substate](base_substate/) | 18.0.1.0.2 | | Base Sub State
[base_technical_features](base_technical_features/) | 18.0.1.0.2 | | Access to technical features without activating debug mode
[base_tier_validation](base_tier_validation/) | 18.0.3.3.1 | <a href='https://github.com/LoisRForgeFlow'><img src='https://github.com/LoisRForgeFlow.png' width='32' height='32' style='border-radius:50%;' alt='LoisRForgeFlow'/></a> | Implement a validation process based on tiers.
[base_tier_validation](base_tier_validation/) | 18.0.3.4.0 | <a href='https://github.com/LoisRForgeFlow'><img src='https://github.com/LoisRForgeFlow.png' width='32' height='32' style='border-radius:50%;' alt='LoisRForgeFlow'/></a> | Implement a validation process based on tiers.
[base_tier_validation_confirm_auth](base_tier_validation_confirm_auth/) | 18.0.1.0.0 | | Authentication confirmation for base tiers.
[base_tier_validation_correction](base_tier_validation_correction/) | 18.0.1.0.1 | <a href='https://github.com/kittiu'><img src='https://github.com/kittiu.png' width='32' height='32' style='border-radius:50%;' alt='kittiu'/></a> | Correct tier.review data after it has been created.
[base_tier_validation_formula](base_tier_validation_formula/) | 18.0.1.0.1 | | Formulas for Base tier validation
Expand Down
2 changes: 1 addition & 1 deletion base_tier_validation/README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Base Tier Validation
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:dc242d6c50cc357fbd98be3778c5e3013971e9ea0622db72e500fd72d0de7c80
!! source digest: sha256:1823d16061ca83ece8322b77d320bb735e7462305d7ae60fd3e15819f3c6f276
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Mature-brightgreen.png
Expand Down
2 changes: 1 addition & 1 deletion base_tier_validation/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
{
"name": "Base Tier Validation",
"summary": "Implement a validation process based on tiers.",
"version": "18.0.3.3.1",
"version": "18.0.3.4.0",
"development_status": "Mature",
"maintainers": ["LoisRForgeFlow"],
"category": "Tools",
Expand Down
1 change: 1 addition & 0 deletions base_tier_validation/i18n/base_tier_validation.pot
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,7 @@ msgid ""
msgstr ""

#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__cancel
#: model_terms:ir.ui.view,arch_db:base_tier_validation.view_comment_wizard
msgid "Cancel"
msgstr ""
Expand Down
7 changes: 4 additions & 3 deletions base_tier_validation/i18n/de.po
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,7 @@ msgid ""
msgstr ""

#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__cancel
#: model_terms:ir.ui.view,arch_db:base_tier_validation.view_comment_wizard
msgid "Cancel"
msgstr ""
Expand Down Expand Up @@ -351,9 +352,9 @@ msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_pending
msgid ""
"If set, all possible reviewers will be notified by email when this status is"
" reached.Usefull in an Approve by sequence scenario. An notification request"
" to review is sent out when it's their turn to review."
"If set, all possible reviewers will be notified by email when this status is "
"reached.Usefull in an Approve by sequence scenario. An notification request "
"to review is sent out when it's their turn to review."
msgstr ""

#. module: base_tier_validation
Expand Down
1 change: 1 addition & 0 deletions base_tier_validation/i18n/es.po
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,7 @@ msgstr ""
" secuencia de aprobación se ha alcanzado"

#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__cancel
#: model_terms:ir.ui.view,arch_db:base_tier_validation.view_comment_wizard
msgid "Cancel"
msgstr "Cancelar"
Expand Down
1 change: 1 addition & 0 deletions base_tier_validation/i18n/es_MX.po
Original file line number Diff line number Diff line change
Expand Up @@ -190,6 +190,7 @@ msgstr ""
" se ha logrado aprobar la secuencia"

#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__cancel
#: model_terms:ir.ui.view,arch_db:base_tier_validation.view_comment_wizard
msgid "Cancel"
msgstr "Cancelado"
Expand Down
1 change: 1 addition & 0 deletions base_tier_validation/i18n/fr.po
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,7 @@ msgstr ""
" qu'une séquence d'approbation a été effectuée"

#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__cancel
#: model_terms:ir.ui.view,arch_db:base_tier_validation.view_comment_wizard
msgid "Cancel"
msgstr "Annuler"
Expand Down
1 change: 1 addition & 0 deletions base_tier_validation/i18n/it.po
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,7 @@ msgstr ""
" sequenza di approvazione è archiviata"

#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__cancel
#: model_terms:ir.ui.view,arch_db:base_tier_validation.view_comment_wizard
msgid "Cancel"
msgstr "Annulla"
Expand Down
7 changes: 4 additions & 3 deletions base_tier_validation/i18n/ja.po
Original file line number Diff line number Diff line change
Expand Up @@ -185,6 +185,7 @@ msgid ""
msgstr ""

#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__cancel
#: model_terms:ir.ui.view,arch_db:base_tier_validation.view_comment_wizard
msgid "Cancel"
msgstr ""
Expand Down Expand Up @@ -351,9 +352,9 @@ msgstr ""
#. module: base_tier_validation
#: model:ir.model.fields,help:base_tier_validation.field_tier_definition__notify_on_pending
msgid ""
"If set, all possible reviewers will be notified by email when this status is"
" reached.Usefull in an Approve by sequence scenario. An notification request"
" to review is sent out when it's their turn to review."
"If set, all possible reviewers will be notified by email when this status is "
"reached.Usefull in an Approve by sequence scenario. An notification request "
"to review is sent out when it's their turn to review."
msgstr ""

#. module: base_tier_validation
Expand Down
1 change: 1 addition & 0 deletions base_tier_validation/i18n/nl.po
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,7 @@ msgstr ""
" goedkeuringssequentie is bereikt"

#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__cancel
#: model_terms:ir.ui.view,arch_db:base_tier_validation.view_comment_wizard
msgid "Cancel"
msgstr "Annuleren"
Expand Down
1 change: 1 addition & 0 deletions base_tier_validation/i18n/nl_NL.po
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,7 @@ msgstr ""
" goedkeuringssequentie is bereikt"

#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__cancel
#: model_terms:ir.ui.view,arch_db:base_tier_validation.view_comment_wizard
msgid "Cancel"
msgstr "Annuleer"
Expand Down
1 change: 1 addition & 0 deletions base_tier_validation/i18n/sv.po
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,7 @@ msgstr ""
" godkännandesekvensen har uppnåtts"

#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__cancel
#: model_terms:ir.ui.view,arch_db:base_tier_validation.view_comment_wizard
msgid "Cancel"
msgstr "Avbryt"
Expand Down
1 change: 1 addition & 0 deletions base_tier_validation/i18n/tr.po
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,7 @@ msgstr ""
" onay dizisi elde edildi"

#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__cancel
#: model_terms:ir.ui.view,arch_db:base_tier_validation.view_comment_wizard
msgid "Cancel"
msgstr "İptal"
Expand Down
1 change: 1 addition & 0 deletions base_tier_validation/i18n/vi_VN.po
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,7 @@ msgid ""
msgstr ""

#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__cancel
#: model_terms:ir.ui.view,arch_db:base_tier_validation.view_comment_wizard
msgid "Cancel"
msgstr ""
Expand Down
1 change: 1 addition & 0 deletions base_tier_validation/i18n/zh_CN.po
Original file line number Diff line number Diff line change
Expand Up @@ -187,6 +187,7 @@ msgid ""
msgstr ""

#. module: base_tier_validation
#: model:ir.model.fields.selection,name:base_tier_validation.selection__tier_review__status__cancel
#: model_terms:ir.ui.view,arch_db:base_tier_validation.view_comment_wizard
msgid "Cancel"
msgstr "取消"
Expand Down
1 change: 1 addition & 0 deletions base_tier_validation/models/tier_review.py
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ class TierReview(models.Model):
("pending", "Pending"),
("rejected", "Rejected"),
("approved", "Approved"),
("cancel", "Cancel"),
],
default="waiting",
)
Expand Down
7 changes: 7 additions & 0 deletions base_tier_validation/models/tier_validation.py
Original file line number Diff line number Diff line change
Expand Up @@ -690,6 +690,13 @@ def _rejected_tier(self, tiers=False):
)
# We need to notify all pending users if there is approve sequence
if tier_reviews and any(review.approve_sequence for review in tier_reviews):
# If there are waiting reviews that should be approved sequentially,
# they must be marked as canceled
waiting_reviews = self.review_ids.filtered(
lambda r: r.status == "waiting" and r.approve_sequence
)
if waiting_reviews:
waiting_reviews.write({"status": "cancel"})
reviews_to_notify = self.review_ids.filtered(
lambda r: r.status == "pending" and r.definition_id.notify_on_rejected
)
Expand Down
2 changes: 1 addition & 1 deletion base_tier_validation/static/description/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -372,7 +372,7 @@ <h1>Base Tier Validation</h1>
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:dc242d6c50cc357fbd98be3778c5e3013971e9ea0622db72e500fd72d0de7c80
!! source digest: sha256:1823d16061ca83ece8322b77d320bb735e7462305d7ae60fd3e15819f3c6f276
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Mature" src="https://img.shields.io/badge/maturity-Mature-brightgreen.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/license-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/server-ux/tree/18.0/base_tier_validation"><img alt="OCA/server-ux" src="https://img.shields.io/badge/github-OCA%2Fserver--ux-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/server-ux-18-0/server-ux-18-0-base_tier_validation"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/server-ux&amp;target_branch=18.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
<p>Validating some operations is a common need across different areas in a
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
t-key="review.id"
>
<t
t-if="review.status == 'waiting'"
t-if="review.status == 'waiting' or review.status == 'cancel'"
t-set="status_class"
t-value="'text-muted'"
/>
Expand Down
54 changes: 53 additions & 1 deletion base_tier_validation/tests/test_tier_validation.py
Original file line number Diff line number Diff line change
Expand Up @@ -194,7 +194,7 @@ def test_11_add_comment_rejection(self):
)._notify_rejected_review_body()
self.assertEqual(comment, "A review was rejected by John. (Test Comment)")

def test_12_approve_sequence(self):
def test_12_approve_sequence_validate(self):
# Create new test record
test_record = self.test_model.create({"test_field": 2.5})
# Create tier definitions
Expand Down Expand Up @@ -239,6 +239,58 @@ def test_12_approve_sequence(self):
record1.validate_tier()
self.assertTrue(any(r.status == "approved" for r in record1.review_ids))

def test_12_approve_sequence_reject(self):
# Create new test record
test_record = self.test_model.create({"test_field": 2.5})
# Create tier definitions
tier_def_1 = self.tier_def_obj.create(
{
"model_id": self.tester_model.id,
"review_type": "individual",
"reviewer_id": self.test_user_1.id,
"definition_domain": "[('test_field', '>', 1.0)]",
"approve_sequence": True,
"sequence": 30,
}
)
tier_def_2 = 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,
"sequence": 20,
}
)
tier_def_3 = self.tier_def_obj.create(
{
"model_id": self.tester_model.id,
"review_type": "individual",
"reviewer_id": self.test_user_3_multi_company.id,
"definition_domain": "[('test_field', '>', 1.0)]",
"approve_sequence": True,
"sequence": 10,
}
)
# Request validation
self.assertFalse(self.test_record.review_ids)
reviews = test_record.with_user(self.test_user_2.id).request_validation()
self.assertTrue(reviews)
record = test_record.with_user(self.test_user_1.id)
self.assertTrue(record.can_review)
# User 1 validates the record, extra reviews should be cancel.
self.assertFalse(any(r.status == "approved" for r in record.review_ids))
record.reject_tier()
self.assertTrue(any(r.status == "rejected" for r in record.review_ids))
self.assertTrue(any(r.status == "cancel" for r in record.review_ids))
review_1 = record.review_ids.filtered(lambda x: x.definition_id == tier_def_1)
self.assertEqual(review_1.status, "rejected")
review_2 = record.review_ids.filtered(lambda x: x.definition_id == tier_def_2)
self.assertEqual(review_2.status, "cancel")
review_3 = record.review_ids.filtered(lambda x: x.definition_id == tier_def_3)
self.assertEqual(review_3.status, "cancel")

def test_12_approve_sequence_same_user(self):
"""Similar to test_12_approve_sequence, but all same users,
the approve_sequence still apply correctly"""
Expand Down
1 change: 1 addition & 0 deletions checklog-odoo.cfg
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
[checklog-odoo]
ignore=
WARNING.* 0 failed, 0 error\(s\).*
WARNING .* Killing chrome descendants-or-self .*
Loading