commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnue] r9733 - trunk/gnue-forms/src/GFObjects


From: reinhard
Subject: [gnue] r9733 - trunk/gnue-forms/src/GFObjects
Date: Fri, 22 Jun 2007 08:24:14 -0500 (CDT)

Author: reinhard
Date: 2007-06-22 08:24:14 -0500 (Fri, 22 Jun 2007)
New Revision: 9733

Modified:
   trunk/gnue-forms/src/GFObjects/GFField.py
Log:
Convert default values and query default values of fields to correct datatype.


Modified: trunk/gnue-forms/src/GFObjects/GFField.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFField.py   2007-06-21 12:58:43 UTC (rev 
9732)
+++ trunk/gnue-forms/src/GFObjects/GFField.py   2007-06-22 13:24:14 UTC (rev 
9733)
@@ -33,7 +33,7 @@
 
 __all__ = ['GFField', 'FKeyMissingError', 'LengthNotAllowedError',
         'DataSourceNotFoundError', 'InvalidDBValueError',
-        'InvalidFieldValueError']
+        'InvalidFieldValueError', 'InvalidDefaultValueError']
 
 
 # =============================================================================
@@ -174,7 +174,11 @@
         elif self.case == 'lower':
             self._lowercase = True
 
-        default = self.__get_default ()
+        try:
+            default = datatypes.convert(self.__get_default(), self.datatype,
+                    self.length, self.scale)
+        except ValueError, datatypes.ConversionError:
+            raise InvalidDefaultValueError(self, self.__get_default())
 
         if not hasattr(self, 'field') or not len(self.field):
             self.field = "__GNUe__%s" % self.name
@@ -226,8 +230,13 @@
             raise MinimumLengthNotAllowedError(self)
 
         if hasattr(self, 'queryDefault') and self.queryDefault != None and \
-             self._bound and len(self.queryDefault):
-          block._queryDefaults[self] = self.queryDefault
+            self._bound and len(self.queryDefault):
+            try:
+                self._block._queryDefaults[self] = datatypes.convert(
+                        self.queryDefault, self.datatype, self.length,
+                        self.scale)
+            except ValueError, datatypes.ConversionError:
+                raise InvalidDefaultValueError(self, self.queryDefault)
 
 
     # -------------------------------------------------------------------------
@@ -816,3 +825,17 @@
                 ) % {
                     'value': value,
                     'field': field})
+
+# =============================================================================
+
+class InvalidDefaultValueError(GParser.MarkupError):
+    """
+    The field definition contains an invalid default value or default query
+    value for a field.
+    """
+    def __init__(self, field, value):
+        GParser.MarkupError.__init__(self, u_(
+                    "Invalid default value '%(value)s' for field '%(name)s'"
+                ) % {
+                    'value': value,
+                    'name': field.name}, field._url, field._lineNumber)





reply via email to

[Prev in Thread] Current Thread [Next in Thread]