Diff for /ZSQLExtend/ZSQLExtend.py between versions 1.5 and 1.14

version 1.5, 2004/01/21 16:54:45 version 1.14, 2004/03/11 14:50:47
Line 18  class ZSQLExtendFolder(Persistent, Impli Line 18  class ZSQLExtendFolder(Persistent, Impli
     """Folder"""      """Folder"""
     meta_type="ZSQLExtendFolder"      meta_type="ZSQLExtendFolder"
           
       def formatAscii(self,str,url=None):
           """ersetze ascii umbrueche durch <br>"""
           #url=None
           if url:
               
               retStr=""
               words=str.split("\n")
               
               for word in words:
                   strUrl=url%word
                   #print "str",strUrl
                   retStr+="""<a href="%s">%s</a><br/>"""%(strUrl,word)
               str=retStr
           if str:
               return re.sub(r"[\n]","<br/>",str)
           else:
               return ""
           
       def getSAttribute(self,obj,atribute,pref=''):
           """get Attribute or emptystring"""
           
           #print "obj",obj
           try:
               return pref+getattr(obj,atribute)
           except:
               return ""
           
       def getS(self,str):
           """make none to empty string"""
           if str:
               return str
           else:
               return ""
   
       def actualPath(self,url=None):
       """path"""
   
           if self.REQUEST['HTTP_X_FORWARDED_SERVER']=='':
               host=self.REQUEST['HTTP_HOST']
           else:
               host=self.REQUEST['HTTP_X_FORWARDED_SERVER']
       if not url:
           return "http://"+host+self.REQUEST['PATH_TRANSLATED']
           else:
           temp=self.REQUEST[url].split("/")
           temp[2]=host
           return string.join(temp,"/")
   
       def getRequest(self):
       """request"""
       return self.REQUEST
   
     def lowerEnd(self,path):      def lowerEnd(self,path):
         """oinly for demo"""          """oinly for demo"""
Line 25  class ZSQLExtendFolder(Persistent, Impli Line 76  class ZSQLExtendFolder(Persistent, Impli
                   
     def ZSQLisEmpty(self,field):      def ZSQLisEmpty(self,field):
         """Teste ob Treffer leer"""          """Teste ob Treffer leer"""
         print "field",field          #print "field",field
         if not field:          if not field:
             return 1              return 1
         if field=="":          if field=="":
             return 1              return 1
         return 0          return 0
   
     def ZSQLsearchOptions(self):      def ZSQLsearchOptions(self,fieldname=""):
         """return HTML Fragment with search options"""          """return HTML Fragment with search options"""
         ret="""<select name="-op">      
           ret="""<select name="-op_%s">
     <option value="bw">begins with</option>             <!-- begins with / beginnt mit, "Wort*" -->      <option value="bw">begins with</option>             <!-- begins with / beginnt mit, "Wort*" -->
     <option value="ew">ends with</option>      <option value="ew">ends with</option>
     <option value="cn">contains</option>                <!-- contains / enthaellt, "Wort" -->      <option value="ct" selected>contains</option>               <!-- contains / enthaellt, "Wort" -->
     <option value="eq">equals</option>                  <!-- equals / ist, =Wort -->      <option value="eq">equals</option>                  <!-- equals / ist, =Wort -->
 </select>"""  </select>"""%fieldname
         return ret          return ret
           
     def ZSQLInlineSearch(self,storename=None,**argv):      def ZSQLInlineSearch(self,storename=None,**argv):
Line 156  class ZSQLExtendFolder(Persistent, Impli Line 208  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 ZSQLFind(self,qs="",select="*",storename=None):      def ZSQLFind(self,qs="",select="oid,*",storename=None):
         """Find"""          """Find"""
   
   
Line 170  class ZSQLExtendFolder(Persistent, Impli Line 222  class ZSQLExtendFolder(Persistent, Impli
                                 
                qs=self.REQUEST.SESSION['query']                 qs=self.REQUEST.SESSION['query']
         else:          else:
               self.REQUEST['QUERY_STRING']=qs
             qs=string.join(qs.split("&"),",")              qs=string.join(qs.split("&"),",")
   
   
         qs=re.sub("\\+"," ",qs)# Austauschen da Leerzeichen bei http-get durch + ersetzt wird, generell sollte alles auf post umgeschrieben werden. vom search formular.          qs=re.sub("\\+"," ",qs)# Austauschen da Leerzeichen bei http-get durch + ersetzt wird, generell sollte alles auf post umgeschrieben werden. vom search formular.
         #print "QS",qs  
         if storename:          if storename:
             """store"""              """store"""
         else:          else:
             storename="foundCount"              storename="foundCount"
                   #print "QS",qs
         ret=self.parseQueryString(qs,"-",select=select,storemax="yes",storename=storename)          ret=self.parseQueryString(qs,"-",select=select,storemax="yes",storename=storename)
         #print self.REQUEST.SESSION["foundCount"]          #print self.REQUEST.SESSION["foundCount"]
                   
Line 242  class ZSQLExtendFolder(Persistent, Impli Line 296  class ZSQLExtendFolder(Persistent, Impli
         #print "NO",nostore          #print "NO",nostore
         lop="AND" # standardsuche mit and          lop="AND" # standardsuche mit and
         max="ALL" #standard alle auswählen          max="ALL" #standard alle auswählen
           maxstr=""
         whereList=[]          whereList=[]
         sort=""          sort=""
         op="bw"          op="bw"
         opfields={}          opfields={}
         skip=""          skip=""
         rangeStart=0          rangeStart=0
           limit=0
           searchFields={}
                   
         if not select:          if not select:
             select="*"              select="oid,*"
         #print "Q",nostore,qs          #print "Q",nostore,qs
         #check for op in the case of inline search          #check for op in the case of inline search
         if iCT=="_":              
             for q in qs.split(","):  
                                   
                 name=re.sub("r'+'"," ",q.split("=")[0].lower())      splitted=qs.split(",")
                 value=urllib.unquote(q.split("=")[1])  
   
               
           for q in splitted:
                   
                   name=re.sub("r'+'"," ",q.split("=")[0].lower())
                   try:
                       value=urllib.unquote(q.split("=",1)[1])
                   except:
                       value=""
                 if name[0:3]==iCT+"op":                  if name[0:3]==iCT+"op":
                     op=value                      op=value
   
                     field=name[4:]                      field=name[4:]
                     opfields[field]=op                      opfields[field]=op
                       #print "HI",op,field
       #print opfieldsa
         #now analyse the querystring          #now analyse the querystring
         for q in qs.split(","):          for q in qs.split(","):
                           
Line 271  class ZSQLExtendFolder(Persistent, Impli Line 335  class ZSQLExtendFolder(Persistent, Impli
             #try:              #try:
   
             name=re.sub("r'+'"," ",q.split("=")[0].lower())              name=re.sub("r'+'"," ",q.split("=")[0].lower())
             value=urllib.unquote(q.split("=")[1])              try:
                   value=urllib.unquote(q.split("=",1)[1])
               except:
                   value=""
                   
             #value=libpq.PgQuoteString(value)              #value=libpq.PgQuoteString(value)
                           
                           
Line 282  class ZSQLExtendFolder(Persistent, Impli Line 350  class ZSQLExtendFolder(Persistent, Impli
             elif name==iCT+"select":              elif name==iCT+"select":
                 select=value                  select=value
             elif name==iCT+"max":              elif name==iCT+"max":
                 max="LIMIT "+str(value)                  maxstr="LIMIT "+str(value)
                 limit=str(value)                  limit=str(value)
             elif name==iCT+"skip":              elif name==iCT+"skip":
                 skip="OFFSET "+str(value)                  skip="OFFSET "+str(value)
Line 301  class ZSQLExtendFolder(Persistent, Impli Line 369  class ZSQLExtendFolder(Persistent, Impli
   
   
             elif (not name[0]==iCT) and (not len(value)==0):              elif (not name[0]==iCT) and (not len(value)==0):
                 name="LOWER("+name+")"                  
           #print "OP",op,name
                 value=value.lower()                  value=value.lower()
   
                   searchFields[name]=value
                   
                 if opfields.has_key(name):                  if opfields.has_key(name):
                     op=opfields[name]                      op=opfields[name]
           else:
               op="ct"
           name="LOWER("+name+")"    
                 if op=="ct":                  if op=="ct":
                     whereList.append(name+" LIKE "+libpq.PgQuoteString("%"+value+"%"))                      whereList.append(name+" LIKE "+libpq.PgQuoteString("%"+value+"%"))
                 elif op=="gt":                  elif op=="gt":
Line 327  class ZSQLExtendFolder(Persistent, Impli Line 402  class ZSQLExtendFolder(Persistent, Impli
             where=""              where=""
         #print "QE",table          #print "QE",table
                   
         query="SELECT %s FROM %s %s %s %s %s"%(select,table,where,sort,max,skip)          query="SELECT %s FROM %s %s %s %s %s"%(select,table,where,sort,maxstr,skip)
           
         if not nostore=="yes":          if not nostore=="yes":
                           
             self.REQUEST.SESSION['qs']=opfields              self.REQUEST.SESSION['qs']=opfields
         print "IAMHERE again:", query          #print "IAMHERE again:", query
   
         if storename:          if storename:
             query2="SELECT count(%s) FROM %s %s"%(select,table,where)              query2="SELECT count(*) FROM %s %s"%(table,where)
             #print "storing",query2              #print "storing",query2
             #print "QUERYSTRING:",self.REQUEST.SESSION[storename]['queryString2']              #print "QUERYSTRING:",self.REQUEST.SESSION[storename]['queryString2']
             if not self.REQUEST.SESSION.has_key(storename):              if not self.REQUEST.SESSION.has_key(storename):
Line 359  class ZSQLExtendFolder(Persistent, Impli Line 435  class ZSQLExtendFolder(Persistent, Impli
             else:              else:
                 self.REQUEST.SESSION[storename]['rangeEnd']=int(rangeStart)+int(limit)                  self.REQUEST.SESSION[storename]['rangeEnd']=int(rangeStart)+int(limit)
             self.REQUEST.SESSION[storename]['rangeSize']=limit              self.REQUEST.SESSION[storename]['rangeSize']=limit
               self.REQUEST.SESSION[storename]['searchFields']=searchFields
                           
                   #print "Q",query            
         return self.search(var=query)          return self.search(var=query)
           
       
     def ZSQLSearch(self):      def ZSQLSearch(self):
         """To be done"""          """To be done"""
         rq=self.REQUEST['QUERY_STRING']          rq=self.REQUEST['QUERY_STRING']
Line 388  class ZSQLExtendFolder(Persistent, Impli Line 466  class ZSQLExtendFolder(Persistent, Impli
         except:          except:
             return 0              return 0
   
       def getZSQLSearchFieldsList(self,storename="foundCount"):
           """get searchfieldList"""
           #print self.REQUEST.SESSION[storename]['searchFields'].keys()
           return  self.REQUEST.SESSION[storename]['searchFields'].keys()
   
       def getZSQLSearchFields(self,storename="foundCount"):
           """get searchfield"""
           #print "SF",self.REQUEST.SESSION[storename]['searchFields']
           return  self.REQUEST.SESSION[storename]['searchFields']
   
                                                   
     def nextLink(self,html,storename="foundCount"):      def nextLink(self,html,storename="foundCount"):
         """nextLink"""          """nextLink"""
         try:          try:
Line 433  class ZSQLExtendFolder(Persistent, Impli Line 522  class ZSQLExtendFolder(Persistent, Impli
             newquery.append(query)              newquery.append(query)
                                   
         newquerystring=string.join(newquery,"&")          newquerystring=string.join(newquery,"&")
         return "<a href='%s'>%s</a>"%(self.REQUEST['URL0']+"?"+newquerystring,html)      
           return "<a href='%s'>%s</a>"%(self.actualPath()+"?"+newquerystring,html)
                           
                   
     def prevLink(self,html,storename="foundCount"):      def prevLink(self,html,storename="foundCount"):
Line 484  class ZSQLExtendFolder(Persistent, Impli Line 574  class ZSQLExtendFolder(Persistent, Impli
             newquery.append(query)              newquery.append(query)
                           
         newquerystring=string.join(newquery,"&")          newquerystring=string.join(newquery,"&")
         return "<a href='%s'>%s</a>"%(self.REQUEST['URL0']+"?"+newquerystring,html)  
           return "<a href='%s'>%s</a>"%(self.actualPath()+"?"+newquerystring,html)
   
   
           
     def prevLink_old(self,html):      def prevLink_old(self,html):
         """prev link"""          """prev link"""
Line 511  class ZSQLExtendFolder(Persistent, Impli Line 604  class ZSQLExtendFolder(Persistent, Impli
         else:          else:
             queries.append("-offset=%i"%offsetnew)              queries.append("-offset=%i"%offsetnew)
             newquerystring=string.join(queries,"&")              newquerystring=string.join(queries,"&")
         return "<a href='%s'>%s</a>"%(self.REQUEST['URL0']+"?"+newquerystring,html)          return "<a href='%s'>%s</a>"%(self.actualPath()+"?"+newquerystring,html)
                   
     def nextLink_old(self,html):      def nextLink_old(self,html):
         """prev link"""          """prev link"""
Line 541  class ZSQLExtendFolder(Persistent, Impli Line 634  class ZSQLExtendFolder(Persistent, Impli
             queries.append("-offset=%i"%offsetnew)              queries.append("-offset=%i"%offsetnew)
             newquerystring=string.join(queries,"&")              newquerystring=string.join(queries,"&")
                   
         return "<a href='%s'>%s</a>"%(self.REQUEST['URL0']+"?"+newquerystring,html)          return "<a href='%s'>%s</a>"%(self.actualPath()+"?"+newquerystring,html)
                   
           
 manage_addZSQLExtendFolderForm=DTMLFile('ZSQLExtendFolderAdd', globals())  manage_addZSQLExtendFolderForm=DTMLFile('ZSQLExtendFolderAdd', globals())

Removed from v.1.5  
changed lines
  Added in v.1.14


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