@ -123,8 +123,8 @@ class MergePartnerAutomatic(orm.TransientModel):
context = { }
context = { }
res = super ( MergePartnerAutomatic , self
res = super ( MergePartnerAutomatic , self
) . default_get ( cr , uid , fields , context )
) . default_get ( cr , uid , fields , context )
if ( context . get ( ' active_model ' ) == ' res.partner '
and context . get ( ' active_ids ' ) ) :
if ( context . get ( ' active_model ' ) == ' res.partner ' and
context . get ( ' active_ids ' ) ) :
partner_ids = context [ ' active_ids ' ]
partner_ids = context [ ' active_ids ' ]
res [ ' state ' ] = ' selection '
res [ ' state ' ] = ' selection '
res [ ' partner_ids ' ] = partner_ids
res [ ' partner_ids ' ] = partner_ids
@ -212,8 +212,8 @@ class MergePartnerAutomatic(orm.TransientModel):
' %(column)s IN %% s ' ) % query_dic
' %(column)s IN %% s ' ) % query_dic
cr . execute ( query , ( dst_partner . id , partner_ids , ) )
cr . execute ( query , ( dst_partner . id , partner_ids , ) )
if ( column == proxy . _parent_name
and table == ' res_partner ' ) :
if ( column == proxy . _parent_name and
table == ' res_partner ' ) :
query = """
query = """
WITH RECURSIVE cycle ( id , parent_id ) AS (
WITH RECURSIVE cycle ( id , parent_id ) AS (
SELECT id , parent_id FROM res_partner
SELECT id , parent_id FROM res_partner
@ -316,8 +316,8 @@ class MergePartnerAutomatic(orm.TransientModel):
values = dict ( )
values = dict ( )
for column , field in columns . iteritems ( ) :
for column , field in columns . iteritems ( ) :
if ( field . _type not in ( ' many2many ' , ' one2many ' )
and not isinstance ( field , fields . function ) ) :
if ( field . _type not in ( ' many2many ' , ' one2many ' ) and
not isinstance ( field , fields . function ) ) :
for item in itertools . chain ( src_partners , [ dst_partner ] ) :
for item in itertools . chain ( src_partners , [ dst_partner ] ) :
if item [ column ] :
if item [ column ] :
values [ column ] = write_serializer ( column ,
values [ column ] = write_serializer ( column ,
@ -381,12 +381,15 @@ class MergePartnerAutomatic(orm.TransientModel):
src_partners = ordered_partners [ : - 1 ]
src_partners = ordered_partners [ : - 1 ]
_logger . info ( " dst_partner: %s " , dst_partner . id )
_logger . info ( " dst_partner: %s " , dst_partner . id )
call_it = lambda function : function ( cr , uid , src_partners ,
dst_partner , context = context )
call_it ( self . _update_foreign_keys )
call_it ( self . _update_reference_fields )
call_it ( self . _update_values )
self . _update_foreign_keys (
cr , uid , src_partners , dst_partner , context = context
)
self . _update_reference_fields (
cr , uid , src_partners , dst_partner , context = context
)
self . _update_values (
cr , uid , src_partners , dst_partner , context = context
)
_logger . info ( ' (uid = %s ) merged the partners %r with %s ' ,
_logger . info ( ' (uid = %s ) merged the partners %r with %s ' ,
uid ,
uid ,
@ -612,8 +615,8 @@ class MergePartnerAutomatic(orm.TransientModel):
models [ ' res.users ' ] = ' partner_id '
models [ ' res.users ' ] = ' partner_id '
if ( self . _model_is_installed ( cr , uid , ' account.move.line ' ,
if ( self . _model_is_installed ( cr , uid , ' account.move.line ' ,
context = context )
and this . exclude_journal_item ) :
context = context ) and
this . exclude_journal_item ) :
models [ ' account.move.line ' ] = ' partner_id '
models [ ' account.move.line ' ] = ' partner_id '
return models
return models