Skip to content

Commit

Permalink
[IMP] default_warehouse_from_sale_team: hook to fill allowed salesteams
Browse files Browse the repository at this point in the history
Implement a hook to fill allowed salesteams in users that are already
members of any team.

Since this module implements a feature to restrict what sales teams a
user may be member of, users that already belong to any team are
configured to be allowed for those teams, to avoid inconcistencies
between allowed and already-configured memberships. In other words, if
I already belong to a team, it means I should be allowed to belong to it.
  • Loading branch information
luisg123v committed Jul 6, 2024
1 parent d2782b0 commit 94c7cc1
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 0 deletions.
1 change: 1 addition & 0 deletions default_warehouse_from_sale_team/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
from . import models
from .hooks import post_init_hook
1 change: 1 addition & 0 deletions default_warehouse_from_sale_team/__manifest__.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
"demo/stock_warehouse_demo.xml",
"demo/crm_team_demo.xml",
],
"post_init_hook": "post_init_hook",
"installable": True,
"application": False,
"auto_install": False,
Expand Down
25 changes: 25 additions & 0 deletions default_warehouse_from_sale_team/hooks.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import logging

_logger = logging.getLogger(__name__)


def post_init_hook(env):
fill_user_allowed_salesteams(env)


def fill_user_allowed_salesteams(env):
"""Fill allowed salesteams in users that are already members of any team.
Since this module implements a feature to restrict what sales teams a user may be member of, users that already
belong to any team are configured to be allowed for those teams, to avoid inconcistencies between allowed and
already-configured memberships. In other words, if I already belong to a team, it means I should be allowed to
belong to it.
"""
teams_per_user = env["crm.team.member"]._read_group(
domain=[],
groupby=["user_id"],
aggregates=["crm_team_id:recordset"],
)
for user, teams in teams_per_user:
user.sale_team_ids |= teams
_logger.info("Field 'Allowed Salesteams' has been set to %d users.", len(teams_per_user))

0 comments on commit 94c7cc1

Please sign in to comment.