Fix get_default to return value of the right type

This commit is contained in:
Cédric Krier committed 2008-11-16 13:22:34 +01:00
1 parent 06a0d3a5e2
commit 4c41cde6dc
1 file changed
+21 -2
+21 -2
View File
@@ -1,7 +1,10 @@
#This file is part of Tryton. The COPYRIGHT file at the top level of this repository contains the full copyright notices and license terms.
#This file is part of Tryton. The COPYRIGHT file at the top level of
#this repository contains the full copyright notices and license terms.
"Default"
from trytond.osv import fields, OSV
from decimal import Decimal
import mx.DateTime
import datetime
class Default(OSV):
@@ -44,8 +47,24 @@ class Default(OSV):
for default in self.browse(cursor, user, default_ids, context=context):
if default.field.name not in res:
if default.field.ttype in ('reference', 'char', 'sha', 'text',
'date', 'datetime', 'time', 'selection'):
'time', 'selection'):
res[default.field.name] = default.value
elif default.field.ttype in ('integer', 'biginteger'):
res[default.field.name] = int(default.value)
elif default.field.ttype == 'float':
res[default.field.name] = float(default.value)
elif default.field.ttype == 'numeric':
res[default.field.name] = Decimal(default.value)
elif default.field.ttype == 'date':
date = mx.DateTime.strptime(default.value, '%Y-%m-%d')
res[default.field.name] = datetime.date(date.year,
date.month, date.day)
elif default.field.ttype == 'datetime':
date = mx.DateTime.strptime(default.value,
'%Y-%m-%d %H:%M:%S')
res[default.field.name] = datetime.datetime(date.year,
date.month, date.day, date.hour, date.minute,
int(date.second))
else:
res[default.field.name] = eval(default.value)
return res