[Erp5-report] r35540 romain - /erp5/trunk/products/ERP5Form/ListBox.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Fri May 21 18:12:01 CEST 2010
Author: romain
Date: Fri May 21 18:12:00 2010
New Revision: 35540
URL: http://svn.erp5.org?rev=35540&view=rev
Log:
Recursively search the editable_field in the field libraries.
Modified:
erp5/trunk/products/ERP5Form/ListBox.py
Modified: erp5/trunk/products/ERP5Form/ListBox.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/ListBox.py?rev=35540&r1=35539&r2=35540&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/ListBox.py [utf8] (original)
+++ erp5/trunk/products/ERP5Form/ListBox.py [utf8] Fri May 21 18:12:00 2010
@@ -41,7 +41,7 @@
from Products.ZSQLCatalog.zsqlbrain import ZSQLBrain
from Products.ERP5Type.Message import Message
-from Acquisition import aq_base, aq_self
+from Acquisition import aq_base, aq_self, aq_inner
import Acquisition
from zLOG import LOG, WARNING
from ZODB.POSException import ConflictError
@@ -1207,16 +1207,22 @@
"""
form = self.getForm()
editable_field_id = '%s_%s' % (self.getUnprefixedId(), alias)
- if form.has_field(editable_field_id, include_disabled=1):
- return form.get_field(editable_field_id, include_disabled=1)
-
- # if we are rendering a proxy field, also look for editable fields from the
- # template field's form.
- if self.field.has_value('form_id'):
- form = getattr(self.field, self.field.get_value('form_id'), None)
- if form and form.has_field(editable_field_id, include_disabled=1):
+ field = self.field
+ while form is not None:
+ #Search the editable field in the form
+ if form.has_field(editable_field_id, include_disabled=1):
return form.get_field(editable_field_id, include_disabled=1)
-
+ elif field.meta_type == 'ProxyField':
+ # if we are rendering a proxy field, also look for editable
+ # fields from the template field's form.
+ field = field.getTemplateField()
+ if field is None:
+ form = None
+ else:
+ form = aq_inner(field).aq_parent
+ else:
+ form = None
+
return None
def getListMethod(self):
More information about the Erp5-report
mailing list