| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/data-protection |
| GIT | |
| GIT | https://github.com/OCA/data-protection.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/data-protection/tree/18.0/privacy_consent |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Privacy |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), initOS GmbH |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), initOS GmbH |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, oca-ci, michelerusti |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/data-protection |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:08 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/data-protection: - privacy odoo/odoo: - base - base_setup - web - bus - web_tour - html_editor |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This module allows the user to define a set of subjects (partners) affected by any data processing activity, and establish a process to ask them for consent to include them in that activity. For those that need explicit consent as a lawfulness base for personal data processing, as required by GDPR (article 6.1.a), this module provides the needed tools to automate it. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
activity_form |
Add consent fields | privacy.activity | div | Inherits privacy.activity_form |
consent_form |
Privacy Consent Form | privacy.consent | form | New |
consent_list |
Privacy Consent List | privacy.consent | list | New |
consent_search |
Privacy Consent Search | privacy.consent | search | New |
form |
Consent response processed | ir.ui.view | qweb | New |
view_partner_form |
Add consent smart button | res.partner | div | Inherits base.view_partner_form |
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
consent_count
Integer
compute='_compute_consent_count'
string='Consents count'
consent_ids
One2many → privacy.consent
comodel_name='privacy.consent'
inverse_name='activity_id'
string='Consents'
consent_required
Selection
help='Enable if you need to track any kind of consent from the affected subjects'
selection=[('auto', 'Automatically'), ('manual', 'Manually')]
string='Ask subjects for consent'
consent_template_default_body_html
Text
compute='_compute_consent_template_defaults'
consent_template_default_subject
Char
compute='_compute_consent_template_defaults'
consent_template_id
Many2one → mail.template
comodel_name='mail.template'
default=<expr>
domain=[('model', '=', 'privacy.consent')]
help='Email to be sent to subjects to ask for consent. A good template should include details about the current consent request status, how to change it, and where to get more information.'
string='Email template'
default_consent
Boolean
help='Should we assume the subject has accepted if we receive no response?'
string='Accepted by default'
server_action_id
Many2one → ir.actions.server
comodel_name='ir.actions.server'
domain=[('model_id.model', '=', 'privacy.consent')]
help='Run this action when a new consent request is created or its acceptance status is updated.'
string='Server action'
action_new_consents(self)
accepted
Boolean
help="Indicates current acceptance status, which can come from subject's last answer, or from the default specified in the related data processing activity."
tracking=True
active
Boolean
default=True
index=True
activity_id
Many2one → privacy.activity
comodel_name='privacy.activity'
required=True
string='Activity'
tracking=True
last_metadata
Text
help='Metadata from the last acceptance or rejection by the subject'
tracking=True
partner_id
Many2one → res.partner
comodel_name='res.partner'
help='Subject asked for consent.'
required=True
string='Subject'
tracking=True
state
Selection
default='draft'
required=True
selection=[('draft', 'Draft'), ('sent', 'Awaiting response'), ('answered', 'Answered')]
tracking=True
action_answer(self, answer, metadata=False)
action_auto_ask(self)
action_manual_ask(self)
create(self, vals_list)
write(self, vals)
privacy_consent_count
Integer
compute='_compute_privacy_consent_count'
help='Privacy consent requests amount'
string='Consents'
privacy_consent_ids
One2many → privacy.consent
comodel_name='privacy.consent'
inverse_name='partner_id'
string='Privacy consents'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/data-protection |
| GIT | |
| GIT | https://github.com/OCA/data-protection.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/data-protection/tree/17.0/privacy_consent |
| VERSION | |
| VERSION | 1.0.1 |
| CATEGORY | |
| CATEGORY | Privacy |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), initOS GmbH |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), initOS GmbH |
| COMMITTERS | |
| COMMITTERS | OCA-git-bot, oca-ci, JordiToledo |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/data-protection |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:20:02 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/data-protection: - privacy odoo/odoo: - base - base_setup - web - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | This module allows the user to define a set of subjects (partners) affected by any data processing activity, and establish a process to ask them for consent to include them in that activity. For those that need explicit consent as a lawfulness base for personal data processing, as required by GDPR (article 6.1.a), this module provides the needed tools to automate it. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
activity_form |
Add consent fields | privacy.activity | div | Inherits privacy.activity_form |
consent_form |
Privacy Consent Form | privacy.consent | form | New |
consent_search |
Privacy Consent Search | privacy.consent | search | New |
consent_tree |
Privacy Consent Tree | privacy.consent | tree | New |
form |
Consent response processed | ir.ui.view | qweb | New |
view_partner_form |
Add consent smart button | res.partner | div | Inherits base.view_partner_form |
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
consent_count
Integer
compute='_compute_consent_count'
string='Consents count'
consent_ids
One2many → privacy.consent
comodel_name='privacy.consent'
inverse_name='activity_id'
string='Consents'
consent_required
Selection
help='Enable if you need to track any kind of consent from the affected subjects'
selection=[('auto', 'Automatically'), ('manual', 'Manually')]
string='Ask subjects for consent'
consent_template_default_body_html
Text
compute='_compute_consent_template_defaults'
consent_template_default_subject
Char
compute='_compute_consent_template_defaults'
consent_template_id
Many2one → mail.template
comodel_name='mail.template'
default=<expr>
domain=[('model', '=', 'privacy.consent')]
help='Email to be sent to subjects to ask for consent. A good template should include details about the current consent request status, how to change it, and where to get more information.'
string='Email template'
default_consent
Boolean
help='Should we assume the subject has accepted if we receive no response?'
string='Accepted by default'
server_action_id
Many2one → ir.actions.server
comodel_name='ir.actions.server'
domain=[('model_id.model', '=', 'privacy.consent')]
help='Run this action when a new consent request is created or its acceptance status is updated.'
string='Server action'
action_new_consents(self)
accepted
Boolean
help="Indicates current acceptance status, which can come from subject's last answer, or from the default specified in the related data processing activity."
tracking=True
active
Boolean
default=True
index=True
activity_id
Many2one → privacy.activity
comodel_name='privacy.activity'
required=True
string='Activity'
tracking=True
last_metadata
Text
help='Metadata from the last acceptance or rejection by the subject'
tracking=True
partner_id
Many2one → res.partner
comodel_name='res.partner'
help='Subject asked for consent.'
required=True
string='Subject'
tracking=True
state
Selection
default='draft'
required=True
selection=[('draft', 'Draft'), ('sent', 'Awaiting response'), ('answered', 'Answered')]
tracking=True
action_answer(self, answer, metadata=False)
action_auto_ask(self)
action_manual_ask(self)
create(self, vals_list)
write(self, vals)
privacy_consent_count
Integer
compute='_compute_privacy_consent_count'
help='Privacy consent requests amount'
string='Consents'
privacy_consent_ids
One2many → privacy.consent
comodel_name='privacy.consent'
inverse_name='partner_id'
string='Privacy consents'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/data-protection |
| GIT | |
| GIT | https://github.com/OCA/data-protection.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/data-protection/tree/16.0/privacy_consent |
| VERSION | |
| VERSION | 1.0.1 |
| CATEGORY | |
| CATEGORY | Privacy |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), initOS GmbH |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), initOS GmbH |
| COMMITTERS | |
| COMMITTERS | Thibault Delavallée, Weblate, OCA-git-bot, oca-ci |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/data-protection |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:53:41 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/data-protection: - privacy odoo/odoo: - base - base_setup - web - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
activity_form |
Add consent fields | privacy.activity | div | Inherits privacy.activity_form |
consent_form |
Privacy Consent Form | privacy.consent | form | New |
consent_search |
Privacy Consent Search | privacy.consent | search | New |
consent_tree |
Privacy Consent Tree | privacy.consent | tree | New |
form |
Consent response processed | ir.ui.view | qweb | New |
view_partner_form |
Add consent smart button | res.partner | div | Inherits base.view_partner_form |
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
consent_count
Integer
compute='_compute_consent_count'
string='Consents count'
consent_ids
One2many → privacy.consent
comodel_name='privacy.consent'
inverse_name='activity_id'
string='Consents'
consent_required
Selection
help='Enable if you need to track any kind of consent from the affected subjects'
selection=[('auto', 'Automatically'), ('manual', 'Manually')]
string='Ask subjects for consent'
consent_template_default_body_html
Text
compute='_compute_consent_template_defaults'
consent_template_default_subject
Char
compute='_compute_consent_template_defaults'
consent_template_id
Many2one → mail.template
comodel_name='mail.template'
default=<expr>
domain=[('model', '=', 'privacy.consent')]
help='Email to be sent to subjects to ask for consent. A good template should include details about the current consent request status, how to change it, and where to get more information.'
string='Email template'
default_consent
Boolean
help='Should we assume the subject has accepted if we receive no response?'
string='Accepted by default'
server_action_id
Many2one → ir.actions.server
comodel_name='ir.actions.server'
domain=[('model_id.model', '=', 'privacy.consent')]
help='Run this action when a new consent request is created or its acceptance status is updated.'
string='Server action'
action_new_consents(self)
accepted
Boolean
help="Indicates current acceptance status, which can come from subject's last answer, or from the default specified in the related data processing activity."
tracking=True
active
Boolean
default=True
index=True
activity_id
Many2one → privacy.activity
comodel_name='privacy.activity'
readonly=True
required=True
string='Activity'
tracking=True
last_metadata
Text
help='Metadata from the last acceptance or rejection by the subject'
readonly=True
tracking=True
partner_id
Many2one → res.partner
comodel_name='res.partner'
help='Subject asked for consent.'
readonly=True
required=True
string='Subject'
tracking=True
state
Selection
default='draft'
readonly=True
required=True
selection=[('draft', 'Draft'), ('sent', 'Awaiting response'), ('answered', 'Answered')]
tracking=True
action_answer(self, answer, metadata=False)
action_auto_ask(self)
action_manual_ask(self)
create(self, vals_list)
message_get_suggested_recipients(self)
write(self, vals)
privacy_consent_count
Integer
compute='_compute_privacy_consent_count'
help='Privacy consent requests amount'
string='Consents'
privacy_consent_ids
One2many → privacy.consent
comodel_name='privacy.consent'
inverse_name='partner_id'
string='Privacy consents'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/data-protection |
| GIT | |
| GIT | https://github.com/OCA/data-protection.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/data-protection/tree/15.0/privacy_consent |
| VERSION | |
| VERSION | 1.0.1 |
| CATEGORY | |
| CATEGORY | Privacy |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), initOS GmbH |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), initOS GmbH |
| COMMITTERS | |
| COMMITTERS | Víctor Martínez, Weblate, OCA-git-bot, oca-ci, pilarvargas-tecnativa |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/data-protection |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:46:29 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/data-protection: - privacy odoo/odoo: - base - base_setup - web - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
activity_form |
Add consent fields | privacy.activity | div | Inherits privacy.activity_form |
consent_form |
Privacy Consent Form | privacy.consent | form | New |
consent_search |
Privacy Consent Search | privacy.consent | search | New |
consent_tree |
Privacy Consent Tree | privacy.consent | tree | New |
form |
Consent response processed | ir.ui.view | qweb | New |
view_partner_form |
Add consent smart button | res.partner | div | Inherits base.view_partner_form |
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
consent_count
Integer
compute='_compute_consent_count'
string='Consents count'
consent_ids
One2many → privacy.consent
comodel_name='privacy.consent'
inverse_name='activity_id'
string='Consents'
consent_required
Selection
help='Enable if you need to track any kind of consent from the affected subjects'
selection=[('auto', 'Automatically'), ('manual', 'Manually')]
string='Ask subjects for consent'
consent_template_default_body_html
Text
compute='_compute_consent_template_defaults'
consent_template_default_subject
Char
compute='_compute_consent_template_defaults'
consent_template_id
Many2one → mail.template
comodel_name='mail.template'
default=<expr>
domain=[('model', '=', 'privacy.consent')]
help='Email to be sent to subjects to ask for consent. A good template should include details about the current consent request status, how to change it, and where to get more information.'
string='Email template'
default_consent
Boolean
help='Should we assume the subject has accepted if we receive no response?'
string='Accepted by default'
server_action_id
Many2one → ir.actions.server
comodel_name='ir.actions.server'
domain=[('model_id.model', '=', 'privacy.consent')]
help='Run this action when a new consent request is created or its acceptance status is updated.'
string='Server action'
action_new_consents(self)
accepted
Boolean
help="Indicates current acceptance status, which can come from subject's last answer, or from the default specified in the related data processing activity."
tracking=True
active
Boolean
default=True
index=True
activity_id
Many2one → privacy.activity
comodel_name='privacy.activity'
readonly=True
required=True
string='Activity'
tracking=True
last_metadata
Text
help='Metadata from the last acceptance or rejection by the subject'
readonly=True
tracking=True
partner_id
Many2one → res.partner
comodel_name='res.partner'
help='Subject asked for consent.'
readonly=True
required=True
string='Subject'
tracking=True
state
Selection
default='draft'
readonly=True
required=True
selection=[('draft', 'Draft'), ('sent', 'Awaiting response'), ('answered', 'Answered')]
tracking=True
action_answer(self, answer, metadata=False)
action_auto_ask(self)
action_manual_ask(self)
create(self, vals_list)
message_get_suggested_recipients(self)
write(self, vals)
privacy_consent_count
Integer
compute='_compute_privacy_consent_count'
help='Privacy consent requests amount'
string='Consents'
privacy_consent_ids
One2many → privacy.consent
comodel_name='privacy.consent'
inverse_name='partner_id'
string='Privacy consents'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/data-protection |
| GIT | |
| GIT | https://github.com/OCA/data-protection.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/data-protection/tree/14.0/privacy_consent |
| VERSION | |
| VERSION | 1.1.0 |
| CATEGORY | |
| CATEGORY | Privacy |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), initOS GmbH |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), initOS GmbH |
| COMMITTERS | |
| COMMITTERS | OCA Transbot, Víctor Martínez, oca-travis, Weblate, OCA-git-bot, Rad0van, oca-git-bot |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/data-protection |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:40:50 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/data-protection: - privacy odoo/odoo: - base - base_setup - web - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
activity_form |
Add consent fields | privacy.activity | div | Inherits privacy.activity_form |
assets_frontend |
assets_frontend | ir.ui.view | qweb | Inherits web.assets_frontend |
consent_form |
Privacy Consent Form | privacy.consent | form | New |
consent_search |
Privacy Consent Search | privacy.consent | search | New |
consent_tree |
Privacy Consent Tree | privacy.consent | tree | New |
form |
Consent response processed | ir.ui.view | qweb | New |
view_partner_form |
Add consent smart button | res.partner | div | Inherits base.view_partner_form |
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
consent_count
Integer
compute='_compute_consent_count'
string='Consents count'
consent_ids
One2many → privacy.consent
comodel_name='privacy.consent'
inverse_name='activity_id'
string='Consents'
consent_required
Selection
help='Enable if you need to track any kind of consent from the affected subjects'
selection=[('auto', 'Automatically'), ('manual', 'Manually')]
string='Ask subjects for consent'
consent_template_default_body_html
Text
compute='_compute_consent_template_defaults'
consent_template_default_subject
Char
compute='_compute_consent_template_defaults'
consent_template_id
Many2one → mail.template
comodel_name='mail.template'
default=<expr>
domain=[('model', '=', 'privacy.consent')]
help='Email to be sent to subjects to ask for consent. A good template should include details about the current consent request status, how to change it, and where to get more information.'
string='Email template'
default_consent
Boolean
help='Should we assume the subject has accepted if we receive no response?'
string='Accepted by default'
server_action_id
Many2one → ir.actions.server
comodel_name='ir.actions.server'
domain=[('model_id.model', '=', 'privacy.consent')]
help='Run this action when a new consent request is created or its acceptance status is updated.'
string='Server action'
action_new_consents(self)
accepted
Boolean
help="Indicates current acceptance status, which can come from subject's last answer, or from the default specified in the related data processing activity."
tracking=True
active
Boolean
default=True
index=True
activity_id
Many2one → privacy.activity
comodel_name='privacy.activity'
readonly=True
required=True
string='Activity'
tracking=True
last_metadata
Text
help='Metadata from the last acceptance or rejection by the subject'
readonly=True
tracking=True
partner_id
Many2one → res.partner
comodel_name='res.partner'
help='Subject asked for consent.'
readonly=True
required=True
string='Subject'
tracking=True
state
Selection
default='draft'
readonly=True
required=True
selection=[('draft', 'Draft'), ('sent', 'Awaiting response'), ('answered', 'Answered')]
tracking=True
action_answer(self, answer, metadata=False)
action_auto_ask(self)
action_manual_ask(self)
create(self, vals_list)
message_get_suggested_recipients(self)
write(self, vals)
privacy_consent_count
Integer
compute='_compute_privacy_consent_count'
help='Privacy consent requests amount'
string='Consents'
privacy_consent_ids
One2many → privacy.consent
comodel_name='privacy.consent'
inverse_name='partner_id'
string='Privacy consents'
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/data-protection |
| GIT | |
| GIT | https://github.com/OCA/data-protection.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/data-protection/tree/13.0/privacy_consent |
| VERSION | |
| VERSION | 1.0.4 |
| CATEGORY | |
| CATEGORY | Privacy |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), initOS GmbH |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), initOS GmbH |
| COMMITTERS | |
| COMMITTERS | Jairo Llopis, OCA Transbot, Víctor Martínez, oca-travis, Weblate, OCA-git-bot, sergiocorato |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/management-activity |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:34:09 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/data-protection: - privacy odoo/odoo: - base - base_setup - web - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
activity_form |
Add consent fields | privacy.activity | div | Inherits privacy.activity_form |
assets_frontend |
assets_frontend | ir.ui.view | qweb | Inherits web.assets_frontend |
consent_form |
Privacy Consent Form | privacy.consent | form | New |
consent_search |
Privacy Consent Search | privacy.consent | search | New |
consent_tree |
Privacy Consent Tree | privacy.consent | tree | New |
form |
Consent response processed | ir.ui.view | qweb | New |
view_partner_form |
Add consent smart button | res.partner | div | Inherits base.view_partner_form |
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
consent_count
Integer
compute='_compute_consent_count'
args: 'Consents count'
consent_ids
One2many → privacy.consent
consent_required
Selection
help='Enable if you need to track any kind of consent from the affected subjects'
args: [('auto', 'Automatically'), ('manual', 'Manually')], 'Ask subjects for consent'
consent_template_default_body_html
Text
compute='_compute_consent_template_defaults'
consent_template_default_subject
Char
compute='_compute_consent_template_defaults'
consent_template_id
Many2one → mail.template
default=<expr>
domain=[('model', '=', 'privacy.consent')]
help='Email to be sent to subjects to ask for consent. A good template should include details about the current consent request status, how to change it, and where to get more information.'
args: 'mail.template', 'Email template'
default_consent
Boolean
help='Should we assume the subject has accepted if we receive no response?'
args: 'Accepted by default'
server_action_id
Many2one → ir.actions.server
domain=[('model_id.model', '=', 'privacy.consent')]
help='Run this action when a new consent request is created or its acceptance status is updated.'
args: 'ir.actions.server', 'Server action'
action_new_consents(self)
accepted
Boolean
help="Indicates current acceptance status, which can come from subject's last answer, or from the default specified in the related data processing activity."
track_visibility='onchange'
active
Boolean
default=True
index=True
activity_id
Many2one → privacy.activity
readonly=True
required=True
track_visibility='onchange'
args: 'privacy.activity', 'Activity'
last_metadata
Text
help='Metadata from the last acceptance or rejection by the subject'
readonly=True
track_visibility='onchange'
partner_id
Many2one → res.partner
help='Subject asked for consent.'
readonly=True
required=True
track_visibility='onchange'
args: 'res.partner', 'Subject'
state
Selection
default='draft'
readonly=True
required=True
selection=[('draft', 'Draft'), ('sent', 'Awaiting response'), ('answered', 'Answered')]
track_visibility='onchange'
action_answer(self, answer, metadata=False)
action_auto_ask(self)
action_manual_ask(self)
create(self, vals_list)
message_get_suggested_recipients(self)
write(self, vals)
privacy_consent_count
Integer
compute='_compute_privacy_consent_count'
help='Privacy consent requests amount'
args: 'Consents'
privacy_consent_ids
One2many → privacy.consent
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/data-protection |
| GIT | |
| GIT | https://github.com/OCA/data-protection.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/data-protection/tree/12.0/privacy_consent |
| VERSION | |
| VERSION | 1.1.2 |
| CATEGORY | |
| CATEGORY | Privacy |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), initOS GmbH |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), initOS GmbH |
| COMMITTERS | |
| COMMITTERS | GitHub, Jairo Llopis, OCA Transbot, Víctor Martínez, oca-travis, Weblate, OCA-git-bot, sergiocorato |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/management-activity |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:29:13 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/data-protection: - privacy odoo/odoo: - base - base_setup - web - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
activity_form |
Add consent fields | privacy.activity | div | Inherits privacy.activity_form |
assets_frontend |
assets_frontend | ir.ui.view | qweb | Inherits web.assets_frontend |
consent_form |
Privacy Consent Form | privacy.consent | form | New |
consent_search |
Privacy Consent Search | privacy.consent | search | New |
consent_tree |
Privacy Consent Tree | privacy.consent | tree | New |
form |
Consent response processed | ir.ui.view | qweb | New |
view_partner_form |
Add consent smart button | res.partner | div | Inherits base.view_partner_form |
No new fields.
Public methods (0)No public methods.
No new fields.
Public methods (0)No public methods.
consent_count
Integer
compute='_compute_consent_count'
args: 'Consents count'
consent_ids
One2many → privacy.consent
consent_required
Selection
help='Enable if you need to track any kind of consent from the affected subjects'
args: [('auto', 'Automatically'), ('manual', 'Manually')], 'Ask subjects for consent'
consent_template_default_body_html
Text
compute='_compute_consent_template_defaults'
consent_template_default_subject
Char
compute='_compute_consent_template_defaults'
consent_template_id
Many2one → mail.template
default=<expr>
domain=[('model', '=', 'privacy.consent')]
help='Email to be sent to subjects to ask for consent. A good template should include details about the current consent request status, how to change it, and where to get more information.'
args: 'mail.template', 'Email template'
default_consent
Boolean
help='Should we assume the subject has accepted if we receive no response?'
args: 'Accepted by default'
server_action_id
Many2one → ir.actions.server
domain=[('model_id.model', '=', 'privacy.consent')]
help='Run this action when a new consent request is created or its acceptance status is updated.'
args: 'ir.actions.server', 'Server action'
action_new_consents(self)
accepted
Boolean
help="Indicates current acceptance status, which can come from subject's last answer, or from the default specified in the related data processing activity."
track_visibility='onchange'
active
Boolean
default=True
index=True
activity_id
Many2one → privacy.activity
readonly=True
required=True
track_visibility='onchange'
args: 'privacy.activity', 'Activity'
last_metadata
Text
help='Metadata from the last acceptance or rejection by the subject'
readonly=True
track_visibility='onchange'
partner_id
Many2one → res.partner
help='Subject asked for consent.'
readonly=True
required=True
track_visibility='onchange'
args: 'res.partner', 'Subject'
state
Selection
default='draft'
readonly=True
required=True
selection=[('draft', 'Draft'), ('sent', 'Awaiting response'), ('answered', 'Answered')]
track_visibility='onchange'
action_answer(self, answer, metadata=False)
action_auto_ask(self)
action_manual_ask(self)
create(self, vals_list)
message_get_suggested_recipients(self)
write(self, vals)
privacy_consent_count
Integer
compute='_compute_privacy_consent_count'
help='Privacy consent requests amount'
args: 'Consents'
privacy_consent_ids
One2many → privacy.consent
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/data-protection |
| GIT | |
| GIT | https://github.com/OCA/data-protection.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/data-protection/tree/11.0/privacy_consent |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Privacy |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA), initOS GmbH |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA), initOS GmbH |
| COMMITTERS | |
| COMMITTERS | OCA Transbot, oca-travis, OCA-git-bot, fkantelberg |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/management-activity |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:23:55 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/data-protection: - privacy odoo/odoo: - base - base_setup - web - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
activity_form |
Add consent fields | privacy.activity | div | Inherits privacy.activity_form |
consent_form |
Privacy Consent Form | privacy.consent | form | New |
consent_search |
Privacy Consent Search | privacy.consent | search | New |
consent_tree |
Privacy Consent Tree | privacy.consent | tree | New |
form |
Consent response processed | ir.ui.view | qweb | New |
view_partner_form |
Add consent smart button | res.partner | div | Inherits base.view_partner_form |
No new fields.
Public methods (1)send_get_mail_body(self, partner=None)
No new fields.
Public methods (0)No public methods.
consent_count
Integer
compute='_compute_consent_count'
args: 'Consents'
consent_ids
One2many → privacy.consent
consent_required
Selection
help='Enable if you need to track any kind of consent from the affected subjects'
args: [('auto', 'Automatically'), ('manual', 'Manually')], 'Ask subjects for consent'
consent_template_default_body_html
Text
compute='_compute_consent_template_defaults'
consent_template_default_subject
Char
compute='_compute_consent_template_defaults'
consent_template_id
Many2one → mail.template
default=<expr>
domain=[('model', '=', 'privacy.consent')]
help='Email to be sent to subjects to ask for consent. A good template should include details about the current consent request status, how to change it, and where to get more information.'
args: 'mail.template', 'Email template'
default_consent
Boolean
help='Should we assume the subject has accepted if we receive no response?'
args: 'Accepted by default'
server_action_id
Many2one → ir.actions.server
domain=[('model_id.model', '=', 'privacy.consent')]
help='Run this action when a new consent request is created or its acceptance status is updated.'
args: 'ir.actions.server', 'Server action'
action_new_consents(self)
accepted
Boolean
help="Indicates current acceptance status, which can come from subject's last answer, or from the default specified in the related data processing activity."
track_visibility='onchange'
active
Boolean
default=True
index=True
activity_id
Many2one → privacy.activity
readonly=True
required=True
track_visibility='onchange'
args: 'privacy.activity', 'Activity'
last_metadata
Text
help='Metadata from the last acceptance or rejection by the subject'
readonly=True
track_visibility='onchange'
partner_id
Many2one → res.partner
help='Subject asked for consent.'
readonly=True
required=True
track_visibility='onchange'
args: 'res.partner', 'Subject'
state
Selection
default='draft'
readonly=True
required=True
selection=[('draft', 'Draft'), ('sent', 'Awaiting response'), ('answered', 'Answered')]
track_visibility='onchange'
action_answer(self, answer, metadata=False)
action_auto_ask(self)
action_manual_ask(self)
create(self, vals)
message_get_suggested_recipients(self)
write(self, vals)
privacy_consent_count
Integer
compute='_compute_privacy_consent_count'
help='Privacy consent requests amount'
args: 'Consents'
privacy_consent_ids
One2many → privacy.consent
No public methods.
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/data-protection |
| GIT | |
| GIT | https://github.com/OCA/data-protection.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/data-protection/tree/10.0/privacy_consent |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Privacy |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Tecnativa, Odoo Community Association (OCA) |
| MAINTAINERS | |
| MAINTAINERS | Tecnativa, Odoo Community Association (OCA) |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Jairo Llopis, OCA Transbot, oca-travis, OCA-git-bot, OCA Git Bot, Cristina Martin |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/management-activity |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:19:54 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
OCA/data-protection: - privacy odoo/odoo: - base - base_setup - web_kanban - web - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
activity_form |
Add consent fields | privacy.activity | div | Inherits privacy.activity_form |
consent_form |
Privacy Consent Form | privacy.consent | form | New |
consent_search |
Privacy Consent Search | privacy.consent | search | New |
consent_tree |
Privacy Consent Tree | privacy.consent | tree | New |
form |
Consent response processed | ir.ui.view | qweb | New |
view_partner_form |
Add consent smart button | res.partner | div | Inherits base.view_partner_form |
No new fields.
Public methods (1)send_get_mail_body(self, partner=None)
No new fields.
Public methods (0)No public methods.
consent_count
Integer
compute='_compute_consent_count'
args: 'Consents'
consent_ids
One2many → privacy.consent
consent_required
Selection
help='Enable if you need to track any kind of consent from the affected subjects'
args: [('auto', 'Automatically'), ('manual', 'Manually')], 'Ask subjects for consent'
consent_template_default_body_html
Text
compute='_compute_consent_template_defaults'
consent_template_default_subject
Char
compute='_compute_consent_template_defaults'
consent_template_id
Many2one → mail.template
default=<expr>
domain=[('model', '=', 'privacy.consent')]
help='Email to be sent to subjects to ask for consent. A good template should include details about the current consent request status, how to change it, and where to get more information.'
args: 'mail.template', 'Email template'
default_consent
Boolean
help='Should we assume the subject has accepted if we receive no response?'
args: 'Accepted by default'
server_action_id
Many2one → ir.actions.server
domain=[('model_id.model', '=', 'privacy.consent')]
help='Run this action when a new consent request is created or its acceptance status is updated.'
args: 'ir.actions.server', 'Server action'
action_new_consents(self)
accepted
Boolean
help="Indicates current acceptance status, which can come from subject's last answer, or from the default specified in the related data processing activity."
track_visibility='onchange'
active
Boolean
default=True
index=True
activity_id
Many2one → privacy.activity
readonly=True
required=True
track_visibility='onchange'
args: 'privacy.activity', 'Activity'
last_metadata
Text
help='Metadata from the last acceptance or rejection by the subject'
readonly=True
track_visibility='onchange'
partner_id
Many2one → res.partner
help='Subject asked for consent.'
readonly=True
required=True
track_visibility='onchange'
args: 'res.partner', 'Subject'
state
Selection
default='draft'
readonly=True
required=True
selection=[('draft', 'Draft'), ('sent', 'Awaiting response'), ('answered', 'Answered')]
track_visibility='onchange'
action_answer(self, answer, metadata=False)
action_auto_ask(self)
action_manual_ask(self)
create(self, vals)
message_get_suggested_recipients(self)
write(self, vals)
privacy_consent_count
Integer
compute='_compute_privacy_consent_count'
help='Privacy consent requests amount'
args: 'Consents'
privacy_consent_ids
One2many → privacy.consent
No public methods.