From 60ba2da426b84719739300c9be7c7ca178c606ca Mon Sep 17 00:00:00 2001 From: "Bhumika(OpenERP)" <> Date: Tue, 22 Feb 2011 13:08:23 +0530 Subject: [PATCH] [IMP] sync_google_contact:Merge information of exist record bzr revid: bhumikaopenerp-20110222073823-mp0m28g5byf1msn8 --- .../wizard/google_contact_import.py | 58 +++++++++++++------ 1 file changed, 41 insertions(+), 17 deletions(-) diff --git a/addons/sync_google_contact/wizard/google_contact_import.py b/addons/sync_google_contact/wizard/google_contact_import.py index 62c43705476..7eebbd4bfd5 100644 --- a/addons/sync_google_contact/wizard/google_contact_import.py +++ b/addons/sync_google_contact/wizard/google_contact_import.py @@ -163,6 +163,8 @@ class synchronize_google_contact(osv.osv_memory): phone_numbers = ','.join(phone_number.text for phone_number in entry.phone_number) if name: data['name'] = name + if google_id: + data['google_id'] =google_id if entry.phone_number: for phone in entry.phone_number: if phone.rel == gdata.contacts.REL_WORK: @@ -171,26 +173,48 @@ class synchronize_google_contact(osv.osv_memory): data['mobile'] = phone.text if phone.rel == gdata.contacts.PHONE_WORK_FAX: data['fax'] = phone.text - emails = ','.join(email.address for email in entry.email) if emails: - data['email'] = emails - if obj.create_partner and obj.group_name == 'all': - if name: - partner_id, data = self.create_partner(cr, uid, ids, data, context=context) - partner_ids.append(partner_id[0]) - addresses.append(addresss_obj.create(cr, uid, data, context=context)) - contact_ids = addresss_obj.search(cr, uid, [('google_id','=',google_id)]) - if obj.group_name and entry.group_membership_info and not contact_ids: - for grp in entry.group_membership_info: - if grp.href == obj.group_name: - if obj.create_partner: - partner_id, data = self.create_partner(cr, uid, ids, data, context=context) - partner_ids.append(partner_id[0]) - addresses.append(addresss_obj.create(cr, uid, data, context=context)) + data['email'] = emails + contact_ids = addresss_obj.search(cr, uid, [('email','ilike',emails)]) else: - if obj.group_name == 'all' and not contact_ids: - addresses.append(addresss_obj.create(cr, uid, data, context=context)) + contact_ids = addresss_obj.search(cr, uid, [('google_id','=',google_id)]) + if contact_ids : + res={} + addr=addresss_obj.browse(cr,uid,contact_ids)[0] + name = str((addr.name or addr.partner_id and addr.partner_id.name or '').encode('utf-8')) + notes = addr.partner_id and addr.partner_id.comment or '' + email = addr.email or '' + phone = addr.phone or '' + mobile = addr.mobile or '' + fax = addr.fax or '' + if not name or name=='None': + res['name']=data.get('name','') + if not email: + res['email']=data.get('email','') + if not mobile: + res['mobile']=data.get('mobile','') + if not phone: + res['phone']=data.get('phone','') + if not fax: + res['fax']=data.get('fax','') + addresss_obj.write(cr,uid,contact_ids,res,context=context) + else: + if obj.create_partner and obj.group_name == 'all': + if name: + partner_id, data = self.create_partner(cr, uid, ids, data, context=context) + partner_ids.append(partner_id[0]) + addresses.append(addresss_obj.create(cr, uid, data, context=context)) + if obj.group_name and entry.group_membership_info and not contact_ids: + for grp in entry.group_membership_info: + if grp.href == obj.group_name: + if obj.create_partner: + partner_id, data = self.create_partner(cr, uid, ids, data, context=context) + partner_ids.append(partner_id[0]) + addresses.append(addresss_obj.create(cr, uid, data, context=context)) + else: + if obj.group_name == 'all' and not contact_ids: + addresses.append(addresss_obj.create(cr, uid, data, context=context)) if not contact: break