diff --git a/base_tier_validation/data/mail_data.xml b/base_tier_validation/data/mail_data.xml
index fdcef9e2e0..fc155345ce 100644
--- a/base_tier_validation/data/mail_data.xml
+++ b/base_tier_validation/data/mail_data.xml
@@ -6,7 +6,7 @@
forcecreate="1"
>
Tier Validation Requested
-
+
@@ -16,7 +16,7 @@
forcecreate="1"
>
Tier Validation Accepted Notification
-
+
@@ -26,7 +26,7 @@
forcecreate="1"
>
Tier Validation Rejected Notification
-
+
@@ -36,7 +36,7 @@
forcecreate="1"
>
Tier Validation Restarted
-
+
diff --git a/base_tier_validation/models/tier_validation.py b/base_tier_validation/models/tier_validation.py
index 302fd61a2b..ca906308d6 100644
--- a/base_tier_validation/models/tier_validation.py
+++ b/base_tier_validation/models/tier_validation.py
@@ -491,29 +491,13 @@ def _validate_tier(self, tiers=False):
reviews_to_notify = user_reviews.filtered(
lambda r: r.definition_id.notify_on_accepted
)
- # 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):
- reviews_to_notify = self.review_ids.filtered(
- lambda r: r.status == "pending" and r.definition_id.notify_on_accepted
- )
- # If there are approve sequence, only the following should be
- # considered to notify
- if reviews_to_notify and any(
- review.approve_sequence for review in reviews_to_notify
- ):
- reviews_to_notify = reviews_to_notify.filtered(
- lambda x: x.approve_sequence
- )[0]
if reviews_to_notify:
subscribe = "message_subscribe"
if hasattr(self, subscribe):
getattr(self, subscribe)(
partner_ids=reviews_to_notify.mapped("reviewer_ids")
.mapped("partner_id")
- .ids,
- subtype_ids=self.env.ref(
- self._get_accepted_notification_subtype()
- ).ids,
+ .ids
)
for review in reviews_to_notify:
rec = self.env[review.model].browse(review.res_id)
@@ -628,29 +612,13 @@ def _rejected_tier(self, tiers=False):
reviews_to_notify = user_reviews.filtered(
lambda r: r.definition_id.notify_on_rejected
)
- # 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):
- reviews_to_notify = self.review_ids.filtered(
- lambda r: r.status == "pending" and r.definition_id.notify_on_rejected
- )
- # If there are approve sequence, only the following should be
- # considered to notify
- if reviews_to_notify and any(
- review.approve_sequence for review in reviews_to_notify
- ):
- reviews_to_notify = reviews_to_notify.filtered(
- lambda x: x.approve_sequence
- )[0]
if reviews_to_notify:
subscribe = "message_subscribe"
if hasattr(self, subscribe):
getattr(self, subscribe)(
partner_ids=reviews_to_notify.mapped("reviewer_ids")
.mapped("partner_id")
- .ids,
- subtype_ids=self.env.ref(
- self._get_rejected_notification_subtype()
- ).ids,
+ .ids
)
for review in reviews_to_notify:
rec = self.env[review.model].browse(review.res_id)
@@ -670,10 +638,7 @@ def _notify_review_requested(self, tier_reviews):
# Subscribe reviewers and notify
if len(users_to_notify) > 0:
getattr(rec, subscribe)(
- partner_ids=users_to_notify.mapped("partner_id").ids,
- subtype_ids=self.env.ref(
- self._get_requested_notification_subtype()
- ).ids,
+ partner_ids=users_to_notify.mapped("partner_id").ids
)
getattr(rec, post)(
subtype_xmlid=self._get_requested_notification_subtype(),
@@ -763,12 +728,7 @@ def restart_validation(self):
lambda r: r.definition_id.notify_on_restarted
)
if hasattr(self, subscribe):
- getattr(self, subscribe)(
- partner_ids=partners_to_notify_ids,
- subtype_ids=self.env.ref(
- self._get_restarted_notification_subtype()
- ).ids,
- )
+ getattr(self, subscribe)(partner_ids=partners_to_notify_ids)
rec._notify_restarted_review()
def reevaluate_reviews(self):
diff --git a/base_tier_validation/tests/__init__.py b/base_tier_validation/tests/__init__.py
index 9859e84cad..0cbb7c32cc 100644
--- a/base_tier_validation/tests/__init__.py
+++ b/base_tier_validation/tests/__init__.py
@@ -1,4 +1,5 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
+from . import common
from . import test_tier_validation
from . import test_tier_validation_reminder
diff --git a/base_tier_validation/tests/test_tier_validation.py b/base_tier_validation/tests/test_tier_validation.py
index 19857bb165..907ce65f2e 100644
--- a/base_tier_validation/tests/test_tier_validation.py
+++ b/base_tier_validation/tests/test_tier_validation.py
@@ -1015,159 +1015,6 @@ def test_29_request_validation_same_company(self):
self.assertEqual(len(reviews), 2)
- def test_30_request_validation(self):
- # Create new test record
- test_record = self.test_model.create({"test_field": 2.5})
- # Create tier definitions for both tester models
- self.tier_definition.write(
- {
- "approve_sequence": True,
- "notify_on_create": True,
- }
- )
- def_2 = self.tier_def_obj.create(
- {
- "model_id": self.tester_model.id,
- "review_type": "individual",
- "reviewer_id": self.test_user_2.id,
- "sequence": 20,
- "approve_sequence": True,
- "notify_on_create": False,
- "notify_on_accepted": True,
- }
- )
- 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,
- "sequence": 10,
- "approve_sequence": True,
- "notify_on_create": False,
- "notify_on_accepted": True,
- }
- )
- mt_tier_validation_requested = self.env.ref(
- "base_tier_validation.mt_tier_validation_requested"
- )
- mt_tier_validation_accepted = self.env.ref(
- "base_tier_validation.mt_tier_validation_accepted"
- )
- test_record.request_validation()
- review_1 = test_record.review_ids.filtered(
- lambda x: x.definition_id == self.tier_definition
- )
- self.assertEqual(review_1.status, "pending")
- review_2 = test_record.review_ids.filtered(lambda x: x.definition_id == def_2)
- self.assertEqual(review_2.status, "pending")
- review_3 = test_record.review_ids.filtered(lambda x: x.definition_id == def_3)
- self.assertEqual(review_3.status, "pending")
- followers = test_record.message_follower_ids
- self.assertIn(self.test_user_1.partner_id, followers.mapped("partner_id"))
- follower_1 = followers.filtered(
- lambda x: x.partner_id == self.test_user_1.partner_id
- )
- self.assertIn(mt_tier_validation_requested, follower_1.subtype_ids)
- self.assertNotIn(mt_tier_validation_accepted, follower_1.subtype_ids)
- self.assertNotIn(self.test_user_2.partner_id, followers.mapped("partner_id"))
- self.assertNotIn(
- self.test_user_3_multi_company.partner_id, followers.mapped("partner_id")
- )
- old_messages = test_record.message_ids
- test_record.with_user(self.test_user_1).validate_tier()
- new_messages = test_record.message_ids - old_messages
- self.assertEqual(len(new_messages), 1)
- self.assertEqual(new_messages.subtype_id, mt_tier_validation_accepted)
- self.assertEqual(self.test_user_2.partner_id, new_messages.notified_partner_ids)
- self.assertEqual(review_1.status, "approved")
- self.assertEqual(review_2.status, "pending")
- self.assertEqual(review_3.status, "pending")
- followers = test_record.message_follower_ids
- self.assertIn(self.test_user_1.partner_id, followers.mapped("partner_id"))
- self.assertIn(self.test_user_2.partner_id, followers.mapped("partner_id"))
- follower_2 = followers.filtered(
- lambda x: x.partner_id == self.test_user_2.partner_id
- )
- self.assertNotIn(mt_tier_validation_requested, follower_2.subtype_ids)
- self.assertIn(mt_tier_validation_accepted, follower_2.subtype_ids)
- self.assertNotIn(
- self.test_user_3_multi_company.partner_id, followers.mapped("partner_id")
- )
- old_messages = test_record.message_ids
- test_record.with_user(self.test_user_2).validate_tier()
- new_messages = test_record.message_ids - old_messages
- self.assertEqual(len(new_messages), 1)
- self.assertEqual(new_messages.subtype_id, mt_tier_validation_accepted)
- self.assertEqual(
- self.test_user_3_multi_company.partner_id, new_messages.notified_partner_ids
- )
- self.assertEqual(review_1.status, "approved")
- self.assertEqual(review_2.status, "approved")
- self.assertEqual(review_3.status, "pending")
- followers = test_record.message_follower_ids
- self.assertIn(self.test_user_1.partner_id, followers.mapped("partner_id"))
- self.assertIn(self.test_user_2.partner_id, followers.mapped("partner_id"))
- self.assertIn(
- self.test_user_3_multi_company.partner_id, followers.mapped("partner_id")
- )
- follower_3 = followers.filtered(
- lambda x: x.partner_id == self.test_user_3_multi_company.partner_id
- )
- self.assertNotIn(mt_tier_validation_requested, follower_3.subtype_ids)
- self.assertIn(mt_tier_validation_accepted, follower_3.subtype_ids)
- old_messages = test_record.message_ids
- test_record.with_user(self.test_user_3_multi_company).validate_tier()
- new_messages = test_record.message_ids - old_messages
- self.assertEqual(len(new_messages), 0)
-
- def test_31_request_validation(self):
- # Create new test record
- test_record = self.test_model.create({"test_field": 2.5})
- # Create tier definitions for both tester models
- self.tier_definition.write(
- {
- "approve_sequence": True,
- "notify_on_create": True,
- }
- )
- def_2 = self.tier_def_obj.create(
- {
- "model_id": self.tester_model.id,
- "review_type": "individual",
- "reviewer_id": self.test_user_2.id,
- "sequence": 20,
- "approve_sequence": True,
- "notify_on_create": True,
- "notify_on_accepted": True,
- }
- )
- 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,
- "sequence": 10,
- "approve_sequence": True,
- "notify_on_create": True,
- "notify_on_accepted": True,
- }
- )
- test_record.request_validation()
- review_1 = test_record.review_ids.filtered(
- lambda x: x.definition_id == self.tier_definition
- )
- self.assertEqual(review_1.status, "pending")
- review_2 = test_record.review_ids.filtered(lambda x: x.definition_id == def_2)
- self.assertEqual(review_2.status, "pending")
- review_3 = test_record.review_ids.filtered(lambda x: x.definition_id == def_3)
- self.assertEqual(review_3.status, "pending")
- followers = test_record.message_follower_ids
- self.assertIn(self.test_user_1.partner_id, followers.mapped("partner_id"))
- self.assertIn(self.test_user_2.partner_id, followers.mapped("partner_id"))
- self.assertIn(
- self.test_user_3_multi_company.partner_id, followers.mapped("partner_id")
- )
-
@tagged("at_install")
class TierTierValidationView(CommonTierValidation):