From ca3013a42f862d7b6aead8d6d93f0d6294364dca Mon Sep 17 00:00:00 2001 From: Jigar Amin Date: Wed, 22 Jun 2011 17:01:57 +0530 Subject: [PATCH] [IMP] import_google : refectroing for maintaining the partner and contact bzr revid: jam@tinyerp.com-20110622113157-mlm4cx4xza43wjtw --- addons/import_google/wizard/import_google.py | 55 +++++++++++--------- 1 file changed, 29 insertions(+), 26 deletions(-) diff --git a/addons/import_google/wizard/import_google.py b/addons/import_google/wizard/import_google.py index b200661335b..55631ba53c0 100644 --- a/addons/import_google/wizard/import_google.py +++ b/addons/import_google/wizard/import_google.py @@ -42,6 +42,7 @@ class google_import(import_framework): gd_client = False calendars = False + contact = False DATETIME_FORMAT = "%Y-%m-%d %H:%M:%S" TABLE_CONTACT = 'Contact' TABLE_ADDRESS ='Address' @@ -312,7 +313,28 @@ class google_import(import_framework): self.contact = next and self.gd_client.GetContactsFeed(next.href) or None return datas - def get_partner_address(self,val): + + + def get_address_id(self, val): + contact = self.xml_id_exist(self.TABLE_ADDRESS, val.get('id')) + if contact: + return str(contact) + return False + + def get_contact_mapping(self): + return { + 'model': 'res.partner', + 'dependencies': [self.TABLE_ADDRESS], + 'map': { + 'id':'id', + 'name': 'name', + 'customer': 'customer', + 'supplier': 'supplier', + 'address/id': self.get_address_id, + } + } + + def get_partner_id(self, val): partner_id = False address_pool = self.obj.pool.get('res.partner.address') company_pool = self.obj.pool.get('res.company') @@ -323,31 +345,11 @@ class google_import(import_framework): for rec in records: if rec.partner_id: partner_id = rec.partner_id - field_map = { - 'name': 'name', - 'type': 'Type', - 'city': 'city', - 'phone': 'phone', - 'mobile': 'mobile', - 'email': 'email', - 'fax': 'fax', - } - val.update({'Type':'contact'}) - val.update({'id_new': val['id']+'address_contact' }) - return self.import_object_mapping(field_map , val, 'res.partner.address', self.context.get('table')[0], val['id_new'], self.DO_NOT_FIND_DOMAIN) - - def get_contact_mapping(self): - return { - 'model': 'res.partner', - 'dependencies': [], - 'map': { - 'id':'id', - 'name': 'name', - 'customer': 'customer', - 'supplier': 'supplier', - 'address/id': self.get_partner_address, - } - } + return partner_id + contact = self.xml_id_exist(self.TABLE_CONTACT, val.get('id')) + if contact: + partner_id = self.get_mapped_id(self.TABLE_CONTACT, val.get('id')) + return partner_id def get_address_mapping(self): return { @@ -355,6 +357,7 @@ class google_import(import_framework): 'dependencies': [], 'map': { 'id':'id', + 'partner_id/.id': self.get_partner_id, 'name': 'name', 'city': 'city', 'phone': 'phone',