commit-gnue
[Top][All Lists]
Advanced

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

r5739 - trunk/gnue-appserver/src


From: reinhard
Subject: r5739 - trunk/gnue-appserver/src
Date: Sun, 18 Apr 2004 15:43:42 -0500 (CDT)

Author: reinhard
Date: 2004-04-18 15:43:42 -0500 (Sun, 18 Apr 2004)
New Revision: 5739

Modified:
   trunk/gnue-appserver/src/geasInstance.py
Log:
Some fixes.


Modified: trunk/gnue-appserver/src/geasInstance.py
===================================================================
--- trunk/gnue-appserver/src/geasInstance.py    2004-04-18 20:31:50 UTC (rev 
5738)
+++ trunk/gnue-appserver/src/geasInstance.py    2004-04-18 20:43:42 UTC (rev 
5739)
@@ -169,21 +169,26 @@
 
   def __getValue (self, propertyname):
 
+    #resolve indirect properties
     elements = string.split (propertyname, '.')
-
-    c = self.__classdef
-    r = self.__record
+    classdef = self.__classdef
+    record = self.__record
     for e in elements [:-1]:
-      p = c.properties [e]
-      if not '_' in p.gnue_type:
+      propertydef = classdef.properties [e]
+      if not '_' in propertydef.gnue_type:
         raise gException, u_("Cannot resolve property name '%(name)s' because "
                              "'%(part)s' is not a reference property")
-      c = self.__session.sm.classes [p.gnue_type]
-      r = self.__connection.findRecord (c.table, r.getField (p.column), [])
+      classdef = self.__session.sm.classes [propertydef.gnue_type]
+      key = record.getField (propertydef.column)
+      # if any reference on the way through the property name is None, assume
+      # the indirect property is None.
+      if key is None:
+        return None
+      record = self.__connection.findRecord (classdef.table, key, [])
 
-    propertydef = c.properties [elements [-1]]
+    propertydef = classdef.properties [elements [-1]]
 
-    value = r.getField (propertydef.column)
+    value = record.getField (propertydef.column)
 
     return self.__convert (value, propertydef, DbValueError)
 
@@ -281,13 +286,8 @@
       print _("Error occured during method invokation: %s") % msg
       result = None
 
-    # Save changes made by the procedure
-    # obj.store ()
-
-    # return value of '1' to make XMLRPC happy
     return result
 
-
   # ---------------------------------------------------------------------------
   # Validate all properties of an instance
   # ---------------------------------------------------------------------------





reply via email to

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