Diff for /ZSQLExtend/ZSQLExtend.py between versions 1.1.1.1 and 1.4

version 1.1.1.1, 2003/11/28 15:03:10 version 1.4, 2003/12/23 17:56:01
Line 5  from Globals import DTMLFile Line 5  from Globals import DTMLFile
 import urllib  import urllib
 import re  import re
 import string  import string
   from pyPgSQL import libpq
 from AccessControl import getSecurityManager  from AccessControl import getSecurityManager
   
   def quoteString(name):
       #return re.sub(r'([\(\)\?])',"\\\1",name)
       #return "Euklid"
       return name
   
 class ZSQLExtendFolder(Persistent, Implicit, Folder):  class ZSQLExtendFolder(Persistent, Implicit, Folder):
     """Folder"""      """Folder"""
     meta_type="ZSQLExtendFolder"      meta_type="ZSQLExtendFolder"
Line 16  class ZSQLExtendFolder(Persistent, Impli Line 22  class ZSQLExtendFolder(Persistent, Impli
         qs=[]          qs=[]
                   
                           
   
       
         for a in argv.keys():          for a in argv.keys():
             qs.append(a+"="+urllib.quote(str(argv[a])))              qs.append(a+"="+urllib.quote(str(argv[a])))
   
Line 41  class ZSQLExtendFolder(Persistent, Impli Line 49  class ZSQLExtendFolder(Persistent, Impli
         valueList=[]          valueList=[]
         for x in addList.keys():          for x in addList.keys():
             keyList.append("\""+x+"\"")              keyList.append("\""+x+"\"")
             valueList.append("\'"+addList[x]+"\'")              valueList.append(libpq.PgQuoteString(addList[x]))
   
         keyString=string.join(keyList,",")          keyString=string.join(keyList,",")
         valueString=string.join(valueList,",")          valueString=string.join(valueList,",")
Line 50  class ZSQLExtendFolder(Persistent, Impli Line 58  class ZSQLExtendFolder(Persistent, Impli
         self.search(var=queryString)          self.search(var=queryString)
         return self.REQUEST.RESPONSE.redirect(format)          return self.REQUEST.RESPONSE.redirect(format)
                   
     def ZSQLChange(self):      def ZSQLChange(self,**argv):
           """Ändern von Einträgen"""
           #qs=self.REQUEST['QUERY_STRING']
           # very bad hack
           qs_temp=[]
       
           for a in self.REQUEST.form.keys():
               qs_temp.append(a+"="+urllib.quote(str(self.REQUEST.form[a])))
   
           qs=string.join(qs_temp,"&")
   
       
           #print "CHANGE QS",self.REQUEST
           #return self.REQUEST
           changeList=[]
           for q in qs.split("&"):
               name=urllib.unquote(re.sub("r'+'"," ",q.split("=")[0].lower()))
               value=q.split("=")[1]
               value=re.sub(r'\+'," ",value)
           value=urllib.unquote(value)
           if name=="-table":
                   table=urllib.unquote(value)
               elif name=="-identify":
                   identify=urllib.unquote(value)
                   identify=identify.split("=")[0]+"="+libpq.PgQuoteString(identify.split("=")[1])
               elif name=="-format":
                   format=urllib.unquote(value)
               elif (not name[0]=="-") and (not len(value)==0):
                   changeList.append("\""+name+"\"="+libpq.PgQuoteString(urllib.unquote(value)))
           changeString=string.join(changeList,",")
           queryString="UPDATE %s SET %s WHERE %s"%(table,changeString,identify)
           self.search(var=queryString)
           return self.REQUEST.RESPONSE.redirect(format)
   
       def ZSQLChange_old(self):
         """Ändern von Einträgen"""          """Ändern von Einträgen"""
         qs=self.REQUEST['QUERY_STRING']          qs=self.REQUEST['QUERY_STRING']
         #print "CHANGE QS",self.REQUEST          #print "CHANGE QS",self.REQUEST
Line 65  class ZSQLExtendFolder(Persistent, Impli Line 107  class ZSQLExtendFolder(Persistent, Impli
                 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]+"=\'"+identify.split("=")[1]+"\'"                  identify=identify.split("=")[0]+"="+libpq.PgQuoteString(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+"\"=\'"+urllib.unquote(value)+"\'")                  changeList.append("\""+name+"\"="+libpq.PgQuoteString(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.search(var=queryString)          self.search(var=queryString)
Line 102  class ZSQLExtendFolder(Persistent, Impli Line 144  class ZSQLExtendFolder(Persistent, Impli
         whereList=[]          whereList=[]
         sort=""          sort=""
         op="bw"          op="bw"
           opfields={}
   
         if not select:          if not select:
             select="*"              select="*"
                   
           #check for op in the case of inline search
           if iCT=="_":            
               for q in qs.split(","):
                   name=re.sub("r'+'"," ",q.split("=")[0].lower())
                   value=urllib.unquote(q.split("=")[1])
   
                   if name[0:3]==iCT+"op":
                       op=value
                       field=name[4:]
                       opfields[field]=op
   
           #now analyse the querystring
         for q in qs.split(","):          for q in qs.split(","):
             try:              try:
   
                 name=re.sub("r'+'"," ",q.split("=")[0].lower())                  name=re.sub("r'+'"," ",q.split("=")[0].lower())
                 value=urllib.unquote(q.split("=")[1])                  value=urllib.unquote(q.split("=")[1])
                   value=quoteString(value)
                 if name==iCT+"lop":                  if name==iCT+"lop":
                     lop=value                      lop=value
                 elif name==iCT+"table":                  elif name==iCT+"table":
Line 131  class ZSQLExtendFolder(Persistent, Impli Line 186  class ZSQLExtendFolder(Persistent, Impli
                 elif name==iCT+"op":                  elif name==iCT+"op":
                     op=value                      op=value
   
                   
   
                 elif (not name[0]==iCT) and (not len(value)==0):                  elif (not name[0]==iCT) and (not len(value)==0):
                       if opfields.has_key(name):
                           op=opfields[name]
                     if op=="ct":                      if op=="ct":
                         whereList.append(name+"~\'.*"+value+".*\'")                          whereList.append(name+"~\'.*"+value+".*\'")
                     elif op=="gt":                      elif op=="gt":
Line 155  class ZSQLExtendFolder(Persistent, Impli Line 214  class ZSQLExtendFolder(Persistent, Impli
                   
         query="SELECT %s FROM %s %s %s"%(select,table,where,sort)          query="SELECT %s FROM %s %s %s"%(select,table,where,sort)
   
           self.REQUEST.SESSION['qs']=opfields
         return self.search(var=query)          return self.search(var=query)
           
     def ZSQLSearch(self):      def ZSQLSearch(self):

Removed from v.1.1.1.1  
changed lines
  Added in v.1.4


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