diff --git a/addons/crm/models/crm_team.py b/addons/crm/models/crm_team.py index 863e63758d5..d75237bf5ad 100644 --- a/addons/crm/models/crm_team.py +++ b/addons/crm/models/crm_team.py @@ -29,6 +29,7 @@ class Team(models.Model): # assignment assignment_enabled = fields.Boolean('Lead Assign', compute='_compute_assignment_enabled') assignment_auto_enabled = fields.Boolean('Auto Assignment', compute='_compute_assignment_enabled') + assignment_optout = fields.Boolean('Skip auto assignment') assignment_max = fields.Integer( 'Lead Capacity', compute='_compute_assignment_max', help='Monthly leads for all salesmen belonging to the team') @@ -188,7 +189,10 @@ class Team(models.Model): elif assign_cron.interval_type == 'days': work_days = 2 * assign_cron.interval_number * 1 work_days = 30 if work_days > 30 else work_days - self.env['crm.team'].search([])._action_assign_leads(work_days=work_days) + self.env['crm.team'].search([ + '&', '|', ('use_leads', '=', True), ('use_opportunities', '=', True), + ('assignment_optout', '=', False) + ])._action_assign_leads(work_days=work_days) return True def action_assign_leads(self, work_days=2): diff --git a/addons/crm/models/res_config_settings.py b/addons/crm/models/res_config_settings.py index 0a877b4239b..2afe466fc5c 100644 --- a/addons/crm/models/res_config_settings.py +++ b/addons/crm/models/res_config_settings.py @@ -144,4 +144,4 @@ class ResConfigSettings(models.TransientModel): def action_crm_assign_leads(self): self.ensure_one() - return self.env['crm.team'].search([]).action_assign_leads() + return self.env['crm.team'].search([('assignment_optout', '=', False)]).action_assign_leads() diff --git a/addons/crm/views/crm_team_views.xml b/addons/crm/views/crm_team_views.xml index 9645e465b1d..89ff7769940 100644 --- a/addons/crm/views/crm_team_views.xml +++ b/addons/crm/views/crm_team_views.xml @@ -112,7 +112,7 @@ string="Assign Leads" class="oe_highlight" confirm="This will assign leads to all members. Do you want to proceed?" - attrs="{'invisible': [('assignment_enabled', '=', False)]}"/> + attrs="{'invisible': ['|', '&', ('use_leads', '=', False), ('use_opportunities', '=', False), ('assignment_enabled', '=', False)]}"/> @@ -162,6 +162,7 @@ / + {'invisible': [('assignment_enabled', '=', True)]}