From 8e09fdefcf30e789f19ab5392954fcbe0edeaf7a Mon Sep 17 00:00:00 2001
From: Hugo Trentesaux <hugo@le-filament.com>
Date: Mon, 28 Apr 2025 11:26:16 +0200
Subject: [PATCH] move partner lead counter to crm

---
 models/res_partner.py | 18 +++++++++++++++++-
 views/res_partner.xml |  7 +++++++
 2 files changed, 24 insertions(+), 1 deletion(-)

diff --git a/models/res_partner.py b/models/res_partner.py
index d70e4ec..6aa1126 100644
--- a/models/res_partner.py
+++ b/models/res_partner.py
@@ -1,7 +1,7 @@
 # Copyright 2024- Le Filament (https://le-filament.com)
 # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html)
 
-from odoo import models, fields
+from odoo import models, fields, api
 
 
 class ResPartner(models.Model):
@@ -16,6 +16,13 @@ class ResPartner(models.Model):
         comodel_name="crm.lead",
         inverse_name="partner_id",
     )
+    lead_count = fields.Integer("Nombre d'opportunités",
+                                compute="_compute_lead_count", store=True)
+    proposition_count = fields.Integer("Nombre de propositions",
+                                       compute="_compute_lead_count",
+                                       store=True)
+    amendment_count = fields.Integer("Nombre d'avenants",
+                                     compute="_compute_lead_count", store=True)
 
     # ------------------------------------------------------
     # SQL Constraints
@@ -29,6 +36,15 @@ class ResPartner(models.Model):
     # Computed fields / Search Fields
     # ------------------------------------------------------
 
+    @api.depends("lead_ids")
+    def _compute_lead_count(self):
+        for i in self:
+            i.lead_count = len(i.lead_ids)
+            i.proposition_count = i.lead_ids.filtered(
+                lambda x: x.mucs_type == 'proposition')
+            i.amendment_count = i.lead_ids.filtered(
+                lambda x: x.mucs_type == 'avenant')
+
     # ------------------------------------------------------
     # Onchange / Constraints
     # ------------------------------------------------------
diff --git a/views/res_partner.xml b/views/res_partner.xml
index 1156a7d..201351b 100644
--- a/views/res_partner.xml
+++ b/views/res_partner.xml
@@ -10,6 +10,13 @@
         <field name="inherit_id" ref="base.view_partner_form"/>
         <field name="priority">111</field>
         <field name="arch" type="xml">
+            <xpath expr="//field[@name='meeting_count']" position="before">
+
+                <!-- wip -->
+                <field name="lead_count"/>
+                <field name="proposition_count"/>
+                <field name="amendment_count"/>
+            </xpath>
             <!-- opportunités -->
             <xpath expr="//page[@name='suivi_gestion']" position="after">
                 <!-- leads -->
-- 
GitLab