From 3ea9d8eb970667de71a8e5e2afd87485511d612d Mon Sep 17 00:00:00 2001 From: "Jay (Open ERP)" Date: Tue, 14 Apr 2009 10:39:47 +0530 Subject: [PATCH 1/8] Corrected hr_holidays bzr revid: jvo@tinyerp.com-20090414050947-kes8am9d0601r3vk --- addons/hr_holidays/hr.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/addons/hr_holidays/hr.py b/addons/hr_holidays/hr.py index 814a21949d1..8cb24b3cfd5 100644 --- a/addons/hr_holidays/hr.py +++ b/addons/hr_holidays/hr.py @@ -283,7 +283,6 @@ class hr_holidays(osv.osv): return True hr_holidays() -<<<<<<< TREE class hr_holidays_per_user(osv.osv): _name = "hr.holidays.per.user" @@ -347,5 +346,3 @@ holiday_user_log() # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: -======= -# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:>>>>>>> MERGE-SOURCE From 2550e886e7b6a1124a8488dd00110929919ffa50 Mon Sep 17 00:00:00 2001 From: "Harry (Open ERP)" Date: Tue, 14 Apr 2009 11:49:47 +0530 Subject: [PATCH 2/8] [DMS]fixing_bug_324823 bzr revid: hmo@tinyerp.com-20090414061947-wj3h31elm4wbj6y1 --- addons/document/ftpserver/abstracted_fs.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/addons/document/ftpserver/abstracted_fs.py b/addons/document/ftpserver/abstracted_fs.py index a8c8c09a146..62df4f3b129 100644 --- a/addons/document/ftpserver/abstracted_fs.py +++ b/addons/document/ftpserver/abstracted_fs.py @@ -135,6 +135,11 @@ class abstracted_fs: res = cr.fetchone() if res and len(res): self.db_name_list.append(db_name) + cr.commit() + except Exception,e: + log(e) + if cr: + cr.rollback() finally: if cr is not None: cr.close() @@ -274,7 +279,7 @@ class abstracted_fs: s = file_wrapper('', cid, cr.dbname, uid, ) return s - except Exception,e: + except Exception,e: log(e) raise OSError(1, 'Operation not permited.') From c882bf7db62b8e88398de75c35611c7330aaf528 Mon Sep 17 00:00:00 2001 From: "Harry (Open ERP)" Date: Tue, 14 Apr 2009 13:50:15 +0530 Subject: [PATCH 3/8] [DMS]fixing_bug_324823 bzr revid: hmo@tinyerp.com-20090414082015-4bhequho66dy662u --- addons/document/ftpserver/abstracted_fs.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/addons/document/ftpserver/abstracted_fs.py b/addons/document/ftpserver/abstracted_fs.py index 62df4f3b129..3378960024f 100644 --- a/addons/document/ftpserver/abstracted_fs.py +++ b/addons/document/ftpserver/abstracted_fs.py @@ -35,13 +35,13 @@ def _get_month_name(month): def _to_unicode(s): try: - return s.encode('ascii') + return s.decode('utf-8') except UnicodeError: try: - return s.decode('utf-8') + return s.decode('latin') except UnicodeError: try: - return s.decode('latin') + return s.encode('ascii') except UnicodeError: return s @@ -189,17 +189,18 @@ class abstracted_fs: def ftp2fs(self, path_orig, data): path = self.ftpnorm(path_orig) if path and path=='/': - return None - path=_to_unicode(path) + return None path2 = filter(None,path.split('/'))[1:] (cr, uid, pool) = data + if len(path2): + path2[-1]=_to_unicode(path2[-1]) res = pool.get('document.directory').get_object(cr, uid, path2[:]) if not res: raise OSError(2, 'Not such file or directory.') return res # Ok - def fs2ftp(self, node): + def fs2ftp(self, node): res = node and ('/' + node.cr.dbname + '/' + _to_decode(node.path)) or '/' return res @@ -742,8 +743,8 @@ class abstracted_fs: except ValueError: mname=_get_month_name(time.strftime("%m")) mtime = mname+' '+time.strftime("%d %H:%M") - # formatting is matched with proftpd ls output - path=_to_decode(file.path) #file.path.encode('ascii','replace').replace('?','_') + # formatting is matched with proftpd ls output + path=_to_decode(file.path) #file.path.encode('ascii','replace').replace('?','_') yield "%s %3s %-8s %-8s %8s %s %s\r\n" %(perms, nlinks, uname, gname, size, mtime, path.split('/')[-1]) From a8dff49ae174da9e90cb2ffbb311c00c9d3a1611 Mon Sep 17 00:00:00 2001 From: "Harry (Open ERP)" Date: Tue, 14 Apr 2009 14:17:50 +0530 Subject: [PATCH 4/8] [DMS]fixing_bug_324823 bzr revid: hmo@tinyerp.com-20090414084750-a6nm5it3zopn2ozk --- addons/document/ftpserver/abstracted_fs.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/addons/document/ftpserver/abstracted_fs.py b/addons/document/ftpserver/abstracted_fs.py index 3378960024f..6d3b942a88e 100644 --- a/addons/document/ftpserver/abstracted_fs.py +++ b/addons/document/ftpserver/abstracted_fs.py @@ -200,8 +200,8 @@ class abstracted_fs: return res # Ok - def fs2ftp(self, node): - res = node and ('/' + node.cr.dbname + '/' + _to_decode(node.path)) or '/' + def fs2ftp(self, node): + res = node and ('/' + node.cr.dbname + '/' + _to_decode(self.ftpnorm(node.path))) or '/' return res # Ok @@ -343,7 +343,7 @@ class abstracted_fs: # Ok - def chdir(self, path): + def chdir(self, path): if not path: self.cwd='/' return None From 34b6b7961972a299232aa3ef2735bc2d9cccabf9 Mon Sep 17 00:00:00 2001 From: "Apa (Open ERP)" Date: Tue, 14 Apr 2009 14:36:55 +0530 Subject: [PATCH 5/8] Fixed : Bug #360622 bzr revid: apa@tinyerp.com-20090414090655-tsw667cqs52llfgu --- addons/account/report/account_balance.rml | 50 ++++------------------- 1 file changed, 8 insertions(+), 42 deletions(-) diff --git a/addons/account/report/account_balance.rml b/addons/account/report/account_balance.rml index 64f448cbfba..73c879ead52 100644 --- a/addons/account/report/account_balance.rml +++ b/addons/account/report/account_balance.rml @@ -98,22 +98,7 @@ - - - - - - - - - - - - - - - - + @@ -131,34 +116,13 @@ - - - - - - - [[ repeatIn(lines(data['form']), 'a') ]][[ a['code'] or removeParentNode('tr') ]] - [[ setTag('tr','tr',{'style':'TrLevel'+str(a['level']), 'paraStyle':('Level'+str(a['level']))}) ]] - [[ a['name'] ]] + + [[ (a['level']<3 and setTag('tr','tr',{'style':'TrLevel'+str(a['level']), 'paraStyle':('Level'+str(a['level']))})) or removeParentNode('font') ]] + [[ (a['level']>2 and setTag('tr','tr',{'style':'TrLevel', 'paraStyle':('Level')})) or removeParentNode('font') ]] + [[ '...'*(a['level']) ]] [[ a['name'] ]] [[ a['type']=='view' and removeParentNode('font') ]][[ formatLang(a['debit']) ]] From 5b1450464ca2c1901c5bd7c7314720779a4e6e5b Mon Sep 17 00:00:00 2001 From: "Harry (Open ERP)" Date: Tue, 14 Apr 2009 15:47:32 +0530 Subject: [PATCH 6/8] [DMS]fixing_bug_324823 bzr revid: hmo@tinyerp.com-20090414101732-7m2rppi0alq5r91b --- addons/document/ftpserver/abstracted_fs.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/addons/document/ftpserver/abstracted_fs.py b/addons/document/ftpserver/abstracted_fs.py index 6d3b942a88e..4e2ecd25d43 100644 --- a/addons/document/ftpserver/abstracted_fs.py +++ b/addons/document/ftpserver/abstracted_fs.py @@ -201,7 +201,15 @@ class abstracted_fs: # Ok def fs2ftp(self, node): - res = node and ('/' + node.cr.dbname + '/' + _to_decode(self.ftpnorm(node.path))) or '/' + res='/' + if node: + res=os.path.normpath(node.path) + res = res.replace("\\", "/") + while res[:2] == '//': + res = res[1:] + res='/' + node.cr.dbname + '/' + _to_decode(res) + + #res = node and ('/' + node.cr.dbname + '/' + _to_decode(self.ftpnorm(node.path))) or '/' return res # Ok From e5ca26aa41487d8878e798f2fd30f8421c9802bc Mon Sep 17 00:00:00 2001 From: husen daudi Date: Tue, 14 Apr 2009 17:44:45 +0530 Subject: [PATCH 7/8] Bugfix 349756 for no fiscal year defined without demo data lp bug: https://launchpad.net/bugs/349756 fixed bzr revid: hda@hda-20090414121445-do3epi0c1ghfsqgn --- addons/account_report/account.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/account_report/account.py b/addons/account_report/account.py index bf8c69754f7..29a2fe08f0f 100644 --- a/addons/account_report/account.py +++ b/addons/account_report/account.py @@ -59,9 +59,9 @@ class account_report(osv.osv): def _calc_context(key,obj): if key==0: - return obj.find(cr,uid) + return obj.find(cr,uid,exception=False) else: - obj_key=obj.browse(cr,uid,obj.find(cr,uid)) + obj_key=obj.browse(cr,uid,obj.find(cr,uid,exception=False)) if isinstance(obj_key,list): obj_key=obj_key[0] key_ids=obj.search(cr,uid,[('date_stop','<',obj_key.date_start)]) From 43e35be4ba1ec92d25216e81447b5f720aad8fd0 Mon Sep 17 00:00:00 2001 From: "Harry (Open ERP)" Date: Tue, 14 Apr 2009 18:35:23 +0530 Subject: [PATCH 8/8] [DMS]fixing_bug_324823 bzr revid: hmo@tinyerp.com-20090414130523-uc4zje2cva23ckeu --- addons/document/document.py | 55 +++++++++++++++++++++++-------------- 1 file changed, 35 insertions(+), 20 deletions(-) diff --git a/addons/document/document.py b/addons/document/document.py index 039778915d3..0d33efc5a1c 100644 --- a/addons/document/document.py +++ b/addons/document/document.py @@ -155,6 +155,11 @@ class node_class(object): where = self.object.domain and eval(self.object.domain, {'active_id':self.root}) or [] pool = pooler.get_pool(self.cr.dbname) obj = pool.get(self.object.ressource_type_id.model) + if len(obj.fields_get(self.cr, self.uid, ['dirname'])): + _dirname_field = 'dirname' + else: + _dirname_field = 'name' + name_for = obj._name.split('.')[-1] if nodename and nodename.find(name_for) == 0 : id = int(nodename.replace(name_for,'')) @@ -164,16 +169,12 @@ class node_class(object): nodename=nodename.replace('__','/') for invalid in INVALID_CHARS: if nodename.find(INVALID_CHARS[invalid]) : - nodename=nodename.replace(INVALID_CHARS[invalid],invalid) - where.append(('name','like',nodename)) - + nodename=nodename.replace(INVALID_CHARS[invalid],invalid) + where.append((_dirname_field,'like',nodename)) + if self.object.ressource_tree: if obj._parent_name in obj.fields_get(self.cr,self.uid): - where.append((obj._parent_name,'=',self.object2 and self.object2.id or False)) - ids = obj.search(self.cr, self.uid, where, self.context) - res = obj.browse(self.cr, self.uid, ids,self.context) - result+= map(lambda x: node_class(self.cr, self.uid, self.path+'/'+x.name.replace('/','__'), self.object, x, root=x.id), res) - return result + where.append((obj._parent_name,'=',self.object2 and self.object2.id or False)) else : if self.object2: return result @@ -183,16 +184,30 @@ class node_class(object): ids = obj.search(self.cr, self.uid, where, self.context) - res = obj.browse(self.cr, self.uid, ids,self.context) - for r in res: - if not r.name: - r.name = name_for+'%d'%r.id - for invalid in INVALID_CHARS: - if r.name.find(invalid) : - r.name=r.name.replace(invalid,INVALID_CHARS[invalid]) - result2 = map(lambda x: node_class(self.cr, self.uid, self.path+'/'+x.name.replace('/','__'), self.object, x, root=x.id), res) + res = obj.browse(self.cr, self.uid, ids,self.context) + if _dirname_field == 'dirname': + for r in res: + if not r.dirname: + r.dirname = name_for+'%d'%r.id + for invalid in INVALID_CHARS: + if r.dirname.find(invalid) : + r.dirname=r.dirname.replace(invalid,INVALID_CHARS[invalid]) + result2 = map(lambda x: node_class(self.cr, self.uid, self.path+'/'+x.dirname.replace('/','__'), self.object, x, root=x.id), res) + + else: + for r in res: + if not r.name: + r.name = name_for+'%d'%r.id + for invalid in INVALID_CHARS: + if r.name.find(invalid) : + r.name=r.name.replace(invalid,INVALID_CHARS[invalid]) + result2 = map(lambda x: node_class(self.cr, self.uid, self.path+'/'+x.name.replace('/','__'), self.object, x, root=x.id), res) + if result2: - result = result2 + if self.object.ressource_tree: + result += result2 + else: + result = result2 return result def children(self): @@ -311,12 +326,12 @@ class document_directory(osv.osv): object: the object.directory or object.directory.content object2: the other object linked (if object.directory.content) """ - def get_object(self, cr, uid, uri, context={}): + def get_object(self, cr, uid, uri, context={}): if not uri: return node_class(cr, uid, '', False, type='database') turi = tuple(uri) - if False and (turi in self._cache): - (path, oo, oo2, content,type,root) = self._cache[turi] + if False and (turi in self._cache): + (path, oo, oo2, content,type,root) = self._cache[turi] if oo: object = self.pool.get(oo[0]).browse(cr, uid, oo[1], context) else: