Annotation of ZSQLExtend/ZSQLUpdate.py, revision 1.3

1.1       dwinter     1: from OFS.Folder import Folder
                      2: from Globals import DTMLFile,package_home
1.2       dwinter     3: from tempfile import mkstemp
1.1       dwinter     4: from AccessControl import getSecurityManager
                      5: from Products.PageTemplates.PageTemplateFile import PageTemplateFile
                      6: import urllib
                      7: import os.path
1.3     ! dwinter     8: 
        !             9: 
        !            10: import logging
        !            11: 
        !            12: #ersetzt logging
        !            13: def logger(txt,method,txt2):
        !            14:     """logging"""
        !            15:     logging.info(txt+ txt2)
1.1       dwinter    16: 
                     17: 
                     18: 
                     19: """Webfrontend fuer das Update der Datenbanken ueber das Web mithilfe von
                     20: fm.jar
                     21: """
                     22: 
                     23: class ZSQLUpdate(Folder):
                     24:     """Klasse zum update, in den Folder werden die verschiedenen Update XML files hineingelegt"""
                     25:     meta_type="ZSQLUpdate"
                     26: 
                     27:     def update(self,xmlurl=None,xmlobject=None):
                     28:         """update by calling fm.jar and using the xmlfile at xmlurl
                     29:         @param xmlurl: url auf ein xml file fuer fm.jar
                     30:         """
                     31: 
                     32: 
                     33:         
1.2       dwinter    34:         tmphandler,path =mkstemp()
                     35:         tmpFile=os.fdopen(tmphandler,"w+b")
                     36:         
1.1       dwinter    37:         if xmlurl:
                     38:             xmlf=urllib.urlopen(xmlurl).read()
                     39:         if xmlobject:
                     40:             try:
                     41:                 xmlf=getattr(self,xmlobject)()
                     42:             except:
                     43:                 xmlf=getattr(self,xmlobject).data
1.2       dwinter    44: 
1.1       dwinter    45:         
                     46:         tmpFile.write(xmlf)
1.2       dwinter    47:         tmpFile.close()
1.1       dwinter    48: 
1.2       dwinter    49:         #path=tmpFile.name
                     50:         
1.1       dwinter    51:         fmJarPath=os.path.join(package_home(globals()), 'fm.jar')
1.2       dwinter    52:         
                     53:         
                     54:         
1.3     ! dwinter    55:         logger("MPIWG Web",logging.INFO,"java -classpath %s -Djava.awt.headless=true Convert %s"%(fmJarPath,path))
1.1       dwinter    56:         ret=os.popen("java -classpath %s -Djava.awt.headless=true Convert %s"%(fmJarPath,path),"r").read()
1.3     ! dwinter    57:    logger("MPIWG Web",logging.INFO,"result convert: %s"%ret)
1.1       dwinter    58: 
1.2       dwinter    59:         os.unlink(path)
1.1       dwinter    60:         return "<html><body><h1>SQL update</h1><p>(notice, everything worked fine if only <q>java.lang.ClassNotFoundException: sun.jdbc.odbc.JdbcOdbcDriver</q> comes out as result)</p><p>Result:<br>%s</p></html></body>"%ret
                     61: 
                     62:     def findUpdater(self):
                     63:         """find Update, giebt alle Update files als Tupel (id,objekte) zuruck"""
                     64:         return self.ZopeFind(self,obj_metatypes=['File','Page Template'])
                     65:     def index_html(self):
                     66:         """standard ansicht"""
                     67:         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt/viewUpdates.zpt')).__of__(self)
                     68:         return pt()
                     69: 
                     70: manage_addZSQLUpdateForm=DTMLFile('ZSQLUpdateAdd', globals())
                     71: 
                     72: def manage_addZSQLUpdate(self, id, title='', label='', description='',
                     73:                      createPublic=0,
                     74:                      createUserF=0,
                     75:                      connection_id=None,
                     76:                      REQUEST=None):
                     77:     """Add a new Folder object with id *id*.
                     78: 
                     79:     If the 'createPublic' and 'createUserF' parameters are set to any true
                     80:     value, an 'index_html' and a 'UserFolder' objects are created respectively
                     81:     in the new folder.
                     82:     """
                     83:     
                     84:     
                     85:     ob=ZSQLUpdate()
                     86:     ob.id=str(id)
                     87:     ob.title=title
                     88:     self._setObject(id, ob)
                     89:     ob=self._getOb(id)
                     90:     setattr(ob,'label',label)
                     91: 
                     92:     
                     93:     checkPermission=getSecurityManager().checkPermission
                     94: 
                     95: 
                     96:     if REQUEST is not None:
                     97:         return self.manage_main(self, REQUEST, update_menu=1)
                     98: 
                     99: 

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