[ADD]: Add Attendee in Meeting For sugarcrm

bzr revid: atp@tinyerp.com-20110411060216-obzpdy3cbm6vetid
This commit is contained in:
Atul Patel (OpenERP)
2011-04-11 11:32:16 +05:30
parent 51dc8821cc
commit 5e2bc14de9
2 changed files with 41 additions and 4 deletions
+19 -3
View File
@@ -424,9 +424,7 @@ def get_account(sugar_obj, cr, uid, val, context=None):
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):
@@ -460,6 +458,23 @@ 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 = {}
@@ -487,6 +502,7 @@ def import_meetings(sugar_obj, cr, uid, context=None):
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):
+22 -1
View File
@@ -25,7 +25,8 @@ from sugarsoap_services import *
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):
@@ -61,6 +62,26 @@ def relation_search(portType, sessionid, module_name=None, module_id=None, relat
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()