[MERGE] Make the contacts deduplication wizard available to all apps

This commit is contained in:
Richard Mathot
2017-12-21 13:05:06 +01:00
9 changed files with 22 additions and 5 deletions
-2
View File
@@ -29,11 +29,9 @@
'data/crm_lead_data.xml',
'data/mail_template_data.xml',
'wizard/base_partner_merge_views.xml',
'wizard/crm_lead_lost_views.xml',
'wizard/crm_lead_to_opportunity_views.xml',
'wizard/crm_merge_opportunities_views.xml',
'wizard/base_partner_merge_views.xml',
'views/crm_templates.xml',
'views/res_config_settings_views.xml',
-1
View File
@@ -1,7 +1,6 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from . import base_partner_merge
from . import crm_lead_lost
from . import crm_partner_binding
from . import crm_lead_to_opportunity
+1
View File
@@ -5,3 +5,4 @@ from . import invite
from . import mail_compose_message
from . import email_template_preview
from . import base_module_uninstall
from . import base_partner_merge
+13
View File
@@ -0,0 +1,13 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import api, models, _
class MergePartnerAutomatic(models.TransientModel):
_inherit = 'base.partner.merge.automatic.wizard'
@api.multi
def _log_merge_operation(self, src_partners, dst_partner):
super(MergePartnerAutomatic, self)._log_merge_operation(src_partners, dst_partner)
dst_partner.message_post(body='%s %s' % (_("Merged with the following partners:"), ", ".join('%s <%s> (ID %s)' % (p.name, p.email or 'n/a', p.id) for p in src_partners)))
+1
View File
@@ -55,6 +55,7 @@ The kernel of Odoo, needed for all installation.
'wizard/base_module_uninstall_views.xml',
'wizard/base_export_language_views.xml',
'wizard/base_update_translations_views.xml',
'wizard/base_partner_merge_views.xml',
'data/ir_actions_data.xml',
'views/res_company_views.xml',
'views/res_lang_views.xml',
@@ -185,6 +185,7 @@ class TestActionBindings(common.TransactionCase):
Actions = self.env['ir.actions.actions']
# first make sure there is no bound action
self.env.ref('base.action_partner_merge').unlink()
bindings = Actions.get_bindings('res.partner')
self.assertFalse(bindings['action'])
self.assertFalse(bindings['report'])
+1
View File
@@ -8,3 +8,4 @@ from . import base_module_upgrade
from . import base_module_uninstall
from . import base_export_language
from . import base_update_translations
from . import base_partner_merge
@@ -290,12 +290,15 @@ class MergePartnerAutomatic(models.TransientModel):
self._update_reference_fields(src_partners, dst_partner)
self._update_values(src_partners, dst_partner)
_logger.info('(uid = %s) merged the partners %r with %s', self._uid, src_partners.ids, dst_partner.id)
dst_partner.message_post(body='%s %s' % (_("Merged with the following partners:"), ", ".join('%s <%s> (ID %s)' % (p.name, p.email or 'n/a', p.id) for p in src_partners)))
self._log_merge_operation(src_partners, dst_partner)
# delete source partner, since they are merged
src_partners.unlink()
@api.multi
def _log_merge_operation(self, src_partners, dst_partner):
_logger.info('(uid = %s) merged the partners %r with %s', self._uid, src_partners.ids, dst_partner.id)
# ----------------------------------------
# Helpers
# ----------------------------------------