Wrong index type for selection strings that are not multivalued.

This commit is contained in:
Gaetan Delannay 2010-09-20 11:33:54 +02:00
parent 7c2b8fed11
commit 9f4db88bdf
9 changed files with 41 additions and 30 deletions

View file

@ -275,6 +275,14 @@ class ToolMixin(AbstractMixin):
return value[:maxWidth] + '...'
return value
def truncateText(self, text, width=15):
'''Truncates p_text to max p_width chars. If the text is longer than
p_width, the truncated part is put in a "acronym" html tag.'''
if len(text) <= width: return text
else:
return '<acronym title="%s">%s</acronym>' % \
(text, text[:width] + '...')
translationMapping = {'portal_path': ''}
def translateWithMapping(self, label):
'''Translates p_label in the application domain, with a default
@ -336,15 +344,13 @@ class ToolMixin(AbstractMixin):
res[means.id] = means.__dict__
return res
def userMayAdd(self, rootClass):
'''For deciding if a user may add a new instance of a class, beyond the
permission-based check, we can have a custom method that proposes an
additional condition. This method checks if there is such a custom
method (must be named "mayCreate") define on p_rootClass, and calls
it if yes. If no, it returns True.'''
def userMaySearch(self, rootClass):
'''This method checks if the currently logged user can trigger searches
on a given p_rootClass. This is done by calling method "maySearch"
on the class. If no such method exists, we return True.'''
pythonClass = self.getAppyClass(rootClass)
if 'mayCreate' in pythonClass.__dict__:
return pythonClass.mayCreate(self.appy())
if 'maySearch' in pythonClass.__dict__:
return pythonClass.maySearch(self.appy())
return True
def onImportObjects(self):
@ -369,6 +375,12 @@ class ToolMixin(AbstractMixin):
else:
return False
def isSortable(self, name, className, usage):
'''Is field p_name defined on p_metaType sortable for p_usage purposes
(p_usage can be "ref" or "search")?'''
appyType = self.getAppyType(name, className=className)
return appyType.isSortable(usage=usage)
def _searchValueIsEmpty(self, key):
'''Returns True if request value in key p_key can be considered as
empty.'''

View file

@ -642,11 +642,6 @@ class AbstractMixin:
reverse = rq.get('reverse') == 'True'
self.appy().sort(fieldName, sortKey=sortKey, reverse=reverse)
def isRefSortable(self, fieldName):
'''Can p_fieldName, which is a field defined on self, be used as a sort
key in a reference field?'''
return self.getAppyType(fieldName).isSortable(usage='ref')
def getWorkflow(self, appy=True):
'''Returns the Appy workflow instance that is relevant for this
object. If p_appy is False, it returns the DC workflow.'''
@ -969,6 +964,7 @@ class AbstractMixin:
if created and rq.get('nav', None):
# Get the initiator
splitted = rq['nav'].split('.')
if splitted[0] == 'search': return # Not an initiator but a search.
initiator = self.uid_catalog.searchResults(
UID=splitted[1])[0].getObject()
fieldName = splitted[2].split(':')[1]