--- ZSQLExtend/ZSQLExtend.py 2005/12/22 21:10:34 1.77
+++ ZSQLExtend/ZSQLExtend.py 2006/08/29 17:37:17 1.89
@@ -369,8 +369,16 @@ class ZSQLExtendFolder(Folder,Persistent
field=getattr(result,fieldName)
fieldValue=getattr(result,valueName)
if fieldValue:
+
if not linelen:
- ret+=""""""%(field,fieldValue)
+
+
+ if field == selected:
+
+ ret+=""""""%(field,fieldValue)
+ else:
+ ret+=""""""%(field,fieldValue)
+
else:
mist = """%s"""%(fieldValue)
if len(mist) > string.atoi(linelen):
@@ -380,7 +388,7 @@ class ZSQLExtendFolder(Folder,Persistent
return ret
- def ZSQLInlineSearchU(self,storename=None,**argv):
+ def ZSQLInlineSearchU(self,storename=None,args=None,**argv):
"""one element if exists"""
qs=[]
if storename:
@@ -389,11 +397,15 @@ class ZSQLExtendFolder(Folder,Persistent
else:
storename="foundCount"
-
+ if args:
+ argTmp=args
+ else:
+ argTmp=argv
+
#print "INLINE:",argv
- for a in argv.keys():
- qs.append(a+"="+urllib.quote(str(argv[a])))
+ for a in argTmp.keys():
+ qs.append(a+"="+urllib.quote(str(argTmp[a])))
#return []
ret = self.parseQueryString(string.join(qs,","),"_",storename=storename)
@@ -402,7 +414,7 @@ class ZSQLExtendFolder(Folder,Persistent
except:
return None
- def ZSQLInlineSearch(self,storename=None,**argv):
+ def ZSQLInlineSearch(self,storename=None,args=None,**argv):
"""inlinesearch"""
qs=[]
@@ -413,6 +425,12 @@ class ZSQLExtendFolder(Folder,Persistent
+ if args:
+ argTmp=args
+ else:
+ argTmp=argv
+
+
#print "INLINE:",argv
for a in argv.keys():
try:
@@ -422,6 +440,7 @@ class ZSQLExtendFolder(Folder,Persistent
qs.append(a+"="+urllib.quote(str(argv[a])))
#return []
+
return self.parseQueryString(string.join(qs,","),"_",storename=storename)
def ZSQLInlineSearch2(self,query):
@@ -446,9 +465,10 @@ class ZSQLExtendFolder(Folder,Persistent
def ZSQLSimpleSearch(self,query=None,max_rows=1000000):
"""simple search"""
+
if not query:
query=self.query
-
+
if (hasattr(self,"_v_searchSQL") and (self._v_searchSQL == None)) or (not hasattr(self,"_v_searchSQL")):
@@ -509,9 +529,14 @@ class ZSQLExtendFolder(Folder,Persistent
- def ZSQLAdd(self,format=None,RESPONSE=None,**argv):
+ def ZSQLAdd(self,format=None,RESPONSE=None,args=None,**argv):
"""Neuer Eintrag"""
+ if args:
+ argTmp=args
+ else:
+ argTmp=argv
+
qs_temp=[]
for a in self.REQUEST.form.keys():
@@ -519,13 +544,13 @@ class ZSQLExtendFolder(Folder,Persistent
qs=string.join(qs_temp,",")
- for field in argv.keys():
+ for field in argTmp.keys():
if field[0]=="_":
fieldTmp="-"+field[1:]
else:
fieldTmp=field
- qs+=",%s=%s"%(fieldTmp,argv[field])
+ qs+=",%s=%s"%(fieldTmp,argTmp[field])
addList={}
@@ -533,7 +558,7 @@ class ZSQLExtendFolder(Folder,Persistent
name=re.sub("r'+'"," ",q.split("=")[0].lower())
value=q.split("=")[1]
value=re.sub(r'\+'," ",value)
- value=urllib.unquote(value)
+ value=urllib.unquote(value)
if name=="-table":
table=urllib.unquote(value)
elif name=="-format":
@@ -563,10 +588,11 @@ class ZSQLExtendFolder(Folder,Persistent
"""change entries"""
#qs=self.REQUEST['QUERY_STRING']
# very bad hack
-
+
qs_temp=[]
if USE_FORM or RESPONSE:
for a in self.REQUEST.form.keys():
+
qs_temp.append(a+"="+urllib.quote(str(self.REQUEST.form[a])))
@@ -584,12 +610,12 @@ class ZSQLExtendFolder(Folder,Persistent
changeList=[]
for q in qs_temp:
-
+
name=urllib.unquote(re.sub("r'+'"," ",q.split("=")[0].lower()))
value="=".join(q.split("=")[1:])
value=re.sub(r'\+'," ",value)
value=urllib.unquote(value)
-
+
if name=="-table":
table=urllib.unquote(value)
elif name=="-identify":
@@ -597,13 +623,15 @@ class ZSQLExtendFolder(Folder,Persistent
identify=identify.split("=")[0]+"="+sql_quote(identify.split("=")[1])
elif name=="-format":
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):
+ elif (not (name[0]=="-" or name[0]=="_")):
changeList.append("\""+name+"\"="+sql_quote(urllib.unquote(value)))
changeString=string.join(changeList,",")
queryString="UPDATE %s SET %s WHERE %s"%(table,changeString,identify)
+ zLOG.LOG("ZSQLExtend",zLOG.INFO,"CHANGE: "+queryString)
self.ZSQLSimpleSearch(queryString)
@@ -980,7 +1008,7 @@ class ZSQLExtendFolder(Folder,Persistent
elif (not name[0]==iCT) and (not len(value)==0):
- #print "OP",op,name
+ #print "OP",op,name
value=value.lower()
tmp=""
if opfields.has_key(name):
@@ -1100,6 +1128,7 @@ class ZSQLExtendFolder(Folder,Persistent
self.REQUEST.SESSION[storename]['rangeEnd']=int(rangeStart)+int(limit)
self.REQUEST.SESSION[storename]['rangeSize']=limit
self.REQUEST.SESSION[storename]['searchFields']=searchFields
+
self.REQUEST.SESSION[storename]['searchFieldsOnly']=searchFieldsOnly
if not NoQuery:
@@ -1223,7 +1252,7 @@ class ZSQLExtendFolder(Folder,Persistent
newquery.append(query)
newquerystring=string.join(newquery,"&")
- return "%s"%(self.REQUEST['URL']+"?"+newquerystring,html)
+ return "%s"%(self.REQUEST['URL']+"?"+newquerystring,html)
@@ -1467,16 +1496,16 @@ class ZSQLBibliography(Folder,ZSQLExtend
retdata={}
fieldlist=self.standardMD.fieldList
- for referenceTypeF in self.referencetypes:
- #print referenceType,referenceTypeF[1].title
- if referenceTypeF[1].title == referenceType:
- bibdata[referenceTypeF[1].title]=referenceTypeF[1].fields
- bibdata['data']=referenceTypeF[1]
- self.fields=bibdata[referenceType]
+ for referenceTypeF in self.referencetypes:
+ #print referenceType,referenceTypeF[1].title
+ if referenceTypeF[1].title == referenceType:
+ bibdata[referenceTypeF[1].title]=referenceTypeF[1].fields
+ bibdata['data']=referenceTypeF[1]
+ self.fields=bibdata[referenceType]
for field in fieldlist:
- if referenceTypeF[1].getValue(field)[0]==None:
- retdata[field]=field
- else:
+ if referenceTypeF[1].getValue(field)[0]==None:
+ retdata[field]=field
+ else:
retdata[field]=referenceTypeF[1].getValue(field)[0]
return retdata,fieldlist
@@ -1488,12 +1517,12 @@ class ZSQLBibliography(Folder,ZSQLExtend
retdata={}
fieldlist=self.standardMD.fieldList
- for referenceTypeF in self.referencetypes:
- #print referenceType,referenceTypeF[1].title
- if referenceTypeF[1].title == referenceType:
- bibdata[referenceTypeF[1].title]=referenceTypeF[1].fields
- bibdata['data']=referenceTypeF[1]
- self.fields=bibdata[referenceType]
+ for referenceTypeF in self.referencetypes:
+ #print referenceType,referenceTypeF[1].title
+ if referenceTypeF[1].title == referenceType:
+ bibdata[referenceTypeF[1].title]=referenceTypeF[1].fields
+ bibdata['data']=referenceTypeF[1]
+ self.fields=bibdata[referenceType]
for field in fieldlist:
retdata[field]=referenceTypeF[1].getValue(field)[1]
@@ -1592,7 +1621,7 @@ class ZSQLBibliography(Folder,ZSQLExtend
fix_host = http_host + ":" + host_port
ret="""
- """
+ """
for found in self.ZSQLSimpleSearch("select oid from %s limit ALL"%self.tableName):
base_url = self.absolute_url()
if fix_host: