openerp-dev-web team mailing list archive
-
openerp-dev-web team
-
Mailing list archive
-
Message #06799
lp:~openerp-dev/openobject-addons/trunk-contact-google-sync-validation_1205-jam into lp:~openerp-dev/openobject-addons/trunk-contact-google-sync
Jigar Amin - OpenERP has proposed merging lp:~openerp-dev/openobject-addons/trunk-contact-google-sync-validation_1205-jam into lp:~openerp-dev/openobject-addons/trunk-contact-google-sync.
Requested reviews:
Bhumika (OpenERP) (sbh-openerp)
For more details, see:
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-contact-google-sync-validation_1205-jam/+merge/61063
Changes :
+ Company name as partner
+ Address created should be type "Default"
+ the responsible salesman (user_id) should be the connected user
Kindly Review this.
Thank You
--
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-contact-google-sync-validation_1205-jam/+merge/61063
Your team OpenERP R&D Team is subscribed to branch lp:~openerp-dev/openobject-addons/trunk-contact-google-sync.
=== modified file 'import_google_contact/security/ir.model.access.csv'
--- import_google_contact/security/ir.model.access.csv 2011-05-10 12:56:12 +0000
+++ import_google_contact/security/ir.model.access.csv 2011-05-16 04:37:25 +0000
@@ -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
=== modified file 'import_google_contact/wizard/google_contact_import.py'
--- import_google_contact/wizard/google_contact_import.py 2011-05-10 12:56:12 +0000
+++ import_google_contact/wizard/google_contact_import.py 2011-05-16 04:37:25 +0000
@@ -22,7 +22,6 @@
import dateutil
from dateutil.parser import *
from pytz import timezone
-import os
try:
import gdata
@@ -41,7 +40,8 @@
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,9 +68,18 @@
}
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',''),
+ 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']])],
'customer': data.get('customer', False),
'supplier': data.get('supplier', False)
@@ -113,6 +122,16 @@
'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')
@@ -124,10 +143,13 @@
else:
time_zone = tools.get_server_timezone()
au_tz = timezone(time_zone)
-
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,
@@ -154,6 +176,7 @@
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':
@@ -162,8 +185,9 @@
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)
@@ -185,7 +209,13 @@
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:
=== modified file 'import_google_contact/wizard/google_contact_import_view.xml'
--- import_google_contact/wizard/google_contact_import_view.xml 2011-05-11 07:28:05 +0000
+++ import_google_contact/wizard/google_contact_import_view.xml 2011-05-16 04:37:25 +0000
@@ -13,11 +13,9 @@
<field name="create_partner" colspan="4"/>
<newline/>
<group attrs="{'invisible': [('create_partner','!=','create_all')]}" colspan="4" col="4">
- <separator string="Partner status for this group:"/>
- <field name="customer"/>
- <newline/>
- <label string=""/>
- <field name="supplier"/>
+ <separator string="Partner status for this group:" colspan="4"/>
+ <field name="customer" colspan="4"/>
+ <field name="supplier" colspan="4"/>
</group>
</group>
<separator string="" colspan="4"/>
@@ -31,8 +29,7 @@
</form>
</field>
</record>
-
-
+
<record model="ir.actions.act_window" id="act_import_google_contacts_form">
<field name="name">Import Contacts</field>
<field name="type">ir.actions.act_window</field>
@@ -45,7 +42,7 @@
<menuitem id="menu_sync_contact"
- parent="base.menu_address_book"
+ parent="base.menu_address_book"
action="act_import_google_contacts_form"
sequence="40" />
</data>
Follow ups