Diff for /ZSQLExtend/ZSQLExtend.py between versions 1.133 and 1.141

version 1.133, 2010/02/15 19:10:23 version 1.141, 2011/02/23 19:43:04
Line 10  from Products.PageTemplates.ZopePageTemp Line 10  from Products.PageTemplates.ZopePageTemp
 from Products.PageTemplates.PageTemplateFile import PageTemplateFile  from Products.PageTemplates.PageTemplateFile import PageTemplateFile
   
 from Products.ZSQLMethods.SQL import SQLConnectionIDs  from Products.ZSQLMethods.SQL import SQLConnectionIDs
   from Shared.DC.ZRDB.Results import Results
   
 from xml.sax.saxutils import escape  from xml.sax.saxutils import escape
 from types import *  from types import *
 import Shared.DC.ZRDB.DA  import Shared.DC.ZRDB.DA
Line 369  class ZSQLExtendFolder(Folder,Persistent Line 371  class ZSQLExtendFolder(Folder,Persistent
                          lc_names=True,keep_fields=False,ascii_db=False,replace=False,backup=False,                           lc_names=True,keep_fields=False,ascii_db=False,replace=False,backup=False,
                          debug=False,log_to_response=False,                           debug=False,log_to_response=False,
                          redirect_url=None,RESPONSE=None):                           redirect_url=None,RESPONSE=None):
         '''          """
         Import FileMaker XML file (FMPXMLRESULT format) into the table.          Import FileMaker XML file (FMPXMLRESULT format) into the table.
         @param dsn: database connection string          @param dsn: database connection string
         @param table: name of the table the xml shall be imported into (may be comma-separated list)          @param table: name of the table the xml shall be imported into (may be comma-separated list)
Line 384  class ZSQLExtendFolder(Folder,Persistent Line 386  class ZSQLExtendFolder(Folder,Persistent
         @param backup: (optional) create backup of old table (breaks indices)          @param backup: (optional) create backup of old table (breaks indices)
         @param RESPONSE: (optional)          @param RESPONSE: (optional)
         @param redirect_url: (optional) url for redirecting after the upload is done          @param redirect_url: (optional) url for redirecting after the upload is done
         '''          """
                   
         tfilehd,filename=tempfile.mkstemp()          tfilehd,filename=tempfile.mkstemp()
         tfile=os.fdopen(tfilehd,'w')          tfile=os.fdopen(tfilehd,'w')
Line 448  class ZSQLExtendFolder(Folder,Persistent Line 450  class ZSQLExtendFolder(Folder,Persistent
                 logger.addHandler(loghandler)                  logger.addHandler(loghandler)
                 options.use_logger_instance = logger                  options.use_logger_instance = logger
   
               try:
                   err = None
             importFMPXML(options)              importFMPXML(options)
             logging.info("importXMLFileFMP: done")              logging.info("importXMLFileFMP: done")
               except Exception, err:
                   logging.error("Error importing: %s"%err)                                    
                           
             if RESPONSE and log_to_response:              if RESPONSE and log_to_response:
                 loghandler.flush()                  loghandler.flush()
                   if err is not None:
                       RESPONSE.write("\n\nERROR while importing: %s"%err)
                   else:
                 RESPONSE.write("\n\n DONE!")                  RESPONSE.write("\n\n DONE!")
                             
             elif RESPONSE and redirect_url:              elif RESPONSE and redirect_url:
Line 499  class ZSQLExtendFolder(Folder,Persistent Line 508  class ZSQLExtendFolder(Folder,Persistent
           
                           
     def URLquote(self,txt):      def URLquote(self,txt):
         """urlquote"          """urlquote
         @param txt: text der urlgequoted werden soll.          @param txt: text der urlgequoted werden soll.
         """          """
         return urllib.quote(txt)          return urllib.quote(txt)
