From 6d28b10bb5ce26e9d721dd1b29b2c1a01bae0702 Mon Sep 17 00:00:00 2001 From: Florian Charlier Date: Mon, 1 Aug 2022 11:36:42 +0000 Subject: [PATCH] [IMP] crm: improve lead company computation performance # Purpose Avoid unnecessary steps to compute/assign lead company. Task-2824913 See odoo/odoo#97136 Signed-off-by: Thibault Delavallee (tde) --- addons/crm/models/crm_lead.py | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/addons/crm/models/crm_lead.py b/addons/crm/models/crm_lead.py index 3b6ce1aeb4b..374a6977a25 100644 --- a/addons/crm/models/crm_lead.py +++ b/addons/crm/models/crm_lead.py @@ -293,34 +293,30 @@ class Lead(models.Model): if lead.user_id and proposal not in lead.user_id.company_ids: proposal = False # inconsistent - if lead.team_id.company_id and proposal != lead.team_id.company_id: + elif lead.team_id.company_id and proposal != lead.team_id.company_id: proposal = False # void company on team and no assignee - if lead.team_id and not lead.team_id.company_id and not lead.user_id: + elif lead.team_id and not lead.team_id.company_id and not lead.user_id: proposal = False # no user and no team -> void company and let assignment do its job # unless customer has a company - if not lead.team_id and not lead.user_id and \ - (not lead.partner_id or lead.partner_id.company_id != proposal): + elif not lead.team_id and not lead.user_id and \ + (not lead.partner_id or lead.partner_id.company_id != proposal): proposal = False # propose a new company based on team > user (respecting context) > partner if not proposal: if lead.team_id.company_id: - proposal = lead.team_id.company_id + lead.company_id = lead.team_id.company_id elif lead.user_id: if self.env.company in lead.user_id.company_ids: - proposal = self.env.company + lead.company_id = self.env.company else: - proposal = lead.user_id.company_id & self.env.companies + lead.company_id = lead.user_id.company_id & self.env.companies elif lead.partner_id: - proposal = lead.partner_id.company_id + lead.company_id = lead.partner_id.company_id else: - proposal = False - - # set a new company - if lead.company_id != proposal: - lead.company_id = proposal + lead.company_id = False @api.depends('team_id', 'type') def _compute_stage_id(self):