Diff for /ZSQLExtend/ZSQLExtend.py between versions 1.35 and 1.39

version 1.35, 2004/09/27 20:31:40 version 1.39, 2004/10/05 17:48:50
Line 13  from Products.PageTemplates.PageTemplate Line 13  from Products.PageTemplates.PageTemplate
 from Products.ZSQLMethods.SQL import SQLConnectionIDs  from Products.ZSQLMethods.SQL import SQLConnectionIDs
 import Shared.DC.ZRDB.DA  import Shared.DC.ZRDB.DA
   
 def sql_quote(self, v):  def sql_quote(v):
     # quote dictionary      # quote dictionary
     quote_dict = {"\'": "''", "\\": "\\\\"}      quote_dict = {"\'": "''", "\\": "\\\\"}
     for dkey in quote_dict.keys():      for dkey in quote_dict.keys():
         if find(v, dkey) >= 0:          if string.find(v, dkey) >= 0:
             v=join(split(v,dkey),quote_dict[dkey])              v=join(split(v,dkey),quote_dict[dkey])
     return "'%s'" % v      return "'%s'" % v
   
Line 335  class ZSQLExtendFolder(Folder,Persistent Line 335  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]+"="+libpq.PgQuoteString(identify.split("=")[1])                  identify=identify.split("=")[0]+"="+sql_quote(identify.split("=")[1])
             elif name=="-format":              elif name=="-format":
                 format=urllib.unquote(value)                  format=urllib.unquote(value)
             elif (not name[0]=="-") and (not len(value)==0):              elif (not name[0]=="-") and (not len(value)==0):
                 changeList.append("\""+name+"\"="+libpq.PgQuoteString(urllib.unquote(value)))                  changeList.append("\""+name+"\"="+sql_quote(urllib.unquote(value)))
         changeString=string.join(changeList,",")          changeString=string.join(changeList,",")
         queryString="UPDATE %s SET %s WHERE %s"%(table,changeString,identify)          queryString="UPDATE %s SET %s WHERE %s"%(table,changeString,identify)
         self.ZSQLSimpleSearch(queryString)          self.ZSQLSimpleSearch(queryString)
         return self.REQUEST.RESPONSE.redirect(format)          return self.REQUEST.RESPONSE.redirect(format)
   
     def ZSQLChange_old(self):      def ZSQLChange_old(self):
         """Ändern von Einträgen"""          """change entries"""
         qs=self.REQUEST['QUERY_STRING']          qs=self.REQUEST['QUERY_STRING']
         #print "CHANGE QS",self.REQUEST          #print "CHANGE QS",self.REQUEST
         #return self.REQUEST          #return self.REQUEST
Line 360  class ZSQLExtendFolder(Folder,Persistent Line 360  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]+"="+libpq.PgQuoteString(identify.split("=")[1])                  identify=identify.split("=")[0]+"="+sql_quote(identify.split("=")[1])
             elif name=="-format":              elif name=="-format":
                 format=urllib.unquote(value)                  format=urllib.unquote(value)
             elif (not name[0]=="-") and (not len(value)==0):              elif (not name[0]=="-") and (not len(value)==0):
                 changeList.append("\""+name+"\"="+libpq.PgQuoteString(urllib.unquote(value)))                  changeList.append("\""+name+"\"="+sql_quote(urllib.unquote(value)))
         changeString=string.join(changeList,",")          changeString=string.join(changeList,",")
         queryString="UPDATE %s SET %s WHERE %s"%(table,changeString,identify)          queryString="UPDATE %s SET %s WHERE %s"%(table,changeString,identify)
         self.ZSQLSimpleSearch(queryString)          self.ZSQLSimpleSearch(queryString)
