KPI Digests

digest
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/19.0/digest
VERSION
VERSION 1.1
CATEGORY
CATEGORYMarketing
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORSOdoo S.A.
MAINTAINERS
MAINTAINERSOdoo S.A.
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Julien Castiaux, Tiffany Chang (tic), Gorash, William Braeckman, Dylan Kiss (dyki), Jinane Maksoud, Anton Romanova (roan), Krzysztof Magusiak (krma), Dirk Douglas, Mongy (abmn), saurabh
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:51:42
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - mail
    - base
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - portal
    - http_routing
    - auth_signup
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Send KPI Digests periodically
=============================

Code Analysis

Views touched (12)
XML IDNameModelTypeStatus
digest_digest_view_form digest.digest.view.form digest.digest form New
digest_digest_view_search digest.digest.view.search digest.digest search New
digest_digest_view_tree digest.digest.view.list digest.digest list New
digest_mail_layout digest_mail_layout ir.ui.view qweb New
digest_mail_main digest_mail_main ir.ui.view qweb New
digest_section_mobile digest_section_mobile ir.ui.view qweb New
digest_tip_view_form digest.tip.view.form digest.tip form New
digest_tip_view_search digest.tip.view.search digest.tip search New
digest_tip_view_tree digest.tip.view.list digest.tip list New
digest_tool_kpi digest_tool_kpi ir.ui.view qweb New
portal_digest_unsubscribed Unsubscription ir.ui.view qweb New
res_config_settings_view_form res.config.settings.view.form.inherit.digest res.config.settings xpath Inherits mail.res_config_settings_view_form
Models touched (4)

New fields (13)
  • available_fields Char
    compute='_compute_available_fields'
  • company_id Many2one → res.company
    default=<expr> string='Company' args: 'res.company'
  • currency_id Many2one
    readonly=False related='company_id.currency_id' string='Currency'
  • is_subscribed Boolean
    compute='_compute_is_subscribed' args: 'Is user subscribed'
  • kpi_mail_message_total Boolean
    args: 'Messages Sent'
  • kpi_mail_message_total_value Integer
    compute='_compute_kpi_mail_message_total_value'
  • kpi_res_users_connected Boolean
    args: 'Connected Users'
  • kpi_res_users_connected_value Integer
    compute='_compute_kpi_res_users_connected_value'
  • name Char
    required=True string='Name' translate=True
  • next_run_date Date
    string='Next Mailing Date'
  • periodicity Selection
    default='daily' required=True string='Periodicity' args: [('daily', 'Daily'), ('weekly', 'Weekly'), ('monthly', 'Monthly'), ('quarterly', 'Quarterly')]
  • state Selection
    default='activated' readonly=True string='Status' args: [('activated', 'Activated'), ('deactivated', 'Deactivated')]
  • user_ids Many2many → res.users
    domain="[('share', '=', False)]" string='Recipients' args: 'res.users'
Public methods (8)
  • action_activate(self)
  • action_deactivate(self)
  • action_send(self)
    Send digests emails to all the registered users.
  • action_send_manual(self)
    Manually send digests emails to all registered users. In that case do not update periodicity as this is not an automation rule that could be considered as unwanted spam.
  • action_set_periodicity(self, periodicity)
  • action_subscribe(self)
  • action_unsubscribe(self)
  • create(self, vals_list)
    @api.model_create_multi

New fields (5)
  • group_id Many2one → res.groups
    default=<expr> string='Authorized Group' args: 'res.groups'
  • name Char
    translate=True args: 'Name'
  • sequence Integer
    default=1 help='Used to display digest tip in email template base on order' args: 'Sequence'
  • tip_description Html
    sanitize=False translate=html_translate args: 'Tip description'
  • user_ids Many2many → res.users
    help='Users having already received this tip' string='Recipients' args: 'res.users'
Public methods (0)

No public methods.

