| 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_partner_to_be_forgotten |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Data Protection |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Cetmix |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Cetmix |
| 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 |
odoo/odoo: - contacts - base - base_setup - web - bus - web_tour - html_editor |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | The module allows anonymizing contacts that represent natural persons (i.e., individuals) when they are no longer needed or when a data erasure request is received. This module provides a method to anonymize all personally identifiable information (PII) from a `res.partner` record: - Name (e.g., replaced with initials or a generic label) for individual contacts - Email address - Phone numbers - Street and address fields - Tax ID - Citizen Identification - Job position and title - Internal Notes - Attached images (e.g., avatar) The anonymization preserves the partner's link to its parent company if applicable (e.g., for a B2B contact) but ensures that the individual is no longer identifiable through the remaining data or relationships. Additionally, the module removes all chatter messages (`mail.message`) and attachments associated with the partner record, as these may contain personal information, such as communication history, internal notes, or file uploads. This ensures complete anonymization and supports full GDPR compliance. If the partner is linked to one or more `res.users` records (e.g., as a portal user or employee), the module will anonymize these user records: - The user login and email are replaced with anonymized values, and the user is archived. A log note is added to the partner record chatter to indicate the anonymization event, supporting traceability. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_partner_anonymize_wizard_form |
partner.anonymize.wizard.form | partner.anonymize.wizard | form | New |
partner_ids
Many2many → res.partner
readonly=True
required=True
args: 'res.partner'
action_confirm(self)
default_get(self, fields_list)
No new fields.
Public methods (1)anonymize_partner_data(self)
| 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_partner_to_be_forgotten |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Data Protection |
| LICENSE | |
| LICENSE | LGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Cetmix |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Cetmix |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, oca-ci, anatoly.miheev |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/data-protection |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:20:02 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - contacts - base - base_setup - web - bus - web_tour |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | The module allows anonymizing contacts that represent natural persons (i.e., individuals) when they are no longer needed or when a data erasure request is received. This module provides a method to anonymize all personally identifiable information (PII) from a `res.partner` record: - Name (e.g., replaced with initials or a generic label) for individual contacts - Email address - Phone numbers - Street and address fields - Tax ID - Citizen Identification - Job position and title - Internal Notes - Attached images (e.g., avatar) The anonymization preserves the partner's link to its parent company if applicable (e.g., for a B2B contact) but ensures that the individual is no longer identifiable through the remaining data or relationships. Additionally, the module removes all chatter messages (`mail.message`) and attachments associated with the partner record, as these may contain personal information, such as communication history, internal notes, or file uploads. This ensures complete anonymization and supports full GDPR compliance. If the partner is linked to one or more `res.users` records (e.g., as a portal user or employee), the module will anonymize these user records: - The user login and email are replaced with anonymized values, and the user is archived. A log note is added to the partner record chatter to indicate the anonymization event, supporting traceability. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
view_partner_anonymize_wizard_form |
partner.anonymize.wizard.form | partner.anonymize.wizard | form | New |
partner_ids
Many2many → res.partner
readonly=True
required=True
args: 'res.partner'
action_confirm(self)
default_get(self, fields_list)
No new fields.
Public methods (1)anonymize_partner_data(self)
| STATUS | |
|---|---|
| STATUS | Open migration PR - not merged yet for this version |
| REPOSITORY | |
| REPOSITORY | OCA/data-protection |
| PULL REQUEST | |
| PULL REQUEST | [12.0][MIG] privacy_partner_to_be_forgotten (#93) |
| STATUS | |
|---|---|
| STATUS | Open migration PR - not merged yet for this version |
| REPOSITORY | |
| REPOSITORY | OCA/data-protection |
| PULL REQUEST | |
| PULL REQUEST | [19.0][MIG] privacy_partner_to_be_forgotten (#94) |