--- OSAS/OSA_system/OSAS_show.py 2004/04/15 20:48:01 1.20 +++ OSAS/OSA_system/OSAS_show.py 2005/05/04 14:06:32 1.31 @@ -10,7 +10,7 @@ from OFS.SimpleItem import SimpleItem from Products.PageTemplates.PageTemplateFile import PageTemplateFile from Products.PageTemplates.PageTemplate import PageTemplate from AccessControl import ClassSecurityInfo -from Globals import InitializeClass +from Globals import InitializeClass,package_home class OSAS_ShowOnline(SimpleItem): security=ClassSecurityInfo() @@ -25,7 +25,7 @@ class OSAS_ShowOnline(SimpleItem): security.declareProtected('View','index_html') def index_html(self): """main view""" - pt=PageTemplateFile('Products/OSA_system/zpt/OSAS_ViewFiles.zpt').__of__(self) + pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','OSAS_ViewFiles.zpt')).__of__(self) return pt() def getfilesystem2(self,start,reload=0): @@ -54,7 +54,8 @@ class OSAS_ShowOnline(SimpleItem): return hasMetafile(path) def getMetafile(self,path): - return getMetafile(path) + + return getMetafile(path).decode('utf-8') def toggle_view(self,path,file): """Oeffnen bzw. schließen der Subfolders""" @@ -66,7 +67,7 @@ InitializeClass(OSAS_ShowOnline) def manage_AddOSAS_ShowOnlineForm(self): """interface for adding the OSAS_root""" - pt=PageTemplateFile('Products/OSA_system/zpt/AddOSAS_ShowOnline.zpt').__of__(self) + pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddOSAS_ShowOnline.zpt')).__of__(self) return pt() def manage_AddOSAS_ShowOnline(self,id,RESPONSE=None): @@ -90,7 +91,7 @@ class OSAS_StoreOnline(SimpleItem): security.declareProtected('View','index_html') def index_html(self): """main view""" - pt=PageTemplateFile('Products/OSA_system/zpt/OSAS_StoreFiles.zpt').__of__(self) + pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','OSAS_StoreFiles.zpt')).__of__(self) return pt() def readContexts(self,path): @@ -106,11 +107,13 @@ class OSAS_StoreOnline(SimpleItem): def rescaleThumbs(self,path): """rescale thumbs of images in path""" - os.popen("ssh nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat.pl %s /mpiwg/temp/online/scaled/thumb 90 --replace >> /tmp/sc.out &"% re.sub('/mpiwg/online/','',self.REQUEST['path'])) + dlpath = re.sub('/mpiwg/online/','',self.REQUEST['path']) + os.popen("ssh archive@nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat -src=/mpiwg/online -dest=/mpiwg/temp/online/scaled/thumb -dir=%s -scaleto=90 -sync >> /tmp/sc.out &"%dlpath ) + #os.popen("ssh archive@nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat.pl %s /mpiwg/temp/online/scaled/thumb 90 --replace >> /tmp/sc.out &"% re.sub('/mpiwg/online/','',self.REQUEST['path'])) self.REQUEST.SESSION['path']=self.REQUEST['path'] #return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL1']) - pt=PageTemplateFile('Products/OSA_system/zpt/OSAS_scaled.zpt').__of__(self) + pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','OSAS_scaled.zpt')).__of__(self) return pt() @@ -140,7 +143,8 @@ class OSAS_StoreOnline(SimpleItem): return hasMetafile(path) def getMetafile(self,path): - return getMetafile(path) + + return getMetafile(path).decode('utf-8') def toggle_view(self,path,file): """Oeffnen bzw. schließen der Subfolders""" @@ -159,6 +163,11 @@ class OSAS_StoreOnline(SimpleItem): """Test ob Eintrag ein Folder ist""" return isFullText(path,folder_name) + def isPdf(self,path,folder_name): + """Test ob Eintrag ein Folder mit pdf2 ist""" + return isPdf(path,folder_name) + + def isPresentation(self,path,folder_name): """Test ob Eintrag ein Folder ist""" return isPresentation(path,folder_name) @@ -168,7 +177,7 @@ class OSAS_StoreOnline(SimpleItem): def addFolderForm(self,path): """add a new path""" - pt=PageTemplateFile('Products/OSA_system/zpt/OSAS_addFolder.zpt').__of__(self) + pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','OSAS_addFolder.zpt')).__of__(self) return pt() def showHelp(self,refType,genericTag): @@ -193,13 +202,13 @@ class OSAS_StoreOnline(SimpleItem): """Editiere das Index Metafile""" try: dom=xml.dom.minidom.parse(path+"/index.meta") - indexmeta=dom.toxml() + indexmeta=dom.toxml(encoding='UTF-8') except: indexmeta="" self.REQUEST.SESSION['indexmeta']=indexmeta self.REQUEST.SESSION['path']=path - newtemplate=PageTemplateFile('Products/OSA_system/zpt/editindex').__of__(self) + newtemplate=PageTemplateFile(os.path.join(package_home(globals()),'zpt','editindex')).__of__(self) return newtemplate() def EditIndex2(self): @@ -220,7 +229,7 @@ class OSAS_StoreOnline(SimpleItem): def add_metafile(self): """nothing""" - pt=PageTemplateFile('Products/OSA_system/zpt/OSAS_addmetadata.zpt').__of__(self) + pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','OSAS_addmetadata.zpt')).__of__(self) return pt() def getTextToolsField(self,path,name,default=''): @@ -230,48 +239,51 @@ class OSAS_StoreOnline(SimpleItem): dom=xml.dom.minidom.parse(path+"/index.meta") node=dom.getElementsByTagName('texttool')[0] #getNode subnode=node.getElementsByTagName(name)[0] - - return getText(subnode.childNodes) + + # bei text wird nur der Folder gebraucht + if name=="text": + splitted=getText(subnode.childNodes).split("/") + return splitted[len(splitted)-2] + else: + return getText(subnode.childNodes) except: return default - def getProjects(self,obj_ids=None): - """Get the Project title for configuration""" + def getViewerTemplateSets(self,obj_ids=None): + """Get the ViewerTemplateSet title for configuration""" ret=[] try: - projects=self.ZopeFind(self.projects,obj_metatypes=['OSAS_project'],obj_ids=obj_ids)#assumes projects folder somewhere in the hierarchie. + viewerTemplateSets=self.ZopeFind(self.viewerTemplateSets,obj_metatypes=['OSAS_viewerTemplateSet'],obj_ids=obj_ids)#assumes viewerTemplateSets folder somewhere in the hierarchie. - for project in projects: - ret.append((project[1].title,project[0],project[1])) + for viewerTemplateSet in viewerTemplateSets: + ret.append((viewerTemplateSet[1].title,viewerTemplateSet[0],viewerTemplateSet[1])) return ret except: - return [('no Projectfolders','')] + return [('no ViewerTemplateSetfolders','')] def changeTemplatesForm(self,path): """changeform""" path=self.REQUEST.SESSION['path']=path - pt=PageTemplateFile('Products/OSA_system/zpt/changeTemplatesForm.zpt').__of__(self) + pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','changeTemplatesForm.zpt')).__of__(self) return pt() - def changeTemplates(self,path): + def changeTemplates(self,path,RESPONSE=None): """Andere alle Eintraege in index.meta""" - #os.path.walk(path,OSAS_helpers.changeIndexMeta,startpage,xslt,thumbtemplate,topbar,digiLibTemplate) - print self.REQUEST.form - - os.path.walk(path,OSAS_helpers.changeIndexMeta,self.REQUEST.form) - + if RESPONSE is not None: + RESPONSE.redirect(self.REQUEST['URL1']+"?path="+self.REQUEST.SESSION['path']) + InitializeClass(OSAS_StoreOnline) def manage_AddOSAS_StoreOnlineForm(self): """interface for adding the OSAS_root""" - pt=PageTemplateFile('Products/OSA_system/zpt/AddOSAS_StoreOnline.zpt').__of__(self) + pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddOSAS_StoreOnline.zpt')).__of__(self) return pt() def manage_AddOSAS_StoreOnline(self,id,RESPONSE=None): @@ -326,7 +338,7 @@ import xml.dom.minidom from Products.PageTemplates.PageTemplateFile import PageTemplateFile from Products.PageTemplates.PageTemplate import PageTemplate import tempfile -tempfile.tempdir="/var/tmp/archiver" +tempfile.tempdir="/var/tmp" exclusion=[".HSResource","lost+found","Network Trash Folder","TheFindByContentFolder","TheVolumeSettingsFolder"] class fsentry(Implicit, Persistent, RoleManager): @@ -953,7 +965,9 @@ def getBib(nodelist): if node.nodeType == node.ELEMENT_NODE: """nothing""" + rc = rc+""+str(node.nodeName)+": "+getText(node.childNodes)+"" + #print rc return rc+"" @@ -1012,7 +1026,7 @@ def getMetafile(path): # html=html.encode('utf-8','replace')+getBib(bib.childNodes).encode('utf-8','replace') - return html + return html.encode('utf-8') def hasMetafile(path): """get index.meta""" @@ -1070,6 +1084,20 @@ def isFullText(path,folder_name): return 0 +def isPdf(path,folder_name): + """check if foldername in path is full text""" + try: + dom=xml.dom.minidom.parse(path+"/index.meta") + for node in dom.getElementsByTagName("dir"): + + if getText(node.getElementsByTagName("content-type")[0].childNodes).lower()=="pdf": + + if getText(node.getElementsByTagName("name")[0].childNodes)==folder_name: + return 1 + return 0 + except: + + return 0 def isPresentation(path,folder_name): """check if foldername in path is full text"""