Line 579  class ZSQLExtendFolder(Folder,Persistent Line 588  class ZSQLExtendFolder(Folder,Persistent
         return pt()          return pt()
   
   
     def changeZSQLExtend(self,label,description,weight=0,connection_id=None,REQUEST=None,):      def changeZSQLExtend(self,label,description,weight=0,connection_id=None,autocommit=None,REQUEST=None,):
         """change the Konfiguration"""          """change the Konfiguration"""
         self.connection_id=connection_id          self.connection_id=connection_id
         self.weight=weight          self.weight=weight
         self.label=label          self.label=label
         self.description=description          self.description=description
           self.autocommit = (autocommit == "on")
                                           
         if REQUEST is not None:          if REQUEST is not None:
             return self.manage_main(self, REQUEST)              return self.manage_main(self, REQUEST)
Line 923  class ZSQLExtendFolder(Folder,Persistent Line 933  class ZSQLExtendFolder(Folder,Persistent
           
     def ZSQLInlineSearch(self,storename=None,args=None,**argv):      def ZSQLInlineSearch(self,storename=None,args=None,**argv):
         """inlinesearch"""          """inlinesearch"""
                  #logging.debug("ZSQLInlineSearch args=%s argv=%s"%(args,argv))
         qs=[]          qs=[]
         if storename:          if storename:
             """store"""              """store"""
         else:          else:
             storename="foundCount"              storename="foundCount"
                           
       
   
         if args:          if args:
             argTmp=args              argTmp=args
         else:          else:
Line 945  class ZSQLExtendFolder(Folder,Persistent Line 953  class ZSQLExtendFolder(Folder,Persistent
             if type(argTmp[a]) is ListType: # ein parameter zweimal              if type(argTmp[a]) is ListType: # ein parameter zweimal
                     value=""                      value=""
                     #TODO find a better solution, currently only the last non empty entry is used.                      #TODO find a better solution, currently only the last non empty entry is used.
                     for x in argTmp[a]:                      #for x in argTmp[a]:
                         if x:                      #    if x:
                             value=x                      #        value=x
                       # version: join with spaces (makes sense with checkbox and -op=all)
                       value = " ".join(argTmp[a])
             else:              else:
                                 try:
                 value=str(argTmp[a])                  value=str(argTmp[a])
             qs.append(aFiltered+"="+urllib.quote(value))                 except:
                   value=utf8ify(argTmp[a])
                           
               qs.append(aFiltered+"="+urllib.quote(value))
               #logging.debug("InlineSearch:"+string.join(qs,","))
                                   
         #return []            #return []  
   
Line 977  class ZSQLExtendFolder(Folder,Persistent Line 990  class ZSQLExtendFolder(Folder,Persistent
         except:          except:
             logger("ZSQLResetConnection",logging.ERROR, '%s %s'%sys.exc_info()[:2])              logger("ZSQLResetConnection",logging.ERROR, '%s %s'%sys.exc_info()[:2])
   
   
     def ZSQLSimpleSearch(self,query=None,max_rows=1000000):      def ZSQLSimpleSearch(self,query=None,max_rows=1000000):
           """new simple search"""
           logging.debug("new ZSQLSimpleSearch X %s"%query)
           # get Connection instance
           con = self.getConnectionObj()
           # call to get db object
           dbc = con()
           if getattr(self, 'autocommit', False):
               # force transaction isolation level (for psycopg2 0=autocommit)
               logging.debug("  old tilevel="+dbc.tilevel)
               dbc.tilevel = 0
               # modified code from ZPsycopgDA.db without _register:
               c = dbc.getcursor()
               desc = ()
               r = []
               try:
                   try:
                       c.execute(qs)
                       
                   except psycopg2.OperationalError:
                       #logging.exception("Operational error on connection, closing it.")
                       try:
                           # Only close our connection
                           dbc.putconn(True)
                       except:
                           #logging.debug("Something went wrong when we tried to close the pool", exc_info=True)
                           pass
                       
                   if c.description is not None:
                       if max_rows:
                           r = c.fetchmany(max_rows)
                       else:
                           r = c.fetchall()
                       desc = c.description
                       
                   dbc.failures = 0
       
               except StandardError, err:
                   raise err
               
               res = (dbc.convert_description(desc), r)
               
           else:   
               # just use DA's query method
               res = dbc.query(query, max_rows=max_rows)
               
           # return result set as Result object with Brains
           return Results(res)
           
       def oldZSQLSimpleSearch(self,query=None,max_rows=1000000):
         """simple search"""          """simple search"""
         logging.error("ZSQLSimpleSearch X %s"%query)          logging.error("ZSQLSimpleSearch X %s"%query)
         #print query          #print query
Line 1206  class ZSQLExtendFolder(Folder,Persistent Line 1269  class ZSQLExtendFolder(Folder,Persistent
         """search in database"""          """search in database"""
   
         def delEmpty(list):          def delEmpty(list):
             """"loesche leere elemente aus der liste"""              """loesche leere elemente aus der liste"""
             ret=[]              ret=[]
             for x in list:              for x in list:
                 splitted=x.split("=")                  splitted=x.split("=")
Line 1340  class ZSQLExtendFolder(Folder,Persistent Line 1403  class ZSQLExtendFolder(Folder,Persistent
           
     def parseQueryString(self,qs,iCT,storemax="no",select=None,nostore=None,storename="foundCount",tableExt=None,NoQuery=None,NoLimit=None,restrictField=None,restrictConnect=None,filter=None):      def parseQueryString(self,qs,iCT,storemax="no",select=None,nostore=None,storename="foundCount",tableExt=None,NoQuery=None,NoLimit=None,restrictField=None,restrictConnect=None,filter=None):
         """analysieren den QueryString"""          """analysieren den QueryString"""
                  logging.debug("parseQueryString qs=%s"%qs)
                 
         #setzte generische werte          #setzte generische werte
                   
Line 1496  class ZSQLExtendFolder(Folder,Persistent Line 1559  class ZSQLExtendFolder(Folder,Persistent
                     op=opfields[name]                      op=opfields[name]
                 else:                  else:
                     op="ct"                      op="ct"
   
                 namealt=name                  namealt=name
                 name="LOWER("+punktsplit[1]+")"                   name="LOWER("+punktsplit[1]+")" 
                 value=value.lower()                  value=value.lower()
Line 1852  class ZSQLExtendFolder(Folder,Persistent Line 1916  class ZSQLExtendFolder(Folder,Persistent
         return "<a href='%s'>%s</a>"%(self.REQUEST['URL']+"?"+newquerystring,html)          return "<a href='%s'>%s</a>"%(self.REQUEST['URL']+"?"+newquerystring,html)
   
   
       def pydev_settrace(self):
           """do settrace to start debugging"""
           import pydevd
           pydevd.settrace()
           
     
 manage_addZSQLExtendFolderForm=DTMLFile('ZSQLExtendFolderAdd', globals())  manage_addZSQLExtendFolderForm=DTMLFile('ZSQLExtendFolderAdd', globals())
Line 2165  def manage_addZSQLBibliography(self, id, Line 2233  def manage_addZSQLBibliography(self, id,
   
           
   
       

Removed from v.1.133  
changed lines
  Added in v.1.141


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