diff --git a/agreement_legal/models/res_partner.py b/agreement_legal/models/res_partner.py
index 896c7b0ad..15347950a 100644
--- a/agreement_legal/models/res_partner.py
+++ b/agreement_legal/models/res_partner.py
@@ -1,10 +1,31 @@
# Copyright (C) 2018 - TODAY, Pavlov Media
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
-from odoo import fields, models
+from odoo import api, fields, models
class Partner(models.Model):
_inherit = "res.partner"
agreement_ids = fields.One2many("agreement", "partner_id", string="Agreements")
+ agreements_count = fields.Integer(compute="_compute_agreements_count")
+
+ @api.depends("agreement_ids")
+ def _compute_agreements_count(self):
+ domain = [("partner_id", "in", self.ids)]
+ res = self.env["agreement"].read_group(
+ domain=domain, fields=["partner_id"], groupby=["partner_id"]
+ )
+ agreement_dict = {x["partner_id"][0]: x["partner_id_count"] for x in res}
+ for rec in self:
+ rec.agreements_count = agreement_dict.get(rec.id, 0)
+
+ def action_open_agreement(self):
+ self.ensure_one()
+ action = self.env.ref("agreement.agreement_action")
+ result = action.read()[0]
+ result["domain"] = [("partner_id", "=", self.id)]
+ result["context"] = {
+ "default_partner_id": self.id,
+ }
+ return result
diff --git a/agreement_legal/views/res_partner.xml b/agreement_legal/views/res_partner.xml
index 92cbb3e96..7b23baf90 100644
--- a/agreement_legal/views/res_partner.xml
+++ b/agreement_legal/views/res_partner.xml
@@ -4,12 +4,18 @@
res.partner
-
-
-
-
-
-
+
+