diff --git a/fields/__init__.py b/fields/__init__.py
index 49c4bff..25d458d 100644
--- a/fields/__init__.py
+++ b/fields/__init__.py
@@ -64,7 +64,7 @@ class Field:
value=not isSearch and \
field.getFormattedValue(zobj, rawValue, showChanges);
requestValue=not isSearch and zobj.getRequestFieldValue(name);
- inRequest=field.valueIsInRequest(zobj, req, name);
+ inRequest=field.valueIsInRequest(zobj, req, name, layoutType);
error=req.get('%s_error' % name);
isMultiple=(field.multiplicity[1] == None) or \
(field.multiplicity[1] > 1);
@@ -654,7 +654,7 @@ class Field:
index = tool.getApp().catalog.Indexes[indexName]
return index.getEntryForObject(catalogBrain.getRID())
- def valueIsInRequest(self, obj, request, name):
+ def valueIsInRequest(self, obj, request, name, layoutType):
'''Is there a value corresponding to this field in the request? p_name
can be different from self.name (ie, if it is a field within another
(List) field). In most cases, checking that this p_name is in the
diff --git a/fields/string.py b/fields/string.py
index 97d4acb..9d47a12 100644
--- a/fields/string.py
+++ b/fields/string.py
@@ -528,10 +528,14 @@ class String(Field):
if isinstance(res, dict): res = res.copy()
return res
- def valueIsInRequest(self, obj, request, name):
+ def valueIsInRequest(self, obj, request, name, layoutType):
+ # If we are on the search layout, p_obj, if not None, is certainly not
+ # the p_obj we want here (can be a home object).
+ if layoutType == 'search':
+ return Field.valueIsInRequest(self, obj, request, name, layoutType)
languages = self.getAttribute(obj, 'languages')
if len(languages) == 1:
- return Field.valueIsInRequest(self, obj, request, name)
+ return Field.valueIsInRequest(self, obj, request, name, layoutType)
# Is is sufficient to check that at least one of the language-specific
# values is in the request.
return request.has_key('%s_%s' % (name, languages[0]))
diff --git a/gen/mixins/ToolMixin.py b/gen/mixins/ToolMixin.py
index 7fb8c0a..f94736b 100644
--- a/gen/mixins/ToolMixin.py
+++ b/gen/mixins/ToolMixin.py
@@ -218,17 +218,17 @@ class ToolMixin(BaseMixin):
- the number of columns for layouting those fields.'''
fields = []
if refInfo:
- # The search is triggered from a Ref field.
+ # The search is triggered from a Ref field
refObject, fieldName = self.getRefInfo(refInfo)
refField = refObject.getAppyType(fieldName)
fieldNames = refField.queryFields or ()
nbOfColumns = refField.queryNbCols
else:
- # The search is triggered from an app-wide search.
+ # The search is triggered from an app-wide search
klass = self.getAppyClass(className)
fieldNames = getattr(klass, 'searchFields', None)
if not fieldNames:
- # Gather all the indexed fields on this class.
+ # Gather all the indexed fields on this class
fieldNames = [f.name for f in self.getAllAppyTypes(className) \
if f.indexed]
nbOfColumns = getattr(klass, 'numberOfSearchColumns', 3)
diff --git a/gen/wrappers/ToolWrapper.py b/gen/wrappers/ToolWrapper.py
index 4da84c0..702d7fc 100644
--- a/gen/wrappers/ToolWrapper.py
+++ b/gen/wrappers/ToolWrapper.py
@@ -550,7 +550,7 @@ class ToolWrapper(AbstractWrapper):
layoutType='search';
x=ztool.getCssJs(searchInfo.fields, 'edit', cssJs)">
-
+