[Erp5-report] r23810 - /erp5/trunk/products/ERP5Form/ProxyField.py

nobody at svn.erp5.org nobody at svn.erp5.org
Thu Sep 25 13:27:16 CEST 2008


Author: kazuhiko
Date: Thu Sep 25 13:27:14 2008
New Revision: 23810

URL: http://svn.erp5.org?rev=23810&view=rev
Log:
set parent field id in REQUEST in any case.

Modified:
    erp5/trunk/products/ERP5Form/ProxyField.py

Modified: erp5/trunk/products/ERP5Form/ProxyField.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/ProxyField.py?rev=23810&r1=23809&r2=23810&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/ProxyField.py (original)
+++ erp5/trunk/products/ERP5Form/ProxyField.py Thu Sep 25 13:27:14 2008
@@ -407,22 +407,19 @@
     """ 
     return self.getTemplateField().get_error_names()
 
-  def getTemplateField(self, cache='auto'):
+  def getTemplateField(self, cache=True):
     """
     Return template field of the proxy field.
     """
-    if cache == 'auto':
+    if cache is True:
       tales = self.tales
       if self._p_oid is None or tales['field_id'] or tales['form_id']:
         cache = False
       else:
-        cache = True
-
-    if cache is True:
-      try:
-        return self._getTemplateFieldCache()
-      except KeyError:
-        pass
+        try:
+          return self._getTemplateFieldCache()
+        except KeyError:
+          pass
 
     form = self.aq_parent
     object = form.aq_parent
@@ -652,17 +649,8 @@
         (not self.is_delegated(id))):
       return ZMIField.get_value(self, id, **kw)
 
-    # Don't use cache if field is not stored in zodb, or if target field is
-    # defined by a TALES
-    if self._p_oid is None or self.tales['field_id'] or self.tales['form_id']:
-      proxy_field = self.getTemplateField(cache=False)
-      if proxy_field is not None:
-        return proxy_field.get_value(id, **kw)
-      else:
-        return None
-
     field = self
-    proxy_field = self.getTemplateField(cache=True)
+    proxy_field = self.getTemplateField()
     REQUEST = get_request()
     if proxy_field is not None and REQUEST is not None:
       field = REQUEST.get(
@@ -672,6 +660,16 @@
         'field__proxyfield_%s_%s_%s' % (proxy_field.id, proxy_field._p_oid, id),
         field)
 
+    # Don't use cache if field is not stored in zodb, or if target field is
+    # defined by a TALES
+    if self._p_oid is None or self.tales['field_id'] or self.tales['form_id']:
+      return self._get_value(id, **kw)
+      proxy_field = self.getTemplateField(cache=False)
+      if proxy_field is not None:
+        return proxy_field.get_value(id, **kw)
+      else:
+        return None
+
     cache_id = ('ProxyField.get_value',
                 self._p_oid,
                 field._p_oid,
@@ -694,7 +692,7 @@
     return value
 
   def _get_value(self, id, **kw):
-    proxy_field = self.getTemplateField()
+    proxy_field = self.getTemplateField(cache=False)
     if proxy_field is not None:
       return proxy_field.get_value(id, **kw)
 




More information about the Erp5-report mailing list