[FIX] agreement_legal: Fix alert, improve test coverage

This commit is contained in:
Enric Tobella
2021-12-13 13:42:49 +01:00
committed by Núria Sancho
parent ac95dedb05
commit 8165ee4c54
2 changed files with 49 additions and 6 deletions

View File

@@ -314,22 +314,22 @@ class Agreement(models.Model):
@api.model @api.model
def _alert_to_review_date(self): def _alert_to_review_date(self):
activities = self.search( agreements = self.search(
[ [
("to_review_date", "=", fields.datetime.today()), ("to_review_date", "=", fields.Date.today()),
("agreement_type_id.review_user_id", "!=", False), ("agreement_type_id.review_user_id", "!=", False),
] ]
) )
for activity in activities: for agreement in agreements:
if ( if (
self.env["mail.activity"].search_count( self.env["mail.activity"].search_count(
[("res_id", "=", activity.id), ("res_model", "=", "agreement")] [("res_id", "=", agreement.id), ("res_model", "=", self._name)]
) )
== 0 == 0
): ):
activity.activity_schedule( agreement.activity_schedule(
"agreement_legal.mail_activity_review_agreement", "agreement_legal.mail_activity_review_agreement",
user_id=activity.type_id.review_user_id.id, user_id=agreement.agreement_type_id.review_user_id.id,
note=_("Your activity is going to end soon"), note=_("Your activity is going to end soon"),
) )

View File

@@ -148,3 +148,46 @@ class TestAgreement(TransactionCase):
self.test_agreement.create_new_version() self.test_agreement.create_new_version()
self.assertEqual(self.test_agreement.state, "draft") self.assertEqual(self.test_agreement.state, "draft")
self.assertEqual(len(self.test_agreement.previous_version_agreements_ids), 1) self.assertEqual(len(self.test_agreement.previous_version_agreements_ids), 1)
def test_cron(self):
self.agreement_type.write(
{"review_user_id": self.env.user.id, "review_days": 0}
)
self.agreement_type.flush()
self.test_agreement.write({"agreement_type_id": self.agreement_type.id})
self.test_agreement.flush()
self.test_agreement.refresh()
self.assertFalse(
self.env["mail.activity"].search_count(
[
("res_id", "=", self.test_agreement.id),
("res_model", "=", self.test_agreement._name),
]
)
)
self.env["agreement"]._alert_to_review_date()
self.assertFalse(
self.env["mail.activity"].search_count(
[
("res_id", "=", self.test_agreement.id),
("res_model", "=", self.test_agreement._name),
]
)
)
self.test_agreement.to_review_date = fields.Date.today()
self.env["agreement"]._alert_to_review_date()
self.assertTrue(
self.env["mail.activity"].search_count(
[
("res_id", "=", self.test_agreement.id),
("res_model", "=", self.test_agreement._name),
]
)
)
def test_partner_action(self):
action = self.test_agreement.partner_id.action_open_agreement()
self.assertIn(
self.test_agreement, self.env[action["res_model"]].search(action["domain"])
)
self.assertEqual(1, self.test_agreement.partner_id.agreements_count)