openerp-dev-web team mailing list archive
-
openerp-dev-web team
-
Mailing list archive
-
Message #03185
lp:~openerp-dev/openobject-addons/trunk-contact-google-sync-import-wizard-uco into lp:~openerp-dev/openobject-addons/trunk-contact-google-sync
Ujjvala Collins (OpenERP) has proposed merging lp:~openerp-dev/openobject-addons/trunk-contact-google-sync-import-wizard-uco 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-import-wizard-uco/+merge/50287
[IMP] sync_google_contact:
----------------------------
-> by default don't create partner
-> a checkbox "create also partner"
if the checkbox is checked, create one partner by contact import
But here there is a mistake, all the contact are create in one partner
But what it asked is to create one partner per contact in google
One contact = one partner with one address
--
https://code.launchpad.net/~openerp-dev/openobject-addons/trunk-contact-google-sync-import-wizard-uco/+merge/50287
Your team OpenERP R&D Team is subscribed to branch lp:~openerp-dev/openobject-addons/trunk-contact-google-sync.
=== modified file 'google_base_account/wizard/google_login.py'
--- google_base_account/wizard/google_login.py 2011-02-17 11:28:36 +0000
+++ google_base_account/wizard/google_login.py 2011-02-18 09:23:14 +0000
@@ -21,7 +21,6 @@
from osv import fields,osv,orm
from tools.translate import _
-import gdata.contacts
import gdata.contacts.service
class google_login(osv.osv_memory):
@@ -40,7 +39,8 @@
gd_client.ProgrammaticLogin()
except Exception, e:
return False
- return gd_client
+ return gd_client
+
def check_login(self, cr, uid, ids, context=None):
if context == None:
context = {}
=== modified file 'google_base_account/wizard/google_login_view.xml'
--- google_base_account/wizard/google_login_view.xml 2011-02-14 13:37:07 +0000
+++ google_base_account/wizard/google_login_view.xml 2011-02-18 09:23:14 +0000
@@ -18,7 +18,7 @@
<separator string="" colspan="4"/>
<group colspan="2" col="2">
<button special="cancel" string="Cancel" icon="gtk-cancel"/>
- <button name="check_login" string="Login" type="object" icon="terp-personal+"/>
+ <button name="check_login" string="Login" type="object" icon="terp-check"/>
</group>
</form>
</field>
=== modified file 'sync_google_contact/wizard/google_contact_import.py'
--- sync_google_contact/wizard/google_contact_import.py 2011-02-18 05:27:12 +0000
+++ sync_google_contact/wizard/google_contact_import.py 2011-02-18 09:23:14 +0000
@@ -25,8 +25,6 @@
class google_contact_import(osv.osv_memory):
_inherit = 'google.login'
- _columns = {
- }
def default_get(self, cr, uid, fields, context=None):
res = super(google_contact_import, self).default_get(cr, uid, fields, context=context)
@@ -36,6 +34,7 @@
if 'password' in fields:
res.update({'password': user_obj.gmail_password})
return res
+
def check_login_contact(self, cr, uid, ids, context=None):
gd_client = self.check_login(cr, uid, ids, context=context)
if not gd_client:
@@ -63,24 +62,41 @@
class synchronize_google_contact(osv.osv_memory):
_name = "synchronize.base"
_inherit = 'synchronize.base'
+
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')
- gd_client=google.google_login(cr,uid,user_obj.gmail_user,user_obj.gmail_password)
- res=[]
+ gd_client = google.google_login(cr,uid,user_obj.gmail_user,user_obj.gmail_password)
+ res = []
if gd_client:
- groups=gd_client.GetGroupsFeed()
+ groups = gd_client.GetGroupsFeed()
for grp in groups.entry:
- res.append((grp.id.text ,grp.title.text))
+ res.append((grp.id.text, grp.title.text))
res.append(('none','None'))
- res.append(('all','All Group'))
- return res
+ res.append(('all','All Groups'))
+ return res
+
+ def _get_default_group(self, cr, uid, context=None):
+ return 'all'
+
_columns = {
'tools': fields.selection([('gmail','Gmail')], 'Tools'),
'create_partner': fields.boolean('Create Partner', help="It will create Partner for given gmail user otherwise only adds contacts in Partner Addresses.") ,
'group_name': fields.selection(_get_group, "Group Name", size=32,help="Choose which group to import, By defult it take all "),
-
- }
+ }
+
+ _defaults = {
+ 'group_name': _get_default_group,
+ }
+
+ def create_partner(self, cr, uid, ids, data={}, context=None):
+ partner_obj = self.pool.get('res.partner')
+ name = data.get('name', '')
+ partner_id = partner_obj.search(cr, uid, [('name','ilike',name)], context=context)
+ if not partner_id:
+ partner_id.append(partner_obj.create(cr, uid, {'name': name}, context=context))
+ data.update({'partner_id': partner_id and partner_id[0]})
+ return partner_id, data
def import_contact(self, cr, uid, ids, context=None):
addresss_obj = self.pool.get('res.partner.address')
@@ -88,52 +104,49 @@
user_obj = self.pool.get('res.users').browse(cr, uid, uid)
gmail_user = user_obj.gmail_user
gamil_pwd = user_obj.gmail_password
- google=self.pool.get('google.login')
- gd_client=google.google_login(cr,uid,user_obj.gmail_user,user_obj.gmail_password)
+ google = self.pool.get('google.login')
+ gd_client = google.google_login(cr,uid,user_obj.gmail_user,user_obj.gmail_password)
+
if not gmail_user or not gamil_pwd:
raise osv.except_osv(_('Error'), _("Please specify the user and password !"))
contact = gd_client.GetContactsFeed()
partner_id = []
addresses = []
- partner_ids=[]
+ 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
-# if not partner_id:
-# partner_id.append(partner_obj.create(cr, uid, {'name': partner_name}, context=context))
+ if obj.tools == 'gmail':
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[0])
- data.update({'partner_id': partner_id and partner_id[0]} )
-
- name = entry.title.text
+ partner_id = False
+ name = tools.ustr(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 or '',
'phone': phone_numbers,
'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, [('email','ilike',emails)])
- 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:
- addresss_obj.create(cr, uid, data, context=context)
+ if not contact_ids:
+ if obj.group_name and entry.group_membership_info:
+ 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':
+ addresses.append(addresss_obj.create(cr, uid, data, context=context))
else:
- if obj.group_name=='all':
- addresses.append(addresss_obj.create(cr, uid, data, context=context))
+ addresss_obj.write(cr, uid, contact_ids, data, context=context)
if not contact:
break
next = contact.GetNextLink()
=== modified file 'sync_google_contact/wizard/google_contact_import_view.xml'
--- sync_google_contact/wizard/google_contact_import_view.xml 2011-02-17 13:31:43 +0000
+++ sync_google_contact/wizard/google_contact_import_view.xml 2011-02-18 09:23:14 +0000
@@ -16,7 +16,7 @@
<separator string="" colspan="4"/>
<group colspan="4" col="4">
<button special="cancel" string="Cancel" icon="gtk-cancel"/>
- <button name="check_login_contact" string="Login" type="object" icon="terp-personal+"/>
+ <button name="check_login_contact" string="Login" type="object" icon="terp-check"/>
</group>
</group>
</form>
@@ -32,8 +32,9 @@
<form string="Import Google Contacts">
<group colspan="2" col="2">
<field name="tools"/>
- <field name="create_partner"/>
- <field name="group_name" />
+ <field name="group_name" />
+ <separator string="Do you want to create partner?" colspan="4"/>
+ <field name="create_partner"/>
</group>
<separator string="" colspan="4"/>
<group colspan="2" col="2">
Follow ups