[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