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