~openerp/openobject-server/5.0

« back to all changes in this revision

Viewing changes to bin/report/report_sxw.py

  • Committer: Fabien Pinckaers
  • Date: 2009-03-15 16:05:20 UTC
  • Revision ID: fp@tinyerp.com-20090315160520-g6j5qv3tq1iianj0
omdifs

Show diffs side-by-side

added added

removed removed

Lines of Context:
139
139
        self._field = field
140
140
        self.name = name
141
141
        lang = self.object._context.get('lang', 'en_US') or 'en_US'
142
 
        self.lang_obj = pool_lang.browse(cr, uid,pool_lang.search(cr, uid,[('code','=',lang)])[0])
 
142
        lids = pool_lang.search(cr, uid,[('code','=',lang)])
 
143
        if lids:
 
144
            self.lang_obj = pool_lang.browse(cr, uid,lids[0])
 
145
        else:
 
146
            self.lang_obj = False
143
147
 
144
148
class _float_format(float, _format):
145
149
 
151
155
        digits = 2
152
156
        if hasattr(self,'_field') and hasattr(self._field, 'digits') and self._field.digits:
153
157
            digits = self._field.digits[1]
154
 
            return self.lang_obj.format('%.' + str(digits) + 'f', self.name, True)
 
158
            if self.lang_obj:
 
159
                return self.lang_obj.format('%.' + str(digits) + 'f', self.name, True)
 
160
            else:
 
161
                return str(self.name)
155
162
        return self.val
156
163
 
157
164
class _int_format(int, _format):
161
168
 
162
169
    def __str__(self):
163
170
        if hasattr(self,'lang_obj'):
164
 
            return self.lang_obj.format('%.d', self.name, True)
 
171
            if self.lang_obj:
 
172
                return self.lang_obj.format('%.d', self.name, True)
 
173
            else:
 
174
                return str(self.name)
165
175
        return self.val
166
176
 
167
177
 
174
184
        if self.val:
175
185
            if hasattr(self,'name') and (self.name):
176
186
                date = mx.DateTime.strptime(self.name,DT_FORMAT)
177
 
                return date.strftime(self.lang_obj.date_format)
 
187
                if self.lang_obj:
 
188
                    return date.strftime(self.lang_obj.date_format)
 
189
                else:
 
190
                    return date.strftime('%m/%d/%Y')
178
191
        return self.val
179
192
 
180
193
class _dttime_format(str, _format):
186
199
        if self.val:
187
200
            if hasattr(self,'name') and self.name:
188
201
                datetime = mx.DateTime.strptime(self.name,DHM_FORMAT)
189
 
                return datetime.strftime(self.lang_obj.date_format+ " " + self.lang_obj.time_format)
 
202
                if self.lang_obj:
 
203
                    return datetime.strftime(self.lang_obj.date_format+ " " + self.lang_obj.time_format)
 
204
                else:
 
205
                    return datetime.strftime('%m/%d/%Y %H:%M:%S')
190
206
        return self.val
191
207
 
192
208
 
338
354
            return ''
339
355
        pool_lang = self.pool.get('res.lang')
340
356
        lang = self.localcontext.get('lang', 'en_US') or 'en_US'
341
 
        lang_obj = pool_lang.browse(self.cr,self.uid,pool_lang.search(self.cr,self.uid,[('code','=',lang)])[0])
 
357
        lids = pool_lang.search(self.cr,self.uid,[('code','=',lang)])
 
358
        if not lids: return str(value)
 
359
        lang_obj = pool_lang.browse(self.cr,self.uid,lids[0])
342
360
        if date or date_time:
343
361
            if not str(value):
344
362
                return ''