New fields (2)
  • digest_emails Boolean
    config_parameter='digest.default_digest_emails' string='Digest Emails'
  • digest_id Many2one → digest.digest
    config_parameter='digest.default_digest_id' string='Digest Email' args: 'digest.digest'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi
    Automatically subscribe employee users to default digest if activated
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/18.0/digest
VERSION
VERSION 1.1
CATEGORY
CATEGORYMarketing
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Thibault Delavallée, Xavier Morel, Nicolas Martinelli, Odoo Online, Tiffany Chang (tic), Gorash, Louis Wicket (wil), amdi-odoo, Dylan Kiss (dyki), Jinane Maksoud, sami odoo, Louis (wil), guce, Bastien PIERRE, Dirk Douglas, Mongy (abmn)
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:25:55
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - mail
    - base
    - base_setup
    - web
    - bus
    - web_tour
    - html_editor
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Send KPI Digests periodically
=============================

Code Analysis

Views touched (12)
XML IDNameModelTypeStatus
digest_digest_view_form digest.digest.view.form digest.digest form New
digest_digest_view_search digest.digest.view.search digest.digest search New
digest_digest_view_tree digest.digest.view.list digest.digest list New
digest_mail_layout digest_mail_layout ir.ui.view qweb New
digest_mail_main digest_mail_main ir.ui.view qweb New
digest_section_mobile digest_section_mobile ir.ui.view qweb New
digest_tip_view_form digest.tip.view.form digest.tip form New
digest_tip_view_search digest.tip.view.search digest.tip search New
digest_tip_view_tree digest.tip.view.list digest.tip list New
digest_tool_kpi digest_tool_kpi ir.ui.view qweb New
portal_digest_unsubscribed Unsubscription ir.ui.view qweb New
res_config_settings_view_form res.config.settings.view.form.inherit.digest res.config.settings xpath Inherits mail.res_config_settings_view_form
Models touched (4)

New fields (13)
  • available_fields Char
    compute='_compute_available_fields'
  • company_id Many2one → res.company
    default=<expr> string='Company' args: 'res.company'
  • currency_id Many2one
    readonly=False related='company_id.currency_id' string='Currency'
  • is_subscribed Boolean
    compute='_compute_is_subscribed' args: 'Is user subscribed'
  • kpi_mail_message_total Boolean
    args: 'Messages Sent'
  • kpi_mail_message_total_value Integer
    compute='_compute_kpi_mail_message_total_value'
  • kpi_res_users_connected Boolean
    args: 'Connected Users'
  • kpi_res_users_connected_value Integer
    compute='_compute_kpi_res_users_connected_value'
  • name Char
    required=True string='Name' translate=True
  • next_run_date Date
    string='Next Mailing Date'
  • periodicity Selection
    default='daily' required=True string='Periodicity' args: [('daily', 'Daily'), ('weekly', 'Weekly'), ('monthly', 'Monthly'), ('quarterly', 'Quarterly')]
  • state Selection
    default='activated' readonly=True string='Status' args: [('activated', 'Activated'), ('deactivated', 'Deactivated')]
  • user_ids Many2many → res.users
    domain="[('share', '=', False)]" string='Recipients' args: 'res.users'
Public methods (8)
  • action_activate(self)
  • action_deactivate(self)
  • action_send(self)
    Send digests emails to all the registered users.
  • action_send_manual(self)
    Manually send digests emails to all registered users. In that case do not update periodicity as this is not an automation rule that could be considered as unwanted spam.
  • action_set_periodicity(self, periodicity)
  • action_subscribe(self)
  • action_unsubscribe(self)
  • create(self, vals_list)
    @api.model_create_multi

New fields (5)
  • group_id Many2one → res.groups
    default=<expr> string='Authorized Group' args: 'res.groups'
  • name Char
    translate=True args: 'Name'
  • sequence Integer
    default=1 help='Used to display digest tip in email template base on order' args: 'Sequence'
  • tip_description Html
    sanitize=False translate=html_translate args: 'Tip description'
  • user_ids Many2many → res.users
    help='Users having already received this tip' string='Recipients' args: 'res.users'
Public methods (0)

No public methods.

