[FIX] crm: on leads/opp, keep team if user is member of it
If a user was in multiple team, and the salesman of a lead was changed to this user, the team assigned to the lead might change even if the user was part of the team already set. opw-657814
This commit is contained in:
@@ -320,6 +320,10 @@ class crm_lead(format_address, osv.osv):
|
||||
def on_change_user(self, cr, uid, ids, user_id, context=None):
|
||||
""" When changing the user, also set a team_id or restrict team id
|
||||
to the ones user_id is member of. """
|
||||
if user_id and context.get('team_id'):
|
||||
team = self.pool['crm.team'].browse(cr, uid, context['team_id'], context=context)
|
||||
if user_id in team.member_ids.ids:
|
||||
return {}
|
||||
team_id = self.pool['crm.team']._get_default_team_id(cr, uid, user_id=user_id, context=context)
|
||||
if user_id and not team_id and self.pool['res.users'].has_group(cr, uid, 'base.group_multi_salesteams'):
|
||||
team_ids = self.pool.get('crm.team').search(cr, uid, ['|', ('user_id', '=', user_id), ('member_ids', '=', user_id)], context=context)
|
||||
|
||||
@@ -165,7 +165,7 @@
|
||||
</group>
|
||||
<group>
|
||||
<field name="user_id" on_change="on_change_user(user_id, context)"
|
||||
context="{'default_groups_ref': ['base.group_user', 'base.group_partner_manager', 'base.group_sale_salesman_all_leads'] }"/>
|
||||
context="{'default_groups_ref': ['base.group_user', 'base.group_partner_manager', 'base.group_sale_salesman_all_leads'], 'team_id': team_id}"/>
|
||||
<label for="team_id" groups="base.group_multi_salesteams"/>
|
||||
<div groups="base.group_multi_salesteams">
|
||||
<field name="team_id"/>
|
||||
@@ -460,7 +460,7 @@
|
||||
</group>
|
||||
|
||||
<group>
|
||||
<field name="user_id" on_change="on_change_user(user_id, context)" context="{'default_groups_ref': ['base.group_user', 'base.group_partner_manager', 'base.group_sale_salesman_all_leads']}"/>
|
||||
<field name="user_id" on_change="on_change_user(user_id, context)" context="{'default_groups_ref': ['base.group_user', 'base.group_partner_manager', 'base.group_sale_salesman_all_leads'], 'team_id': team_id}"/>
|
||||
<label for="team_id" groups="base.group_multi_salesteams"/>
|
||||
<div groups="base.group_multi_salesteams">
|
||||
<field name="team_id" widget="selection"/>
|
||||
|
||||
Reference in New Issue
Block a user