|
|
| version 1.37, 2005/06/21 14:12:35 | version 1.50, 2005/11/02 12:38:52 |
|---|---|
| Line 1 | Line 1 |
| from OFS.Folder import Folder | from OFS.Folder import Folder |
| from OFS.Image import File | from OFS.Image import File |
| from OFS.Image import cookId | from OFS.Image import cookId |
| Line 7 from AccessControl import getSecurityMan | Line 8 from AccessControl import getSecurityMan |
| from Products.PageTemplates.PageTemplate import PageTemplate | from Products.PageTemplates.PageTemplate import PageTemplate |
| from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate | from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate |
| from AccessControl import ClassSecurityInfo | from AccessControl import ClassSecurityInfo |
| <<<<<<< versionedFile.py | |
| from Products.ImageArchive.ImageArchive import manage_AddImageZogiLib | |
| from Products.ZCatalog.CatalogPathAwareness import CatalogAware | |
| ======= | |
| try: | |
| from Products.ImageArchive.ImageArchive import manage_AddImageZogiLib | |
| except: | |
| print "no images" | |
| >>>>>>> 1.49 | |
| from threading import Thread | from threading import Thread |
| import shutil | import shutil |
| import tempfile | import tempfile |
| import os.path | import os.path |
| import urllib | |
| import time | import time |
| try: | try: |
| Line 110 class versionedFileFolder(Folder,ECHO_ba | Line 121 class versionedFileFolder(Folder,ECHO_ba |
| security= ClassSecurityInfo() | security= ClassSecurityInfo() |
| security.declareProtected('AUTHENTICATED_USER','addFileForm') | security.declareProtected('AUTHENTICATED_USER','addFileForm') |
| filesMetaType=['versionedFile'] | |
| if ECHO_basis: | if ECHO_basis: |
| optTMP= Folder.manage_options+ECHO_basis.manage_options | optTMP= Folder.manage_options+ECHO_basis.manage_options |
| else: | else: |
| Line 118 class versionedFileFolder(Folder,ECHO_ba | Line 129 class versionedFileFolder(Folder,ECHO_ba |
| manage_options =optTMP+( | manage_options =optTMP+( |
| {'label':'Generate Index.html','action':'generateIndexHTML'}, | {'label':'Generate Index.html','action':'generateIndexHTML'}, |
| {'label':'Generate Image Index.html','action':'generateIndexHTML_image'}, | |
| {'label':'Generate history_template.html','action':'generateHistoryHTML'}, | {'label':'Generate history_template.html','action':'generateHistoryHTML'}, |
| {'label':'Import Folder','action':'importFolderForm'}, | {'label':'Import Folder','action':'importFolderForm'}, |
| {'label':'Export Folder','action':'exportFolder'}, | {'label':'Export Folder','action':'exportFolder'}, |
| Line 206 class versionedFileFolder(Folder,ECHO_ba | Line 218 class versionedFileFolder(Folder,ECHO_ba |
| filename=os.path.join(tdir,fn) | filename=os.path.join(tdir,fn) |
| self.REQUEST.RESPONSE.setHeader("Content-Disposition","""attachement; filename="%s" """%"donloadFileFolder.tgz") | self.REQUEST.RESPONSE.setHeader("Content-Disposition","""attachement; filename="%s" """%"downloadFileFolder.tgz") |
| self.REQUEST.RESPONSE.setHeader("Content-Type","application/octet-stream") | self.REQUEST.RESPONSE.setHeader("Content-Type","application/octet-stream") |
| len=os.stat(filename)[6] | len=os.stat(filename)[6] |
| self.REQUEST.RESPONSE.setHeader("Content-Length",len) | self.REQUEST.RESPONSE.setHeader("Content-Length",len) |
| Line 222 class versionedFileFolder(Folder,ECHO_ba | Line 234 class versionedFileFolder(Folder,ECHO_ba |
| pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','helpDownload')).__of__(self) | pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','helpDownload')).__of__(self) |
| return pt() | return pt() |
| def generateIndexHTML_image(self,RESPONSE=None): | |
| """lege standard index.html an""" | |
| if not self.ZopeFind(self,obj_ids=['index.html']): | |
| zt=ZopePageTemplate('index.html') | |
| self._setObject('index.html',zt) | |
| default_content_fn = os.path.join(package_home(globals()), | |
| 'zpt/versionFileFolderMain_image.zpt') | |
| text = open(default_content_fn).read() | |
| zt.pt_edit(text, 'text/html') | |
| else: | |
| return "already exists!" | |
| if RESPONSE is not None: | |
| RESPONSE.redirect('manage_main') | |
| def generateIndexHTML(self,RESPONSE=None): | def generateIndexHTML(self,RESPONSE=None): |
| """lege standard index.html an""" | """lege standard index.html an""" |
| Line 307 class versionedFileFolder(Folder,ECHO_ba | Line 337 class versionedFileFolder(Folder,ECHO_ba |
| return cmp(x[1].getLastVersion().lastEditor().lower(),y[1].getLastVersion().lastEditor().lower()) | return cmp(x[1].getLastVersion().lastEditor().lower(),y[1].getLastVersion().lastEditor().lower()) |
| versionedFiles=self.ZopeFind(self,obj_metatypes=['versionedFile']) | versionedFiles=self.ZopeFind(self,obj_metatypes=self.filesMetaType) |
| if sortField=='title': | if sortField=='title': |
| versionedFiles.sort(sortName) | versionedFiles.sort(sortName) |
| Line 329 class versionedFileFolder(Folder,ECHO_ba | Line 360 class versionedFileFolder(Folder,ECHO_ba |
| else: | else: |
| return "" | return "" |
| security.declareProtected('View','index_html') | |
| def index_html(self): | def index_html(self): |
| """main""" | """main""" |
| ext=self.ZopeFind(self,obj_ids=["index.html"]) | ext=self.ZopeFind(self,obj_ids=["index.html"]) |
| Line 430 def manage_addVersionedFileFolder(self, | Line 463 def manage_addVersionedFileFolder(self, |
| class versionedFileObject(File): | class versionedFileObject(File): |
| """File Object im Folder""" | """File Object im Folder""" |
| security= ClassSecurityInfo() | |
| meta_type = "versionedFileObject" | meta_type = "versionedFileObject" |
| manage_editForm =DTMLFile('dtml/fileEdit',globals(), | manage_editForm =DTMLFile('dtml/fileEdit',globals(), |
| Kind='File',kind='file') | Kind='File',kind='file') |
| manage_editForm._setName('manage_editForm') | manage_editForm._setName('manage_editForm') |
| <<<<<<< versionedFile.py | |
| security.declarePublic('getVComment') | |
| ======= | |
| security= ClassSecurityInfo() | |
| >>>>>>> 1.49 | |
| def getVComment(self): | def getVComment(self): |
| """get the comment of this file""" | """get the comment of this file""" |
| if not hasattr(self,'vComment') or (not self.vComment) or (self.vComment.lstrip()==""): | if not hasattr(self,'vComment') or (not self.vComment) or (self.vComment.lstrip()==""): |
| Line 471 class versionedFileObject(File): | Line 510 class versionedFileObject(File): |
| return REQUEST.RESPONSE.redirect(self.REQUEST.SESSION['refer']) | return REQUEST.RESPONSE.redirect(self.REQUEST.SESSION['refer']) |
| return REQUEST.RESPONSE.redirect(self.aq_parent.absolute_url()+"/history") | return REQUEST.RESPONSE.redirect(self.aq_parent.absolute_url()+"/history") |
| <<<<<<< versionedFile.py | |
| security.declarePublic('getVersionComment') | |
| def getVersionComment(self): | |
| """getversioncomment""" | |
| return self.versionComment | |
| security.declarePublic('getTime') | |
| ======= | |
| security.declarePublic('getTime') | |
| >>>>>>> 1.49 | |
| def getTime(self): | def getTime(self): |
| """getTime""" | """getTime""" |
| #return self.bobobase_modification_time().ISO() | #return self.bobobase_modification_time().ISO() |
| Line 487 class versionedFileObject(File): | Line 535 class versionedFileObject(File): |
| def download(self): | def download(self,REQUEST=None,RESPONSE=None): |
| """download and lock""" | """download and lock""" |
| self.REQUEST.RESPONSE.setHeader("Content-Disposition","""attachement; filename=%s"""%self.getId()) | self.REQUEST.RESPONSE.setHeader("Content-Disposition","""attachement; filename=%s"""%self.getId()) |
| self.REQUEST.RESPONSE.setHeader("Content-Type","application/octet-stream") | self.REQUEST.RESPONSE.setHeader("Content-Type","application/octet-stream") |
| #try: | |
| # txt=self.index_html() | |
| #except: | |
| # txt=self.index_html(REQUEST,RESPONSE) | |
| # | |
| #self.REQUEST.RESPONSE.setHeader("Content-Length","str(len(txt)+1000)") | |
| self.content_type="application/octet-stream" | self.content_type="application/octet-stream" |
| #self.REQUEST.RESPONSE.redirect(self.absolute_url()) | self.REQUEST.RESPONSE.redirect(self.absolute_url()) |
| self.REQUEST.RESPONSE.write(self.index_html()) | #txt=urllib.urlopen(self.absolute_url()).read() |
| #self.REQUEST.RESPONSE.write("bl") | #self.REQUEST.RESPONSE.write(txt) |
| self.REQUEST.close() | |
| #self.REQUEST.close() | |
| def downloadLocked(self): | def downloadLocked(self): |
| """download and lock""" | """download and lock""" |
| Line 516 class versionedFileObject(File): | Line 572 class versionedFileObject(File): |
| """set version""" | """set version""" |
| self.versionNumber=versionNumber | self.versionNumber=versionNumber |
| <<<<<<< versionedFile.py | |
| security.declarePublic('getVersionNumber') | |
| ======= | |
| security.declarePublic('getVersionNumber') | |
| >>>>>>> 1.49 | |
| def getVersionNumber(self): | def getVersionNumber(self): |
| """get version""" | """get version""" |
| return self.versionNumber | return self.versionNumber |
| security.declarePublic('getVersionComment') | |
| def getVersionComment(self): | |
| """get version""" | |
| return self.versionComment | |
| <<<<<<< versionedFile.py | |
| security.declarePublic('lastEditor') | |
| ======= | |
| security.declarePublic('lastEditor') | |
| >>>>>>> 1.49 | |
| def lastEditor(self): | def lastEditor(self): |
| """last Editor""" | """last Editor""" |
| if hasattr(self,'author'): | if hasattr(self,'author'): |
| Line 577 def manage_addVersionedFileObject(self,i | Line 648 def manage_addVersionedFileObject(self,i |
| class versionedFile(Folder): | class versionedFile(CatalogAware,Folder): |
| """Versioniertes File""" | """Versioniertes File""" |
| default_catalog='fileCatalog' | |
| def PrincipiaSearchSource(self): | |
| """Return cataloguable key for ourselves.""" | |
| return str(self) | |
| def __init__(self, id, title, lockedBy,author): | def __init__(self, id, title, lockedBy,author): |
| """init""" | """init""" |
| self.id=id | self.id=id |
| Line 587 class versionedFile(Folder): | Line 664 class versionedFile(Folder): |
| self.lockedBy=lockedBy | self.lockedBy=lockedBy |
| self.author=author | self.author=author |
| def manageImagesForm(self): | |
| """manage Images attached to the file""" | |
| self.REQUEST.SESSION['refer']=self.REQUEST['HTTP_REFERER'] | |
| pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','manageImage')).__of__(self) | |
| return pt() | |
| def manageImages(self,imageUrl=None,caption=None,REQUEST=None): | |
| """manage URL""" | |
| if imageUrl and (not imageUrl==""): | |
| manage_AddImageZogiLib(self,libPath=imageUrl,caption=caption) | |
| if self.REQUEST.SESSION.has_key('refer'): | |
| return REQUEST.RESPONSE.redirect(self.REQUEST.SESSION['refer']) | |
| return REQUEST.RESPONSE.redirect(self.aq_parent.absolute_url()) | |
| def changeImages(self,caption=None,submit=None,id=None,REQUEST=None): | |
| """manage URL""" | |
| if submit=="change caption": | |
| image=self.ZopeFind(self,obj_ids=[id]) | |
| if image: | |
| image[0][1].caption=caption[0:] | |
| elif submit=="delete": | |
| image=self.ZopeFind(self,obj_ids=[id]) | |
| if image: | |
| self.manage_delObjects([image[0][1].getId()]) | |
| if self.REQUEST.SESSION.has_key('refer'): | |
| return REQUEST.RESPONSE.redirect(self.REQUEST.SESSION['refer']) | |
| return REQUEST.RESPONSE.redirect(self.aq_parent.absolute_url()) | |
| def getImages(self): | |
| """get Images""" | |
| images=self.ZopeFind(self,obj_metatypes=["ImageZogiLib"]) | |
| if not images: | |
| return None | |
| else: | |
| return images | |
| def getComment(self): | def getComment(self): |
| """get the comment of this file""" | """get the comment of this file""" |
| if not hasattr(self,'comment') or (not self.comment) or (self.comment.lstrip()==""): | if not hasattr(self,'comment') or (not self.comment) or (self.comment.lstrip()==""): |
| Line 621 class versionedFile(Folder): | Line 748 class versionedFile(Folder): |
| tmp=0 | tmp=0 |
| lastVersion=None | lastVersion=None |
| for version in self.ZopeFind(self): | for version in self.ZopeFind(self): |
| if hasattr(version[1],'versionNumber'): | if hasattr(version[1],'versionNumber'): |
| Line 628 class versionedFile(Folder): | Line 756 class versionedFile(Folder): |
| if int(version[1].versionNumber) > tmp: | if int(version[1].versionNumber) > tmp: |
| tmp=int(version[1].versionNumber,) | tmp=int(version[1].versionNumber,) |
| lastVersion=version[1] | lastVersion=version[1] |
| if lastVersion==None: | |
| lastVersion=version[1] | |
| lastVersion.versionNumber=1 | |
| return lastVersion | return lastVersion |
| def index_html(self): | def index_html(self): |
| Line 635 class versionedFile(Folder): | Line 766 class versionedFile(Folder): |
| lastVersion=self.getLastVersion() | lastVersion=self.getLastVersion() |
| #return "File:"+self.title+" Version:%i"%lastVersion.versionNumber," modified:",lastVersion.bobobase_modification_time()," size:",lastVersion.getSize(),"modified by:",lastVersion.lastEditor() | #return "File:"+self.title+" Version:%i"%lastVersion.versionNumber," modified:",lastVersion.bobobase_modification_time()," size:",lastVersion.getSize(),"modified by:",lastVersion.lastEditor() |
| return "File: %s Version:%i modified:%s size:%s modified by:%s"%(self.title,lastVersion.versionNumber,lastVersion.getTime(),lastVersion.getSize(),lastVersion.lastEditor()) | return "File: %s Version:%i modified:%s size:%s modified by:%s"%(self.title,lastVersion.versionNumber,lastVersion.getTime(),lastVersion.getSize(),lastVersion.lastEditor()) |
| security= ClassSecurityInfo() | |
| security.declarePublic('getVersion') | |
| def getVersion(self): | def getVersion(self): |
| tmp=0 | tmp=0 |
| for version in self.ZopeFind(self): | for version in self.ZopeFind(self): |
| Line 646 class versionedFile(Folder): | Line 778 class versionedFile(Folder): |
| tmp=int(version[1].versionNumber,) | tmp=int(version[1].versionNumber,) |
| return tmp+1 | return tmp+1 |
| security= ClassSecurityInfo() | |
| security.declareProtected('AUTHENTICATED_USER','unlock') | security.declareProtected('AUTHENTICATED_USER','unlock') |
| def history(self): | def history(self): |
| Line 745 class versionedFile(Folder): | Line 877 class versionedFile(Folder): |
| self.REQUEST.RESPONSE.setHeader("Content-Disposition","""attachement; filename=%s"""%self.getLastVersion().getId()) | self.REQUEST.RESPONSE.setHeader("Content-Disposition","""attachement; filename=%s"""%self.getLastVersion().getId()) |
| self.REQUEST.RESPONSE.setHeader("Content-Type","application/octet-stream") | self.REQUEST.RESPONSE.setHeader("Content-Type","application/octet-stream") |
| #try: | |
| # txt=self.getLastVersion.index_html() | |
| #except: | |
| # txt=self.getLastVersion.index_html(REQUEST,RESPONSE) | |
| #self.REQUEST.RESPONSE.setHeader("Content-Length","str(len(txt)+1000)") | |
| self.content_type="application/octet-stream" | self.content_type="application/octet-stream" |
| #self.REQUEST.RESPONSE.write("bl") | #self.REQUEST.RESPONSE.write("bl") |
| self.REQUEST.RESPONSE.write(self.getLastVersion().index_html()) | #self.REQUEST.RESPONSE.write(txt) |
| self.REQUEST.close() | #self.REQUEST.close() |
| #self.getLastVersion().content_type="application/octet-stream" | #self.getLastVersion().content_type="application/octet-stream" |
| #self.REQUEST.RESPONSE.redirect(self.REQUEST['URL1']+'/'+self.getId()+'/'+self.getLastVersion().getId()) | self.REQUEST.RESPONSE.redirect(self.REQUEST['URL1']+'/'+self.getId()+'/'+self.getLastVersion().getId()) |
| def downloadLocked(self): | def downloadLocked(self): |
| """download and lock""" | """download and lock""" |