You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.1 KiB
44 lines
1.1 KiB
# -*- coding: utf-8 -*-
|
|
# Copyright 2019 Akretion <https://akretion.com>
|
|
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
|
from openerp import api, models
|
|
|
|
CRM_GDPR_FIELDS = [
|
|
'name',
|
|
'email_from',
|
|
'email_cc',
|
|
'description',
|
|
'contact_name',
|
|
'partner_name',
|
|
'referred',
|
|
'phone',
|
|
'street',
|
|
'street2',
|
|
'zip',
|
|
'city',
|
|
'state_id',
|
|
'phone',
|
|
'fax',
|
|
'mobile',
|
|
'function',
|
|
'title',
|
|
'message_ids',
|
|
]
|
|
|
|
|
|
class ResPartnerGdpr(models.TransientModel):
|
|
_inherit = 'res.partner.gdpr'
|
|
|
|
@api.multi
|
|
def _post_gdpr_cleanup(self):
|
|
super(ResPartnerGdpr, self)._post_gdpr_cleanup()
|
|
leads = self.env['crm.lead'].with_context(active_test=False).search(
|
|
[('partner_id', 'in', self.partner_ids.ids)])
|
|
if leads:
|
|
lead_model = self.env['ir.model'].search([
|
|
('model', '=', 'crm.lead')])
|
|
fields = self.env['ir.model.fields'].search([
|
|
('model_id', '=', lead_model.id),
|
|
('name', 'in', CRM_GDPR_FIELDS)])
|
|
self._do_gdpr_cleanup(fields, leads)
|
|
leads.write({'active': False})
|