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

[email protected]
Newsgroups gmane.comp.cms.gnue.cvs
Message-ID <[email protected]>
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)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.