for model in model_obj.browse(cr, uid, model_ids):
partner_address_id = model.res_id
address_id = address_obj.browse(cr, uid, partner_address_id)
- if address_id.partner_id:
- partner_id = address_id.partner_id
-
+ partner_id = address_id and address_id.partner_id or False
return partner_id, partner_address_id
def import_tasks(sugar_obj, cr, uid, context=None):
meeting_obj.import_data(cr, uid, fields, [datas], mode='update', current_module='sugarcrm_import', noupdate=True, context=context)
return True
+def get_attendee_id(PortType, sessionid, module_name=None, module_id=None, val, context=None):
+ if not context:
+ context = {}
+ model_obj = sugar_obj.pool.get('ir.model.data')
+ att_obj = sugar_obj.pool.get('calendar.attendee')
+ user_xml_id, user_email_id = sugar.user_get_attendee_list(PortType, sessionid, module_name='Meetings', module_id=val.get('id'))
+ user_model_ids = find_mapped_id(sugar_obj, cr, uid, 'res.users', user_xml_id, context)
+ user_resource_id = model_obj.browse(cr, uid, user_model_ids)
+ if user_resource_id:
+ user_id = user_resource_id[0].res_id
+ attendees = att_obj.create(cr, uid, {'user_id': user_id, 'email': user_email_id})
+ meeting_model_ids = find_mapped_id(sugar_obj, cr, uid, 'crm.meeting', val.get('id'), context)
+ meeting_xml_id = sugar_obj.pool.get('ir.model.data').browse(cr, uid, meeting_model_ids)
+ if meeting_xml_id:
+ meeting_obj.write(cr, uid, [meeting_xml_id[0].res_id], {'attendee_ids': [(4, attendees)]})
+ return True
+
def import_meetings(sugar_obj, cr, uid, context=None):
if not context:
context = {}
val['alarm_id/.id'] = get_alarm_id(sugar_obj, cr, uid, val.get('reminder_time'), context)
fields, datas = sugarcrm_fields_mapping.sugarcrm_fields_mapp(val, map_meeting)
meeting_obj.import_data(cr, uid, fields, [datas], mode='update', current_module='sugarcrm_import', noupdate=True, context=context)
+ get_attendee_id(portType, sessionid, module_name=None, module_id=None, val, context)
return True
def get_calls_state(sugar_obj, cr, uid, val,context=None):
from sugarsoap_services_types import *
from osv import osv
from tools.translate import _
-
+import base64
+from lxml import etree
class LoginError(Exception): pass
def login(username, password, url):
ans_list.append(i.get_element_id())
return ans_list
+def user_get_attendee_list(portType, sessionid, module_name=None, module_id=None):
+ se_req = get_attendee_listRequest()
+ se_req._session = sessionid
+ se_req._module_name = module_name
+ se_req._id = module_id
+ se_resp = portType.get_attendee_list(se_req)
+ list = se_resp.get_element_return()
+ arch = base64.decodestring(list.Result)
+ eview = False
+ attende_id = False
+ attende_email_id = False
+ eview = etree.XML(arch)
+ for child in eview:
+ for ch in child.getchildren():
+ if ch.tag == 'id':
+ attende_id = ch.text
+ if ch.tag == 'email1':
+ attende_email_id = ch.text
+ return attende_id, attende_email_id
+
def search(portType, sessionid, module_name=None):
se_req = get_entry_listRequest()