65 |
try: |
try: |
66 |
return int (s) |
return int (s) |
67 |
except ValueError: |
except ValueError: |
68 |
raise Exception, "Database returned invalid value '%s' for" + \ |
raise Exception, ("Database returned invalid value '%s' for " + \ |
69 |
"property '%s'" % (s, propertyname) |
"property '%s'") % (s, propertyname) |
70 |
else: |
else: |
71 |
# ... with fractional part |
# ... with fractional part |
72 |
try: |
try: |
73 |
return float (s) |
return float (s) |
74 |
except ValueError: |
except ValueError: |
75 |
raise Exception, "Database returned invalid value '%s' for" + \ |
raise Exception, ("Database returned invalid value '%s' for " + \ |
76 |
"property '%s'" % (s, propertyname) |
"property '%s'") % (s, propertyname) |
77 |
|
|
78 |
|
elif propertydef.gnue_type == "boolean": |
79 |
|
# Boolean property |
80 |
|
s = self._record.getField (propertydef.column) |
81 |
|
if s is None: |
82 |
|
return None |
83 |
|
elif s in [0, "0", "f", "F", "false", "FALSE", "n", "N", "no", "NO"]: |
84 |
|
return "0" |
85 |
|
elif s in [1, "1", "t", "T", "true", "true", "y", "Y", "yes", "YES"]: |
86 |
|
return "1" |
87 |
|
else: |
88 |
|
raise Exception, ("Database returned invalid value '%s' for " + \ |
89 |
|
"property '%s'") % (s, propertyname) |
90 |
|
|
91 |
elif self._classdef.classes.has_key (propertydef.gnue_type): |
elif self._classdef.classes.has_key (propertydef.gnue_type): |
92 |
# Reference property: gnue_type is a classname |
# Reference property: gnue_type is a classname |
93 |
return self._record.getField (propertydef.column) |
return self._record.getField (propertydef.column) |
94 |
|
|
95 |
# TODO: Missing property types: |
# TODO: Missing property types: |
96 |
# * datetime |
# * datetime |
|
# * boolean |
|
97 |
# * list properties |
# * list properties |
98 |
# * calculated properties (must have triggers working first) |
# * calculated properties (must have triggers working first) |
99 |
|
|
138 |
# TODO: check if value is an number |
# TODO: check if value is an number |
139 |
pass |
pass |
140 |
|
|
141 |
|
elif propertydef.gnue_type == "boolean": |
142 |
|
# Boolean property |
143 |
|
if value == "": |
144 |
|
value = None |
145 |
|
elif value in [0, "0", "f", "F", "false", "FALSE", "n", "N", "no", "NO"]: |
146 |
|
value = "0" |
147 |
|
elif value in [1, "1", "t", "T", "true", "true", "y", "Y", "yes", "YES"]: |
148 |
|
value = "1" |
149 |
|
else: |
150 |
|
raise Exception, "Invalid value '%s' for property '%s'" % \ |
151 |
|
(value, propertyname) |
152 |
|
|
153 |
self._record.setField (propertydef.column, value) |
self._record.setField (propertydef.column, value) |
154 |
|
|
155 |
# --------------------------------------------------------------------------- |
# --------------------------------------------------------------------------- |