New fields (2)
  • digest_emails Boolean
    config_parameter='digest.default_digest_emails' string='Digest Emails'
  • digest_id Many2one → digest.digest
    config_parameter='digest.default_digest_id' string='Digest Email' args: 'digest.digest'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi
    Automatically subscribe employee users to default digest if activated
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/17.0/digest
VERSION
VERSION 1.1
CATEGORY
CATEGORYMarketing
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Thibault Delavallée, Nicolas Martinelli, Damien Bouvy, Yannick Tivisse, Jorge Pinna Puissant, Romeo Fragomeli, std-odoo, Ivan Yelizariev, Nasreddin Boulif (bon), Tiffany Chang (tic), Rémy Voet (ryv), Gorash, Pierre Paridans, Antoine Vandevenne (anv), Louis Wicket (wil), Pierre-Yves Dufays, Dylan Kiss (dyki), Louis (wil), Dirk Douglas
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 01:02:06
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - mail
    - base
    - base_setup
    - web
    - bus
    - web_tour
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Send KPI Digests periodically
=============================

Code Analysis

Views touched (12)
XML IDNameModelTypeStatus
digest_digest_view_form digest.digest.view.form digest.digest form New
digest_digest_view_search digest.digest.view.search digest.digest search New
digest_digest_view_tree digest.digest.view.tree digest.digest tree New
digest_mail_layout digest_mail_layout ir.ui.view qweb New
digest_mail_main digest_mail_main ir.ui.view qweb New
digest_section_mobile digest_section_mobile ir.ui.view qweb New
digest_tip_view_form digest.tip.view.form digest.tip form New
digest_tip_view_search digest.tip.view.search digest.tip search New
digest_tip_view_tree digest.tip.view.tree digest.tip tree New
digest_tool_kpi digest_tool_kpi ir.ui.view qweb New
portal_digest_unsubscribed Unsubscription ir.ui.view qweb New
res_config_settings_view_form res.config.settings.view.form.inherit.digest res.config.settings xpath Inherits base_setup.res_config_settings_view_form
Models touched (4)

New fields (13)
  • available_fields Char
    compute='_compute_available_fields'
  • company_id Many2one → res.company
    default=<expr> string='Company' args: 'res.company'
  • currency_id Many2one
    readonly=False related='company_id.currency_id' string='Currency'
  • is_subscribed Boolean
    compute='_compute_is_subscribed' args: 'Is user subscribed'
  • kpi_mail_message_total Boolean
    args: 'Messages Sent'
  • kpi_mail_message_total_value Integer
    compute='_compute_kpi_mail_message_total_value'
  • kpi_res_users_connected Boolean
    args: 'Connected Users'
  • kpi_res_users_connected_value Integer
    compute='_compute_kpi_res_users_connected_value'
  • name Char
    required=True string='Name' translate=True
  • next_run_date Date
    string='Next Mailing Date'
  • periodicity Selection
    default='daily' required=True string='Periodicity' args: [('daily', 'Daily'), ('weekly', 'Weekly'), ('monthly', 'Monthly'), ('quarterly', 'Quarterly')]
  • state Selection
    default='activated' readonly=True string='Status' args: [('activated', 'Activated'), ('deactivated', 'Deactivated')]
  • user_ids Many2many → res.users
    domain="[('share', '=', False)]" string='Recipients' args: 'res.users'
Public methods (8)
  • action_activate(self)
  • action_deactivate(self)
  • action_send(self)
    Send digests emails to all the registered users.
  • action_send_manual(self)
    Manually send digests emails to all registered users. In that case do not update periodicity as this is not an automation rule that could be considered as unwanted spam.
  • action_set_periodicity(self, periodicity)
  • action_subscribe(self)
  • action_unsubscribe(self)
  • create(self, vals_list)
    @api.model_create_multi

New fields (5)
  • group_id Many2one → res.groups
    default=<expr> string='Authorized Group' args: 'res.groups'
  • name Char
    translate=True args: 'Name'
  • sequence Integer
    default=1 help='Used to display digest tip in email template base on order' args: 'Sequence'
  • tip_description Html
    sanitize=False translate=html_translate args: 'Tip description'
  • user_ids Many2many → res.users
    help='Users having already received this tip' string='Recipients' args: 'res.users'
Public methods (0)

No public methods.

