[MERGE] Merge outlook improvement

bzr revid: sbh@tinyerp.com-20101210110613-t2y1i92u9kbxpsk6
This commit is contained in:
Sbh (OpenERP)
2010-12-10 16:36:13 +05:30
7 changed files with 49 additions and 11 deletions
+1
View File
@@ -8,6 +8,7 @@ Pre requirements :
http://starship.python.net/crew/mhammond/win32/
3.If you are using MS Outlook 2007 than you are required to install "Microsoft Exchange Server MAPI Client and Collaboration Data Objects 1.2.1 (CDO 1.21)". It can be downloaded from
http://www.microsoft.com/downloads/en/details.aspx?familyid=2714320d-c997-4de1-986f-24f081725d36&displaylang=en
and With MS Outlook2003 Install inbuilt Collaboration Data Objects(CDO) while installing Outlook.
How to install openerp-outlook plug-in?
======================================================================================
+2 -1
View File
@@ -55,7 +55,8 @@ class outlook_installer(osv.osv_memory):
Pre-requirements :
1. Python 2.6+ .
2. Python for Windows extensions - PyWin32 this module for python must be installed for appropriate version of the Python.
3. If you are using MS Outlook 2007 than you are required to install "Microsoft Exchange Server MAPI Client and Collaboration Data Objects 1.2.1 (CDO 1.21)".
3. If With MS Outlook 2007 it is required to install externally "Microsoft Exchange Server MAPI Client and Collaboration Data Objects 1.2.1 (CDO 1.21)".
and With MS Outlook2003 Install inbuilt Collaboration Data Objects(CDO) while installing Outlook.
How to install openerp-outlook plug-in?
1. Save the executable plug-in file.
@@ -151,8 +151,10 @@ class OutlookAddin:
activeExplorer = application.ActiveExplorer()
if activeExplorer is not None:
bars = activeExplorer.CommandBars
new_bar = bars.Add('Open ERP',0,0,0)
menu_bar = bars.Item("Menu Bar")
tools_menu = menu_bar.Controls(5)
tools_menu = CastTo(tools_menu, "CommandBarPopup")
@@ -171,8 +173,9 @@ class OutlookAddin:
item.Enabled = True
toolbar = bars.Item("Standard")
openerp_bar = bars.Item('Open ERP')
item = toolbar.Controls.Add(Type=constants.msoControlButton, Temporary=True)
item = openerp_bar.Controls.Add(Type=constants.msoControlButton, Temporary=True)
# Hook events for the item
item = self.toolbarButton = DispatchWithEvents(item, ArchiveEvent)
item.Caption="Push"
@@ -182,14 +185,14 @@ class OutlookAddin:
# Adding Menu in Menu Bar to the Web Menu of the Outlook
toolbarweb = bars.Item("Web")
item = toolbarweb.Controls.Add(Type = constants.msoControlButton, Temporary = True)
item = openerp_bar.Controls.Add(Type = constants.msoControlButton, Temporary = True)
item = self.toolbarButtonOpenPartner = DispatchWithEvents(item, OpenPartner)
item.Caption = "Partner"
item.TooltipText = "Click to Open OpenERP Partner Contact Information."
item.Enabled = True
item = toolbarweb.Controls.Add(Type = constants.msoControlButton, Temporary = True)
item = openerp_bar.Controls.Add(Type = constants.msoControlButton, Temporary = True)
item = self.toolbarButtonOpenDocument = DispatchWithEvents(item, OpenDocument)
item.Caption = "Document"
item.TooltipText = "Click to Open Document that has been pushed to server."
@@ -225,10 +228,10 @@ class OutlookAddin:
item.Enabled = True
def OnDisconnection(self, mode, custom):
self.item.close()
mngr = manager.GetManager()
mngr.config['login'] = False
mngr.SaveConfig()
self.item.close()
pass
def OnAddInsUpdate(self, custom):
pass
@@ -205,6 +205,8 @@ def resetConnAttribs(window):
NewConn.setitem('_uname', config['uname'])
NewConn.setitem('_pwd', config['pwd'])
NewConn.setitem('_login', str(config['login']))
NewConn.setitem('_webserver',manager.config['webserver'])
NewConn.setitem('_webport',manager.config['webport'])
return
def setConnAttribs(server, port, manager):
@@ -224,6 +226,8 @@ def setConnAttribs(server, port, manager):
NewConn.setitem('_pwd', manager.config['pwd'])
NewConn.setitem('_login', str(manager.config['login']))
NewConn.setitem('_obj_list', manager.config['objects'])
NewConn.setitem('_webserver',manager.config['webserver'])
NewConn.setitem('_webport',manager.config['webport'])
return
def getConnAttributes(manager):
@@ -235,6 +239,13 @@ def getConnAttributes(manager):
manager.config['uname'] = NewConn.getitem('_uname')
manager.config['pwd'] = NewConn.getitem('_pwd')
manager.config['login'] = NewConn.getitem('_login')
manager.config['webserver'] = NewConn.getitem('_webserver')
manager.config['webport'] = NewConn.getitem('_webport')
return
def setWebConnAttribs(server, port, manager):
manager.config = manager.LoadConfig()
NewConn.setitem('_webserver',server)
NewConn.setitem('_webport',port)
return
def getMessage(e):
@@ -306,6 +317,7 @@ class WEBOKButtonProcessor(ButtonProcessor):
if server.strip() == "" or server.strip() == "http:\\\\":
win32ui.MessageBox("Invalid web Server address.", "OpenERP Connection", flag_excl)
return
setWebConnAttribs(server, port, self.mngr)
web_server = server
web_server_port = port
win32gui.EndDialog(self.window.hwnd, id)
@@ -831,6 +843,7 @@ def CreateContact(btnProcessor,*args):
win32ui.MessageBox("Contact name or Email id is Missing\nPlease fill those information", "Create Contact", flag_error)
return
try:
NewConn.CreateContact(str(res))
if not partner:
msg="New contact created."
else:
@@ -848,15 +861,23 @@ def SetAllText(txtProcessor,*args):
# Set values for url, uname, pwd from config file
global web_server
global web_server_port
serverBox = txtProcessor.GetControl(txtProcessor.other_ids[2])
win32gui.SendMessage(serverBox, win32con.WM_SETTEXT, 0, "http:\\\\"+str(web_server)+":"+str(web_server_port))
url = NewConn.getitem('_uri')
tbox = txtProcessor.GetControl()
win32gui.SendMessage(tbox, win32con.WM_SETTEXT, 0, str(url))
uname = NewConn.getitem('_uname')
tbox = txtProcessor.GetControl(txtProcessor.other_ids[0])
win32gui.SendMessage(tbox, win32con.WM_SETTEXT, 0, str(uname))
passbox = txtProcessor.GetControl(txtProcessor.other_ids[1])
pwd = NewConn.getitem('_pwd')
win32gui.SendMessage(passbox, win32con.WM_SETTEXT, 0, str(pwd))
serverBox = txtProcessor.GetControl(txtProcessor.other_ids[2])
web_server = NewConn.getitem('_webserver')
web_server_port = NewConn.getitem('_webport')
webstr = "http:\\\\"+str(web_server)+":"+str(web_server_port)
win32gui.SendMessage(serverBox, win32con.WM_SETTEXT, 0, str(webstr))
def SetDefaultList(listProcessor,*args):
import win32api
hwndList = listProcessor.GetControl()
@@ -956,6 +977,9 @@ def SetDefaultContact(txtProcessor,*args):
txtProcessor.init_done = True
def setCheckList(groupProcessor,*args):
b = check()
if not b:
return
try:
hinst = win32gui.dllhandle
objs = groupProcessor.window.manager.config['objects']
@@ -1382,8 +1406,14 @@ def OpenPartnerForm(txtProcessor,*args):
txtProcessor.init_done=True
return
try:
linktopartner = "http:\\\\"+web_server+":"+str(web_server_port)+"\\openerp\\form\\view?model=res.partner&id="+str(vals)
win32gui.SendMessage(partner_link, win32con.WM_SETTEXT, 0, linktopartner)
linktopartner = "http://"+web_server+":"+str(web_server_port)+"/openerp/form/view?model=res.partner&id="+str(vals)
win32gui.SendMessage(partner_link, win32con.WM_SETTEXT, 0, str(linktopartner))
# import urllib
# encode = urllib.urlencode('/openerp/form/view?model=res.partner&id='+str(vals))
# weburl = 'http://'+web_server+':'+str(web_server_port)
# linktopartner = weburl + "?next=" + encode
# win32gui.SendMessage(partner_link, win32con.WM_SETTEXT, 0, linktopartner)
except Exception,e:
win32ui.MessageBox("Error While Opening Partner.\n"+str(e),"Open Partner", flag_error)
webbrowser.open_new(linktopartner)
Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.0 KiB

After

Width:  |  Height:  |  Size: 11 KiB

@@ -140,7 +140,7 @@ class OpenERPManager:
def LoadConfig(self):
import win32ui
path = os.path.join(self.data_directory, 'tiny.ini')
data = {'server' : 'localhost', 'port' : '8069', 'protocol' : 'http://', 'database' : '', 'objects' : self.default_objects, 'uname':'admin', 'pwd':'a', 'login':False}
data = {'server' : 'localhost', 'port' : '8069', 'protocol' : 'http://', 'database' : '', 'objects' : self.default_objects, 'uname':'admin', 'pwd':'a', 'login':False,'webserver':'localhost','webport':'8080'}
if os.path.exists(path):
fp = open(path, 'r')
data = fp.readlines()
@@ -64,10 +64,12 @@ class XMLRpcConn(object):
_reg_clsid_ = "{C6399AFD-763A-400F-8191-7F9D0503CAE2}"
_reg_progid_ = "Python.OpenERP.XMLRpcConn"
_reg_policy_spec_ = "win32com.server.policy.EventHandlerPolicy"
def __init__(self,server='localhost',port=8069,uri='http://localhost:8069'):
def __init__(self,server='localhost',port=8069,uri='http://localhost:8069',webserver='localhost', webport=8080):
self._server=server
self._port=port
self._uri=uri
self._webserver=webserver
self._webport=webport
self._obj_list=[]
self._dbname=''
self._uname='admin'
@@ -79,6 +81,7 @@ class XMLRpcConn(object):
self.partner_id_list=None
self.protocol=None
def getitem(self, attrib):
v=self.__getattribute__(attrib)
return str(v)