Diff for /ZSQLExtend/ZSQLExtend.py between versions 1.82 and 1.98

version 1.82, 2006/04/24 16:09:52 version 1.98, 2006/12/08 16:23:54
Line 17  import Shared.DC.ZRDB.DA Line 17  import Shared.DC.ZRDB.DA
 import zLOG  import zLOG
 import os.path  import os.path
 import os  import os
   import copy
   import unicodedata
   
 from OFS.SimpleItem import SimpleItem  from OFS.SimpleItem import SimpleItem
   
 def getTextFromNode(nodename):  def getTextFromNode(nodename):
       """get the cdata content of a node"""
       if nodename is None:
           return ""
     nodelist=nodename.childNodes      nodelist=nodename.childNodes
     rc = ""      rc = ""
     for node in nodelist:      for node in nodelist:
Line 27  def getTextFromNode(nodename): Line 33  def getTextFromNode(nodename):
            rc = rc + node.data             rc = rc + node.data
     return rc      return rc
   
       
 def analyseIntSearch(word):  def analyseIntSearch(word):
     #analyse integer searches      #analyse integer searches
   
Line 80  class ZSQLExtendFolder(Folder,Persistent Line 85  class ZSQLExtendFolder(Folder,Persistent
         """quote str for sql"""          """quote str for sql"""
         return sql_quote(str)          return sql_quote(str)
           
       
       def normalizeField(self,table,fieldname, newFieldName=None,mode="alter", RESPONSE=None):
           """normalize a field"""
           import unicodedata
           
           if not newFieldName:
               newFieldName=fieldname+"_normal"
               
           def normal(str):
               if str:
                   return unicodedata.normalize('NFKD', str.decode('utf-8')).encode('ASCII', 'ignore')
               else:
                   return ""
           if mode=="create": # create the field
               qstr="""alter table %s add %s %s"""
               self.ZSQLSimpleSearch(qstr%(table,newFieldName,'text'))
           
           qstr="select oid,%s from %s"%(fieldname,table)
           for result in self.ZSQLSimpleSearch(qstr):
               qstr="update %s set %s = %s where oid = %s"
   
               self.ZSQLSimpleSearch(qstr%(table,newFieldName,self.ZSQLQuote(normal(getattr(result,fieldname))),result.oid))
           
     def importAccessModell(self,configFileName,RESPONSE=None):      def importAccessModell(self,configFileName,RESPONSE=None):
         """import tables from access          """import tables from access
         @param configFileName: xml-configfile          @param configFileName: xml-configfile
Line 102  class ZSQLExtendFolder(Folder,Persistent Line 130  class ZSQLExtendFolder(Folder,Persistent
             containers=db.xpath("./@container")              containers=db.xpath("./@container")
             identifiers=db.xpath("./@identify")              identifiers=db.xpath("./@identify")
                           
             print containers  
             if not (len(containers)==1):              if not (len(containers)==1):
                 return False                  return False
             else:              else:
Line 124  class ZSQLExtendFolder(Folder,Persistent Line 152  class ZSQLExtendFolder(Folder,Persistent
         @param elementNameForTable: must be a element of type complex type. the element of the sequence in the complex type          @param elementNameForTable: must be a element of type complex type. the element of the sequence in the complex type
                                     define the columns of the table >table<                                      define the columns of the table >table<
         @param data (optional): data to be imported          @param data (optional): data to be imported
       
         @param filename (optional) or filename          @param filename (optional) or filename
         @param identify: (optional) field res. tag which identifies a entry uniquely for updating purposes.          @param identify: (optional) field res. tag which identifies a entry uniquely for updating purposes.
         @param RESPONSE: (optional)          @param RESPONSE: (optional)
Line 240  class ZSQLExtendFolder(Folder,Persistent Line 269  class ZSQLExtendFolder(Folder,Persistent
                         if col.nodeType is col.ELEMENT_NODE:                           if col.nodeType is col.ELEMENT_NODE: 
                             data=col.nodeName                              data=col.nodeName
                             dataSet[data]=getTextFromNode(col)                              dataSet[data]=getTextFromNode(col)
                     print dataSet.keys()  
                     update=False                      update=False
                                           
                     if identify:                      if identify:
Line 288  class ZSQLExtendFolder(Folder,Persistent Line 317  class ZSQLExtendFolder(Folder,Persistent
         Import XML file into the table          Import XML file into the table
         @param table: name of the table the xml shall be imported into          @param table: name of the table the xml shall be imported into
         @param containerTagName: XML-Tag which describes a dataset          @param containerTagName: XML-Tag which describes a dataset
         @param data: data to be imported          @param file: xmlfile handle
         @param identify: (optional) field res. tag which identifies a entry uniquely for updating purposes.          @param identify: (optional) field res. tag which identifies a entry uniquely for updating purposes.
         @param RESPONSE: (optional)          @param RESPONSE: (optional)
         '''          '''
         from xml.dom.pulldom import parseString,parse          from xml.dom.pulldom import parseString
                   
         zLOG.LOG("import xml",zLOG.INFO,"called")          doc=parseString(file.read())
         #fh=file("/tmp/fmpxml.xml")  
         import bz2  
         import base64  
           
         ret=""  
         if data:  
           data=bz2.decompress(base64.decodestring(data))  
           
           zLOG.LOG("import xml",zLOG.INFO,"received file")  
           doc=parseString(data)  
           zLOG.LOG("import xml",zLOG.INFO,"parsed file")  
   
         elif filename:  
           fh=file(filename)  
           doc=parse(fh)  
           zLOG.LOG("import xml",zLOG.INFO,"parsed file")  
         while 1:          while 1:
             node=doc.getEvent()              node=doc.getEvent()
                           
             if node is None:              if node is None:
                 break;                  break;
             else:              else:
                 if node[1].nodeName=='ROW':                  if node[1].nodeName==containerTagName:
                     doc.expandNode(node[1])                      doc.expandNode(node[1])
                     cols=node[1].getElementsByTagName('COL')                      cols=node[1].getElementsByTagName('COL')
                     dataSet=[]                      dataSet=[]
Line 383  class ZSQLExtendFolder(Folder,Persistent Line 396  class ZSQLExtendFolder(Folder,Persistent
                 #nf=file("xtf/"+fn+".xtf",'w')                  #nf=file("xtf/"+fn+".xtf",'w')
                 #nf.write("""<texts xmlns="http://emegir.info/xtf" xmlns:lem="http://emegir.info/lemma" >"""+node[1].toxml()+"</texts>")                  #nf.write("""<texts xmlns="http://emegir.info/xtf" xmlns:lem="http://emegir.info/lemma" >"""+node[1].toxml()+"</texts>")
                 #print "wrote: %s"%fn                  #print "wrote: %s"%fn
         return ret                  
                             
     def generateIndex(self,field,index_name,table,RESPONSE=None):      def generateIndex(self,field,index_name,table,RESPONSE=None):
         """erzeuge index aus feld"""          """erzeuge index aus feld"""
Line 457  class ZSQLExtendFolder(Folder,Persistent Line 470  class ZSQLExtendFolder(Folder,Persistent
             return ""              return ""
   
     def getLabel(self):      def getLabel(self):
         """getLabel"""          """getLabe"""
         try:          try:
             return self.label              return self.label
         except:          except:
             return ""              return ""
     
     def getTitle(self):  
         """getTitle"""  
         try:  
             return self.title  
         except:  
             return ""  
   
   
     def getDescription(self):      def getDescription(self):
         """getDescription"""          """getLabe"""
         try:          try:
             return self.description              return self.description
         except:          except:
Line 501  class ZSQLExtendFolder(Folder,Persistent Line 506  class ZSQLExtendFolder(Folder,Persistent
     def formatAscii(self,str,url=None):      def formatAscii(self,str,url=None):
         """ersetze ascii umbrueche durch <br>"""          """ersetze ascii umbrueche durch <br>"""
         #url=None          #url=None
           
         if not str:  
             return ""  
           
         str=str.rstrip().lstrip()          str=str.rstrip().lstrip()
                   
         if url and str:          if url and str:
Line 667  class ZSQLExtendFolder(Folder,Persistent Line 668  class ZSQLExtendFolder(Folder,Persistent
             field=getattr(result,fieldName)              field=getattr(result,fieldName)
             fieldValue=getattr(result,valueName)              fieldValue=getattr(result,valueName)
             if fieldValue:              if fieldValue:
                 print "XXX",field,repr(type(field)),repr(type(selected))  
                 if not linelen:                  if not linelen:
                                           
                       
                     if field == selected:                      if field == selected:
                         print "huhu"  
                         ret+="""<option value="%s" selected>%s</option>"""%(field,fieldValue)                          ret+="""<option value="%s" selected>%s</option>"""%(field,fieldValue)
                     else:                      else:
                         ret+="""<option value="%s">%s</option>"""%(field,fieldValue)                          ret+="""<option value="%s">%s</option>"""%(field,fieldValue)
   
                 else:                  else:
                     mist = """%s"""%(fieldValue)                      mist = """%s"""%(fieldValue)
                     if len(mist) > string.atoi(linelen):                      if len(mist) > string.atoi(linelen):
Line 684  class ZSQLExtendFolder(Folder,Persistent Line 687  class ZSQLExtendFolder(Folder,Persistent
         return ret          return ret
   
                           
     def ZSQLInlineSearchU(self,storename=None,**argv):      def ZSQLInlineSearchU(self,storename=None,args=None,**argv):
         """one element if exists"""          """one element if exists"""
         qs=[]          qs=[]
         if storename:          if storename:
Line 693  class ZSQLExtendFolder(Folder,Persistent Line 696  class ZSQLExtendFolder(Folder,Persistent
         else:          else:
             storename="foundCount"              storename="foundCount"
                           
           if args:
               argTmp=args
           else:
               argTmp=argv
           
   
         #print "INLINE:",argv          #print "INLINE:",argv
         for a in argv.keys():          for a in argTmp.keys():
             qs.append(a+"="+urllib.quote(str(argv[a])))          aFiltered=re.sub(r"^-","_",a) # beginning of a command should always be "_"
               qs.append(aFiltered+"="+urllib.quote(str(argTmp[a])))
         #return []            #return []  
         ret = self.parseQueryString(string.join(qs,","),"_",storename=storename)          ret = self.parseQueryString(string.join(qs,","),"_",storename=storename)
   
Line 706  class ZSQLExtendFolder(Folder,Persistent Line 714  class ZSQLExtendFolder(Folder,Persistent
         except:          except:
             return None              return None
                   
     def ZSQLInlineSearch(self,storename=None,**argv):       
       def ZSQLSequentialSearch(self,_fieldlist,_searchTerm,storename=None,args=None,**argv):
           """get a list of tuples (fields,searchoptions,table) to search the searchTerm in, returns dictionary. """
           #print "do search with:",_fieldlist,_searchTerm,storename,args,argv
           ret={} 
           if args:
               argTmp=args
           else:
               argTmp=argv
   
           for field in _fieldlist:
   
               argTmp2=copy.deepcopy(argTmp)
               argTmp2[field[0]]=_searchTerm
               argTmp2['_op_'+field[0]]=field[1]
               argTmp2['_table']=field[2]
               
               ret[field[0]]=(self.ZSQLInlineSearch(storename=storename,args=argTmp2),field[3],field[4],field[5],field[6])
           
           return ret
       def ZSQLInlineSearch(self,storename=None,args=None,**argv):
         """inlinesearch"""          """inlinesearch"""
                   
         qs=[]          qs=[]
Line 717  class ZSQLExtendFolder(Folder,Persistent Line 745  class ZSQLExtendFolder(Folder,Persistent
                           
           
   
           if args:
               argTmp=args
           else:
               argTmp=argv
   
   
         #print "INLINE:",argv          #print "INLINE:",argv
         for a in argv.keys():          for a in argTmp.keys():
             try:          aFiltered=re.sub(r"^-","_",a) # beginning of a command should always be "_"
                 qs.append(a+"="+urllib.quote(str(argv[a])))          qs.append(aFiltered+"="+urllib.quote(str(argTmp[a])))
             except:              
                 import urllib  
                 qs.append(a+"="+urllib.quote(str(argv[a])))  
                                   
         #return []            #return []  
   
         return self.parseQueryString(string.join(qs,","),"_",storename=storename)          return self.parseQueryString(string.join(qs,","),"_",storename=storename)
   
     def ZSQLInlineSearch2(self,query):      def ZSQLInlineSearch2(self,query):
Line 747  class ZSQLExtendFolder(Folder,Persistent Line 780  class ZSQLExtendFolder(Folder,Persistent
         except:          except:
             zLOG.LOG("ZSQLResetConnection",zLOG.ERROR, '%s %s'%sys.exc_info()[:2])              zLOG.LOG("ZSQLResetConnection",zLOG.ERROR, '%s %s'%sys.exc_info()[:2])
   
     def ZSQLSimpleSearch(self,query=None,max_rows=1000000,debug=None):      def ZSQLSimpleSearch(self,query=None,max_rows=1000000):
         """simple search"""          """simple search"""
   
           #print query
         if not query:          if not query:
             query=self.query              query=self.query
                   
         if debug:          
                 print "DEBUG: ZSQLSimpleSearch:", query  
         if (hasattr(self,"_v_searchSQL") and (self._v_searchSQL == None)) or (not hasattr(self,"_v_searchSQL")):          if (hasattr(self,"_v_searchSQL") and (self._v_searchSQL == None)) or (not hasattr(self,"_v_searchSQL")):
                           
             self._v_searchSQL=Shared.DC.ZRDB.DA.DA("_v_searchSQL","_v_searchSQL",self.getConnectionObj().getId(),"var","<dtml-var var>")              self._v_searchSQL=Shared.DC.ZRDB.DA.DA("_v_searchSQL","_v_searchSQL",self.getConnectionObj().getId(),"var","<dtml-var var>")
Line 815  class ZSQLExtendFolder(Folder,Persistent Line 847  class ZSQLExtendFolder(Folder,Persistent
           
                   
                   
     def ZSQLAdd(self,format=None,RESPONSE=None,**argv):      def ZSQLAdd(self,format=None,RESPONSE=None,args=None,**argv):
         """Neuer Eintrag"""          """Neuer Eintrag"""
                           
       if args:
               argTmp=args
           else:
               argTmp=argv
   
         qs_temp=[]          qs_temp=[]
           
         for a in self.REQUEST.form.keys():          for a in self.REQUEST.form.keys():
Line 825  class ZSQLExtendFolder(Folder,Persistent Line 862  class ZSQLExtendFolder(Folder,Persistent
   
         qs=string.join(qs_temp,",")          qs=string.join(qs_temp,",")
                   
         for field in argv.keys():          for field in argTmp.keys():
                    if field[0]=="_":                     if field[0]=="_":
                        fieldTmp="-"+field[1:]                         fieldTmp="-"+field[1:]
                    else:                     else:
                        fieldTmp=field                         fieldTmp=field
                                                 
                    qs+=",%s=%s"%(fieldTmp,argv[field])                     qs+=",%s=%s"%(fieldTmp,argTmp[field])
                   
                   
         addList={}          addList={}
Line 873  class ZSQLExtendFolder(Folder,Persistent Line 910  class ZSQLExtendFolder(Folder,Persistent
         qs_temp=[]          qs_temp=[]
         if USE_FORM or RESPONSE:          if USE_FORM or RESPONSE:
             for a in self.REQUEST.form.keys():              for a in self.REQUEST.form.keys():
           
                 qs_temp.append(a+"="+urllib.quote(str(self.REQUEST.form[a])))                  qs_temp.append(a+"="+urllib.quote(str(self.REQUEST.form[a])))
   
                   
Line 903  class ZSQLExtendFolder(Folder,Persistent Line 941  class ZSQLExtendFolder(Folder,Persistent
                 identify=identify.split("=")[0]+"="+sql_quote(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]=="-" 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]=="_")):
   
           if value=="":
                       changeList.append("\""+name+"\"=null")
           else:
                 changeList.append("\""+name+"\"="+sql_quote(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)
           zLOG.LOG("ZSQLExtend",zLOG.INFO,"CHANGE: "+queryString)
   
         self.ZSQLSimpleSearch(queryString)          self.ZSQLSimpleSearch(queryString)
                   
Line 966  class ZSQLExtendFolder(Folder,Persistent Line 1009  class ZSQLExtendFolder(Folder,Persistent
                    if field[0]=="_":                     if field[0]=="_":
                        fieldTmp="-"+field[1:]                         fieldTmp="-"+field[1:]
                    else:                     else:
                        fieldTmp=urllib.unquote(field)                         fieldTmp=field
                                                 
                    qs+=",%s=%s"%(fieldTmp,argv[field])                     qs+=",%s=%s"%(fieldTmp,argv[field])
                                         
Line 995  class ZSQLExtendFolder(Folder,Persistent Line 1038  class ZSQLExtendFolder(Folder,Persistent
   
         qs=string.join(delEmpty(qs.split(",")),",")          qs=string.join(delEmpty(qs.split(",")),",")
   
         if not storename:          if storename:
               """store"""
           else:
             storename="foundCount"              storename="foundCount"
   
         #store query for further usage          #store query for further usage
         self.REQUEST.SESSION['query']=qs          self.REQUEST.SESSION['query']=qs
         print "st",storename,qs                            
         #print "calling Query with",repr(NoQuery)          #print "calling Query with",repr(NoQuery)
         ret=self.parseQueryString(qs,"-",select=select,storemax="yes",storename=storename,tableExt=tableExt,NoQuery=NoQuery,NoLimit=NoLimit,restrictField=restrictField,restrictConnect=restrictConnect,filter=filter)          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"]
                   
 #        if not hasattr(self,'_v_results'):          
 #                                  self._v_results={}  
 #    
 #                                    
 #        self._v_results[urllib.quote(qs)]=ret[0:]  
   
         return ret          return ret
   
Line 1072  class ZSQLExtendFolder(Folder,Persistent Line 1113  class ZSQLExtendFolder(Folder,Persistent
           
     def ZSQLNewSearch(self,linkText,storename=None,url=None,args=None,**argv):      def ZSQLNewSearch(self,linkText,storename=None,url=None,args=None,**argv):
         """suche mit alten parametern bis auf die in argv getauschten"""          """suche mit alten parametern bis auf die in argv getauschten"""
           str = self.ZSQLNewSearchURL(storename, url, args, **argv)
           return """<a href="%s"> %s</a>"""%(str,linkText)
           
   
       def ZSQLNewSearchURL(self, storename=None,url=None,args=None,**argv):
           """suche mit alten parametern bis auf die in argv getauschten"""
   
         if storename:           if storename: 
             """store"""                """store"""  
Line 1115  class ZSQLExtendFolder(Folder,Persistent Line 1162  class ZSQLExtendFolder(Folder,Persistent
         else:          else:
             str="ZSQLSearch?"+"&".join(newquery)              str="ZSQLSearch?"+"&".join(newquery)
                   
         return """<a href="%s"> %s</a>"""%(str,linkText)          return str
           
     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):      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"""
Line 1132  class ZSQLExtendFolder(Folder,Persistent Line 1179  class ZSQLExtendFolder(Folder,Persistent
         opfields={}          opfields={}
         lopfields={} #Verknuepfung bei mehrfachauswahl von einem feld          lopfields={} #Verknuepfung bei mehrfachauswahl von einem feld
         sortfields={} #order of sortfields          sortfields={} #order of sortfields
           diacritics={} #diacritische zeichen, falls "no", dann werden diese fuer das feld gefiltert.
         sortAllFields=None          sortAllFields=None
         skip=""          skip=""
         rangeStart=0          rangeStart=0
Line 1174  class ZSQLExtendFolder(Folder,Persistent Line 1222  class ZSQLExtendFolder(Folder,Persistent
                     field=name[5:]                      field=name[5:]
                     lopfields[field]=lop                      lopfields[field]=lop
                                           
                   if name[0:11]==iCT+"diacritics":
                       field=name[12:]
                       diacritics[field]=value
                       
                 if name[0:10]==iCT+"sortorder":                  if name[0:10]==iCT+"sortorder":
                     #sort=value                      #sort=value
                                           
Line 1199  class ZSQLExtendFolder(Folder,Persistent Line 1251  class ZSQLExtendFolder(Folder,Persistent
             punktsplit=name.split(".")   #sonderfall feld mit punkten(tabelle.suchFeld.ausgewaehltesFeld,feldinoriginal), d.h. suche in anderer tabelle:                                    punktsplit=name.split(".")   #sonderfall feld mit punkten(tabelle.suchFeld.ausgewaehltesFeld,feldinoriginal), d.h. suche in anderer tabelle:                      
                     
             #analysiere alle anderen faelle              #analysiere alle anderen faelle
               
               if diacritics.get(name,'yes')=='no':
                   """filter diacritische zeichen"""
                   value=unicodedata.normalize('NFKD', value.decode('utf-8')).encode('ASCII', 'ignore')
                   
             if name==iCT+"lop":              if name==iCT+"lop":
                 lop=value                  lop=value
             elif name==iCT+"table":              elif name==iCT+"table":
Line 1239  class ZSQLExtendFolder(Folder,Persistent Line 1296  class ZSQLExtendFolder(Folder,Persistent
                 op=value                  op=value
   
   
               #sonderfall Name hat das Format: 
               #TABELLE.SUCHFELD_IN_DIESER_TABELLE.SELECT_FIELD.IDENTIFIER_IN_TABELLE_-table
               #i.e. erzeugt wird
               #das Statement 
               #WHERE IDENTIFIER_IN_TABELLE in (select * from SELECT_FIELD
               #where LOWER(SUCHFELD_IN_DIESER_TABELLE) something  value)
               #something is defined by _op_TABELLE.SUCHFELD_IN_DIESER_TABELLE.SELECT_FIELD.IDENTIFIER_IN_TABELLE
                           
             elif (not name[0]==iCT) and len(punktsplit)==4:              elif (not name[0]==iCT) and len(punktsplit)==4:
                 if opfields.has_key(name):                  if opfields.has_key(name):
Line 1247  class ZSQLExtendFolder(Folder,Persistent Line 1311  class ZSQLExtendFolder(Folder,Persistent
                     op="ct"                      op="ct"
                 namealt=name                  namealt=name
                 name="LOWER("+punktsplit[1]+")"                   name="LOWER("+punktsplit[1]+")" 
                   value=value.lower()
                 if op=="ct":                  if op=="ct":
                     tmp=(name+" LIKE "+sql_quote("%"+value+"%"))                      tmp=(name+" LIKE "+sql_quote("%"+value+"%"))
                 elif op=="gt":                  elif op=="gt":
Line 1279  class ZSQLExtendFolder(Folder,Persistent Line 1343  class ZSQLExtendFolder(Folder,Persistent
                                                   
                     tmp=string.join(tmps,' OR ')                      tmp=string.join(tmps,' OR ')
                                                                       
                 searchFieldsOnly[namealt]=value                  
                 op="all"                  op="all"
   
   
                 searchTmp="""%s in (select %s from %s where %s)"""%(punktsplit[3],punktsplit[2],punktsplit[0],tmp)                  searchTmp="""%s in (select %s from %s where %s)"""%(punktsplit[3],punktsplit[2],punktsplit[0],tmp)
                                 
                   
                 queryTemplate.append(searchTmp)                  queryTemplate.append(searchTmp)
                                   
             elif (not name[0]==iCT) and (not len(value)==0):              elif (not name[0]==iCT) and (not len(value)==0):
Line 1410  class ZSQLExtendFolder(Folder,Persistent Line 1472  class ZSQLExtendFolder(Folder,Persistent
                 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              self.REQUEST.SESSION[storename]['searchFields']=searchFields
             print "SF",searchFieldsOnly,searchFields  
             self.REQUEST.SESSION[storename]['searchFieldsOnly']=searchFieldsOnly  
   
               self.REQUEST.SESSION[storename]['searchFieldsOnly']=searchFieldsOnly
                   
         if not NoQuery:          if not NoQuery:
   

Removed from v.1.82  
changed lines
  Added in v.1.98


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