New fields (2)
  • digest_emails Boolean
    config_parameter='digest.default_digest_emails' string='Digest Emails'
  • digest_id Many2one → digest.digest
    config_parameter='digest.default_digest_id' string='Digest Email' args: 'digest.digest'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi
    Automatically subscribe employee users to default digest if activated
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/16.0/digest
VERSION
VERSION 1.1
CATEGORY
CATEGORYMarketing
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Martin Trigaux, Thibault Delavallée, Nicolas Martinelli, Damien Bouvy, Romeo Fragomeli, Adrien Dieudonné, Nasreddin Boulif (bon), Antoine Guenet, Florian Charlier, Antoine Vandevenne (anv), Renaud Thiry, Pierre-Yves Dufays, Martin Trigaux (mat)
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:40:48
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - mail
    - base
    - base_setup
    - web
    - bus
    - web_tour
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Send KPI Digests periodically
=============================

Code Analysis

Views touched (12)
XML IDNameModelTypeStatus
digest_digest_view_form digest.digest.view.form digest.digest form New
digest_digest_view_search digest.digest.view.search digest.digest search New
digest_digest_view_tree digest.digest.view.tree digest.digest tree New
digest_mail_layout digest_mail_layout ir.ui.view qweb New
digest_mail_main digest_mail_main ir.ui.view qweb New
digest_section_mobile digest_section_mobile ir.ui.view qweb New
digest_tip_view_form digest.tip.view.form digest.tip form New
digest_tip_view_search digest.tip.view.search digest.tip search New
digest_tip_view_tree digest.tip.view.tree digest.tip tree New
digest_tool_kpi digest_tool_kpi ir.ui.view qweb New
portal_digest_unsubscribed Unsubscription ir.ui.view qweb New
res_config_settings_view_form res.config.settings.view.form.inherit.digest res.config.settings xpath Inherits base_setup.res_config_settings_view_form
Models touched (4)

New fields (13)
  • available_fields Char
    compute='_compute_available_fields'
  • company_id Many2one → res.company
    default=<expr> string='Company' args: 'res.company'
  • currency_id Many2one
    readonly=False related='company_id.currency_id' string='Currency'
  • is_subscribed Boolean
    compute='_compute_is_subscribed' args: 'Is user subscribed'
  • kpi_mail_message_total Boolean
    args: 'Messages Sent'
  • kpi_mail_message_total_value Integer
    compute='_compute_kpi_mail_message_total_value'
  • kpi_res_users_connected Boolean
    args: 'Connected Users'
  • kpi_res_users_connected_value Integer
    compute='_compute_kpi_res_users_connected_value'
  • name Char
    required=True string='Name' translate=True
  • next_run_date Date
    string='Next Mailing Date'
  • periodicity Selection
    default='daily' required=True string='Periodicity' args: [('daily', 'Daily'), ('weekly', 'Weekly'), ('monthly', 'Monthly'), ('quarterly', 'Quarterly')]
  • state Selection
    default='activated' readonly=True string='Status' args: [('activated', 'Activated'), ('deactivated', 'Deactivated')]
  • user_ids Many2many → res.users
    domain="[('share', '=', False)]" string='Recipients' args: 'res.users'
Public methods (8)
  • action_activate(self)
  • action_deactivate(self)
  • action_send(self)
    Send digests emails to all the registered users.
  • action_send_manual(self)
    Manually send digests emails to all registered users. In that case do not update periodicity as this is not an automated action that could be considered as unwanted spam.
  • action_set_periodicity(self, periodicity)
  • action_subscribe(self)
  • action_unsubscribe(self)
  • create(self, vals_list)
    @api.model_create_multi

New fields (5)
  • group_id Many2one → res.groups
    default=<expr> string='Authorized Group' args: 'res.groups'
  • name Char
    translate=True args: 'Name'
  • sequence Integer
    default=1 help='Used to display digest tip in email template base on order' args: 'Sequence'
  • tip_description Html
    sanitize=False translate=html_translate args: 'Tip description'
  • user_ids Many2many → res.users
    help='Users having already received this tip' string='Recipients' args: 'res.users'
Public methods (0)

No public methods.

