version 1.110, 2007/04/05 14:20:08
|
version 1.112, 2007/04/19 20:29:59
|
Line 623 class ZSQLExtendFolder(Folder,Persistent
|
Line 623 class ZSQLExtendFolder(Folder,Persistent
|
return 1 |
return 1 |
return 0 |
return 0 |
|
|
|
def ZSQLMultiSearch(self,_table,_searchField,_value,_idField,_additionalStatement="",_select=None,_storename=None): |
|
""" |
|
Durchsucht in einer Tabelle "table" die Spalte "searchfield" nach dem allen Vorkommnissen |
|
von Worten in value und gibt alle Werte mit gleichem id field zurŸck, d.h. es wird die "und" suche realisiert, |
|
z.B. fŸr simplesearch ueber mehrere Felder |
|
""" |
|
if _storename: |
|
"""store""" |
|
else: |
|
_storename="foundCount" |
|
|
|
queries=[] |
|
#baue jede einzelne abfrage |
|
splitted=_value.split(" ") |
|
if not _select: |
|
_select=_idField |
|
|
|
queries.append("select %s from %s %s where %s like '%%%s%%'"%(_select,_table,_additionalStatement,_searchField,splitted[0])) |
|
|
|
if len(splitted)>1: |
|
for v in splitted[1:]: |
|
queries.append("select %s from %s where %s like '%%%s%%'"%(_idField,_table,_searchField,v)) |
|
|
|
q=" and %s in ("%_idField |
|
query=q.join(queries) # nun baue sie zusammen |
|
for i in range(len(queries)-1): |
|
query+=")" #noch die klammern schliessen |
|
|
|
|
|
if _additionalStatement: |
|
query=query+" " |
|
|
|
logging.info("ZSQLSimple: %s"%query) |
|
retT=self.ZSQLSimpleSearch(query) |
|
logging.info("ZSQLSimple: %s"%retT) |
|
|
|
retFinalT={} |
|
for x in retT: |
|
split=_idField.split(".") |
|
if len(split)>1: |
|
f=split[1] |
|
else: |
|
f=_idField |
|
|
|
retFinalT[getattr(x,f)]=x |
|
|
|
ret=list(retFinalT.values()) |
|
|
|
|
|
|
|
if not self.REQUEST.SESSION.has_key(_storename): |
|
self.REQUEST.SESSION[_storename]={} |
|
|
|
self.REQUEST.SESSION[_storename]['searchFieldsOnly']={} |
|
self.REQUEST.SESSION[_storename]['qs']=query |
|
return ret |
|
|
def ZSQLsearchOptions(self,fieldname=""): |
def ZSQLsearchOptions(self,fieldname=""): |
"""return HTML Fragment with search options""" |
"""return HTML Fragment with search options""" |
|
|
Line 829 class ZSQLExtendFolder(Folder,Persistent
|
Line 886 class ZSQLExtendFolder(Folder,Persistent
|
if x: |
if x: |
value=x |
value=x |
else: |
else: |
|
|
value=str(argTmp[a]) |
value=str(argTmp[a]) |
qs.append(aFiltered+"="+urllib.quote(value)) |
qs.append(aFiltered+"="+urllib.quote(value)) |
|
|
Line 858 class ZSQLExtendFolder(Folder,Persistent
|
Line 916 class ZSQLExtendFolder(Folder,Persistent
|
|
|
def ZSQLSimpleSearch(self,query=None,max_rows=1000000): |
def ZSQLSimpleSearch(self,query=None,max_rows=1000000): |
"""simple search""" |
"""simple search""" |
#logging.error("ZSQLSimpleSearch X %s"%query) |
logging.error("ZSQLSimpleSearch X %s"%query) |
#print query |
#print query |
if not query: |
if not query: |
query=self.query |
query=self.query |
Line 1021 class ZSQLExtendFolder(Folder,Persistent
|
Line 1079 class ZSQLExtendFolder(Folder,Persistent
|
table=urllib.unquote(value) |
table=urllib.unquote(value) |
elif name=="-identify": |
elif name=="-identify": |
identify=urllib.unquote(value) |
identify=urllib.unquote(value) |
identify=identify.split("=")[0]+"="+sql_quote(identify.split("=")[1]) |
identify="lower("+identify.split("=")[0]+")="+sql_quote(identify.split("=")[1].lower()) |
elif name=="-format": |
elif name=="-format": |
format=urllib.unquote(value) |
format=urllib.unquote(value) |
#elif (not (name[0]=="-" or name[0]=="_")) and (not len(value)==0): |
#elif (not (name[0]=="-" or name[0]=="_")) and (not len(value)==0): |
Line 1132 class ZSQLExtendFolder(Folder,Persistent
|
Line 1190 class ZSQLExtendFolder(Folder,Persistent
|
|
|
|
|
#print "calling Query with",repr(NoQuery) |
#print "calling Query with",repr(NoQuery) |
logging.error("blo") |
|
ret=self.parseQueryString(qs,"-",select=select,storemax="yes",storename=storename,tableExt=tableExt,NoQuery=NoQuery,NoLimit=NoLimit,restrictField=restrictField,restrictConnect=restrictConnect,filter=filter) |
ret=self.parseQueryString(qs,"-",select=select,storemax="yes",storename=storename,tableExt=tableExt,NoQuery=NoQuery,NoLimit=NoLimit,restrictField=restrictField,restrictConnect=restrictConnect,filter=filter) |
#print self.REQUEST.SESSION["foundCount"] |
#print self.REQUEST.SESSION["foundCount"] |
|
|
logging.error("BlAAAAAAAAAA %s"%ret) |
|
|
|
return ret |
return ret |
|
|
Line 1184 class ZSQLExtendFolder(Folder,Persistent
|
Line 1242 class ZSQLExtendFolder(Folder,Persistent
|
for query in querys: |
for query in querys: |
arg=query.split("=")[0] |
arg=query.split("=")[0] |
if arg[0]=="_": arg="-"+arg[1:] # sicherstellen, dass an Anfang stets "_" |
if arg[0]=="_": arg="-"+arg[1:] # sicherstellen, dass an Anfang stets "_" |
|
try: |
queryList[arg]=query.split("=")[1] |
queryList[arg]=query.split("=")[1] |
|
except: |
|
queryList[arg]='' |
|
|
argList=[] |
argList=[] |
arg="" |
arg="" |