From 0fdc4ae6d3e336a0d880b3cba4cd6b2f9e5607c4 Mon Sep 17 00:00:00 2001 From: "DBR (OpenERP)" Date: Mon, 1 Nov 2010 12:05:10 +0530 Subject: [PATCH 01/38] [IMP]: Changes in icons bzr revid: dbr@tinyerp.com-20101101063510-u2htyfa060xobnwk --- addons/account/account_view.xml | 4 ++-- addons/account/project/project_view.xml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/account/account_view.xml b/addons/account/account_view.xml index 8e4453d382a..ff04697a60b 100644 --- a/addons/account/account_view.xml +++ b/addons/account/account_view.xml @@ -380,7 +380,7 @@ - + @@ -1689,7 +1689,7 @@ - + diff --git a/addons/account/project/project_view.xml b/addons/account/project/project_view.xml index 8df9e00be0f..69c0df65014 100644 --- a/addons/account/project/project_view.xml +++ b/addons/account/project/project_view.xml @@ -196,7 +196,7 @@ - + From 548e60b23f82ab6a69690b082b38efc752033284 Mon Sep 17 00:00:00 2001 From: "sbh (Open ERP)" Date: Wed, 10 Nov 2010 12:47:19 +0530 Subject: [PATCH 02/38] [FIX] base_report_desinger: push report to db bzr revid: sbh@tinyerp.com-20101110071719-u3owi49sk3nm5pel --- addons/base_report_designer/base_report_designer.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/addons/base_report_designer/base_report_designer.py b/addons/base_report_designer/base_report_designer.py index 283c8ec7e23..5eb4c89a43f 100644 --- a/addons/base_report_designer/base_report_designer.py +++ b/addons/base_report_designer/base_report_designer.py @@ -22,7 +22,6 @@ from osv import osv from openerp_sxw2rml import sxw2rml from StringIO import StringIO -from report import interface import base64 import pooler import tools @@ -57,7 +56,7 @@ class report_xml(osv.osv): 'report_rml_content': str(sxw2rml(sxwval, xsl=fp.read())), }) db = pooler.get_db_only(cr.dbname) - interface.register_all(db) + self.pool.get('ir.actions.report.xml').register_all(cr = db.cursor()) return True def report_get(self, cr, uid, report_id, context={}): From bdb8814237c28f0b296cd7173dc580aa48e85b69 Mon Sep 17 00:00:00 2001 From: "uco (OpenERP)" Date: Wed, 10 Nov 2010 17:29:59 +0530 Subject: [PATCH 03/38] [FIX] project: Fixed encoding error on task name in Delegate wizard. lp bug: https://launchpad.net/bugs/670914 fixed bzr revid: uco@tinyerp.com-20101110115959-nd8h9v8910hr3jvc --- addons/project/wizard/project_task_delegate.py | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/addons/project/wizard/project_task_delegate.py b/addons/project/wizard/project_task_delegate.py index ac160fb6c94..9fc5d21e424 100644 --- a/addons/project/wizard/project_task_delegate.py +++ b/addons/project/wizard/project_task_delegate.py @@ -48,20 +48,21 @@ class project_task_delegate(osv.osv_memory): record_id = context and context.get('active_id', False) or False task_pool = self.pool.get('project.task') task = task_pool.browse(cr, uid, record_id, context=context) + task_name = (task.name).encode('utf-8') if 'name' in fields: - if task.name.startswith(_('CHECK: ')): - newname = str(task.name).replace(_('CHECK: '), '') + if task_name.startswith(_('CHECK: ')): + newname = str(task_name).replace(_('CHECK: '), '') else: - newname = task.name or '' + newname = task_name or '' res.update({'name': newname}) if 'planned_hours' in fields: res.update({'planned_hours': task.remaining_hours or 0.0}) if 'prefix' in fields: - if task.name.startswith(_('CHECK: ')): - newname = str(task.name).replace(_('CHECK: '), '') + if task_name.startswith(_('CHECK: ')): + newname = str(task_name).replace(_('CHECK: '), '') else: - newname = task.name or '' + newname = task_name or '' prefix = _('CHECK: ') + newname res.update({'prefix': prefix}) if 'new_task_description' in fields: @@ -103,6 +104,7 @@ class project_task_delegate(osv.osv_memory): task_id = context.get('active_id', False) task_pool = self.pool.get('project.task') delegate_data = self.read(cr, uid, ids, context=context)[0] + delegate_data['name'] = (delegate_data['name']).decode('utf-8') task_pool.do_delegate(cr, uid, task_id, delegate_data, context=context) return {} From f58df4820f36bfec3ffad087af275de5c2af7e5d Mon Sep 17 00:00:00 2001 From: "uco (OpenERP)" Date: Thu, 11 Nov 2010 15:44:26 +0530 Subject: [PATCH 04/38] [FIX] crm: Corrected handling text/html type emails. Converts html tags to plain text. lp bug: https://launchpad.net/bugs/644325 fixed bzr revid: uco@tinyerp.com-20101111101426-6t71jz3pk8jtyk6a --- addons/mail_gateway/mail_gateway.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/addons/mail_gateway/mail_gateway.py b/addons/mail_gateway/mail_gateway.py index 696c7571cfb..d6bbd59eaaf 100644 --- a/addons/mail_gateway/mail_gateway.py +++ b/addons/mail_gateway/mail_gateway.py @@ -486,6 +486,8 @@ class mailgate_tool(osv.osv_memory): if not msg_txt.is_multipart() or 'text/plain' in msg.get('Content-Type', ''): encoding = msg_txt.get_content_charset() body = msg_txt.get_payload(decode=True) + if 'text/html' in msg_txt.get('Content-Type', ''): + body = tools.html2plaintext(body) msg['body'] = tools.ustr(body, encoding) attachments = {} From 3ae841b50ac976c8e889076916539e2100edd0fa Mon Sep 17 00:00:00 2001 From: "sbh (Open ERP)" Date: Fri, 12 Nov 2010 15:06:49 +0530 Subject: [PATCH 05/38] [IMP] base_report_designer: Improve code bzr revid: sbh@tinyerp.com-20101112093649-d4ovbz0z8w7vxedy --- addons/base_report_designer/base_report_designer.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/addons/base_report_designer/base_report_designer.py b/addons/base_report_designer/base_report_designer.py index 5eb4c89a43f..b6258b602ba 100644 --- a/addons/base_report_designer/base_report_designer.py +++ b/addons/base_report_designer/base_report_designer.py @@ -55,8 +55,9 @@ class report_xml(osv.osv): 'report_sxw_content': base64.decodestring(file_sxw), 'report_rml_content': str(sxw2rml(sxwval, xsl=fp.read())), }) - db = pooler.get_db_only(cr.dbname) - self.pool.get('ir.actions.report.xml').register_all(cr = db.cursor()) + + self.pool.get('ir.actions.report.xml').register_all(cr = cr) + cr.commit() return True def report_get(self, cr, uid, report_id, context={}): From 0397468a05569c330aa575ddb80263e45c2f92e2 Mon Sep 17 00:00:00 2001 From: "atp (Open ERP)" Date: Fri, 12 Nov 2010 15:44:16 +0530 Subject: [PATCH 06/38] [IMP]: Improve search view of Task hours report of project_timesheet module and file descriptor close() in document module. bzr revid: atp@tinyerp.co.in-20101112101416-51opsl6u147argqm --- addons/document/std_index.py | 16 ++++++++-- .../report/task_report_view.xml | 29 +++++++++++++------ 2 files changed, 33 insertions(+), 12 deletions(-) diff --git a/addons/document/std_index.py b/addons/document/std_index.py index 2a588a017c1..7cfcd36e2dc 100644 --- a/addons/document/std_index.py +++ b/addons/document/std_index.py @@ -96,8 +96,13 @@ class DocIndex(indexer): def _doIndexFile(self,fname): fp = Popen(['antiword', fname], shell=False, stdout=PIPE).stdout - return _to_unicode(fp.read()) - + try: + file_data = _to_unicode(fp.read()) + finally: + fp.close() + + return file_data + cntIndex.register(DocIndex()) class DocxIndex(indexer): @@ -158,7 +163,12 @@ class PdfIndex(indexer): def _doIndexFile(self,fname): fp = Popen(['pdftotext', '-enc', 'UTF-8', '-nopgbrk', fname, '-'], shell=False, stdout=PIPE).stdout - return _to_unicode( fp.read()) + try: + file_data = _to_unicode( fp.read()) + finally: + fp.close() + + return file_data cntIndex.register(PdfIndex()) diff --git a/addons/project_timesheet/report/task_report_view.xml b/addons/project_timesheet/report/task_report_view.xml index 87949d6812a..8a6c3c0ce25 100644 --- a/addons/project_timesheet/report/task_report_view.xml +++ b/addons/project_timesheet/report/task_report_view.xml @@ -31,17 +31,29 @@ - - + + + - + - - - - + + + + + + @@ -64,8 +76,7 @@ report.timesheet.task.user form tree,graph - {"search_default_user_id":uid} - + {'search_default_month':1, 'search_default_group_user_id':1} From 149680b340381673e46a19deb9a2b8bb02f565a5 Mon Sep 17 00:00:00 2001 From: jam-openerp Date: Fri, 12 Nov 2010 16:59:20 +0530 Subject: [PATCH 07/38] [FIX] Bug lp 673960 bzr revid: jam@tinyerp.com-20101112112920-dgv2dpw6zt34hzgk --- addons/crm_caldav/crm_caldav_setup.xml | 2 +- addons/project_caldav/project_caldav_setup.xml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/crm_caldav/crm_caldav_setup.xml b/addons/crm_caldav/crm_caldav_setup.xml index 1a103f61811..5d2c1fe4a13 100644 --- a/addons/crm_caldav/crm_caldav_setup.xml +++ b/addons/crm_caldav/crm_caldav_setup.xml @@ -27,7 +27,7 @@ - [('user_id','=', dctx_user_id)] + [('user_id','=', uid)] vevent diff --git a/addons/project_caldav/project_caldav_setup.xml b/addons/project_caldav/project_caldav_setup.xml index 96d9c0ad3b6..1c280054b8e 100644 --- a/addons/project_caldav/project_caldav_setup.xml +++ b/addons/project_caldav/project_caldav_setup.xml @@ -24,7 +24,7 @@ - [('user_id','=', dctx_user_id)] + [('user_id','=', uid)] vtodo @@ -269,4 +269,4 @@ - \ No newline at end of file + From bc3c1f7a22dbca3c418f700cf48883617e53933e Mon Sep 17 00:00:00 2001 From: jam-openerp Date: Fri, 12 Nov 2010 17:16:44 +0530 Subject: [PATCH 08/38] [FIX] Cleaning of the File bzr revid: jam@tinyerp.com-20101112114644-u2rlqco4mebcl2yn --- .../openerp-outlook-plugin/tiny_xmlrpc.py | 748 +++++++++--------- 1 file changed, 374 insertions(+), 374 deletions(-) diff --git a/addons/outlook/plugin/openerp-outlook-plugin/tiny_xmlrpc.py b/addons/outlook/plugin/openerp-outlook-plugin/tiny_xmlrpc.py index c4efe23cddc..d91edd704d0 100644 --- a/addons/outlook/plugin/openerp-outlook-plugin/tiny_xmlrpc.py +++ b/addons/outlook/plugin/openerp-outlook-plugin/tiny_xmlrpc.py @@ -27,11 +27,13 @@ import time from manager import ustr from win32com.mapi import mapitags import pythoncom -import win32com +import win32com import win32ui + waittime = 10 wait_count = 0 wait_limit = 12 + def execute(connector, method, *args): global wait_count res = False @@ -68,447 +70,444 @@ class XMLRpcConn(object): self._server=server self._port=port self._uri=uri - self._obj_list=[] - self._dbname='' - self._uname='admin' - self._pwd='a' - self._login=False - self._running=False - self._uid=False - self._iscrm=True - self.partner_id_list=None - self.protocol=None + self._obj_list=[] + self._dbname='' + self._uname='admin' + self._pwd='a' + self._login=False + self._running=False + self._uid=False + self._iscrm=True + self.partner_id_list=None + 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) + 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 - self._uname = user - self._pwd = pwd - conn = xmlrpclib.ServerProxy(str(self._uri) + '/xmlrpc/common') - uid = execute(conn,'login',dbname, ustr(user), ustr(pwd)) - return uid + self._dbname = dbname + self._uname = user + self._pwd = pwd + conn = xmlrpclib.ServerProxy(str(self._uri) + '/xmlrpc/common') + uid = execute(conn,'login',dbname, ustr(user), ustr(pwd)) + return uid def GetAllObjects(self): - conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') - ids = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'ir.model','search',[]) - objects = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'ir.model','read',ids,['model']) - obj_list = [item['model'] for item in objects] - return obj_list + conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') + ids = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'ir.model','search',[]) + objects = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'ir.model','read',ids,['model']) + obj_list = [item['model'] for item in objects] + return obj_list def GetObjList(self): - self._obj_list=list(self._obj_list) - self._obj_list.sort(reverse=True) - return self._obj_list + self._obj_list=list(self._obj_list) + self._obj_list.sort(reverse=True) + return self._obj_list def InsertObj(self, obj_title,obj_name,image_path): - self._obj_list=list(self._obj_list) - self._obj_list.append((obj_title,obj_name,ustr(image_path))) - self._obj_list.sort(reverse=True) + self._obj_list=list(self._obj_list) + self._obj_list.append((obj_title,obj_name,ustr(image_path))) + self._obj_list.sort(reverse=True) def DeleteObject(self,sel_text): - self._obj_list=list(self._obj_list) - for obj in self._obj_list: - if obj[0] == sel_text: - self._obj_list.remove(obj) - break + self._obj_list=list(self._obj_list) + for obj in self._obj_list: + if obj[0] == sel_text: + self._obj_list.remove(obj) + break def ArchiveToOpenERP(self, recs, mail): - import win32con - conn = xmlrpclib.ServerProxy(self._uri + '/xmlrpc/object') - flag = False - new_msg = ext_msg ="" - message_id = referances = None - try: - session = win32com.client.Dispatch("MAPI.session") - session.Logon('Outlook') - objMessage = session.GetMessage(mail.EntryID, mail.Parent.StoreID) - objFields = objMessage.Fields - strheader = objFields.Item(mapitags.PR_TRANSPORT_MESSAGE_HEADERS) - strheader = ustr(strheader).encode('iso-8859-1') - headers = {} - strheader = strheader.replace("\n ", " ").splitlines() - for line in strheader: - split_here = line.find(":") - headers[line[:split_here]] = line[split_here:] - temp1 = headers.get('Message-ID') - temp2 = headers.get('Message-Id') - referances = headers.get('References') - if temp1 == None: message_id = temp2 - if temp2 == None: message_id = temp1 - startCut = message_id.find("<") - endCut = message_id.find(">") - message_id = message_id[startCut:endCut+1] - if not referances == None: - startCut = referances.find("<") - endCut = referances.find(">") - referances = referances[startCut:endCut+1] - except Exception,e: - win32ui.MessageBox(str(e),"Archive To OpenERP") - return - attachments=mail.Attachments - for rec in recs: #[('res.partner', 3, 'Agrolait')] + import win32con + conn = xmlrpclib.ServerProxy(self._uri + '/xmlrpc/object') + flag = False + new_msg = ext_msg ="" + message_id = referances = None + try: + session = win32com.client.Dispatch("MAPI.session") + session.Logon('Outlook') + objMessage = session.GetMessage(mail.EntryID, mail.Parent.StoreID) + objFields = objMessage.Fields + strheader = objFields.Item(mapitags.PR_TRANSPORT_MESSAGE_HEADERS) + strheader = ustr(strheader).encode('iso-8859-1') + headers = {} + strheader = strheader.replace("\n ", " ").splitlines() + for line in strheader: + split_here = line.find(":") + headers[line[:split_here]] = line[split_here:] + temp1 = headers.get('Message-ID') + temp2 = headers.get('Message-Id') + referances = headers.get('References') + if temp1 == None: message_id = temp2 + if temp2 == None: message_id = temp1 + startCut = message_id.find("<") + endCut = message_id.find(">") + message_id = message_id[startCut:endCut+1] + if not referances == None: + startCut = referances.find("<") + endCut = referances.find(">") + referances = referances[startCut:endCut+1] + except Exception,e: + win32ui.MessageBox(str(e),"Archive To OpenERP") + return + attachments=mail.Attachments + for rec in recs: #[('res.partner', 3, 'Agrolait')] model = rec[0] res_id = rec[1] #Check if mailgate installed object_id = execute ( conn,'execute',self._dbname,int(self._uid),self._pwd,'ir.model','search',[('model','=','mailgate.message')]) if not object_id: - win32ui.MessageBox("Mailgate is not installed on your configured database '%s' !!\n\nPlease install it to archive the mail."%(self._dbname),"Mailgate not installed",win32con.MB_ICONERROR) - return + win32ui.MessageBox("Mailgate is not installed on your configured database '%s' !!\n\nPlease install it to archive the mail."%(self._dbname),"Mailgate not installed",win32con.MB_ICONERROR) + return object_ids = execute ( conn,'execute',self._dbname,int(self._uid),self._pwd,'ir.model','search',[('model','=',model)]) object_name = execute( conn,'execute',self._dbname,int(self._uid),self._pwd,'ir.model','read',object_ids,['name'])[0]['name'] #Reading the Object ir.model Name ext_ids = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'mailgate.message','search',[('message_id','=',message_id),('model','=',model),('res_id','=',res_id)]) if ext_ids: - name = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,model,'read',res_id,['name'])['name'] - ext_msg += """This mail is already archived to {0} '{1}'.\n""".format(object_name,name) - flag = True - continue + name = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,model,'read',res_id,['name'])['name'] + ext_msg += """This mail is already archived to {0} '{1}'.\n""".format(object_name,name) + flag = True + continue msg = { - 'subject':mail.Subject, - 'date':str(mail.ReceivedTime), - 'body':mail.Body, - 'cc':mail.CC, - 'from':mail.SenderEmailAddress, - 'to':mail.To, - 'message-id':message_id, - 'references':ustr(referances), + 'subject':mail.Subject, + 'date':str(mail.ReceivedTime), + 'body':mail.Body, + 'cc':mail.CC, + 'from':mail.SenderEmailAddress, + 'to':mail.To, + 'message-id':message_id, + 'references':ustr(referances), } obj_list= ['crm.lead','project.issue','hr.applicant','res.partner'] if rec[0] not in obj_list: ids = self.CreateEmailAttachment(rec,mail) result = {} if attachments: - result = self.MakeAttachment([rec], mail) + result = self.MakeAttachment([rec], mail) attachment_ids = result.get(model, {}).get(res_id, []) ids = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'email.server.tools','history',model, res_id, msg, attachment_ids) new_msg += """- {0} : {1}\n""".format(object_name,str(rec[2])) flag = True - - if flag: - t = """Mail archived Successfully with attachments.\n"""+ext_msg - t += "\n"+new_msg - win32ui.MessageBox(t,"Archived to OpenERP",win32con.MB_ICONINFORMATION) - return flag + if flag: + t = """Mail archived Successfully with attachments.\n"""+ext_msg + t += "\n"+new_msg + win32ui.MessageBox(t,"Archived to OpenERP",win32con.MB_ICONINFORMATION) + return flag def IsCRMInstalled(self): - conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') - id = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'ir.model','search',[('model','=','crm.lead')]) - return id + conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') + id = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'ir.model','search',[('model','=','crm.lead')]) + return id def GetCSList(self): - conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') - ids = execute(conn,'execute',self._dbname,int(int(self._uid)),self._pwd,'crm.case.section','search',[]) - objects = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'crm.case.section','read',ids,['name']) - obj_list = [ustr(item['name']).encode('iso-8859-1') for item in objects] - return obj_list + conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') + ids = execute(conn,'execute',self._dbname,int(int(self._uid)),self._pwd,'crm.case.section','search',[]) + objects = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'crm.case.section','read',ids,['name']) + obj_list = [ustr(item['name']).encode('iso-8859-1') for item in objects] + return obj_list def GetPartners(self, search_partner=''): - conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') - ids=[] - obj_list=[] - domain = [] - if not search_partner.strip() == '': - domain.append(('name','ilike',ustr(search_partner))) - ids = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.partner','search',domain) - if ids: - ids.sort() - obj_list.append((-999, ustr(''))) - for id in ids: - object = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.partner','read',[id],['id','name'])[0] - obj_list.append((object['id'], ustr(object['name']))) - obj_list.sort(lambda x, y: cmp(x[1],y[1])) - return obj_list + conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') + ids=[] + obj_list=[] + domain = [] + if not search_partner.strip() == '': + domain.append(('name','ilike',ustr(search_partner))) + ids = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.partner','search',domain) + if ids: + ids.sort() + obj_list.append((-999, ustr(''))) + for id in ids: + object = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.partner','read',[id],['id','name'])[0] + obj_list.append((object['id'], ustr(object['name']))) + obj_list.sort(lambda x, y: cmp(x[1],y[1])) + return obj_list def GetObjectItems(self, search_list=[], search_text=''): - res = [] - conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') - for obj in search_list: - object_ids = execute ( conn,'execute',self._dbname,int(self._uid),self._pwd,'ir.model','search',[('model','=',obj)]) - object_name = execute( conn,'execute',self._dbname,int(self._uid),self._pwd,'ir.model','read',object_ids,['name'])[0]['name'] - if obj == "res.partner.address": - ids = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,obj,'search',['|',('name','ilike',ustr(search_text)),('email','ilike',ustr(search_text))]) - recs = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,obj,'read',ids,['id','name','street','city']) - for rec in recs: - name = ustr(rec['name']) - if rec['street']: - name += ', ' + ustr(rec['street']) - if rec['city']: - name += ', ' + ustr(rec['city']) - res.append((obj,rec['id'],name,object_name)) - else: - ids = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,obj,'search',[('name','ilike',ustr(search_text))]) - recs = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,obj,'read',ids,['id','name']) - for rec in recs: - name = ustr(rec['name']) - res.append((obj,rec['id'],name,object_name)) - return res + res = [] + conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') + for obj in search_list: + object_ids = execute ( conn,'execute',self._dbname,int(self._uid),self._pwd,'ir.model','search',[('model','=',obj)]) + object_name = execute( conn,'execute',self._dbname,int(self._uid),self._pwd,'ir.model','read',object_ids,['name'])[0]['name'] + if obj == "res.partner.address": + ids = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,obj,'search',['|',('name','ilike',ustr(search_text)),('email','ilike',ustr(search_text))]) + recs = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,obj,'read',ids,['id','name','street','city']) + for rec in recs: + name = ustr(rec['name']) + if rec['street']: + name += ', ' + ustr(rec['street']) + if rec['city']: + name += ', ' + ustr(rec['city']) + res.append((obj,rec['id'],name,object_name)) + else: + ids = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,obj,'search',[('name','ilike',ustr(search_text))]) + recs = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,obj,'read',ids,['id','name']) + for rec in recs: + name = ustr(rec['name']) + res.append((obj,rec['id'],name,object_name)) + return res_id def CreateCase(self, section, mail, partner_ids, with_attachments=True): - import eml - flag = False - id = -1 - try: - conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') - email=eml.generateEML(mail) - message_id = None - session = win32com.client.Dispatch("MAPI.session") - session.Logon('Outlook') - objMessage = session.GetMessage(mail.EntryID, mail.Parent.StoreID) - objFields = objMessage.Fields - strheader = objFields.Item(mapitags.PR_TRANSPORT_MESSAGE_HEADERS) - strheader = ustr(strheader).encode('iso-8859-1') - headers = {} - strheader = strheader.replace("\n ", " ").splitlines() - for line in strheader: - split_here = line.find(":") - headers[line[:split_here]] = line[split_here:] - temp1 = headers.get('Message-ID') - temp2 = headers.get('Message-Id') - if temp1 == None: message_id = temp2 - if temp2 == None: message_id = temp1 - startCut = message_id.find("<") - endCut = message_id.find(">") - message_id = message_id[startCut:endCut+1] - email.replace_header('Message-Id',message_id) - id = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'email.server.tools','process_email',section, str(email)) - if id > 0: - flag = True - return flag - else: - flag = False - return flag - except Exception,e: - win32ui.MessageBox("Create Case\n"+str(e),"Mail Reading Error") - return flag + import eml + flag = False + id = -1 + try: + conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') + email=eml.generateEML(mail) + message_id = None + session = win32com.client.Dispatch("MAPI.session") + session.Logon('Outlook') + objMessage = session.GetMessage(mail.EntryID, mail.Parent.StoreID) + objFields = objMessage.Fields + strheader = objFields.Item(mapitags.PR_TRANSPORT_MESSAGE_HEADERS) + strheader = ustr(strheader).encode('iso-8859-1') + headers = {} + strheader = strheader.replace("\n ", " ").splitlines() + for line in strheader: + split_here = line.find(":") + headers[line[:split_here]] = line[split_here:] + temp1 = headers.get('Message-ID') + temp2 = headers.get('Message-Id') + if temp1 == None: message_id = temp2 + if temp2 == None: message_id = temp1 + startCut = message_id.find("<") + endCut = message_id.find(">") + message_id = message_id[startCut:endCut+1] + email.replace_header('Message-Id',message_id) + id = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'email.server.tools','process_email',section, str(email)) + if id > 0: + flag = True + return flag + else: + flag = False + return flag + except Exception,e: + win32ui.MessageBox("Create Case\n"+str(e),"Mail Reading Error") + return flag def MakeAttachment(self, recs, mail): - attachments = mail.Attachments - result = {} - conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') - att_folder_path = os.path.abspath(os.path.dirname("%temp%\\")) - if not os.path.exists(att_folder_path): - os.makedirs(att_folder_path) - for rec in recs: #[('res.partner', 3, 'Agrolait')] - obj = rec[0] - obj_id = rec[1] - res={} - res['res_model'] = obj - attachment_ids = [] - if obj not in result: - result[obj] = {} - for i in xrange(1, attachments.Count+1): - fn = ustr(attachments[i].FileName) - if len(fn) > 64: - l = 64 - len(fn) - f = fn.split('.') - fn = f[0][0:l] + '.' + f[-1] - att_path = os.path.join(att_folder_path,fn) - attachments[i].SaveAsFile(att_path) - f=open(att_path,"rb") - content = "".join(f.readlines()).encode('base64') - f.close() - res['name'] = ustr(attachments[i].DisplayName) - res['datas_fname'] = ustr(fn) - res['datas'] = content - res['res_id'] = obj_id - id = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'ir.attachment','create',res) - attachment_ids.append(id) - result[obj].update({obj_id: attachment_ids}) - return result + attachments = mail.Attachments + result = {} + conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') + att_folder_path = os.path.abspath(os.path.dirname("%temp%\\")) + if not os.path.exists(att_folder_path): + os.makedirs(att_folder_path) + for rec in recs: #[('res.partner', 3, 'Agrolait')] + obj = rec[0] + obj_id = rec[1] + res={} + res['res_model'] = obj + attachment_ids = [] + if obj not in result: + result[obj] = {} + for i in xrange(1, attachments.Count+1): + fn = ustr(attachments[i].FileName) + if len(fn) > 64: + l = 64 - len(fn) + f = fn.split('.') + fn = f[0][0:l] + '.' + f[-1] + att_path = os.path.join(att_folder_path,fn) + attachments[i].SaveAsFile(att_path) + f=open(att_path,"rb") + content = "".join(f.readlines()).encode('base64') + f.close() + res['name'] = ustr(attachments[i].DisplayName) + res['datas_fname'] = ustr(fn) + res['datas'] = content + res['res_id'] = obj_id + id = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'ir.attachment','create',res) + attachment_ids.append(id) + result[obj].update({obj_id: attachment_ids}) + return result def CreateContact(self, res=None): - res=eval(str(res)) - partner = res['partner_id'] - state = res['state_id'] - country = res['country_id'] - conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') - if not partner.strip() == '': - partner_id = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.partner', 'search', [('name','=',ustr(partner))]) - res.update({'partner_id' : partner_id[0]}) - else: - res.pop('partner_id') - if not state == "": - country_id = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.country', 'search', [('name','=',ustr(country))]) - res.update({'country_id' : country_id[0]}) - else: - res.pop('country_id') - if not country == "": - state_id = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.country.state', 'search', [('name','=',ustr(state))]) - res.update({'state_id' : state_id[0]}) - else: - res.pop('state_id') - id = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.partner.address','create',res) - return id + res=eval(str(res)) + partner = res['partner_id'] + state = res['state_id'] + country = res['country_id'] + conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') + if not partner.strip() == '': + partner_id = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.partner', 'search', [('name','=',ustr(partner))]) + res.update({'partner_id' : partner_id[0]}) + else: + res.pop('partner_id') + if not state == "": + country_id = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.country', 'search', [('name','=',ustr(country))]) + res.update({'country_id' : country_id[0]}) + else: + res.pop('country_id') + if not country == "": + state_id = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.country.state', 'search', [('name','=',ustr(state))]) + res.update({'state_id' : state_id[0]}) + else: + res.pop('state_id') + id = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.partner.address','create',res) + return id def CreatePartner(self, res): - res=eval(str(res)) - conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') - ids = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.partner','search',[('name','=',res['name'])]) - if ids: - return False - id = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.partner','create',res) - return id + res=eval(str(res)) + conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') + ids = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.partner','search',[('name','=',res['name'])]) + if ids: + return False + id = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.partner','create',res) + return id def SearchPartnerDetail(self, search_email_id): - res_vals = [] - conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') - address_id = execute(conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.partner.address', 'search', [('email','ilike',ustr(search_email_id))]) - if not address_id : - return - address = execute(conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.partner.address','read',address_id[0],['id','partner_id','name','street','street2','city','state_id','country_id','phone','mobile','email','fax','zip']) - for key, vals in address.items(): - res_vals.append([key,vals]) - return res_vals + res_vals = [] + conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') + address_id = execute(conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.partner.address', 'search', [('email','ilike',ustr(search_email_id))]) + if not address_id : + return + address = execute(conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.partner.address','read',address_id[0],['id','partner_id','name','street','street2','city','state_id','country_id','phone','mobile','email','fax','zip']) + for key, vals in address.items(): + res_vals.append([key,vals]) + return res_vals def WritePartnerValues(self, new_vals): - flag = -1 - new_dict = dict(new_vals) - email=new_dict['email'] - partner = new_dict['partner'] - country_val = new_dict['country'] - state_val = new_dict['state'] - conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') - partner_id = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.partner', 'search', [('name','=',ustr(partner))]) - country_id = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.country', 'search', [('name','=',ustr(country_val))]) - state_id = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.country.state', 'search', [('name','=',ustr(state_val))]) - address_id = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.partner.address', 'search', [('email','=',ustr(email))]) - if not partner_id or not address_id or not country_id or not state_id: - return flag - address = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.partner.address','read',address_id[0],['id','partner_id','state_id','country_id']) - vals_res_address={ - 'partner_id' : partner_id[0], - 'name' : new_dict['name'], - 'street':new_dict['street'], - 'street2' : new_dict['street2'], - 'city' : new_dict['city'], - 'phone' : new_dict['phone'], - 'mobile' : new_dict['mobile'], - 'fax' : new_dict['fax'], - 'zip' : new_dict['zip'], - 'country_id' : country_id[0], - 'state_id' : state_id[0] - } - temp = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.partner.address', 'write', address_id, vals_res_address) - if temp: - flag=1 - else: - flag=0 - return flag + flag = -1 + new_dict = dict(new_vals) + email=new_dict['email'] + partner = new_dict['partner'] + country_val = new_dict['country'] + state_val = new_dict['state'] + conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') + partner_id = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.partner', 'search', [('name','=',ustr(partner))]) + country_id = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.country', 'search', [('name','=',ustr(country_val))]) + state_id = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.country.state', 'search', [('name','=',ustr(state_val))]) + address_id = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.partner.address', 'search', [('email','=',ustr(email))]) + if not partner_id or not address_id or not country_id or not state_id: + return flag + address = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.partner.address','read',address_id[0],['id','partner_id','state_id','country_id']) + vals_res_address={ + 'partner_id' : partner_id[0], + 'name' : new_dict['name'], + 'street':new_dict['street'], + 'street2' : new_dict['street2'], + 'city' : new_dict['city'], + 'phone' : new_dict['phone'], + 'mobile' : new_dict['mobile'], + 'fax' : new_dict['fax'], + 'zip' : new_dict['zip'], + 'country_id' : country_id[0], + 'state_id' : state_id[0] + } + temp = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.partner.address', 'write', address_id, vals_res_address) + if temp: + flag=1 + else: + flag=0 + return flag def GetAllState(self): - state_list = [] - state_ids = [] - conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') - state_ids = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.country.state', 'search', []) - for state_id in state_ids: - obj = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.country.state', 'read', [state_id],['id','name'])[0] - state_list.append((obj['id'], ustr(obj['name']))) - return state_list + state_list = [] + state_ids = [] + conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') + state_ids = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.country.state', 'search', []) + for state_id in state_ids: + obj = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.country.state', 'read', [state_id],['id','name'])[0] + state_list.append((obj['id'], ustr(obj['name']))) + return state_list def GetAllCountry(self): - country_list = [] - country_ids = [] - conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') - country_ids = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.country', 'search', []) - for country_id in country_ids: - obj = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.country','read', [country_id], ['id','name'])[0] - country_list.append((obj['id'], ustr(obj['name']))) - return country_list + country_list = [] + country_ids = [] + conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') + country_ids = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.country', 'search', []) + for country_id in country_ids: + obj = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.country','read', [country_id], ['id','name'])[0] + country_list.append((obj['id'], ustr(obj['name']))) + return country_list def SearchPartner(self, mail_id = ""): - conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') - address = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.partner.address', 'search', [('email','=',ustr(mail_id))]) - if not address: - return None - else: - add_rec = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.partner.address', 'read', address[0]) - partner = add_rec.get('partner_id',False) - if partner: - return partner[0] + conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') + address = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.partner.address', 'search', [('email','=',ustr(mail_id))]) + if not address: + return None + else: + add_rec = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'res.partner.address', 'read', address[0]) + partner = add_rec.get('partner_id',False) + if partner: + return partner[0] return True def SearchEmailResources(self, message_id): - conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') - res_vals = [] - mail_id = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'mailgate.message', 'search', [('message_id','=',message_id)]) - if not mail_id: - return None - address = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'mailgate.message','read',mail_id[0],['model','res_id']) - for key, vals in address.items(): - res_vals.append([key,vals]) - return res_vals - + connector = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') + res_vals = [] + mail_id = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'mailgate.message', 'search', [('message_id','=',message_id)]) + if not mail_id: + return None + address = execute( conn, 'execute', self._dbname, int(self._uid), self._pwd, 'mailgate.message','read',mail_id[0],['model','res_id']) + for key, vals in address.items(): + res_vals.append([key,vals]) + return res_vals def GetCountry(self, country_search=''): - conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') - ids=[] - obj_list=[] - domain = [] - if not country_search.strip() == '': - domain.append(('name','ilike',ustr(country_search))) - ids = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.country','search',domain) - if ids: - ids.sort() - for id in ids: - object = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.country','read',[id],['id','name'])[0] - obj_list.append((object['id'], ustr(object['name']))) - obj_list.sort(lambda x, y: cmp(x[1],y[1])) - return obj_list + conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') + ids=[] + obj_list=[] + domain = [] + if not country_search.strip() == '': + domain.append(('name','ilike',ustr(country_search))) + ids = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.country','search',domain) + if ids: + ids.sort() + for id in ids: + object = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.country','read',[id],['id','name'])[0] + obj_list.append((object['id'], ustr(object['name']))) + obj_list.sort(lambda x, y: cmp(x[1],y[1])) + return obj_list def GetStates(self, state_search='', country=None): - conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') - ids = [] - c_id = [] - obj_list = [] - domain = [] - if not state_search.strip() == '': - domain.append(('name','ilike',ustr(state_search))) - - if country == None: - ids = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.country.state','search',domain) - if not country == None: - c_id = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.country','search',[('name','=',ustr(country))]) - domain.append(('country_id','=',c_id[0])) - ids = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.country.state','search',domain) - if ids: - ids.sort() - for id in ids: - object = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.country.state','read',[id],['id','name'])[0] - obj_list.append((object['id'], ustr(object['name']))) - obj_list.sort(lambda x, y: cmp(x[1],y[1])) - return obj_list + conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') + ids = [] + c_id = [] + obj_list = [] + domain = [] + if not state_search.strip() == '': + domain.append(('name','ilike',ustr(state_search))) + if country == None: + ids = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.country.state','search',domain) + if not country == None: + c_id = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.country','search',[('name','=',ustr(country))]) + domain.append(('country_id','=',c_id[0])) + ids = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.country.state','search',domain) + if ids: + ids.sort() + for id in ids: + object = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.country.state','read',[id],['id','name'])[0] + obj_list.append((object['id'], ustr(object['name']))) + obj_list.sort(lambda x, y: cmp(x[1],y[1])) + return obj_list def FindCountryForState(self, state_search=''): - conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') - ids = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.country.state','search',[('name','=',ustr(state_search))]) - if not ids: - return None - object = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.country.state','read',ids)[0] - country = object['country_id'][1] - return country + conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') + ids = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.country.state','search',[('name','=',ustr(state_search))]) + if not ids: + return None + object = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'res.country.state','read',ids)[0] + country = object['country_id'][1] + return country def CreateEmailAttachment(self, rec, mail): - conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') + conn = xmlrpclib.ServerProxy(self._uri+ '/xmlrpc/object') obj = rec[0] obj_id = rec[1] res = {} @@ -516,15 +515,15 @@ class XMLRpcConn(object): ls = ['*', '/', '\\', '<', '>', ':', '?', '"', '|', '\t', '\n',':','~'] fn = (mail.Subject).replace(' ','') for c in ls: - fn = fn.replace(c,'') + fn = fn.replace(c,'') if len(fn) > 64: - l = 64 - len(fn) - f = fn.split('-') - fn = '-'.join(f[1:]) - if len(fn) > 64: - l = 64 - len(fn) - f = fn.split('.') - fn = f[0][0:l] + '.' + f[-1] + l = 64 - len(fn) + f = fn.split('-') + fn = '-'.join(f[1:]) + if len(fn) > 64: + 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") @@ -539,3 +538,4 @@ class XMLRpcConn(object): res['res_id'] = obj_id id = execute(conn,'execute',self._dbname,int(self._uid),self._pwd,'ir.attachment','create',res) return id + From 4157a440c54be819413325fadb10838ea6cfcbb8 Mon Sep 17 00:00:00 2001 From: "atp (Open ERP)" Date: Fri, 12 Nov 2010 19:04:03 +0530 Subject: [PATCH 09/38] [FIX]: Fix parent_id problem of resource model in document_ics module. bzr revid: atp@tinyerp.co.in-20101112133403-8v1gle1z5uoeu12f --- addons/document_ics/document_ics_config_wizard.xml | 3 ++- addons/document_ics/document_view.xml | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/addons/document_ics/document_ics_config_wizard.xml b/addons/document_ics/document_ics_config_wizard.xml index e58f48cad4c..e338765e97d 100644 --- a/addons/document_ics/document_ics_config_wizard.xml +++ b/addons/document_ics/document_ics_config_wizard.xml @@ -51,7 +51,8 @@ new - register configuration wizard + + always diff --git a/addons/document_ics/document_view.xml b/addons/document_ics/document_view.xml index 39b6908dc76..40174612539 100644 --- a/addons/document_ics/document_view.xml +++ b/addons/document_ics/document_view.xml @@ -24,7 +24,7 @@ - + From c1ecdddf3a8dcf84076268ccce94ad55741c955e Mon Sep 17 00:00:00 2001 From: "atp (Open ERP)" Date: Fri, 12 Nov 2010 19:54:56 +0530 Subject: [PATCH 10/38] [REMOVE]: Remove print statement. bzr revid: atp@tinyerp.co.in-20101112142456-cp4auy2fh06xm321 --- addons/document_ftp/wizard/ftp_browse.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/addons/document_ftp/wizard/ftp_browse.py b/addons/document_ftp/wizard/ftp_browse.py index addf07db009..42081c98fd0 100644 --- a/addons/document_ftp/wizard/ftp_browse.py +++ b/addons/document_ftp/wizard/ftp_browse.py @@ -34,12 +34,10 @@ class document_ftp_browse(osv.osv_memory): def default_get(self, cr, uid, fields, context=None): res = {} if 'url' in fields: - print "fieldsdaas",fields user_pool = self.pool.get('res.users') current_user = user_pool.browse(cr, uid, uid, context=context) data_pool = self.pool.get('ir.model.data') aid = data_pool._get_id(cr, uid, 'document_ftp', 'action_document_browse') - print "aidddddddd",aid aid = data_pool.browse(cr, uid, aid, context=context).res_id ftp_url = self.pool.get('ir.actions.url').browse(cr, uid, aid, context=context) url = ftp_url.url and ftp_url.url.split('ftp://') or [] @@ -53,7 +51,6 @@ class document_ftp_browse(osv.osv_memory): def browse_ftp(self, cr, uid, ids, context): data_id = ids and ids[0] or False data = self.browse(cr, uid, data_id, context) - print "browseeeeeeeee",data final_url = data.url return { 'type': 'ir.actions.act_url', From c0a85fa831ed9a59528f836ce0c1f19dd3437457 Mon Sep 17 00:00:00 2001 From: "sbh (Open ERP)" Date: Mon, 15 Nov 2010 12:30:33 +0530 Subject: [PATCH 11/38] [IMP] project_scrum: sprint should be ordered by starting_date des,allow cancel product backlog when they still are draft bzr revid: sbh@tinyerp.com-20101115070033-fn1s4vmc8m9r63tw --- addons/project_scrum/project_scrum.py | 2 +- addons/project_scrum/project_scrum_view.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/project_scrum/project_scrum.py b/addons/project_scrum/project_scrum.py index 75f9cfd4a63..28ab6cb5338 100644 --- a/addons/project_scrum/project_scrum.py +++ b/addons/project_scrum/project_scrum.py @@ -43,7 +43,7 @@ project_scrum_project() class project_scrum_sprint(osv.osv): _name = 'project.scrum.sprint' _description = 'Project Scrum Sprint' - _order = 'date_start' + _order = 'date_start desc' def _compute(self, cr, uid, ids, fields, arg, context=None): res = {}.fromkeys(ids, 0.0) progress = {} diff --git a/addons/project_scrum/project_scrum_view.xml b/addons/project_scrum/project_scrum_view.xml index a9f220fd3c0..122f68edc16 100644 --- a/addons/project_scrum/project_scrum_view.xml +++ b/addons/project_scrum/project_scrum_view.xml @@ -112,7 +112,7 @@ -