--- ECHO_content/ECHO_helpers.py 2005/12/13 12:45:21 1.69 +++ ECHO_content/ECHO_helpers.py 2006/03/06 14:26:10 1.75 @@ -537,7 +537,7 @@ def checkOnlyOneInGroup(object): else: return object -def getSubCols(self, sortfield=None, subColTypes=displayTypes, sortFieldMD=None,searchMD=None,searchSimple=None,generic="yes"): +def getSubCols(self, sortfield=None, subColTypes=displayTypes, sortFieldMD=None,searchMD=None,searchMD_modus='search',searchSimple=None,generic="yes",search_sub=0): def sort(x,y): return cmp(x[0],y[0]) @@ -555,18 +555,25 @@ def getSubCols(self, sortfield=None, sub sortWithMD = lambda sortfield : (lambda x,y : sortfnc(sortfield,x,y)) ids=[] - displayedObjects=self.ZopeFind(self,obj_metatypes=subColTypes) + displayedObjects=self.ZopeFind(self,obj_metatypes=subColTypes,search_sub=search_sub) + 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'): + if searchMD: + if 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)): + #if re.match(searchMD[field],object.getMDValue(field,generic=generic)): + if searchMD_modus=='match': + searchResult=re.match(searchMD[field],object.getMDValue(field,generic=generic)) + else: + searchResult=re.search(searchMD[field],object.getMDValue(field,generic=generic)) + if searchResult: flag=1 else: flag=0 @@ -906,7 +913,10 @@ def writeMetadata(url,metadict,project=N metanode.removeChild(nodeOld[0]).unlink() metanodeneu=dom.createElement(metaData) - metanodetext=dom.createTextNode(metadict[metaData].decode('utf-8')) + try: + metanodetext=dom.createTextNode(metadict[metaData]) + except: + metanodetext=dom.createTextNode(metadict[metaData].decode('utf-8')) #try: #metanodetext=dom.createTextNode(unicode(metadict[metaData],"utf-8")) #except: