diff --git a/addons/sync_google_contact/wizard/google_contact_import.py b/addons/sync_google_contact/wizard/google_contact_import.py index b8ce6bdef00..2463ad8fb9a 100644 --- a/addons/sync_google_contact/wizard/google_contact_import.py +++ b/addons/sync_google_contact/wizard/google_contact_import.py @@ -21,6 +21,7 @@ from osv import fields,osv from tools.translate import _ +import tools class google_contact_import(osv.osv_memory): _inherit = 'google.login' @@ -95,24 +96,35 @@ class synchronize_google_contact(osv.osv_memory): contact = gd_client.GetContactsFeed() partner_id = [] addresses = [] + partner_ids=[] + for obj in self.browse(cr, uid, ids, context=context): if obj.tools=='gmail': - if obj.create_partner: - for user in contact.author: - partner_name = user.name.text - partner_id = partner_obj.search(cr, uid, [('name','ilike',partner_name)], context=context) - if not partner_id: - partner_id.append(partner_obj.create(cr, uid, {'name': partner_name}, context=context)) +# if obj.create_partner: +# for user in contact.author: +# partner_name = user.name.text +# if not partner_id: +# partner_id.append(partner_obj.create(cr, uid, {'name': partner_name}, context=context)) while contact: + data={} for entry in contact.entry: + partner_id=False + if obj.create_partner: + partner_name = tools.ustr(entry.title.text) + if partner_name: + partner_id = partner_obj.search(cr, uid, [('name','ilike',partner_name)], context=context) + if not partner_id: + partner_id.append(partner_obj.create(cr, uid, {'name': partner_name}, context=context)) + partner_ids.append(partner_id) + data.update({'partner_id': partner_id and partner_id[0]} ) + name = entry.title.text phone_numbers = ','.join(phone_number.text for phone_number in entry.phone_number) emails = ','.join(email.address for email in entry.email) data = { - 'name': name, + 'name': name or '', 'phone': phone_numbers, 'email': emails, - 'partner_id': partner_id and partner_id[0] } contact_ids = addresss_obj.search(cr, uid, [('email','ilike',emails)]) if obj.group_name and entry.group_membership_info and not contact_ids: @@ -128,11 +140,10 @@ class synchronize_google_contact(osv.osv_memory): contact = None if next: contact = gd_client.GetContactsFeed(next.href) - if partner_id: - partner_id = partner_id[0] + if partner_ids: return { 'name': _('Partner'), - 'domain': "[('id','=',"+str(partner_id)+")]", + 'domain': "[('id','in', ["+','.join(map(str,partner_ids))+"])]", 'view_type': 'form', 'view_mode': 'tree,form', 'res_model': 'res.partner', diff --git a/addons/sync_google_contact/wizard/google_contact_import_view.xml b/addons/sync_google_contact/wizard/google_contact_import_view.xml index 7e1fa5ca1b0..8144df6d4e5 100644 --- a/addons/sync_google_contact/wizard/google_contact_import_view.xml +++ b/addons/sync_google_contact/wizard/google_contact_import_view.xml @@ -7,17 +7,18 @@ google.login form -
- - - - + + + + + - +