From 79c8fd0c8bc2c1ab7af8e6afd83c79ea639ebd42 Mon Sep 17 00:00:00 2001 From: "Atul Patel (OpenERP)" Date: Mon, 11 Apr 2011 12:18:50 +0530 Subject: [PATCH] [ADD]: Invite Multiple Attendee for One Meetings bzr revid: atp@tinyerp.com-20110411064850-r6747b32nglan069 --- addons/import_sugarcrm/import_sugarcrm.py | 25 ++++++++++++++--------- addons/import_sugarcrm/sugar.py | 10 ++++----- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/addons/import_sugarcrm/import_sugarcrm.py b/addons/import_sugarcrm/import_sugarcrm.py index 26c2559f982..44c67621dbf 100644 --- a/addons/import_sugarcrm/import_sugarcrm.py +++ b/addons/import_sugarcrm/import_sugarcrm.py @@ -464,16 +464,21 @@ def get_attendee_id(sugar_obj, cr, uid, PortType, sessionid, module_name, module model_obj = sugar_obj.pool.get('ir.model.data') att_obj = sugar_obj.pool.get('calendar.attendee') meeting_obj = sugar_obj.pool.get('crm.meeting') - user_xml_id, user_email_id = sugar.user_get_attendee_list(PortType, sessionid, module_name, module_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', module_id, context) - meeting_xml_id = model_obj.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)]}) + user_xml_ids, user_email_ids = sugar.user_get_attendee_list(PortType, sessionid, module_name, module_id) + for user_xml_id in user_xml_ids: + 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 + attend_ids = att_obj.search(cr, uid, [('user_id', '=', user_id)]) + if attend_ids: + attendees = attend_ids[0] + else: + attendees = att_obj.create(cr, uid, {'user_id': user_id, 'email': user_email_ids[0]}) + meeting_model_ids = find_mapped_id(sugar_obj, cr, uid, 'crm.meeting', module_id, context) + meeting_xml_id = model_obj.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): diff --git a/addons/import_sugarcrm/sugar.py b/addons/import_sugarcrm/sugar.py index 0425bd1a73d..8b25c5ec974 100644 --- a/addons/import_sugarcrm/sugar.py +++ b/addons/import_sugarcrm/sugar.py @@ -71,16 +71,16 @@ def user_get_attendee_list(portType, sessionid, module_name=None, module_id=None list = se_resp.get_element_return() arch = base64.decodestring(list.Result) eview = False - attende_id = False - attende_email_id = False + attende_id = [] + attende_email_id = [] eview = etree.XML(arch) for child in eview: for ch in child.getchildren(): if ch.tag == 'id': - attende_id = ch.text + attende_id.append(ch.text) if ch.tag == 'email1': - attende_email_id = ch.text - return attende_id, attende_email_id + attende_email_id.append(ch.text) + return attende_id,attende_email_id def search(portType, sessionid, module_name=None):