commit-gnue
[Top][All Lists]
Advanced

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

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


From: reinhard
Subject: [gnue] r9159 - trunk/gnue-forms/src/GFObjects
Date: Tue, 12 Dec 2006 14:59:51 -0600 (CST)

Author: reinhard
Date: 2006-12-12 14:59:50 -0600 (Tue, 12 Dec 2006)
New Revision: 9159

Modified:
   trunk/gnue-forms/src/GFObjects/GFBlock.py
   trunk/gnue-forms/src/GFObjects/GFField.py
Log:
New public function for GFField to do a reverse lookup.


Modified: trunk/gnue-forms/src/GFObjects/GFBlock.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFBlock.py   2006-12-12 20:50:27 UTC (rev 
9158)
+++ trunk/gnue-forms/src/GFObjects/GFBlock.py   2006-12-12 20:59:50 UTC (rev 
9159)
@@ -635,9 +635,7 @@
         cond = {}
         for (fieldname, value) in params.iteritems():
             field = self._fieldMap[fieldname]
-            if hasattr(field, 'fk_source'):
-                value = field._allowedValuesReverse.get(value)
-            cond[field.field] = value
+            cond[field.field] = field.reverse_lookup(value)
 
         # Then, mix in the conditions given in args.
         for arg in args:

Modified: trunk/gnue-forms/src/GFObjects/GFField.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFField.py   2006-12-12 20:50:27 UTC (rev 
9158)
+++ trunk/gnue-forms/src/GFObjects/GFField.py   2006-12-12 20:59:50 UTC (rev 
9159)
@@ -264,6 +264,29 @@
 
 
     # -------------------------------------------------------------------------
+    # Get DB value for a given user value
+    # -------------------------------------------------------------------------
+
+    def reverse_lookup(self, value):
+        """
+        Return the DB value for a given user value.
+
+        @param value: A valid lookup value for this field.
+        @returns: The corresponding DB value.
+        """
+
+        if not self.__is_lookup:
+            return value
+
+        if value is None or value == u"":
+            return None
+        elif value in self._allowedValuesReverse:
+            return self._allowedValuesReverse[value]
+        else:
+            raise InvalidFieldValueError(self.name, value)
+
+
+    # -------------------------------------------------------------------------
     # Reading and writing the user value of the field
     # -------------------------------------------------------------------------
 
@@ -294,18 +317,9 @@
         foreign key description.
         """
 
-        if not self.__is_lookup:
-            self.__set_value(value)
-            return
+        self.__set_value(self.reverse_lookup(value))
 
-        if value is None or value == u"":
-            self.__set_value(None)
-        elif value in self._allowedValuesReverse:
-            self.__set_value(self._allowedValuesReverse[value])
-        else:
-            raise InvalidFieldValueError(self.name, value)
 
-
     # -------------------------------------------------------------------------
     # Reading and writing the DB value of a field
     # -------------------------------------------------------------------------





reply via email to

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