--- OSAS/OSA_system/OSAS_show.py 2004/01/21 07:43:01 1.14 +++ OSAS/OSA_system/OSAS_show.py 2004/04/15 20:48:01 1.20 @@ -1,7 +1,10 @@ -# Classes for displaying, browsing and organizing the archive +""" Classes for displaying, browsing and organizing the archive +20040303 Needs configuration for rescaling thumbs +""" import addFolder +import OSAS_helpers from OFS.Folder import Folder from OFS.SimpleItem import SimpleItem from Products.PageTemplates.PageTemplateFile import PageTemplateFile @@ -22,7 +25,7 @@ class OSAS_ShowOnline(SimpleItem): security.declareProtected('View','index_html') def index_html(self): """main view""" - pt=PageTemplateFile('Products/OSA_system/OSAS_ViewFiles.zpt').__of__(self) + pt=PageTemplateFile('Products/OSA_system/zpt/OSAS_ViewFiles.zpt').__of__(self) return pt() def getfilesystem2(self,start,reload=0): @@ -58,11 +61,12 @@ class OSAS_ShowOnline(SimpleItem): self.tree(path).toggle(path,file) return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL1']+"?path="+path) + InitializeClass(OSAS_ShowOnline) def manage_AddOSAS_ShowOnlineForm(self): """interface for adding the OSAS_root""" - pt=PageTemplateFile('Products/OSA_system/AddOSAS_ShowOnline.zpt').__of__(self) + pt=PageTemplateFile('Products/OSA_system/zpt/AddOSAS_ShowOnline.zpt').__of__(self) return pt() def manage_AddOSAS_ShowOnline(self,id,RESPONSE=None): @@ -86,7 +90,7 @@ class OSAS_StoreOnline(SimpleItem): security.declareProtected('View','index_html') def index_html(self): """main view""" - pt=PageTemplateFile('Products/OSA_system/OSAS_StoreFiles.zpt').__of__(self) + pt=PageTemplateFile('Products/OSA_system/zpt/OSAS_StoreFiles.zpt').__of__(self) return pt() def readContexts(self,path): @@ -106,7 +110,7 @@ class OSAS_StoreOnline(SimpleItem): self.REQUEST.SESSION['path']=self.REQUEST['path'] #return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL1']) - pt=PageTemplateFile('Products/OSA_system/OSAS_scaled.zpt').__of__(self) + pt=PageTemplateFile('Products/OSA_system/zpt/OSAS_scaled.zpt').__of__(self) return pt() @@ -155,15 +159,32 @@ class OSAS_StoreOnline(SimpleItem): """Test ob Eintrag ein Folder ist""" return isFullText(path,folder_name) + def isPresentation(self,path,folder_name): + """Test ob Eintrag ein Folder ist""" + return isPresentation(path,folder_name) + def date(self): return strftime("%d.%m.%Y",localtime()) def addFolderForm(self,path): """add a new path""" - pt=PageTemplateFile('Products/OSA_system/OSAS_addFolder.zpt').__of__(self) + pt=PageTemplateFile('Products/OSA_system/zpt/OSAS_addFolder.zpt').__of__(self) return pt() - + def showHelp(self,refType,genericTag): + """helptext""" + for reference in self.ZopeFind(self.standardMD): + if reference[1].title==refType: + text=getattr(reference[1],'md_'+genericTag)[2] + return text + return "NO EXPLANATION" + + def showHelpTag(self,url,reftype,item): + """gen javascript for showhelp""" + url2=url+'/showHelp?refType=%s&genericTag=%s'%(reftype,item) + ret="""javascript:wd=window.open(\'%s\',\'Help\',\'width=300,height=250\');void(\'\');wd.focus();"""%url2 + return ret + def addFolder(self,path,folder_name,description,archive_creation_date,creator): """add the folder to the filesystem and write the metadata files""" return addFolder.addFolder(self,path,folder_name,description,archive_creation_date,creator) @@ -178,7 +199,7 @@ class OSAS_StoreOnline(SimpleItem): self.REQUEST.SESSION['indexmeta']=indexmeta self.REQUEST.SESSION['path']=path - newtemplate=PageTemplateFile('Products/OSA_system/editindex').__of__(self) + newtemplate=PageTemplateFile('Products/OSA_system/zpt/editindex').__of__(self) return newtemplate() def EditIndex2(self): @@ -199,14 +220,58 @@ class OSAS_StoreOnline(SimpleItem): def add_metafile(self): """nothing""" - pt=PageTemplateFile('Products/OSA_system/OSAS_addmetadata.zpt').__of__(self) + pt=PageTemplateFile('Products/OSA_system/zpt/OSAS_addmetadata.zpt').__of__(self) + return pt() + + def getTextToolsField(self,path,name,default=''): + """Lese Textoolsfelder aus index.meta im path aus""" + + try: + dom=xml.dom.minidom.parse(path+"/index.meta") + node=dom.getElementsByTagName('texttool')[0] #getNode + subnode=node.getElementsByTagName(name)[0] + + return getText(subnode.childNodes) + except: + return default + + def getProjects(self,obj_ids=None): + """Get the Project 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. + + for project in projects: + ret.append((project[1].title,project[0],project[1])) + + return ret + + except: + return [('no Projectfolders','')] + + def changeTemplatesForm(self,path): + """changeform""" + path=self.REQUEST.SESSION['path']=path + pt=PageTemplateFile('Products/OSA_system/zpt/changeTemplatesForm.zpt').__of__(self) return pt() + + + def changeTemplates(self,path): + """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) + + InitializeClass(OSAS_StoreOnline) def manage_AddOSAS_StoreOnlineForm(self): """interface for adding the OSAS_root""" - pt=PageTemplateFile('Products/OSA_system/AddOSAS_StoreOnline.zpt').__of__(self) + pt=PageTemplateFile('Products/OSA_system/zpt/AddOSAS_StoreOnline.zpt').__of__(self) return pt() def manage_AddOSAS_StoreOnline(self,id,RESPONSE=None): @@ -248,7 +313,11 @@ from AccessControl import ClassSecurityI from AccessControl.Role import RoleManager from Acquisition import Implicit from Globals import Persistent -from time import strptime +try: + from time import strptime +except: + print "ignoring time.strptime import" + from time import strftime import time import os.path @@ -950,6 +1019,8 @@ def hasMetafile(path): return os.path.exists(path+"/index.meta") #return path + + def isdigilib2(path): """check if folder is candidate for digilib without metadata""" try: @@ -1159,7 +1230,7 @@ def isScannedDocument(self,path): try: dom = xml.dom.minidom.parseString(lines) content_type=getText(dom.getElementsByTagName("content-type")[0].childNodes) - if (content_type=="scanned-document") or (content_type=="scanned document"): + if (content_type=="scanned-document") or (content_type=="scanned document") or (content_type=="fulltext document"): return 1 else: return 0