From 43b66e1a1d039a8330f3c4ebda124773702eff16 Mon Sep 17 00:00:00 2001 From: "VRA(OpenERP)" <> Date: Fri, 17 Jul 2009 20:21:24 +0530 Subject: [PATCH 1/2] [FIX] Print screen reports will behave acc. to locale for date,datetime lp bug: https://launchpad.net/bugs/399811 fixed bzr revid: jvo@tinyerp.com-20090717145124-0kkb1b7dvp9qu5od --- bin/report/printscreen/ps_list.py | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) diff --git a/bin/report/printscreen/ps_list.py b/bin/report/printscreen/ps_list.py index c3dd6b341bd..b78a98a98a5 100644 --- a/bin/report/printscreen/ps_list.py +++ b/bin/report/printscreen/ps_list.py @@ -27,8 +27,10 @@ from lxml import etree from report import render import libxml2 import libxslt +import locale import time, os +import mx.DateTime class report_printscreen_list(report_int): def __init__(self, name): @@ -87,7 +89,8 @@ class report_printscreen_list(report_int): n.text = text config.append(n) - _append_node('date', time.strftime('%d/%m/%Y')) + #_append_node('date', time.strftime('%d/%m/%Y')) + _append_node('date', time.strftime(str(locale.nl_langinfo(locale.D_FMT).replace('%y', '%Y')))) _append_node('PageSize', '%.2fmm,%.2fmm' % tuple(pageSize)) _append_node('PageWidth', '%.2f' % (pageSize[0] * 2.8346,)) _append_node('PageHeight', '%.2f' %(pageSize[1] * 2.8346,)) @@ -106,7 +109,7 @@ class report_printscreen_list(report_int): for f in fields_order: s = 0 ince += 1 - if fields[f]['type'] in ('date','time','float','integer'): + if fields[f]['type'] in ('date','time','datetime','float','integer'): s = 60 strmax -= s if fields[f]['type'] in ('float','integer'): @@ -132,13 +135,11 @@ class report_printscreen_list(report_int): new_doc.append(header) lines = etree.Element("lines") - tsum = [] count = len(fields_order) for i in range(0,count): tsum.append(0) - for line in results: node_line = etree.Element("row") count = -1 @@ -158,10 +159,28 @@ class report_printscreen_list(report_int): if fields[f]['type'] in ('one2many','many2many') and line[f]: line[f] = '( '+tools.ustr(len(line[f])) + ' )' - if fields[f]['type'] == 'float': + if fields[f]['type'] == 'float' and line[f]: precision=(('digits' in fields[f]) and fields[f]['digits'][1]) or 2 line[f]='%.2f'%(line[f]) + if fields[f]['type'] == 'date' and line[f]: + format = str(locale.nl_langinfo(locale.D_FMT).replace('%y', '%Y')) + d1= mx.DateTime.strptime(line[f],'%Y-%m-%d') + new_d1 = d1.strftime(format) + line[f] = new_d1 + + if fields[f]['type'] == 'time' and line[f]: + format = str(locale.nl_langinfo(locale.T_FMT)) + d1= mx.DateTime.strptime(line[f],'%H:%M:%S') + new_d1 = d1.strftime(format) + line[f] = new_d1 + + if fields[f]['type'] == 'datetime' and line[f]: + format = str(locale.nl_langinfo(locale.D_FMT).replace('%y', '%Y'))+' '+str(locale.nl_langinfo(locale.T_FMT)) + d1= mx.DateTime.strptime(line[f],'%Y-%m-%d %H:%M:%S') + new_d1 = d1.strftime(format) + line[f] = new_d1 + col = etree.Element("col") col.set('para','yes') col.set('tree','no') @@ -169,7 +188,6 @@ class report_printscreen_list(report_int): col.text = tools.ustr(line[f] or '') if temp[count] == 1: tsum[count] = float(tsum[count]) + float(line[f]); - else: col.text = '/' node_line.append(col) @@ -197,7 +215,6 @@ class report_printscreen_list(report_int): lines.append(node_line) - new_doc.append(lines) styledoc = libxml2.parseFile(os.path.join(tools.config['root_path'],'addons/base/report/custom_new.xsl')) style = libxslt.parseStylesheetDoc(styledoc) From 22ac7ba66eae2d53ded9a1dc46d9e1078db313d2 Mon Sep 17 00:00:00 2001 From: Olivier Laurent Date: Sat, 18 Jul 2009 13:21:10 +0200 Subject: [PATCH 2/2] [FIX] RuntimeError in the cache system lp bug: https://launchpad.net/bugs/310918 fixed bzr revid: olt@tinyerp.com-20090718112110-0p29jjruvhiwjrp0 --- bin/tools/misc.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/bin/tools/misc.py b/bin/tools/misc.py index a2712ee006e..9d4ea4d66cd 100644 --- a/bin/tools/misc.py +++ b/bin/tools/misc.py @@ -659,9 +659,9 @@ class cache(object): if time.time()-self.timeout > self.lasttime: self.lasttime = time.time() t = time.time()-self.timeout - for key in self.cache.keys(): - if self.cache[key][1]