From 7da2e252244548646ce26d3a8620e812b885cf3f Mon Sep 17 00:00:00 2001 From: jam-openerp Date: Tue, 16 Nov 2010 17:54:00 +0530 Subject: [PATCH] [IMP] Outlook : Archive eml file with object Instead of the textfile excpet object those who have link bzr revid: jam@tinyerp.com-20101116122400-cn7m0bpwi1gjrlkb --- .../dialogs/dialog_map.py | 19 ++++---- .../plugin/openerp-outlook-plugin/eml.py | 2 +- .../openerp-outlook-plugin/tiny_xmlrpc.py | 46 +++++++++---------- 3 files changed, 32 insertions(+), 35 deletions(-) diff --git a/addons/outlook/plugin/openerp-outlook-plugin/dialogs/dialog_map.py b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/dialog_map.py index 2dfd0fdba87..a645270eb49 100644 --- a/addons/outlook/plugin/openerp-outlook-plugin/dialogs/dialog_map.py +++ b/addons/outlook/plugin/openerp-outlook-plugin/dialogs/dialog_map.py @@ -272,15 +272,15 @@ class OKButtonProcessor(ButtonProcessor): return setConnAttribs(server, port, self.mngr) if str(NewConn.getitem('_running')) == 'False': - msg = "No server running on host '%s' at port '%d'. Press ignore to still continue with this configuration?"%(server,port) - r=win32ui.MessageBox(msg, "OpenERP Connection", win32con.MB_ABORTRETRYIGNORE | win32con.MB_ICONQUESTION) - if r==3: - resetConnAttribs(self.window) - return - elif r==4: - self.OnClicked(id) - elif r==5: - setConnAttribs(server, port, self.mngr) + msg = "No server running on host '%s' at port '%d'. Press ignore to still continue with this configuration?"%(server,port) + r=win32ui.MessageBox(msg, "OpenERP Connection", win32con.MB_ABORTRETRYIGNORE | win32con.MB_ICONQUESTION) + if r==3: + resetConnAttribs(self.window) + return + elif r==4: + self.OnClicked(id) + elif r==5: + setConnAttribs(server, port, self.mngr) win32gui.EndDialog(self.window.hwnd, id) class DoneButtonProcessor(ButtonProcessor): @@ -661,7 +661,6 @@ def CreateCase(btnProcessor,*args): if not section: win32ui.MessageBox("Documents can not be created.", "Documents Setting", flag_excl) return - hwndList = win32gui.GetDlgItem(btnProcessor.window.hwnd, btnProcessor.other_ids[1]) partner_ids=[] r = GetSelectedItems(hwndList) diff --git a/addons/outlook/plugin/openerp-outlook-plugin/eml.py b/addons/outlook/plugin/openerp-outlook-plugin/eml.py index cca4a26493e..fe455c91117 100644 --- a/addons/outlook/plugin/openerp-outlook-plugin/eml.py +++ b/addons/outlook/plugin/openerp-outlook-plugin/eml.py @@ -90,4 +90,4 @@ def generateEML(mail): if (success == False): print cemail.lastErrorText() sys.exit() - return new_mail \ No newline at end of file + return new_mail, eml_path \ No newline at end of file diff --git a/addons/outlook/plugin/openerp-outlook-plugin/tiny_xmlrpc.py b/addons/outlook/plugin/openerp-outlook-plugin/tiny_xmlrpc.py index 7ad2bca13b4..36646fb1299 100644 --- a/addons/outlook/plugin/openerp-outlook-plugin/tiny_xmlrpc.py +++ b/addons/outlook/plugin/openerp-outlook-plugin/tiny_xmlrpc.py @@ -80,25 +80,25 @@ class XMLRpcConn(object): self.protocol=None def getitem(self, attrib): - v=self.__getattribute__(attrib) - return str(v) + v=self.__getattribute__(attrib) + return str(v) def setitem(self, attrib, value): return self.__setattr__(attrib, value) def GetDBList(self): - conn = xmlrpclib.ServerProxy(self._uri + '/xmlrpc/db') - try: - db_list = execute(conn, 'list') - if db_list == False: - self._running=False - return [] - else: - self._running=True - except: - db_list=-1 - self._running=True - return db_list + conn = xmlrpclib.ServerProxy(self._uri + '/xmlrpc/db') + try: + db_list = execute(conn, 'list') + if db_list == False: + self._running=False + return [] + else: + self._running=True + except: + db_list=-1 + self._running=True + return db_list def login(self,dbname, user, pwd): self._dbname = dbname @@ -195,7 +195,7 @@ class XMLRpcConn(object): } obj_list= ['crm.lead','project.issue','hr.applicant','res.partner'] if rec[0] not in obj_list: - ids = self.CreateEmailAttachment(rec,mail) + self.CreateEmailAttachment(rec,mail) result = {} if attachments: result = self.MakeAttachment([rec], mail) @@ -269,7 +269,7 @@ class XMLRpcConn(object): id = -1 try: conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') - email=eml.generateEML(mail) + email, path = eml.generateEML(mail) message_id = None session = win32com.client.Dispatch("MAPI.session") session.Logon('Outlook') @@ -507,6 +507,8 @@ class XMLRpcConn(object): return country def CreateEmailAttachment(self, rec, mail): + import eml + email, path = eml.generateEML(mail) conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') obj = rec[0] obj_id = rec[1] @@ -524,16 +526,12 @@ class XMLRpcConn(object): l = 64 - len(fn) f = fn.split('.') fn = f[0][0:l] + '.' + f[-1] - fn = fn[:-4]+'.txt' - f = open(fn,"w") - body = mail.Body.encode("utf-8") - f.writelines(body) - f.close() - f=open(fn,"rb") + fn = fn[:-4]+".eml" + f = open(path) content = "".join(f.readlines()).encode('base64') f.close() - res['name'] = ustr((mail.Subject).replace(' ','')) - res['datas_fname'] = ustr(fn) + res['name'] = fn + res['datas_fname'] = fn res['datas'] = content res['res_id'] = obj_id id = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'ir.attachment','create',res)