Line 545  class ZSQLExtendFolder(Folder,Persistent Line 545  class ZSQLExtendFolder(Folder,Persistent
                     lopfields[field]=lop                      lopfields[field]=lop
                                           
                 if name[0:10]==iCT+"sortorder":                  if name[0:10]==iCT+"sortorder":
                     sort=value                      #sort=value
   
                     field=name[11:]                      field=name[11:]
                     sortfields[field]=sort                      sortAllFields=None
                       #no field selected
                       if field=="":
                           sortAllFields=value
                       else:
                           sortfields[field]=value
                                           
                     #print "HI",op,field                      #print "HI",op,field
     #print opfieldsa      #print opfieldsa
Line 564  class ZSQLExtendFolder(Folder,Persistent Line 569  class ZSQLExtendFolder(Folder,Persistent
             except:              except:
                 value=""                  value=""
                                   
             #value=libpq.PgQuoteString(value)              #value=sql_quote(value)
                           
                           
             if name==iCT+"lop":              if name==iCT+"lop":
Line 588  class ZSQLExtendFolder(Folder,Persistent Line 593  class ZSQLExtendFolder(Folder,Persistent
                 sortstrs=[]                  sortstrs=[]
                 for word in value.split(','):                  for word in value.split(','):
                     wordstr=word.lstrip().rstrip()                      wordstr=word.lstrip().rstrip()
                       if sortAllFields:
                           order=sortAllFields
                       else:
                     order=sortfields.get(wordstr,'ASC')                      order=sortfields.get(wordstr,'ASC')
                           
                       if not (wordstr == ""):
                     sortstrs.append(wordstr+" "+order)                      sortstrs.append(wordstr+" "+order)
                 if len(sortstrs)>0:                  if len(sortstrs)>0:
                     sort="ORDER BY "+string.join(sortstrs,',')                      sort="ORDER BY "+string.join(sortstrs,',')
                                   
                       
             elif name==iCT+"token":              elif name==iCT+"token":
                 if not nostore=="yes":                  if not nostore=="yes":
                     self.REQUEST.SESSION['token']=value                      self.REQUEST.SESSION['token']=value
Line 614  class ZSQLExtendFolder(Folder,Persistent Line 625  class ZSQLExtendFolder(Folder,Persistent
                 namealt=name                  namealt=name
                 name="LOWER("+name+")"                      name="LOWER("+name+")"    
                 if op=="ct":                  if op=="ct":
                     tmp=(name+" LIKE "+libpq.PgQuoteString("%"+value+"%"))                      tmp=(name+" LIKE "+sql_quote("%"+value+"%"))
                 elif op=="gt":                  elif op=="gt":
                     tmp=(name+">"+libpq.PgQuoteString(value))                      tmp=(name+">"+sql_quote(value))
                 elif op=="lt":                  elif op=="lt":
                     tmp=(name+"<"+libpq.PgQuoteString(value))                      tmp=(name+"<"+sql_quote(value))
                 elif op=="eq":                  elif op=="eq":
                     tmp=(name+"="+libpq.PgQuoteString(value))                      tmp=(name+"="+sql_quote(value))
                 elif op=="bw":                  elif op=="bw":
                     tmp=(name+" LIKE "+libpq.PgQuoteString(value+"%"))                      tmp=(name+" LIKE "+sql_quote(value+"%"))
                 elif op=="ew":                  elif op=="ew":
                     tmp=(name+" LIKE "+libpq.PgQuoteString("%"+value))                      tmp=(name+" LIKE "+sql_quote("%"+value))
                 elif op=="all":                  elif op=="all":
                     tmps=[]                      tmps=[]
                     for word in value.split(" "):                      for word in value.split(" "):
                         tmps.append(name+" LIKE "+libpq.PgQuoteString("%"+word+"%"))                          tmps.append(name+" LIKE "+sql_quote("%"+word+"%"))
                                                   
                     tmp=string.join(tmps,' AND ')                      tmp=string.join(tmps,' AND ')
                                           
Line 642  class ZSQLExtendFolder(Folder,Persistent Line 653  class ZSQLExtendFolder(Folder,Persistent
                         searchFields[name]=tmp                          searchFields[name]=tmp
                         searchFieldsOnly[name]=value                          searchFieldsOnly[name]=value
   
               
        ##  for name in searchFields.keys():  
 ##             value=searchFields[name]  
                   
 ##             if opfields.has_key(name):  
 ##                 op=opfields[name]  
 ##             else:  
 ##                 op="ct"  
 ##             name="LOWER("+name+")"      
 ##             if op=="ct":  
 ##                 whereList.append(name+" LIKE "+libpq.PgQuoteString("%"+value+"%"))  
 ##             elif op=="gt":  
 ##                 whereList.append(name+">"+libpq.PgQuoteString(value))  
 ##             elif op=="lt":  
 ##                 whereList.append(name+"<"+libpq.PgQuoteString(value))  
 ##             elif op=="eq":  
 ##                 whereList.append(name+"="+libpq.PgQuoteString(value))  
 ##             elif op=="bw":  
 ##                 whereList.append(name+" LIKE "+libpq.PgQuoteString(value+"%"))  
 ##             elif op=="ew":  
 ##                 whereList.append(name+" LIKE "+libpq.PgQuoteString("%"+value))  
 ##             op="ct"  
               
 ##             #except:  
 ##             #    print "END",value,name,Exception        
   
         whereList=["("+searchFields[x]+")" for x in searchFields.keys()]          whereList=["("+searchFields[x]+")" for x in searchFields.keys()]
   
         if len(whereList)>0:          if len(whereList)>0:
Line 690  class ZSQLExtendFolder(Folder,Persistent Line 675  class ZSQLExtendFolder(Folder,Persistent
                 where+="and "+restrictConnect[0]+" in ("+restrictConnect[1]+")"                  where+="and "+restrictConnect[0]+" in ("+restrictConnect[1]+")"
                                   
         #print "QE",table          #print "QE",table
                   #print (select,table,where,sort,maxstr,skip)
         query="SELECT %s FROM %s %s %s %s %s"%(select,table,where,sort,maxstr,skip)          query="SELECT %s FROM %s %s %s %s %s"%(select,table,where,sort,maxstr,skip)
                   
         if not nostore=="yes":          if not nostore=="yes":
Line 728  class ZSQLExtendFolder(Folder,Persistent Line 713  class ZSQLExtendFolder(Folder,Persistent
             self.REQUEST.SESSION[storename]['rangeSize']=limit              self.REQUEST.SESSION[storename]['rangeSize']=limit
             self.REQUEST.SESSION[storename]['searchFields']=searchFields              self.REQUEST.SESSION[storename]['searchFields']=searchFields
             self.REQUEST.SESSION[storename]['searchFieldsOnly']=searchFieldsOnly              self.REQUEST.SESSION[storename]['searchFieldsOnly']=searchFieldsOnly
                       #print "QS", query
         if not NoQuery:          if not NoQuery:
   
             return self.ZSQLQuery(query)              return self.ZSQLQuery(query)
Line 800  class ZSQLExtendFolder(Folder,Persistent Line 785  class ZSQLExtendFolder(Folder,Persistent
         if self.REQUEST['QUERY_STRING']=="":          if self.REQUEST['QUERY_STRING']=="":
             qs=self.REQUEST.SESSION['query']              qs=self.REQUEST.SESSION['query']
                           
             queries=string.split(qs,",")              queries=string.split(qs,",")[0:]
                           
                           
         else:          else:
             qs=self.REQUEST['QUERY_STRING']              qs=self.REQUEST['QUERY_STRING']
             queries=string.split(qs,"&")              queries=string.split(qs,"&")[0:]
                           
                           
                           
Line 815  class ZSQLExtendFolder(Folder,Persistent Line 800  class ZSQLExtendFolder(Folder,Persistent
                   
         for query in queries:          for query in queries:
                           
             #print query.split("=")[0]              if query[0]=="_" : query="-"+query[1:]
             if query[0]=="_" : query[0]="-"  
   
             if query.split("=")[0].lower()=="-skip":              if query.split("=")[0].lower()=="-skip":
   

Removed from v.1.35  
changed lines
  Added in v.1.39


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>