version 1.111, 2007/04/18 15:09:52
|
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 1185 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="" |