Diff for /ZSQLExtend/ZSQLExtend.py between versions 1.31 and 1.33

version 1.31, 2004/08/18 14:47:58 version 1.33, 2004/09/12 11:05:43
Line 20  class ZSQLExtendFolder(Folder,Persistent Line 20  class ZSQLExtendFolder(Folder,Persistent
     """Folder"""      """Folder"""
     meta_type="ZSQLExtendFolder"      meta_type="ZSQLExtendFolder"
   
       def testneu(self):
           """test"""
           relStatement="""period like '%s%%'"""
           statement="select * from cdli_cat"
           wherePart="museum_no like 'VAT%'"
           classes=['Uruk III','Uruk IV']
           return self.searchRel(relStatement,statement,wherePart,classes)
       
       def searchRel(self,relStatement,statement,wherePart,classes):
           """suche relative haufigkeiten"""
           ret={}
           allRecords=len(self.ZSQLSimpleSearch(statement + " where "+wherePart))
           print statement + " where "+wherePart
           for oneclass in classes:
               ret[oneclass]=len(self.ZSQLSimpleSearch(statement + " where ("+wherePart+") and "+ relStatement%oneclass))
               print statement + " where ("+wherePart+") and "+ relStatement%oneclass
           return (ret,allRecords)
                     
     def content_html(self):      def content_html(self):
         """template fuer content"""          """template fuer content"""
                   
Line 172  class ZSQLExtendFolder(Folder,Persistent Line 190  class ZSQLExtendFolder(Folder,Persistent
         ret+="""</select>"""          ret+="""</select>"""
         return ret          return ret
   
     def ZSQLOptionsFromSearchList(self,fieldname,results,fieldName,valueName=None,start=None, multiple=''):      def ZSQLOptionsFromSearchList(self,fieldname,results,fieldName,valueName=None,start=None, multiple='',startValue=None):
         """generate select oprions form a cr seperated list"""          """generate select oprions form a search list seperated list"""
         if not valueName:          if not valueName:
             valueName=fieldName              valueName=fieldName
                           
Line 182  class ZSQLExtendFolder(Folder,Persistent Line 200  class ZSQLExtendFolder(Folder,Persistent
         if start:          if start:
         if start==' ':          if start==' ':
         start=''          start=''
             ret+="""<option value="%s">%s</option>"""%(start,start)                  if not startValue:
                       startValue=start
                       
               ret+="""<option value="%s">%s</option>"""%(startValue,start)
         for result in results:          for result in results:
             field=getattr(result,fieldName)              field=getattr(result,fieldName)
             fieldValue=getattr(result,valueName)              fieldValue=getattr(result,valueName)
Line 341  class ZSQLExtendFolder(Folder,Persistent Line 362  class ZSQLExtendFolder(Folder,Persistent
         self.ZSQLSimpleSearch(queryString)          self.ZSQLSimpleSearch(queryString)
         return self.REQUEST.RESPONSE.redirect(format)          return self.REQUEST.RESPONSE.redirect(format)
           
     def ZSQLFind(self,qs="",select="oid,*",storename=None,**argv):  
   
       def ZSQLFind2(self,qs="",select="oid,*",storename=None,tableList=['cdli_translit','cdli_cat'],**argv):
           """find2"""
           #search1= self.ZSQLFind(qs="",select="oid,*",storename=None,tableExt='cdli_translit',restrictField='id_text',NoQuery='yes',NoLimit='yes',**argv)
   
           
           #search2 = self.ZSQLFind(tableExt='cdli_cat',qs="",select="oid,*",storename=None,restrictConnect=('cdli_cat.id_text',search1),**argv)
   
           search1= self.ZSQLFind(qs="",select="oid,*",storename=None,tableExt='cdli_cat',restrictField='id_text',NoQuery='yes',NoLimit='yes',**argv)
   
           search2 = self.ZSQLFind(tableExt='cdli_translit',qs="",select="oid,*",storename=None,restrictConnect=('cdli_translit.id_text',search1),**argv)
           return search2
       
           #return self.ZSQLFind(qs="",select="oid,*",storename=None,tableExt=None,NoQuery=None,**argv)
       
       def ZSQLFind(self,qs="",select="oid,*",storename=None,tableExt=None,NoQuery=None,NoLimit=None,restrictField=None,restrictConnect=None,filter=None,**argv):
         """Find"""          """Find"""
   
         def delEmpty(list):          def delEmpty(list):
Line 354  class ZSQLExtendFolder(Folder,Persistent Line 391  class ZSQLExtendFolder(Folder,Persistent
                   
         #self.REQUEST.SESSION['come_from_search']="no" # zurücksetzen          #self.REQUEST.SESSION['come_from_search']="no" # zurücksetzen
         if qs=="":          if qs=="":
              
            if self.REQUEST['QUERY_STRING']:             if self.REQUEST['QUERY_STRING']:
                qs=self.REQUEST['QUERY_STRING']                 qs=self.REQUEST['QUERY_STRING']
                                 
Line 389  class ZSQLExtendFolder(Folder,Persistent Line 427  class ZSQLExtendFolder(Folder,Persistent
             storename="foundCount"              storename="foundCount"
   
   
           #print "calling Query with",repr(NoQuery)
         ret=self.parseQueryString(qs,"-",select=select,storemax="yes",storename=storename)          ret=self.parseQueryString(qs,"-",select=select,storemax="yes",storename=storename,tableExt=tableExt,NoQuery=NoQuery,NoLimit=NoLimit,restrictField=restrictField,restrictConnect=restrictConnect,filter=filter)
         #print self.REQUEST.SESSION["foundCount"]          #print self.REQUEST.SESSION["foundCount"]
                   
                   
Line 449  class ZSQLExtendFolder(Folder,Persistent Line 487  class ZSQLExtendFolder(Folder,Persistent
                   
         return str(min(int(self.REQUEST.SESSION[storename]['rangeEnd']),int(self.REQUEST.SESSION[storename]['count'])))          return str(min(int(self.REQUEST.SESSION[storename]['rangeEnd']),int(self.REQUEST.SESSION[storename]['count'])))
           
     def parseQueryString(self,qs,iCT,storemax="no",select=None,nostore=None,storename=None):      def parseQueryString(self,qs,iCT,storemax="no",select=None,nostore=None,storename=None,tableExt=None,NoQuery=None,NoLimit=None,restrictField=None,restrictConnect=None,filter=None):
         """analysieren den QueryString"""          """analysieren den QueryString"""
         #print "NO",nostore          #print "NO",nostore
         lop="AND" # standardsuche mit and          lop="AND" # standardsuche mit and
Line 471  class ZSQLExtendFolder(Folder,Persistent Line 509  class ZSQLExtendFolder(Folder,Persistent
         #check for op           #check for op 
                   
     splitted=qs.split(",")      splitted=qs.split(",")
           if tableExt:
               table=tableExt
           
           if restrictField:
                       select=restrictField
                           
         for q in splitted:          for q in splitted:
                                   
Line 512  class ZSQLExtendFolder(Folder,Persistent Line 554  class ZSQLExtendFolder(Folder,Persistent
             if name==iCT+"lop":              if name==iCT+"lop":
                 lop=value                  lop=value
             elif name==iCT+"table":              elif name==iCT+"table":
                   if not tableExt: 
                 table=value                  table=value
             elif name==iCT+"select":              elif name==iCT+"select":
                   if not restrictField:
                 select=value                  select=value
             elif name==iCT+"max":              elif name==iCT+"max":
                   if not NoLimit:
                 maxstr="LIMIT "+str(value)                  maxstr="LIMIT "+str(value)
                 limit=str(value)                  limit=str(value)
             elif name==iCT+"skip":              elif name==iCT+"skip":
Line 543  class ZSQLExtendFolder(Folder,Persistent Line 588  class ZSQLExtendFolder(Folder,Persistent
                     op=opfields[name]                      op=opfields[name]
                 else:                  else:
                     op="ct"                      op="ct"
                   namealt=name
                 name="LOWER("+name+")"                      name="LOWER("+name+")"    
                 if op=="ct":                  if op=="ct":
                     tmp=(name+" LIKE "+libpq.PgQuoteString("%"+value+"%"))                      tmp=(name+" LIKE "+libpq.PgQuoteString("%"+value+"%"))
Line 558  class ZSQLExtendFolder(Folder,Persistent Line 604  class ZSQLExtendFolder(Folder,Persistent
                     tmp=(name+" LIKE "+libpq.PgQuoteString("%"+value))                      tmp=(name+" LIKE "+libpq.PgQuoteString("%"+value))
                 op="ct"                  op="ct"
                                           
                   if (not tableExt) or (namealt.split('.')[0]==tableExt):
                 if searchFields.has_key(name):                  if searchFields.has_key(name):
                     searchFields[name]+=lopfields.get(name,'OR')+" "+tmp                      searchFields[name]+=lopfields.get(name,'OR')+" "+tmp
                     searchFieldsOnly[name]+=lopfields.get(name,'OR')+" "+value                      searchFieldsOnly[name]+=lopfields.get(name,'OR')+" "+value
Line 594  class ZSQLExtendFolder(Folder,Persistent Line 641  class ZSQLExtendFolder(Folder,Persistent
         whereList=["("+searchFields[x]+")" for x in searchFields.keys()]          whereList=["("+searchFields[x]+")" for x in searchFields.keys()]
   
         if len(whereList)>0:          if len(whereList)>0:
             where="WHERE "+string.join(whereList," "+lop+" ")              if filter:
                   whereStr="("+string.join(whereList," "+lop+" ")+") AND "+filter
               else:
                   whereStr=string.join(whereList," "+lop+" ")
               where="WHERE "+whereStr
           else:
               if filter:
                   where="WHERE "+filter
         else:          else:
             where=""              where=""
   
           if restrictConnect:
               
               if len(where)==0:
                   where="WHERE "+restrictConnect[0]+" in ("+restrictConnect[1]+")"
               else:
                   where+="and "+restrictConnect[0]+" in ("+restrictConnect[1]+")"
                   
         #print "QE",table          #print "QE",table
                   
         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)
Line 606  class ZSQLExtendFolder(Folder,Persistent Line 668  class ZSQLExtendFolder(Folder,Persistent
             self.REQUEST.SESSION['qs']=opfields              self.REQUEST.SESSION['qs']=opfields
         #print "IAMHERE again:", query          #print "IAMHERE again:", query
   
         if storename:          if storename and (not NoQuery):
             query2="SELECT count(*) FROM %s %s"%(table,where)              query2="SELECT count(*) FROM %s %s"%(table,where)
             #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):
                 self.REQUEST.SESSION[storename]={}                  self.REQUEST.SESSION[storename]={}
             if self.REQUEST.SESSION[storename].has_key('queryString2'):              if self.REQUEST.SESSION[storename].has_key('queryString2'):
                 #print "HI",storename  
                 if not self.REQUEST.SESSION[storename]['queryString2']==query2:                  if not self.REQUEST.SESSION[storename]['queryString2']==query2:
                     #print "HOOOOO",storename                      #print "HOOOOO",storename
                     self.REQUEST.SESSION[storename]['queryString2']=query2                      self.REQUEST.SESSION[storename]['queryString2']=query2
                     self.REQUEST.SESSION[storename]['count']=self.ZSQLSimpleSearch(query2)[0].count                      self.REQUEST.SESSION[storename]['count']=self.ZSQLSimpleSearch(query2)[0].count
   
                     #print "QUERY",query2,"::::",self.REQUEST.SESSION[storename]['queryString2']                      #print "QUERY",query2,"::::",self.REQUEST.SESSION[storename]['queryString2']
                                   
             else:              else:
   
                 self.REQUEST.SESSION[storename]['queryString2']=query2                  self.REQUEST.SESSION[storename]['queryString2']=query2
                 self.REQUEST.SESSION[storename]['count']=self.ZSQLSimpleSearch(query2)[0].count                  self.REQUEST.SESSION[storename]['count']=self.ZSQLSimpleSearch(query2)[0].count
                 #print "QUERYNEW",self.REQUEST.SESSION[storename]['queryString2']                  #print "QUERYNEW",self.REQUEST.SESSION[storename]['queryString2']
Line 635  class ZSQLExtendFolder(Folder,Persistent Line 699  class ZSQLExtendFolder(Folder,Persistent
             self.REQUEST.SESSION[storename]['searchFields']=searchFields              self.REQUEST.SESSION[storename]['searchFields']=searchFields
             self.REQUEST.SESSION[storename]['searchFieldsOnly']=searchFieldsOnly              self.REQUEST.SESSION[storename]['searchFieldsOnly']=searchFieldsOnly
                           
           if not NoQuery:
   
         return self.ZSQLQuery(query)          return self.ZSQLQuery(query)
           else:
   
               return query
   
     def ZSQLQuery(self,query):      def ZSQLQuery(self,query):
         """query"""          """query"""

Removed from v.1.31  
changed lines
  Added in v.1.33


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