From a4af2ed7ef39c6fb25b0b16512a4557a1a646c9d Mon Sep 17 00:00:00 2001 From: Jigar Amin Date: Thu, 12 May 2011 12:05:38 +0530 Subject: [PATCH 1/4] [USA] import contact wizard usabality improvements bzr revid: jam@tinyerp.com-20110512063538-sterpatlnhdzsuih --- .../wizard/google_contact_import_view.xml | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/addons/import_google_contact/wizard/google_contact_import_view.xml b/addons/import_google_contact/wizard/google_contact_import_view.xml index dcdc4f0719f..c17bab4dd48 100644 --- a/addons/import_google_contact/wizard/google_contact_import_view.xml +++ b/addons/import_google_contact/wizard/google_contact_import_view.xml @@ -13,11 +13,10 @@ - - - - @@ -31,8 +30,7 @@ - - + Import Contacts ir.actions.act_window @@ -45,7 +43,7 @@ From 8fa1676bebc3ca31c1584a89f71397fd93857ced Mon Sep 17 00:00:00 2001 From: Jigar Amin Date: Thu, 12 May 2011 14:48:23 +0530 Subject: [PATCH 2/4] [IMP] import_google_contact : 1) Address created should be type Default 2) the responsible salesman (user_id) should be the connected user bzr revid: jam@tinyerp.com-20110512091823-o53s0d7vbwaa3q09 --- addons/import_google_contact/security/ir.model.access.csv | 2 +- addons/import_google_contact/wizard/google_contact_import.py | 5 +++-- .../wizard/google_contact_import_view.xml | 1 - 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/addons/import_google_contact/security/ir.model.access.csv b/addons/import_google_contact/security/ir.model.access.csv index 448a593965b..7ed4201e847 100644 --- a/addons/import_google_contact/security/ir.model.access.csv +++ b/addons/import_google_contact/security/ir.model.access.csv @@ -1,3 +1,3 @@ "id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" "access_res_users_partner_manager","google.res.partner.manager","base.model_ir_model_data","base.group_partner_manager",1,1,1,0 -"access_ir_model_data_partner_manager","ir.model.data.partner.manager","base.model_res_users","base.group_partner_manager",1,1,0,0 \ No newline at end of file +"access_ir_model_data_partner_manager","ir.model.data.partner.manager","base.model_res_users","base.group_partner_manager",1,1,0,0 diff --git a/addons/import_google_contact/wizard/google_contact_import.py b/addons/import_google_contact/wizard/google_contact_import.py index 41fce2cb049..ad23811b1f4 100644 --- a/addons/import_google_contact/wizard/google_contact_import.py +++ b/addons/import_google_contact/wizard/google_contact_import.py @@ -70,7 +70,8 @@ class synchronize_google_contact(osv.osv_memory): def create_partner(self, cr, uid, data={}, context=None): partner_obj = self.pool.get('res.partner') partner_id = partner_obj.create(cr, uid, { - 'name': data.get('name',''), + 'name': data.get('name',''), + 'user_id': uid, 'address' : [(6, 0, [data['address_id']])], 'customer': data.get('customer', False), 'supplier': data.get('supplier', False) @@ -124,7 +125,6 @@ class synchronize_google_contact(osv.osv_memory): else: time_zone = tools.get_server_timezone() au_tz = timezone(time_zone) - while contact: for entry in contact.entry: data = self._retreive_data(entry) @@ -154,6 +154,7 @@ class synchronize_google_contact(osv.osv_memory): res_id = contact_ids[0] if not contact_ids: #create or link to an existing partner only if it's a new contact + data.update({'type': 'default'}) res_id = addresss_obj.create(cr, uid, data, context=context) data['address_id'] = res_id if option == 'create_all': diff --git a/addons/import_google_contact/wizard/google_contact_import_view.xml b/addons/import_google_contact/wizard/google_contact_import_view.xml index c17bab4dd48..204548ce66b 100644 --- a/addons/import_google_contact/wizard/google_contact_import_view.xml +++ b/addons/import_google_contact/wizard/google_contact_import_view.xml @@ -15,7 +15,6 @@ - From 0d7f86c8a23b0023caf712708ad3539ff9173d49 Mon Sep 17 00:00:00 2001 From: Jigar Amin Date: Mon, 16 May 2011 10:02:38 +0530 Subject: [PATCH 3/4] [IMP] sync_google_contact : linking the company with partner of partner has company and adding function for partber bzr revid: jam@tinyerp.com-20110516043238-79j0u73o4qpe9exv --- .../wizard/google_contact_import.py | 41 ++++++++++++++++--- 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/addons/import_google_contact/wizard/google_contact_import.py b/addons/import_google_contact/wizard/google_contact_import.py index ad23811b1f4..da94a7e5937 100644 --- a/addons/import_google_contact/wizard/google_contact_import.py +++ b/addons/import_google_contact/wizard/google_contact_import.py @@ -22,7 +22,6 @@ import datetime import dateutil from dateutil.parser import * from pytz import timezone -import os try: import gdata @@ -41,7 +40,8 @@ class synchronize_google_contact(osv.osv_memory): def _get_group(self, cr, uid, context=None): user_obj = self.pool.get('res.users').browse(cr, uid, uid) google=self.pool.get('google.login') - + if not user_obj.gmail_user or not user_obj.gmail_password: + raise osv.except_osv(_('Warning !'), _("No Google Username or password Defined for user.\nPlease define in user view")) gd_client = google.google_login(user_obj.gmail_user,user_obj.gmail_password,type='group') if not gd_client: raise osv.except_osv(_('Error'), _("Authentication fail check the user and password !")) @@ -68,8 +68,16 @@ class synchronize_google_contact(osv.osv_memory): } def create_partner(self, cr, uid, data={}, context=None): - partner_obj = self.pool.get('res.partner') - partner_id = partner_obj.create(cr, uid, { + if context == None: + context = {} + if not data: + return False + partner_pool = self.pool.get('res.partner') + company_pool = self.pool.get('res.company') + if 'company_id' in data: + company = company_pool.browse(cr, uid, data.get('company_id'), context=context) + return company.partner_id.id + partner_id = partner_pool.create(cr, uid, { 'name': data.get('name',''), 'user_id': uid, 'address' : [(6, 0, [data['address_id']])], @@ -114,6 +122,16 @@ class synchronize_google_contact(osv.osv_memory): 'type': 'ir.actions.act_window', } + def getCompanyId(self, cr, uid, company, context=None): + if context == None: + context = {} + company_pool = self.pool.get('res.company') + company_id = company_pool.search(cr, uid, [('name', '=', company)]) + if company_id: + return company_id[0] + new_cid = company_pool.create(cr, uid, {'name': company}) + return new_cid + def create_contact(self, cr, uid, ids, gd_client, contact, option,context=None): model_obj = self.pool.get('ir.model.data') addresss_obj = self.pool.get('res.partner.address') @@ -128,6 +146,10 @@ class synchronize_google_contact(osv.osv_memory): while contact: for entry in contact.entry: data = self._retreive_data(entry) + if 'company' in data: + company = data.pop('company') + if company: + data.update({'company_id': self.getCompanyId(cr, uid, company, context=context)}) google_id = data.pop('id') model_data = { 'name': google_id, @@ -163,8 +185,9 @@ class synchronize_google_contact(osv.osv_memory): data['supplier'] = obj.supplier partner_id = self.create_partner(cr, uid, data, context=context) partner_ids.append(partner_id) + addresss_obj.write(cr, uid, [res_id], {'partner_id': partner_id}, context=context) addresses.append(res_id) - + if not data_ids: #link to google_id if it was not the case before model_data.update({'res_id': res_id}) model_obj.create(cr, uid, model_data, context=context) @@ -186,7 +209,13 @@ class synchronize_google_contact(osv.osv_memory): data['name'] = name emails = ','.join(email.address for email in entry.email) data['email'] = emails - + if entry.organization: + if entry.organization.org_name: + data.update({'company': entry.organization.org_name.text}) + if entry.organization.org_title: + data.update ({'function': entry.organization.org_title.text}) + + if entry.phone_number: for phone in entry.phone_number: if phone.rel == gdata.contacts.REL_WORK: From 11a743329f341eb9b058cbeb1bb5d47655d9f90d Mon Sep 17 00:00:00 2001 From: Jigar Amin Date: Mon, 16 May 2011 11:06:39 +0530 Subject: [PATCH 4/4] [IMP/USA] crm: installet wizard google contact tooltop imoprved bzr revid: jam@tinyerp.com-20110516053639-ilw3boebd1jcnpgl --- addons/crm/crm_installer.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/crm/crm_installer.py b/addons/crm/crm_installer.py index b1411e22530..169396b179e 100644 --- a/addons/crm/crm_installer.py +++ b/addons/crm/crm_installer.py @@ -37,7 +37,7 @@ class crm_installer(osv.osv_memory): 'thunderbird': fields.boolean('Thunderbird', help="Allows you to link your e-mail to OpenERP's documents. You can attach it to any existing one in OpenERP or create a new one."), 'outlook': fields.boolean('MS-Outlook', help="Allows you to link your e-mail to OpenERP's documents. You can attach it to any existing one in OpenERP or create a new one."), 'wiki_sale_faq': fields.boolean('Sale FAQ', help="Helps you manage wiki pages for Frequently Asked Questions on Sales Application."), - 'import_google_contact': fields.boolean('Google Contacts', help="It will import contacts from your google account."), + 'import_google_contact': fields.boolean('Google Contacts', help="Imports contacts from your google account."), } def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):