50 |
|
|
51 |
elif propertydef.gnue_type == "number": |
elif propertydef.gnue_type == "number": |
52 |
# Number property |
# Number property |
53 |
|
s = self._record.getField (propertydef.column) |
54 |
if propertydef.gnue_scale == 0: |
if propertydef.gnue_scale == 0: |
55 |
# ... without fractional part |
# ... without fractional part |
56 |
return int (self._record.getField (propertydef.column)) |
try: |
57 |
|
return int (s) |
58 |
|
except ValueError: |
59 |
|
raise Exception, "Database returned invalid value '%s' for" + \ |
60 |
|
"property '%s'" % (s, propertyname) |
61 |
else: |
else: |
62 |
# ... with fractional part |
# ... with fractional part |
63 |
return float (self._record.getField (propertydef.column)) |
try: |
64 |
|
return float (s) |
65 |
|
except ValueError: |
66 |
|
raise Exception, "Database returned invalid value '%s' for" + \ |
67 |
|
"property '%s'" % (s, propertyname) |
68 |
|
|
69 |
elif self._classdef.classes.has_key (propertydef.gnue_type): |
elif self._classdef.classes.has_key (propertydef.gnue_type): |
70 |
# Reference property: gnue_type is a classname |
# Reference property: gnue_type is a classname |
71 |
return self._record.getField (propertydef.column) |
return self._record.getField (propertydef.column) |
72 |
|
|
73 |
# TODO: Missing property types: |
# TODO: Missing property types: |
74 |
# * datetime |
# * datetime |
75 |
# * boolean |
# * boolean |
76 |
# * list properties |
# * list properties |
77 |
# * calculated properties (must have triggers working first) |
# * calculated properties (must have triggers working first) |
78 |
|
|
79 |
else: |
else: |
80 |
raise Exception, "Field type '%s' not defined." % propertydef.gnue_type |
raise Exception, "Field type '%s' not defined." % propertydef.gnue_type |
81 |
|
|