From c99e0e9d5014b1a64a98a48eb18cc0826388ea6e Mon Sep 17 00:00:00 2001 From: "Jay (Open ERP)" Date: Thu, 5 Feb 2009 12:26:45 +0530 Subject: [PATCH] Correction:False values on reports are now accepted bzr revid: jvo@tinyerp.com-20090205065645-ion7drs4r54o0o51 --- bin/report/report_sxw.py | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/bin/report/report_sxw.py b/bin/report/report_sxw.py index 7e2aef7fd77..6c0b84fb69e 100644 --- a/bin/report/report_sxw.py +++ b/bin/report/report_sxw.py @@ -170,6 +170,7 @@ class _float_format(float, _format): def __init__(self,value): super(_float_format, self).__init__() self.val = value and str(value) or str(0.00) + def __str__(self): digits = 2 if hasattr(self,'_field') and hasattr(self._field, 'digits') and self._field.digits: @@ -200,12 +201,13 @@ class _int_format(int, _format): class _date_format(str, _format): def __init__(self,value): super(_date_format, self).__init__() - self.val = str(value) - + self.val = value and str(value) or '' + def __str__(self): - if hasattr(self,'name') and self.name: - date = mx.DateTime.strptime(self.name,DT_FORMAT) - return date.strftime(self.lang_obj.date_format) + if self.val: + if hasattr(self,'name') and (self.name): + date = mx.DateTime.strptime(self.name,DT_FORMAT) + return date.strftime(self.lang_obj.date_format) return self.val # if not self.object._context: # return self.name @@ -222,12 +224,13 @@ class _date_format(str, _format): class _dttime_format(str, _format): def __init__(self,value): super(_dttime_format, self).__init__() - self.val = str(value) + self.val = value and str(value) or '' def __str__(self): - if hasattr(self,'name') and self.name: - datetime = mx.DateTime.strptime(self.name,DHM_FORMAT) - return datetime.strftime(self.lang_obj.date_format+ " " + self.lang_obj.time_format) + if self.val: + if hasattr(self,'name') and self.name: + datetime = mx.DateTime.strptime(self.name,DHM_FORMAT) + return datetime.strftime(self.lang_obj.date_format+ " " + self.lang_obj.time_format) return self.val @@ -381,6 +384,8 @@ class rml_parse(object): lang = self.localcontext.get('lang', 'en_US') or 'en_US' lang_obj = pool_lang.browse(self.cr,self.uid,pool_lang.search(self.cr,self.uid,[('code','=',lang)])[0]) if date or date_time: + if not str(value): + return '' date_format = lang_obj.date_format if date_time: date_format = lang_obj.date_format + " " + lang_obj.time_format