TIP: You can type at any time to perform a new search.
Mail Group
mail_group · odoo/odoo
- Repository
- odoo/odoo · module folder
- Module version
- 1.1
- Category
- Uncategorized
- Folder size
- 3.01 MB
- License
- LGPL-3
- Application
- No
- Auto-installable
- No
- Website
- None
- Last tracking update
- 2026-08-15 22:44:19
- Authors
- Odoo S.A.
- Maintainers
- Odoo S.A.
- Committers
- Raphael Collet, Thibault Delavallée, Odoo Translation Bot, Géry Debongnie, qsm-odoo, Julien Castiaux, Alvaro Fuentes, std-odoo, Tiffany Chang (tic), Gorash, Mathieu Duckerts-Antoine, William Braeckman, Renaud Thiry, Victor Piryns (pivi), Dylan Kiss (dyki), adsh-odoo, Sébastien (blse), Anton Romanova (roan), Krzysztof Magusiak (krma), saurabh, alan-odoo, panj-odoo
Code Analysis ⓘ
Views touched (26)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
confirmation_subscription |
Mailing List Confirmation | ir.ui.view | qweb | New |
email_template_mail_group_closed |
email_template_mail_group_closed | ir.ui.view | qweb | New |
group_archive_menu |
group_archive_menu | ir.ui.view | qweb | New |
group_message |
group_message | ir.ui.view | qweb | New |
group_messages |
Message Threads | ir.ui.view | qweb | New |
group_name |
group_name | ir.ui.view | qweb | New |
invalid_token_subscription |
Invalid Token Submitted | ir.ui.view | qweb | New |
mail_group_footer |
Mail Group: Footer | ir.ui.view | qweb | New |
mail_group_member_view_search |
mail.group.member.view.search | mail.group.member | search | New |
mail_group_member_view_tree |
mail.group.member.view.list | mail.group.member | list | New |
mail_group_message_reject_form |
mail.group.message.reject.form | mail.group.message.reject | form | New |
mail_group_message_view_form |
mail.group.message.view.form | mail.group.message | form | New |
mail_group_message_view_list |
mail.group.message.view.list | mail.group.message | list | New |
mail_group_message_view_search |
mail.group.message.view.search | mail.group.message | search | New |
mail_group_moderation_view_search |
mail.group.moderation.view.search | mail.group.moderation | search | New |
mail_group_moderation_view_tree |
mail.group.moderation.view.list | mail.group.moderation | list | New |
mail_group_notify_moderation |
mail_group_notify_moderation | ir.ui.view | qweb | New |
mail_group_view_form |
mail.group.view.form | mail.group | form | New |
mail_group_view_kanban |
mail.group.view.kanban | mail.group | kanban | New |
mail_group_view_list |
mail.group.view.list | mail.group | list | New |
mail_group_view_search |
mail.group.view.search | mail.group | search | New |
mail_groups |
Mailing Lists | ir.ui.view | qweb | New |
message_attachments |
message_attachments | ir.ui.view | qweb | New |
message_footer |
Message Footer | ir.ui.view | qweb | New |
messages_short |
messages_short | ir.ui.view | qweb | New |
portal_breadcrumbs_group |
Portal layout : mail group menu entry | ir.ui.view | qweb | Inherits portal.portal_breadcrumbs |
HTTP endpoints (9)
| Route(s) | Handler | Auth | Type | Methods | Flags |
|---|---|---|---|---|---|
/groups/<model("mail.group"):group>/<model("mail.group.message"):message>/get_replies |
PortalMailGroup.group_message_get_replies |
public | jsonrpc | POST | sudo website |
/group/subscribe |
PortalMailGroup.group_subscribe |
public | jsonrpc | ALL | website |
/group/subscribe-confirm |
PortalMailGroup.group_subscribe_confirm |
public | http | ALL | sudo website |
/group/unsubscribe |
PortalMailGroup.group_unsubscribe |
public | jsonrpc | ALL | website |
/group/unsubscribe-confirm |
PortalMailGroup.group_unsubscribe_confirm |
public | http | ALL | website |
/group/<int:group_id>/unsubscribe_oneclick |
PortalMailGroup.group_unsubscribe_oneclick |
public | http | POST | csrf off sudo website |
/groups/<model("mail.group"):group>/<model("mail.group.message"):message> |
PortalMailGroup.group_view_message |
public | http | ALL | sudo website |
/groups/<model("mail.group"):group>, /groups/<model("mail.group"):group>/page/<int:page> |
PortalMailGroup.group_view_messages |
public | http | ALL | sudo website |
/groups |
PortalMailGroup.groups_index |
public | http | ALL | sudo website |
Models touched (5)
New fields (25)
-
access_group_idMany2one → res.groupsdefault=<expr>string='Authorized Group' args: 'res.groups' -
access_modeSelectiondefault='public'required=Truestring='Privacy' args: [('public', 'Everyone'), ('members', 'Members only'), ('groups', 'Selected group of users')] -
activeBooleandefault=True args: 'Active' -
can_manage_groupBooleancompute='_compute_can_manage_group'help='Can manage the members' args: 'Can Manage' -
descriptionTextargs: 'Description' -
image_128Imagemax_height=128max_width=128 args: 'Image' -
is_closedBooleancopy=Falsehelp='Closed groups might still be accessed, but emails sent to it will bounce' args: 'Is Closed' -
is_memberBooleancompute='_compute_is_member' args: 'Is Member' -
is_moderatorBooleancompute='_compute_is_moderator'help='Current user is a moderator of the group'string='Moderator' -
mail_group_message_countIntegercompute='_compute_mail_group_message_count'help='Number of message in this group' args: 'Messages Count' -
mail_group_message_idsOne2many → mail.group.messagestring='Pending Messages' args: 'mail.group.message', 'mail_group_id' -
mail_group_message_last_month_countIntegercompute='_compute_mail_group_message_last_month_count' args: 'Messages Per Month' -
mail_group_message_moderation_countIntegercompute='_compute_mail_group_message_moderation_count'help='Messages that need an action' args: 'Pending Messages Count' -
member_countIntegercompute='_compute_member_count' args: 'Members Count' -
member_idsOne2many → mail.group.memberstring='Members' args: 'mail.group.member', 'mail_group_id' -
member_partner_idsMany2many → res.partnercompute='_compute_member_partner_ids'search='_search_member_partner_ids'string='Partners Member' args: 'res.partner' -
moderationBooleanstring='Moderate' -
moderation_guidelinesBooleanhelp='Newcomers on this moderated group will automatically receive the guidelines.'string='Send guidelines to new members' -
moderation_guidelines_msgHtmlstring='Guidelines' -
moderation_notifyBooleanhelp='People receive an automatic notification about their message being waiting for moderation.'string='Automatic notification' -
moderation_notify_msgHtmlstring='Notification message' -
moderation_rule_countIntegercompute='_compute_moderation_rule_count'string='Moderated emails count' -
moderation_rule_idsOne2many → mail.group.moderationstring='Moderated Emails' args: 'mail.group.moderation', 'mail_group_id' -
moderator_idsMany2many → res.usersdomain=<expr>string='Moderators' args: 'res.users', 'mail_group_moderator_rel' -
nameCharrequired=Truetranslate=True args: 'Name'
-
action_close(self) -
action_join(self) -
action_leave(self) -
action_open(self) -
action_send_guidelines(self, members=None)Send guidelines to given members. -
default_get(self, fields)@api.model -
message_new(self, msg_dict, custom_values=None)@api.modelAdd the method to make the mail gateway flow work with this model. -
message_post(self, body='', subject=None, email_from=None, author_id=None, **kwargs)Custom posting process. This model does not inherit from ``mail.thread`` but uses the mail gateway so few methods should be defined. This custom posting process works as follow * create a ``mail.message`` based on incoming email; * create linked ``mail.group.message`` that encapsulates message in a format used in mail groups; * apply moderation rules; :returns: newly-created mail.message -
message_update(self, msg_dict, update_vals=None)@api.modelAdd the method to make the mail gateway flow work with this model.
New fields (4)
-
emailCharcompute='_compute_email'readonly=Falsestore=Truestring='Email' -
email_normalizedCharcompute='_compute_email_normalized'index=Truestore=Truestring='Normalized Email' -
mail_group_idMany2one → mail.groupindex=Trueondelete='cascade'required=Truestring='Group' args: 'mail.group' -
partner_idMany2one → res.partnerondelete='cascade' args: 'res.partner', 'Partner'
No public methods.
New fields (15)
-
attachment_idsMany2manyreadonly=Falserelated='mail_message_id.attachment_ids' -
author_idMany2onereadonly=Falserelated='mail_message_id.author_id' -
author_moderationSelectioncompute='_compute_author_moderation'string='Author Moderation Status' args: [('ban', 'Banned'), ('allow', 'Whitelisted')] -
bodyHtmlreadonly=Falserelated='mail_message_id.body' -
create_dateDatetimestring='Posted' -
email_fromCharreadonly=Falserelated='mail_message_id.email_from' -
email_from_normalizedCharcompute='_compute_email_from_normalized'store=True args: 'Normalized From' -
group_message_child_idsOne2many → mail.group.messagestring='Children' args: 'mail.group.message', 'group_message_parent_id' -
group_message_parent_idMany2one → mail.group.messageindex=Truestore=Truestring='Parent' args: 'mail.group.message' -
is_group_moderatedBooleanrelated='mail_group_id.moderation' args: 'Is Group Moderated' -
mail_group_idMany2one → mail.groupindex=Trueondelete='cascade'required=Truestring='Group' args: 'mail.group' -
mail_message_idMany2one → mail.messagecopy=Falseindex=Trueondelete='cascade'required=True args: 'mail.message', 'Mail Message' -
moderation_statusSelectioncopy=Falsedefault='pending_moderation'index=Truerequired=Truestring='Status' args: [('pending_moderation', 'Pending Moderation'), ('accepted', 'Accepted'), ('rejected', 'Rejected')] -
moderator_idMany2one → res.usersstring='Moderated By' args: 'res.users' -
subjectCharreadonly=Falserelated='mail_message_id.subject'
-
action_moderate_accept(self)Accept the incoming email. Will send the incoming email to all members of the group. -
action_moderate_allow(self) -
action_moderate_ban(self) -
action_moderate_ban_with_comment(self, ban_subject, ban_comment) -
action_moderate_reject(self) -
action_moderate_reject_with_comment(self, reject_subject, reject_comment) -
copy_data(self, default=None) -
create(self, vals_list)@api.model_create_multi
New fields (6)
-
actionSelectionrequired=Truestring='Action' args: [('reject', 'Reject'), ('ban', 'Ban')] -
bodyHtmldefault=''sanitize_style=True args: 'Contents' -
email_from_normalizedCharrelated='mail_group_message_id.email_from_normalized' args: 'Email From' -
mail_group_message_idMany2one → mail.group.messagereadonly=Truerequired=Truestring='Message' args: 'mail.group.message' -
send_emailBooleancompute='_compute_send_email'help='Send an email to the author of the message' args: 'Send Email' -
subjectCharcompute='_compute_subject'readonly=Falsestore=True args: 'Subject'
-
action_send_mail(self)
New fields (3)
-
emailCharrequired=Truestring='Email' -
mail_group_idMany2one → mail.groupindex=Trueondelete='cascade'required=Truestring='Group' args: 'mail.group' -
statusSelectiondefault='ban'required=Truestring='Status' args: [('allow', 'Always Allow'), ('ban', 'Permanent Ban')]
-
create(self, vals_list)@api.model_create_multi -
write(self, vals)
Loading…
Loading…
Loading…
Loading…