New fields (2)
  • digest_emails Boolean
    config_parameter='digest.default_digest_emails' string='Digest Emails'
  • digest_id Many2one → digest.digest
    config_parameter='digest.default_digest_id' string='Digest Email' args: 'digest.digest'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi
    Automatically subscribe employee users to default digest if activated
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/15.0/digest
VERSION
VERSION 1.1
CATEGORY
CATEGORYMarketing
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Thibault Delavallée, David Monjoie, Xavier Morel, Nicolas Martinelli, Romain Derie, Xavier-Do, Paul Morelle, std-odoo, Nasreddin Boulif (bon), Antoine Guenet, Nicolas Bayet, Michael Mattiello (mcm), Noe Antoine
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:25:27
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - mail
    - base
    - base_setup
    - web
    - bus
    - web_tour
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Send KPI Digests periodically
=============================

Code Analysis

Views touched (12)
XML IDNameModelTypeStatus
digest_digest_view_form digest.digest.view.form digest.digest form New
digest_digest_view_search digest.digest.view.search digest.digest search New
digest_digest_view_tree digest.digest.view.tree digest.digest tree New
digest_mail_layout digest_mail_layout ir.ui.view qweb New
digest_mail_main digest_mail_main ir.ui.view qweb New
digest_section_mobile digest_section_mobile ir.ui.view qweb New
digest_tip_view_form digest.tip.view.form digest.tip form New
digest_tip_view_search digest.tip.view.search digest.tip search New
digest_tip_view_tree digest.tip.view.tree digest.tip tree New
digest_tool_kpi digest_tool_kpi ir.ui.view qweb New
portal_digest_unsubscribed Unsubscription ir.ui.view qweb New
res_config_settings_view_form res.config.settings.view.form.inherit.digest res.config.settings xpath Inherits base_setup.res_config_settings_view_form
Models touched (4)

New fields (13)
  • available_fields Char
    compute='_compute_available_fields'
  • company_id Many2one → res.company
    default=<expr> string='Company' args: 'res.company'
  • currency_id Many2one
    readonly=False related='company_id.currency_id' string='Currency'
  • is_subscribed Boolean
    compute='_compute_is_subscribed' args: 'Is user subscribed'
  • kpi_mail_message_total Boolean
    args: 'Messages'
  • kpi_mail_message_total_value Integer
    compute='_compute_kpi_mail_message_total_value'
  • kpi_res_users_connected Boolean
    args: 'Connected Users'
  • kpi_res_users_connected_value Integer
    compute='_compute_kpi_res_users_connected_value'
  • name Char
    required=True string='Name' translate=True
  • next_run_date Date
    string='Next Send Date'
  • periodicity Selection
    default='daily' required=True string='Periodicity' args: [('daily', 'Daily'), ('weekly', 'Weekly'), ('monthly', 'Monthly'), ('quarterly', 'Quarterly')]
  • state Selection
    default='activated' readonly=True string='Status' args: [('activated', 'Activated'), ('deactivated', 'Deactivated')]
  • user_ids Many2many → res.users
    domain="[('share', '=', False)]" string='Recipients' args: 'res.users'
Public methods (7)
  • action_activate(self)
  • action_deactivate(self)
  • action_send(self)
  • action_set_periodicity(self, periodicity)
  • action_subscribe(self)
  • action_unsubcribe(self)
  • create(self, vals_list)
    @api.model_create_multi

New fields (5)
  • group_id Many2one → res.groups
    default=<expr> string='Authorized Group' args: 'res.groups'
  • name Char
    translate=True args: 'Name'
  • sequence Integer
    default=1 help='Used to display digest tip in email template base on order' args: 'Sequence'
  • tip_description Html
    sanitize=False translate=html_translate args: 'Tip description'
  • user_ids Many2many → res.users
    help='Users having already received this tip' string='Recipients' args: 'res.users'
Public methods (0)

No public methods.

New fields (2)
  • digest_emails Boolean
    config_parameter='digest.default_digest_emails' string='Digest Emails'
  • digest_id Many2one → digest.digest
    config_parameter='digest.default_digest_id' string='Digest Email' args: 'digest.digest'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi
    Automatically subscribe employee users to default digest if activated
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/14.0/digest
VERSION
VERSION 1.1
CATEGORY
CATEGORYMarketing
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Martin Trigaux, Olivier Dony, Thibault Delavallée, Christophe Simonis, Xavier Morel, Yannick Tivisse, Xavier-Do, Victor Feyens, Paul Morelle, Debauche Stéphane, std-odoo, Munaf Khan
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:14:28
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - mail
    - base
    - base_setup
    - web
    - bus
    - web_tour
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Send KPI Digests periodically
=============================

