[IMP] sync_google_contact: Improve the view and fix for create parnter
bzr revid: sbh@tinyerp.com-20110217133143-onmd28wb9vlanyfz
This commit is contained in:
@@ -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',
|
||||
|
||||
@@ -7,17 +7,18 @@
|
||||
<field name="model">google.login</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Import Google Contacts">
|
||||
<group colspan="2" col="2">
|
||||
<field name="user"/>
|
||||
<field name="password" password="True"/>
|
||||
</group>
|
||||
<form string=" Google Login">
|
||||
<group width="300" height="150">
|
||||
<field name="user"/>
|
||||
<newline/>
|
||||
<field name="password" password="True"/>
|
||||
<newline/>
|
||||
<separator string="" colspan="4"/>
|
||||
<group colspan="2" col="2">
|
||||
<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+"/>
|
||||
</group>
|
||||
<button name="check_login_contact" string="Login" type="object" icon="terp-personal+"/>
|
||||
</group>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
@@ -38,7 +39,7 @@
|
||||
<group colspan="2" col="2">
|
||||
<button special="cancel" string="Cancel" icon="gtk-cancel"/>
|
||||
<button name="import_contact" string="Import Contacts" type="object" icon="terp-personal+"/>
|
||||
</group>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
Reference in New Issue
Block a user