Browse Source

work in progres

pull/406/head
Tom 8 years ago
parent
commit
a86775e420
  1. 4
      base_partner_merge/models/__init__.py
  2. 29
      base_partner_merge/models/base_partner_merge_automatic_wizard.py
  3. 21
      base_partner_merge/models/res_partner.py

4
base_partner_merge/models/__init__.py

@ -0,0 +1,4 @@
# -*- coding: utf-8 -*-
from . import res_partner
from . import base_partner_merge_automatic_wizard

29
base_partner_merge/models/base_partner_merge_automatic_wizard.py

@ -0,0 +1,29 @@
# -*- coding: utf-8 -*-
# © 2017 Sunflower IT <http://sunflowerweb.nl>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import fields, models, api
from ast import literal_eval
class MergePartnerAutomatic(models.TransientModel):
_inherit = 'base.partner.merge.automatic.wizard'
# Enable deduplicating by reference
group_by_ref = fields.Boolean('Reference')
@api.multi
def _process_query(self, query):
ret = super(MergePartnerAutomatic, self)._process_query(query)
# If 'extra_domain', deduplicate only the records matching the domain
extra_domain = self.env.context.get('extra_domain', [])
if extra_domain:
for line in self.line_ids:
aggr_ids = literal_eval(line.aggr_ids)
domain = [('id', 'in', aggr_ids)]
domain.extend(extra_domain)
records = self.env['res.partner'].search(domain)
if len(records) < len(aggr_ids):
line.unlink()
return ret

21
base_partner_merge/models/res_partner.py

@ -0,0 +1,21 @@
# -*- coding: utf-8 -*-
# © 2017 Sunflower IT <http://sunflowerweb.nl>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from openerp import models, api
class ResPartner(models.Model):
_inherit = 'res.partner'
@api.model
def deduplicate_on_field(self, field, domain=[]):
""" Merge contacts"""
self.merge_wizard = \
self.env['base.partner.merge.automatic.wizard']
wizard_id = self.merge_wizard.with_context(
extra_domain=domain).create({
'group_by_%s' % (field,): True,
'state': 'option'
})
wizard_id.automatic_process_cb()
Loading…
Cancel
Save