Repository
OCA/mail · module folder · Try on Runboat
Module version
Category
Social Network
Folder size
0.2 MB
License
AGPL-3
Application
No
Auto-installable
No
Website
https://github.com/OCA/mail
Last tracking update
2026-08-17 18:05:56
Authors
Odoo Community Association (OCA), Sodexis, ForgeFlow
Maintainers
Odoo Community Association (OCA), Sodexis, ForgeFlow
Committers
GitHub, Carlos Lopez, Christopher Rogos, Weblate, OCA-git-bot, oca-ci
Odoo dependencies
odoo/odoo:
- web
- bus
Python dependencies
None
System dependencies
None
Required by
None
Description
This module adds the possibility to assign teams to activities.

Code Analysis

Views touched (13)
XML IDNameModelTypeStatus
mail_activity_plan_template_view_form mail.activity.plan.template form Inherits mail.mail_activity_plan_template_view_form
mail_activity_plan_view_form mail.activity.plan form Inherits mail.mail_activity_plan_view_form
mail_activity_schedule_view_form mail.activity.schedule form Inherits mail.mail_activity_schedule_view_form
mail_activity_team_view_form mail.activity.team.view.form mail.activity.team form New
mail_activity_team_view_search mail.activity.team.view.search mail.activity.team search New
mail_activity_team_view_tree mail.activity.team.view.tree mail.activity.team list New
mail_activity_type_form_view mail.activity.type.form (in mail_activity_team) mail.activity.type activity Inherits mail.mail_activity_type_view_form
mail_activity_view_form_popup mail.activity.view.form.popup mail.activity form Inherits mail.mail_activity_view_form_popup
mail_activity_view_kanban_open_target mail.activity.boards.view.kanban mail.activity kanban Inherits mail.mail_activity_view_kanban_open_target
mail_activity_view_search mail.activity.boards.view.search mail.activity search Inherits mail.mail_activity_view_search
mail_activity_view_tree mail.activity.view.tree mail.activity tree Inherits mail.mail_activity_view_tree
view_server_action_form_template ir.actions.server form Inherits mail.view_server_action_form_template
view_users_form_activity_teams res.users.form.activity.team res.users activity Inherits base.view_users_form
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (8)

New fields (1)
  • activity_team_id Many2one → mail.activity.team
    args: 'mail.activity.team'
Public methods (1)
  • onchange_activity_team_id(self)
    @api.onchange('activity_team_id')

New fields (3)
  • team_id Many2one → mail.activity.team
    comodel_name='mail.activity.team' compute='_compute_team_id' index=True readonly=False store=True
  • team_user_id Many2one
    readonly=False related='user_id' string='Team user'
  • user_id Many2one
    default=False required=False
Public methods (4)
  • action_notify(self)
    Override to notify team members when notify_members is enabled.
  • action_notify_team(self)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, values)

New fields (1)
  • activity_team_user_ids Many2many → res.users
    comodel_name='res.users' compute='_compute_activity_team_user_ids' search='_search_activity_team_user_ids' string='test field'
Public methods (2)
  • activity_schedule(self, act_type_xmlid='', date_deadline=None, summary='', note='', **act_values)
    With automatic activities, the user onchange won't act so we must ensure the right group is set and no exceptions are raised due to user-team missmatch. We can hook onto `act_values` dict as it's passed to the create activity method.
  • web_search_read(self, domain, specification, offset=0, limit=None, order=None, count_limit=None)
    @api.model
    Intercept the queries from the systray widget and apply team search. This allows the frontend widget to direct the user to their team activities Late/Today/Future.

New fields (5)
  • activity_team_id Many2one → mail.activity.team
    comodel_name='mail.activity.team' compute='_compute_activity_team_id' ondelete='restrict' readonly=False store=True string='Team assigned to'
  • activity_team_required Boolean
    compute='_compute_activity_team_required' help='Indicate if this plan template must have an activity team'
  • activity_team_user_id Many2one → res.users
    comodel_name='res.users' compute='_compute_activity_team_user_id' help='The team member that the activity will be assigned to specifically' readonly=False store=True string='Team user'
  • responsible_id Many2one
    compute='_compute_responsible_id' readonly=False store=True
  • responsible_type Selection
    ondelete={'team': 'set default'} selection_add=[('team', 'Team')]
Public methods (0)

No public methods.

New fields (2)
  • activity_team_id Many2one → mail.activity.team
    compute='_compute_activity_team_id' readonly=False store=True args: 'mail.activity.team', 'Team assigned to'
  • activity_team_user_id Many2one
    readonly=False related='activity_user_id' store=True string='Team user'
Public methods (1)
  • action_schedule_plan(self)

New fields (7)
  • active Boolean
    default=True
  • count_missing_activities Integer
    compute='_compute_missing_activities' default=0 string='Missing Activities'
  • member_ids Many2many → res.users
    comodel_name='res.users' relation='mail_activity_team_users_rel' string='Team Members'
  • name Char
    required=True translate=True
  • notify_members Boolean
    default=False help='When enabled, all team members will be notified when an activity is assigned to this team.'
  • res_model_ids Many2many → ir.model
    comodel_name='ir.model' domain=<expr> string='Used models'
  • user_id Many2one → res.users
    comodel_name='res.users' string='Team Leader'
Public methods (1)
  • assign_team_to_unassigned_activities(self)

New fields (1)
  • default_team_id Many2one → mail.activity.team
    comodel_name='mail.activity.team'
Public methods (0)

No public methods.

New fields (1)
  • activity_team_ids Many2many → mail.activity.team
    comodel_name='mail.activity.team' relation='mail_activity_team_users_rel' string='Activity Teams'
Public methods (0)

No public methods.

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…