From 218544018e62344400c70ad504a4b65dcfb34eb0 Mon Sep 17 00:00:00 2001 From: "Yogesh (OpenERP)" Date: Thu, 9 Jun 2011 14:15:50 +0530 Subject: [PATCH] [FIX] fix problem of field type=datetime then set date=True in formatLang method it print only date. lp bug: https://launchpad.net/bugs/791117 fixed bzr revid: ysa@tinyerp.com-20110609084550-nbe8qqfb2t536iv7 --- openerp/report/report_sxw.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/openerp/report/report_sxw.py b/openerp/report/report_sxw.py index f5e65e26766..ee42ebbf73a 100644 --- a/openerp/report/report_sxw.py +++ b/openerp/report/report_sxw.py @@ -68,6 +68,9 @@ rml2sxw = { 'para': 'p', } +def get_date_length(date_format=DT_FORMAT): + return len((datetime.now()).strftime(date_format)) + class _format(object): def set_value(self, cr, uid, name, object, field, lang_obj): self.object = object @@ -106,7 +109,7 @@ class _date_format(str, _format): def __str__(self): if self.val: if getattr(self,'name', None): - date = datetime.strptime(self.name, DT_FORMAT) + date = datetime.strptime(self.name[:get_date_length()], DT_FORMAT) return date.strftime(str(self.lang_obj.date_format)) return self.val @@ -306,7 +309,7 @@ class rml_parse(object): date_format = date_format + " " + self.lang_dict['time_format'] parse_format = DHM_FORMAT if not isinstance(value, time.struct_time): - return time.strftime(date_format, time.strptime(value, parse_format)) + return time.strftime(date_format, time.strptime(value[:get_date_length(parse_format)], parse_format)) else: date = datetime(*value.timetuple()[:6])