diff --git a/models/res_partner.py b/models/res_partner.py index d70e4ec45205cd6b723d5add2be0182b149a0394..6aa112669c68dad7cf94d53835ef302d811d711b 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 1156a7d1caa42c6c8df012de74dcec8cb70863c9..201351bf3b4d5c8cad159d1c90710d1c65a8bbfd 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 -->