Diff for /ZSQLExtend/ZSQLExtend.py between versions 1.117 and 1.122

version 1.117, 2007/07/24 09:22:14 version 1.122, 2007/11/13 20:01:23
Line 78  def utf8ify(str): Line 78  def utf8ify(str):
         return str.encode('utf-8')          return str.encode('utf-8')
   
                   
   def setPsycopg2UseUnicode():
       """force Psycopg2DA to return unicode objects"""
       try:
           import psycopg2
           import psycopg2.extensions
           psycopg2.extensions.register_type(psycopg2.extensions.UNICODE)
       except:
           logging.error("Unable to force psycopg2 to use unicode")
           
   
 def sql_quote(v):  def sql_quote(v):
     # quote dictionary      # quote dictionary
Line 349  class ZSQLExtendFolder(Folder,Persistent Line 358  class ZSQLExtendFolder(Folder,Persistent
                   
           
     def importXMLFileFMP(self,table,dsn=None,uploadfile=None,update_fields=None,id_field=None,sync_mode=False,      def importXMLFileFMP(self,table,dsn=None,uploadfile=None,update_fields=None,id_field=None,sync_mode=False,
                          lc_names=True,keep_fields=False,replace=False,ascii_db=False,                           lc_names=True,keep_fields=False,ascii_db=False,replace=False,backup=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.
Line 363  class ZSQLExtendFolder(Folder,Persistent Line 373  class ZSQLExtendFolder(Folder,Persistent
         @param keep_fields: (optional) don't add fields to SQL database          @param keep_fields: (optional) don't add fields to SQL database
         @param ascii_db: (optional) assume ascii encoding in db          @param ascii_db: (optional) assume ascii encoding in db
         @param replace: (optional) delete and re-insert data          @param replace: (optional) delete and re-insert data
           @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
         '''          '''
Line 391  class ZSQLExtendFolder(Folder,Persistent Line 402  class ZSQLExtendFolder(Folder,Persistent
         options.keep_fields=keep_fields          options.keep_fields=keep_fields
         options.ascii_db=ascii_db          options.ascii_db=ascii_db
         options.replace_table=replace          options.replace_table=replace
           options.backup_table=backup
           options.debug=debug
           
           if RESPONSE and log_to_response:
               # set up logging to response as plain text
               RESPONSE.setHeader("Content-Type","text/plain; charset=utf-8")
               RESPONSE.write("Import FMPXML file...\n\n")
               loghandler = logging.StreamHandler(RESPONSE)
               if debug:
                   loghandler.setLevel(logging.DEBUG)
               else:
                   loghandler.setLevel(logging.INFO)
               logger = logging.getLogger('db.import.fmpxml')
               logger.addHandler(loghandler)
               options.use_logger_instance = logger
   
         importFMPXML(options)          importFMPXML(options)
                   
         os.remove(filename)          os.remove(filename)
                   
           if RESPONSE and log_to_response:
               loghandler.flush()
               RESPONSE.write("\n\n DONE!")
               return
           
         if RESPONSE and redirect_url:          if RESPONSE and redirect_url:
             RESPONSE.redirect(redirect_url)              RESPONSE.redirect(redirect_url)
   
Line 443  class ZSQLExtendFolder(Folder,Persistent Line 474  class ZSQLExtendFolder(Folder,Persistent
         """          """
         return urllib.quote(txt)          return urllib.quote(txt)
           
       
       def createIdSet(self, resultset, idField=None):
           """returns a (frozen)set of IDs from a SQL-resultset (using idField) or a list (if idField=None)"""
           if idField is None:
               return frozenset(resultset)
           else:
               idlist = [r[idField] for r in resultset]
               return frozenset(idlist)
           
       def opIdSet(self, a, b, op):
           """operate on sets a and b"""
           if (op == 'intersect'):
               return a.intersection(b)
           elif (op == 'union'):
               return a.union(b)
           elif (op == 'diff'):
               return a.difference(b)
       
       
     def searchRel(self,relStatement,statement,wherePart,classes):      def searchRel(self,relStatement,statement,wherePart,classes):
         """suche relative haufigkeiten (experimental)"""          """suche relative haufigkeiten (experimental)"""
         ret={}          ret={}
Line 497  class ZSQLExtendFolder(Folder,Persistent Line 547  class ZSQLExtendFolder(Folder,Persistent
         return pt()          return pt()
   
   
     def changeZSQLExtend(self,label,description,weight=0,REQUEST=None,connection_id=None):      def changeZSQLExtend(self,label,description,weight=0,connection_id=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
Line 1228  class ZSQLExtendFolder(Folder,Persistent Line 1278  class ZSQLExtendFolder(Folder,Persistent
             arg=query.split("=")[0]              arg=query.split("=")[0]
             if arg[0]=="_": arg="-"+arg[1:] # sicherstellen, dass an Anfang stets "_"              if arg[0]=="_": arg="-"+arg[1:] # sicherstellen, dass an Anfang stets "_"
             try:              try:
                 queryList[arg]=query.split("=")[1]                  queryList[arg]=urllib.unquote_plus(query.split("=")[1])
             except:              except:
                 queryList[arg]=''                     queryList[arg]=''   
                                   

Removed from v.1.117  
changed lines
  Added in v.1.122


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