--- ECHO_content/ECHO_helpers.py 2005/11/03 14:45:28 1.64 +++ ECHO_content/ECHO_helpers.py 2005/11/25 18:46:40 1.65 @@ -531,7 +531,7 @@ def checkOnlyOneInGroup(object): return displayedObjects[0][1] else: return object -def getSubCols(self, sortfield=None, subColTypes=displayTypes, sortFieldMD=None,searchMD=None,generic="yes"): +def getSubCols(self, sortfield=None, subColTypes=displayTypes, sortFieldMD=None,searchMD=None,searchSimple=None,generic="yes"): def sort(x,y): return cmp(x[0],y[0]) @@ -552,23 +552,30 @@ def getSubCols(self, sortfield=None, sub displayedObjects=self.ZopeFind(self,obj_metatypes=subColTypes) - - for entry in displayedObjects: - + if searchSimple and (not (searchSimple==""))and hasattr(self,'resourceCatalog'): + searchString=" AND ".join(searchSimple.split()) + ids=[x.getObject() for x in self.resourceCatalog({'getMDValueSimpleSearchField':searchString})] + + else: + for entry in displayedObjects: + + + object=entry[1] + if searchMD and hasattr(object,'getMDValue'): + flag=0 + for field in searchMD.keys(): + #if object.getMDValue(field,generic=generic)==searchMD[field]: + if re.match(searchMD[field],object.getMDValue(field,generic=generic)): + flag=1 + else: + flag=0 + break + if flag==1: + ids.append(object) + - object=entry[1] - if searchMD and hasattr(object,'getMDValue'): - flag=0 - for field in searchMD.keys(): - if object.getMDValue(field,generic=generic)==searchMD[field]: - flag=1 - else: - flag=0 - break - if flag==1: - ids.append(object) - else: - ids.append(object) + else: + ids.append(object) if not sortfield: sortfield=getattr(self,'sortfield','weight')