TIP: You can type at any time to perform a new search.
Sales Teams
sales_team · odoo/odoo
- Repository
- odoo/odoo · module folder
- Module version
- 1.1
- Category
- Sales/Sales
- Folder size
- 1.79 MB
- License
- LGPL-3
- Application
- No
- Auto-installable
- No
- Website
- https://www.odoo.com/app/crm
- Last tracking update
- 2026-08-15 22:44:17
- Authors
- Odoo S.A.
- Maintainers
- Odoo S.A.
- Committers
- Raphael Collet, Thibault Delavallée, Odoo Translation Bot, Julien Castiaux, Romeo Fragomeli, Victor Feyens, Tiffany Chang (tic), Gorash, Valentin Chevalier, Renaud Thiry, Victor Piryns (pivi), amdi-odoo, Dylan Kiss (dyki), Noe Antoine, Andrzej(pian), nihp-odoo, guce, yagp-odoo, Krzysztof Magusiak (krma), saurabh
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- crm, partner_delivery_info, partner_multi_relation, sale, sale_invoice_blocking, sale_manual_delivery, sales_team_operating_unit, sales_team_security, stock_buffer_sales_analysis
- Description
Using this application you can manage Sales Teams with CRM and/or Sales =======================================================================
Code Analysis ⓘ
Views touched (14)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
crm_team_member_view_form |
crm.team.member.view.form | crm.team.member | form | New |
crm_team_member_view_form_from_team |
crm.team.member.view.form.from.team | crm.team.member | form | Inherits sales_team.crm_team_member_view_form |
crm_team_member_view_kanban |
crm.team.member.view.kanban | crm.team.member | kanban | New |
crm_team_member_view_kanban_from_team |
crm.team.member.view.kanban.from.team | crm.team.member | kanban | Inherits sales_team.crm_team_member_view_kanban |
crm_team_member_view_search |
crm.team.member.view.search | crm.team.member | search | New |
crm_team_member_view_tree |
crm.team.member.view.list | crm.team.member | list | New |
crm_team_member_view_tree_from_team |
crm.team.member.view.list.from.team | crm.team.member | list | Inherits sales_team.crm_team_member_view_tree |
crm_team_view_form |
crm.team.form | crm.team | form | New |
crm_team_view_kanban |
crm.team.view.kanban | crm.team | kanban | New |
crm_team_view_kanban_dashboard |
crm.team.view.kanban.dashboard | crm.team | kanban | New |
crm_team_view_search |
crm.team.view.search | crm.team | search | New |
crm_team_view_tree |
crm.team.list | crm.team | list | New |
sales_team_crm_tag_view_form |
sales.team.crm.tag.view.form | crm.tag | form | New |
sales_team_crm_tag_view_tree |
sales.team.crm.tag.view.list | crm.tag | list | New |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (4)
New fields (2)
-
colorIntegerdefault=_get_default_color args: 'Color' -
nameCharrequired=Truetranslate=True args: 'Tag Name'
No public methods.
New fields (16)
-
activeBooleandefault=Truehelp='If the active field is set to false, it will allow you to hide the Sales Team without removing it.' -
colorIntegerdefault=_get_default_colorhelp='The color of the channel'string='Color Index' -
company_idMany2one → res.companyindex=Truestring='Company' args: 'res.company' -
crm_team_member_all_idsOne2many → crm.team.membercontext={'active_test': False}string='Sales Team Members (incl. inactive)' args: 'crm.team.member', 'crm_team_id' -
crm_team_member_idsOne2many → crm.team.membercontext={'active_test': True}help='Add members to automatically assign their documents to this sales team.'string='Sales Team Members' args: 'crm.team.member', 'crm_team_id' -
currency_idMany2one → res.currencyreadonly=Truerelated='company_id.currency_id'string='Currency' args: 'res.currency' -
dashboard_button_nameCharcompute='_compute_dashboard_button_name'string='Dashboard Button' -
favorite_user_idsMany2many → res.usersdefault=_get_default_favorite_user_idsstring='Favorite Members' args: 'res.users', 'team_favorite_user_rel', 'team_id', 'user_id' -
is_favoriteBooleancompute='_compute_is_favorite'help='Favorite teams to display them in the dashboard and access them easily.'inverse='_inverse_is_favorite'string='Show on dashboard' -
is_membership_multiBooleancompute='_compute_is_membership_multi'help='If True, users may belong to several sales teams. Otherwise membership is limited to a single sales team.' args: 'Multiple Memberships Allowed' -
member_company_idsMany2many → res.companycompute='_compute_member_company_ids'help='UX: Limit to team company or all if no company' args: 'res.company' -
member_idsMany2many → res.userscompute='_compute_member_ids'domain="['&', ('share', '=', False), ('company_ids', 'in', member_company_ids)]"help='Users assigned to this team.'inverse='_inverse_member_ids'search='_search_member_ids'string='Salespersons' args: 'res.users' -
member_warningTextcompute='_compute_member_warning' args: 'Membership Issue Warning' -
nameCharrequired=Truetranslate=True args: 'Sales Team' -
sequenceIntegerdefault=10 args: 'Sequence' -
user_idMany2one → res.userscheck_company=Truedomain=[('share', '!=', True)]string='Team Leader' args: 'res.users'
-
action_primary_channel_button(self)Skeleton function to be overloaded It will return the adequate action depending on the Sales Team's options. -
create(self, vals_list)@api.model_create_multi -
write(self, vals)
New fields (13)
-
activeBooleandefault=Truestring='Active' -
company_idMany2one → res.companyrelated='user_id.company_id'string='Company' args: 'res.company' -
crm_team_idMany2one → crm.teamcheck_company=Falsedefault=Falsegroup_expand='_read_group_expand_full'index=Trueondelete='cascade'required=Truestring='Sales Team' args: 'crm.team' -
emailCharrelated='user_id.email'string='Email' -
image_128Imagemax_height=128max_width=128related='user_id.image_128' args: 'Image (128)' -
image_1920Imagemax_height=1920max_width=1920related='user_id.image_1920' args: 'Image' -
is_membership_multiBooleancompute='_compute_is_membership_multi'help='If True, users may belong to several sales teams. Otherwise membership is limited to a single sales team.' args: 'Multiple Memberships Allowed' -
member_warningTextcompute='_compute_member_warning' -
nameCharreadonly=Falserelated='user_id.display_name'string='Name' -
phoneCharrelated='user_id.phone'string='Phone' -
user_company_idsMany2many → res.companycompute='_compute_user_company_ids'help='UX: Limit to team company or all if no company' args: 'res.company' -
user_idMany2one → res.userscheck_company=Truedomain="[('share', '=', False), ('id', 'not in', user_in_teams_ids), ('company_ids', 'in', user_company_ids)]"index=Trueondelete='cascade'required=Truestring='Salesperson' args: 'res.users' -
user_in_teams_idsMany2many → res.userscompute='_compute_user_in_teams_ids'help='UX: Give users not to add in the currently chosen team to avoid duplicates' args: 'res.users'
-
create(self, vals_list)@api.model_create_multiSpecific behavior implemented on create * mono membership mode: other user memberships are automatically archived (a warning already told it in form view); * creating a membership already existing as archived: do nothing as people can manage them from specific menu "Members"; Also remove autofollow on create. No need to follow team members when creating them as chatter is mainly used for information purpose (tracked fields). -
write(self, vals)Specific behavior about active. If you change user_id / team_id user get warnings in form view and a raise in constraint check. We support archive / activation of memberships that toggles other memberships. But we do not support manual creation or update of user_id / team_id. This either works, either crashes). Indeed supporting it would lead to complex code with low added value. Users should create or remove members, and maybe archive / activate them. Updating manually memberships by modifying user_id or team_id is advanced and does not benefit from our support.
New fields (3)
-
crm_team_idsMany2many → crm.teamcheck_company=Truecompute='_compute_crm_team_ids'copy=Falsereadonly=Truesearch='_search_crm_team_ids'string='Sales Teams' args: 'crm.team', 'crm_team_member', 'user_id', 'crm_team_id' -
crm_team_member_idsOne2many → crm.team.memberstring='Sales Team Members' args: 'crm.team.member', 'user_id' -
sale_team_idMany2one → crm.teamcompute='_compute_sale_team_id'help='Main user sales team. Used notably for pipeline, or to set sales team in invoicing or subscription.'readonly=Truestore=Truestring='User Sales Team' args: 'crm.team'
-
action_archive(self)
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…