Diff for /ZSQLExtend/ZSQLExtend.py between versions 1.108 and 1.110

version 1.108, 2007/04/02 12:34:51 version 1.110, 2007/04/05 14:20:08
Line 4  from Globals import DTMLFile,package_hom Line 4  from Globals import DTMLFile,package_hom
 import urllib  import urllib
 import re  import re
 import string  import string
 import sys  
 #from pyPgSQL import libpq  #from pyPgSQL import libpq
 from AccessControl import getSecurityManager  from AccessControl import getSecurityManager,Unauthorized
 from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate  from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
 from Products.PageTemplates.PageTemplateFile import PageTemplateFile  from Products.PageTemplates.PageTemplateFile import PageTemplateFile
   
Line 20  import os Line 19  import os
 import copy  import copy
 import unicodedata  import unicodedata
 import tempfile  import tempfile
 import logging  import sys
   
 #ersetzt logging  #ersetzt logging
 def logger(txt,method,txt2):  def logger(txt,method,txt2):
Line 322  class ZSQLExtendFolder(Folder,Persistent Line 321  class ZSQLExtendFolder(Folder,Persistent
         return ret          return ret
                   
           
     def importXMLFile(self,table,data=None,identify=None,filename=None,RESPONSE=None):      def importXMLFile(self,table,containerTagName,fieldNames,data=None,identify=None,filename=None,RESPONSE=None):
         #TODO: finish importXMLFile          #TODO: finish importXMLFile
         '''          '''
         Import XML file into the table          Import XML file into the table
Line 332  class ZSQLExtendFolder(Folder,Persistent Line 331  class ZSQLExtendFolder(Folder,Persistent
         @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)
         '''          '''
           ret=""
         from xml.dom.pulldom import parseString          from xml.dom.pulldom import parseString
   
         doc=parseString(file.read())          doc=parseString(file.read())
Line 691  class ZSQLExtendFolder(Folder,Persistent Line 691  class ZSQLExtendFolder(Folder,Persistent
                                   valueName=None,start=None,                                     valueName=None,start=None, 
                                   multiple='',startValue=None,                                    multiple='',startValue=None,
                                   additionalSelect="",size=None,                                    additionalSelect="",size=None,
                                   linelen=None,selected=None):                                    linelen=None,selected=None,
                                     clear=False):
         """generate select options form a search list          """generate select options form a search list
         es wird          es wird
         <select name=fieldname mutiple>          <select name=fieldname mutiple>
Line 699  class ZSQLExtendFolder(Folder,Persistent Line 700  class ZSQLExtendFolder(Folder,Persistent
         <option value=result.fieldName>result.fieldValue</option>          <option value=result.fieldName>result.fieldValue</option>
         erzeugt.          erzeugt.
                   
         @parameter fieldname: Name fuer name-wert im select-tag          @param fieldname: Name fuer name-wert im select-tag
         @results results: Resultobject einer SQL-suche          @param results: Resultobject einer SQL-suche
         @parameter fieldName: Name des Feldes, das als value in den option-tag geschrieben werden soll.          @param fieldName: Name des Feldes, das als value in den option-tag geschrieben werden soll.
         @parameter valueName: (optional) Name des Feldes, dass als im option-tag ausgegeben wird, default wert ist valueName=fieldName          @param valueName: (optional) Name des Feldes, dass als im option-tag ausgegeben wird, default wert ist valueName=fieldName
         @start: (optional) falls zusaetzliches option tag erzeugt werden soll, gibt start an was im option tag steht          @param start: (optional) falls zusaetzliches option tag erzeugt werden soll, gibt start an was im option tag steht
         @startValue (optional): gibt den entsprechenden Wert an.          @param startValue (optional): gibt den entsprechenden Wert an.
         @selected (optional): Wert der ausgewaehlt sein soll.          @param selected (optional): Wert der ausgewaehlt sein soll.
         @linelen: (optional) maximale laenge eines Eintrages           @param linelen: (optional) maximale laenge eines Eintrages 
                     der im Klappmenue noch angezeigt wird, laengeres wird abgeschnitten.                      der im Klappmenue noch angezeigt wird, laengeres wird abgeschnitten.
         @addionalSaelect (optional): zusaetzlicher text fuer den select tag          @param addionalSaelect (optional): zusaetzlicher text fuer den select tag
           @param clear (optional): setze auf den startwert. 
         """          """
         if not valueName:          if not valueName:
             valueName=fieldName              valueName=fieldName
Line 725  class ZSQLExtendFolder(Folder,Persistent Line 727  class ZSQLExtendFolder(Folder,Persistent
             if not startValue:              if not startValue:
                     startValue=start                      startValue=start
                                                           
               if clear:
                   ret+="""<option selected value="%s" >%s</option>"""%(startValue,start)
               else:
             ret+="""<option value="%s" >%s</option>"""%(startValue,start)              ret+="""<option value="%s" >%s</option>"""%(startValue,start)
               
         for result in results:          for result in results:
Line 736  class ZSQLExtendFolder(Folder,Persistent Line 741  class ZSQLExtendFolder(Folder,Persistent
             else:               else: 
                 displayValue = fieldValue                  displayValue = fieldValue
                                   
                        if displayValue: #show only if value not none
             if field == selected:              if field == selected:
   
                 ret+="""<option value="%s" selected>%s</option>"""%(field,displayValue)                  ret+="""<option value="%s" selected>%s</option>"""%(field,displayValue)
Line 853  class ZSQLExtendFolder(Folder,Persistent Line 858  class ZSQLExtendFolder(Folder,Persistent
   
     def ZSQLSimpleSearch(self,query=None,max_rows=1000000):      def ZSQLSimpleSearch(self,query=None,max_rows=1000000):
         """simple search"""          """simple search"""
               #logging.error("ZSQLSimpleSearch X %s"%query)
         #print query          #print query
         if not query:          if not query:
             query=self.query              query=self.query
Line 865  class ZSQLExtendFolder(Folder,Persistent Line 870  class ZSQLExtendFolder(Folder,Persistent
                           
             self._v_searchSQL.max_rows_=max_rows              self._v_searchSQL.max_rows_=max_rows
             try:              try:
                 return self._v_searchSQL.__call__(var=query)                  logging.error("I am here")
                   t=self._v_searchSQL.__call__(var=query)
                   logging.error("I am here %s"%t)
                   return t
             except :              except :
                   logger("ZSQLSimpleSearch ERROR1",logging.ERROR, '%s %s'%sys.exc_info()[:2])
                 if sys.exc_info()[0]=="Database Error":                  if sys.exc_info()[0]=="Database Error":
                     try:                      try:
                         self.getConnectionObj().manage_open_connection()                          self.getConnectionObj().manage_open_connection()
                     except:                      except:
                         logger("ZSQLSimpleSearch",logging.ERROR, '%s %s'%sys.exc_info()[:2])                          logger("ZSQLSimpleSearch ERROR2",logging.ERROR, '%s %s'%sys.exc_info()[:2])
         else:          else:
             try:              try:
   
Line 880  class ZSQLExtendFolder(Folder,Persistent Line 888  class ZSQLExtendFolder(Folder,Persistent
                                   
                 return self._v_searchSQL.__call__(var=query)                  return self._v_searchSQL.__call__(var=query)
             except :              except :
                   logger("ZSQLSimpleSearch ERROR2",logging.ERROR, '%s %s'%sys.exc_info()[:2])
                 if sys.exc_info()[0]=="Database Error":                  if sys.exc_info()[0]=="Database Error":
                     try:                      try:
                         self.getConnectionObj().manage_open_connection()                          self.getConnectionObj().manage_open_connection()
Line 1038  class ZSQLExtendFolder(Folder,Persistent Line 1046  class ZSQLExtendFolder(Folder,Persistent
             return True              return True
         
   
     def ZSQLFindIndexed(self,qs="",select="oid,*",storename=None,indexedFields=['data_line'],restrictField='id_text',**argv):      def ZSQLFindIndexed(self,tableList=[],qs="",select="oid,*",storename=None,indexedFields=['data_line'],restrictField='id_text',**argv):
         """find2"""          """find2"""
                   
         for index in self.ZopeFind(self,obj_ids=indexedFields):          for index in self.ZopeFind(self,obj_ids=indexedFields):
Line 1124  class ZSQLExtendFolder(Folder,Persistent Line 1132  class ZSQLExtendFolder(Folder,Persistent
                   
                                 
         #print "calling Query with",repr(NoQuery)          #print "calling Query with",repr(NoQuery)
           logging.error("blo")
         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"]
                   
           logging.error("BlAAAAAAAAAA %s"%ret)
                   
         return ret          return ret
   
Line 1350  class ZSQLExtendFolder(Folder,Persistent Line 1360  class ZSQLExtendFolder(Folder,Persistent
             #something is defined by _op_TABELLE.SUCHFELD_IN_DIESER_TABELLE.SELECT_FIELD.IDENTIFIER_IN_TABELLE              #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):
                     op=opfields[name]                      op=opfields[name]
                 else:                  else:
Line 1390  class ZSQLExtendFolder(Folder,Persistent Line 1401  class ZSQLExtendFolder(Folder,Persistent
   
                 op="all"                  op="all"
   
                   if value!='': #lehre Werte werde nicht hinzugefuegt
                 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)
Line 1440  class ZSQLExtendFolder(Folder,Persistent Line 1451  class ZSQLExtendFolder(Folder,Persistent
   
                 op="all"                  op="all"
   
                 if (not tableExt) or (namealt.split('.')[0]==tableExt):                  if (value!='') and ((not tableExt) or (namealt.split('.')[0]==tableExt)): #keine leeren werde und keine auschluss
                     if searchFields.has_key(namealt):                      if searchFields.has_key(namealt):
                         searchFields[namealt]+=lopfields.get(name,'OR')+" "+tmp                          searchFields[namealt]+=lopfields.get(name,'OR')+" "+tmp
                         searchFieldsOnly[namealt]+=lopfields.get(name,'OR')+" "+value                          searchFieldsOnly[namealt]+=lopfields.get(name,'OR')+" "+value

Removed from v.1.108  
changed lines
  Added in v.1.110


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