--- ZSQLExtend/ZSQLExtend.py 2004/09/12 11:05:43 1.33 +++ ZSQLExtend/ZSQLExtend.py 2004/09/27 18:51:57 1.34 @@ -498,6 +498,7 @@ class ZSQLExtendFolder(Folder,Persistent op="bw" opfields={} lopfields={} #Verknüpfung bei mehrfachauswahl von einem feld + sortfields={} #order of sortfields skip="" rangeStart=0 limit=0 @@ -534,6 +535,13 @@ class ZSQLExtendFolder(Folder,Persistent field=name[5:] lopfields[field]=lop + + if name[0:10]==iCT+"sortorder": + sort=value + + field=name[11:] + sortfields[field]=sort + #print "HI",op,field #print opfieldsa #now analyse the querystring @@ -569,7 +577,14 @@ class ZSQLExtendFolder(Folder,Persistent elif name==iCT+"join": whereList.append(value) elif name==iCT+"sort": - sort="ORDER BY "+value.replace(' AND ',',') + sortstrs=[] + for word in value.split(','): + wordstr=word.lstrip().rstrip() + order=sortfields.get(wordstr,'ASC') + sortstrs.append(wordstr+" "+order) + if len(sortstrs)>0: + sort="ORDER BY "+string.join(sortstrs,',') + elif name==iCT+"token": if not nostore=="yes": self.REQUEST.SESSION['token']=value @@ -602,6 +617,13 @@ class ZSQLExtendFolder(Folder,Persistent tmp=(name+" LIKE "+libpq.PgQuoteString(value+"%")) elif op=="ew": tmp=(name+" LIKE "+libpq.PgQuoteString("%"+value)) + elif op=="all": + tmps=[] + for word in value.split(" "): + tmps.append(name+" LIKE "+libpq.PgQuoteString("%"+word+"%")) + + tmp=string.join(tmps,' AND ') + op="ct" if (not tableExt) or (namealt.split('.')[0]==tableExt):