Code Analysis

Views touched (12)
XML IDNameModelTypeStatus
digest_digest_view_form digest.digest.view.form digest.digest form New
digest_digest_view_search digest.digest.view.search digest.digest search New
digest_digest_view_tree digest.digest.view.tree digest.digest tree New
digest_mail_layout digest_mail_layout ir.ui.view qweb New
digest_mail_main digest_mail_main ir.ui.view qweb New
digest_section_mobile digest_section_mobile ir.ui.view qweb New
digest_tip_view_form digest.tip.view.form digest.tip form New
digest_tip_view_search digest.tip.view.search digest.tip search New
digest_tip_view_tree digest.tip.view.tree digest.tip tree New
digest_tool_kpi digest_tool_kpi ir.ui.view qweb New
portal_digest_unsubscribed Unsubscription ir.ui.view qweb New
res_config_settings_view_form res.config.settings.view.form.inherit.digest res.config.settings xpath Inherits base_setup.res_config_settings_view_form
Models touched (4)

New fields (13)
  • available_fields Char
    compute='_compute_available_fields'
  • company_id Many2one → res.company
    default=<expr> string='Company' args: 'res.company'
  • currency_id Many2one
    readonly=False related='company_id.currency_id' string='Currency'
  • is_subscribed Boolean
    compute='_compute_is_subscribed' args: 'Is user subscribed'
  • kpi_mail_message_total Boolean
    args: 'Messages'
  • kpi_mail_message_total_value Integer
    compute='_compute_kpi_mail_message_total_value'
  • kpi_res_users_connected Boolean
    args: 'Connected Users'
  • kpi_res_users_connected_value Integer
    compute='_compute_kpi_res_users_connected_value'
  • name Char
    required=True string='Name' translate=True
  • next_run_date Date
    string='Next Send Date'
  • periodicity Selection
    default='daily' required=True string='Periodicity' args: [('daily', 'Daily'), ('weekly', 'Weekly'), ('monthly', 'Monthly'), ('quarterly', 'Quarterly')]
  • state Selection
    default='activated' readonly=True string='Status' args: [('activated', 'Activated'), ('deactivated', 'Deactivated')]
  • user_ids Many2many → res.users
    domain="[('share', '=', False)]" string='Recipients' args: 'res.users'
Public methods (10)
  • action_activate(self)
  • action_deactivate(self)
  • action_send(self)
  • action_set_periodicity(self, periodicity)
  • action_subscribe(self)
  • action_unsubcribe(self)
  • compute_kpis(self, company, user)
    Compute KPIs to display in the digest template. It is expected to be a list of KPIs, each containing values for 3 columns display. :return list: result [{ 'kpi_name': 'kpi_mail_message', 'kpi_fullname': 'Messages', # translated 'kpi_action': 'crm.crm_lead_action_pipeline', # xml id of an action to execute 'kpi_col1': { 'value': '12.0', 'margin': 32.36, 'col_subtitle': 'Yesterday', # translated }, 'kpi_col2': { ... }, 'kpi_col3': { ... }, }, { ... }]
  • compute_preferences(self, company, user)
    Give an optional text for preferences, like a shortcut for configuration. :return string: html to put in template
  • compute_tips(self, company, user, tips_count=1, consumed=True)
  • create(self, vals)
    @api.model

New fields (5)
  • group_id Many2one → res.groups
    default=<expr> string='Authorized Group' args: 'res.groups'
  • name Char
    translate=True args: 'Name'
  • sequence Integer
    default=1 help='Used to display digest tip in email template base on order' args: 'Sequence'
  • tip_description Html
    translate=html_translate args: 'Tip description'
  • user_ids Many2many → res.users
    help='Users having already received this tip' string='Recipients' args: 'res.users'
Public methods (0)

No public methods.

New fields (2)
  • digest_emails Boolean
    config_parameter='digest.default_digest_emails' string='Digest Emails'
  • digest_id Many2one → digest.digest
    config_parameter='digest.default_digest_id' string='Digest Email' args: 'digest.digest'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi
    Automatically subscribe employee users to default digest if activated
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/13.0/digest
VERSION
VERSION 1.0
CATEGORY
CATEGORYMarketing
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSRaphael Collet, Odoo Translation Bot, Martin Trigaux, Thibault Delavallée, Christophe Simonis, Xavier Morel, Yannick Tivisse, Odoo Online, Adrian Torres, Xavier-Do, Paul Morelle, fw-bot, Parth Choksi
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-06 00:06:42
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - mail
    - base
    - base_setup
    - web
    - bus
    - web_tour
    - portal
    - web_editor
    - http_routing
    - auth_signup
    - resource
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Send KPI Digests periodically
=============================

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
digest_digest_view_form digest.digest.view.form digest.digest form New
digest_digest_view_search digest.digest.view.search digest.digest search New
digest_digest_view_tree digest.digest.view.tree digest.digest tree New
portal_digest_unsubscribed Unsubscription ir.ui.view qweb New
res_config_settings_view_form res.config.settings.view.form.inherit.digest res.config.settings xpath Inherits base_setup.res_config_settings_view_form
Models touched (4)

New fields (14)
  • available_fields Char
    compute='_compute_available_fields'
  • company_id Many2one → res.company
    default=<expr> string='Company' args: 'res.company'
  • currency_id Many2one
    readonly=False related='company_id.currency_id' string='Currency'
  • is_subscribed Boolean
    compute='_compute_is_subscribed' args: 'Is user subscribed'
  • kpi_mail_message_total Boolean
    args: 'Messages'
  • kpi_mail_message_total_value Integer
    compute='_compute_kpi_mail_message_total_value'
  • kpi_res_users_connected Boolean
    args: 'Connected Users'
  • kpi_res_users_connected_value Integer
    compute='_compute_kpi_res_users_connected_value'
  • name Char
    required=True string='Name' translate=True
  • next_run_date Date
    string='Next Send Date'
  • periodicity Selection
    default='weekly' required=True string='Periodicity' args: [('weekly', 'Weekly'), ('monthly', 'Monthly'), ('quarterly', 'Quarterly')]
  • state Selection
    default='activated' readonly=True string='Status' args: [('activated', 'Activated'), ('deactivated', 'Deactivated')]
  • template_id Many2one → mail.template
    default=<expr> domain="[('model','=','digest.digest')]" required=True string='Email Template' args: 'mail.template'
  • user_ids Many2many → res.users
    domain="[('share', '=', False)]" string='Recipients' args: 'res.users'
Public methods (9)
  • action_activate(self)
  • action_deactivate(self)
  • action_send(self)
  • action_subscribe(self)
  • action_unsubcribe(self)
  • compute_kpis(self, company, user)
  • compute_kpis_actions(self, company, user)
    Give an optional action to display in digest email linked to some KPIs. :return dict: key: kpi name (field name), value: an action that will be concatenated with /web#action={action}
  • compute_tips(self, company, user)
  • create(self, vals)
    @api.model

New fields (4)
  • group_id Many2one → res.groups
    default=<expr> string='Authorized Group' args: 'res.groups'
  • sequence Integer
    default=1 help='Used to display digest tip in email template base on order' args: 'Sequence'
  • tip_description Html
    translate=html_translate args: 'Tip description'
  • user_ids Many2many → res.users
    help='Users having already received this tip' string='Recipients' args: 'res.users'
Public methods (0)

No public methods.

New fields (2)
  • digest_emails Boolean
    config_parameter='digest.default_digest_emails' string='Digest Emails'
  • digest_id Many2one → digest.digest
    config_parameter='digest.default_digest_id' string='Digest Email' args: 'digest.digest'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • create(self, vals)
    @api.model
    Automatically subscribe employee users to default digest if activated
REPOSITORY
REPOSITORYodoo/odoo
GIT
GIThttps://github.com/odoo/odoo.git
GIT FOLDER
GIT FOLDERhttps://github.com/odoo/odoo/tree/12.0/digest
VERSION
VERSION 1.0
CATEGORY
CATEGORYMarketing
LICENSE
LICENSELGPL-3
APPLICATION
APPLICATIONNo
AUTO-INSTALLABLE
AUTO-INSTALLABLENo
AUTHORS
AUTHORS
MAINTAINERS
MAINTAINERS
COMMITTERS
COMMITTERSOdoo Translation Bot, Martin Trigaux, Olivier Dony, Thibault Delavallée, Christophe Simonis, Xavier Morel, Yannick Tivisse, qsm-odoo, Julien (juc) Castiaux, Alexandre Kühn, Adrian Torres, Xavier-Do, Paul Morelle, Naglis Jonaitis, Parth Choksi, Jalpesh Patel
WEBSITE
WEBSITE
LAST TRACKING UPDATE
LAST TRACKING UPDATE2026-07-05 23:57:01
ODOO DEPENDENCIES
ODOO DEPENDENCIES odoo/odoo:
    - mail
    - base
    - base_setup
    - web
    - bus
    - web_tour
    - portal
    - http_routing
PYTHON DEPENDENCIES
PYTHON DEPENDENCIES Not have
SYSTEM DEPENDENCIES
SYSTEM DEPENDENCIES Not have
DESCRIPTION
DESCRIPTION
Send KPI Digests periodically
=============================

Code Analysis

Views touched (5)
XML IDNameModelTypeStatus
digest_digest_view_form digest.digest.view.form digest.digest form New
digest_digest_view_search digest.digest.view.search digest.digest search New
digest_digest_view_tree digest.digest.view.tree digest.digest tree New
portal_digest_unsubscribed Unsubscription ir.ui.view qweb New
res_config_settings_view_form res.config.settings.view.form.inherit.digest res.config.settings xpath Inherits base_setup.res_config_settings_view_form
Models touched (4)

New fields (14)
  • available_fields Char
    compute='_compute_available_fields'
  • company_id Many2one → res.company
    default=<expr> string='Company' args: 'res.company'
  • currency_id Many2one
    readonly=False related='company_id.currency_id' string='Currency'
  • is_subscribed Boolean
    compute='_compute_is_subscribed' args: 'Is user subscribed'
  • kpi_mail_message_total Boolean
    args: 'Messages'
  • kpi_mail_message_total_value Integer
    compute='_compute_kpi_mail_message_total_value'
  • kpi_res_users_connected Boolean
    args: 'Connected Users'
  • kpi_res_users_connected_value Integer
    compute='_compute_kpi_res_users_connected_value'
  • name Char
    required=True string='Name' translate=True
  • next_run_date Date
    string='Next Send Date'
  • periodicity Selection
    default='weekly' required=True string='Periodicity' args: [('weekly', 'Weekly'), ('monthly', 'Monthly'), ('quarterly', 'Quarterly')]
  • state Selection
    default='activated' readonly=True string='Status' args: [('activated', 'Activated'), ('deactivated', 'Deactivated')]
  • template_id Many2one → mail.template
    default=<expr> domain="[('model','=','digest.digest')]" required=True string='Email Template' args: 'mail.template'
  • user_ids Many2many → res.users
    domain="[('share', '=', False)]" string='Recipients' args: 'res.users'
Public methods (9)
  • action_activate(self)
    @api.multi
  • action_deactivate(self)
    @api.multi
  • action_send(self)
  • action_subscribe(self)
    @api.multi
  • action_unsubcribe(self)
    @api.multi
  • compute_kpis(self, company, user)
  • compute_kpis_actions(self, company, user)
    Give an optional action to display in digest email linked to some KPIs. :return dict: key: kpi name (field name), value: an action that will be concatenated with /web#action={action}
  • compute_tips(self, company, user)
  • create(self, vals)
    @api.model

New fields (4)
  • group_id Many2one → res.groups
    default=<expr> string='Authorized Group' args: 'res.groups'
  • sequence Integer
    default=1 help='Used to display digest tip in email template base on order' args: 'Sequence'
  • tip_description Html
    translate=html_translate args: 'Tip description'
  • user_ids Many2many → res.users
    help='Users having already received this tip' string='Recipients' args: 'res.users'
Public methods (0)

No public methods.

New fields (2)
  • digest_emails Boolean
    config_parameter='digest.default_digest_emails' string='Digest Emails'
  • digest_id Many2one → digest.digest
    config_parameter='digest.default_digest_id' string='Digest Email' args: 'digest.digest'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (1)
  • create(self, vals)
    @api.model
    Automatically subscribe employee users to default digest if activated