# Methoden und Classen zum Hinzufuegen von Dokumenten import xml.dom.minidom from Products.ECHO_content import ECHO_collection import urllib import OSAS_add import string from OFS.Folder import Folder from AccessControl import ClassSecurityInfo from Globals import InitializeClass from Products.PageTemplates.PageTemplateFile import PageTemplateFile from Products.PageTemplates.PageTemplate import PageTemplate class OSAS_add_Document(Folder): """Hinzufuegen eines Dokumentes zum Storage""" security=ClassSecurityInfo() def __init__(self,id): """initialize a new instance""" self.id = id meta_type='OSAS_add_Document' manage_options = Folder.manage_options+( {'label':'Main Config','action':'add_Document_config'}, ) security.declarePublic('add_Document_config') def add_Document_config(self): """Main configuration""" pt=PageTemplateFile('products/OSA_system/ChangeOSAS_addDocument.zpt').__of__(self) return pt() security.declarePublic('change_OSAS_add_Document') def change_OSAS_add_Document(self,RESPONSE=None): """Change""" # self.RootFolderName=RootFolderName if RESPONSE is not None: RESPONSE.redirect('manage_main') security.declarePublic('index_html') def index_html(self): """stantard aufruf""" return OSAS_add.add(self,no_upload=1) security.declarePublic('add2') def add2(self): """ anlegen naechster schritt""" return OSAS_add.add2(self) def add3(self): """Foldername""" return OSAS_add.add3(self) def add4(self): """Applet""" return OSAS_add.add4(self) def add5(self): """Foldername""" return OSAS_add.add5(self) def add6(self): """write new index.meta file""" return OSAS_add.add6(self) def addImages(self,path): """Hinzufügen eines neuen Imagesfolders""" return OSAS_add.addImages(self,path) def addImages2(self): """Upload des neuen Imagefolders""" return OSAS_add.addImages2(self) def manage_AddOSAS_add_DocumentForm(self): """interface for adding the OSAS_add_Metadata""" pt=PageTemplateFile('products/OSA_system/AddOSAS_document.zpt').__of__(self) return pt() def manage_AddOSAS_add_Document(self,id,RESPONSE=None): """add the OSAS_root""" newObj=OSAS_add_Document(id) self.Destination()._setObject(id,newObj) if RESPONSE is not None: RESPONSE.redirect('manage_main') InitializeClass(OSAS_add_Document) class OSAS_add_Text(Folder): """Hinzufuegen eines Text-Dokumentes zum Storage""" security=ClassSecurityInfo() def __init__(self,id): """initialize a new instance""" self.id = id meta_type='OSAS_add_Text' manage_options = Folder.manage_options+( {'label':'Main Config','action':'add_Text_config'}, ) security.declarePublic('add_Text_config') def add_Text_config(self): """Main configuration""" pt=PageTemplateFile('products/OSA_system/ChangeOSAS_addText.zpt').__of__(self) return pt() security.declarePublic('change_OSAS_add_Text') def change_OSAS_add_Text(self,RESPONSE=None): """Change""" # self.RootFolderName=RootFolderName if RESPONSE is not None: RESPONSE.redirect('manage_main') def addText(self,path): """Add a fulltext""" return OSAS_add.addText(self,path) def addText2(self): """Read the file and store it""" return OSAS_add.addText2(self) def manage_AddOSAS_add_TextForm(self): """interface for adding the OSAS_add_Metadata""" pt=PageTemplateFile('products/OSA_system/AddOSAS_text.zpt').__of__(self) return pt() def manage_AddOSAS_add_Text(self,id,RESPONSE=None): """add the OSAS_root""" newObj=OSAS_add_Text(id) self.Destination()._setObject(id,newObj) if RESPONSE is not None: RESPONSE.redirect('manage_main') InitializeClass(OSAS_add_Text) class OSAS_add_contextData(Folder): """Einfuegen eines Documentes in eine Collection""" security=ClassSecurityInfo() meta_type='OSAS_add_contextData' def __init__(self,id,collection): self.id=id self.collection=collection def getChilds(self,id,depth,items): list=[] for object in items: if (depth==object[2])&(id==object[0]): list.append(object) return list def printChilds(self,startItem,depth,items,enddepth): def spaces(depth): tmp="" k=0 while k<2*depth: k+=1 tmp=tmp+" "+" " return tmp def retLink(object): return "%s"% (string.join(object.getPhysicalPath(),"."),object.title) depth+=1 childs=self.getChilds(startItem,depth,items) tmp="" for child in childs: if depth < enddepth: tmp=tmp+spaces(depth) tmp= tmp+retLink(child[1])+"
"+self.printChilds(child[1],depth,items,enddepth)+"
" else: tmp=tmp+spaces(2*depth) tmp = tmp+retLink(child[1])+"
" return tmp def generateTree(self,depth=3): """Erzeugt HTML-Tree der Collection""" exec("items=self.getPhysicalRoot()."+self.collection+".getCollectionTree()") #print items[0][0] childs=self.printChilds(items[0][0],0,items,3) return childs def getPartners(self): """Zeige Partnerliste""" exec("items=self.getPhysicalRoot()."+self.collection+".partners.getPartners()") return items def addContextData(self,path): """Hinzufügen zu einer Sammlung""" try: urllib.urlopen(self.REQUEST['SERVER_URL']+path+"/index.meta") pt=PageTemplateFile('products/OSA_system/contextDataMain.zpt').__of__(self) return pt() except: return "index.meta file has to exist!" def addContextData2(self,path,collection,context,science,practice,source_type,period,label,description,content_type,responsible,credits): """Hinzufuegen der Resource""" splitted=path.split("/") id=splitted[len(splitted)-1] title=splitted[len(splitted)-1] metalink=self.REQUEST['SERVER_URL']+path+"/index.meta" link="TOBEDONE" """Hinzufügen der Ressource""" exec("collection_object=self"+collection) ECHO_collection.manage_AddECHO_resource(collection_object,context,science,practice,source_type,period,id,title,label,description,content_type,responsible,link,metalink,credits,RESPONSE=None) getattr(collection_object,id).ECHO_getResourceMD() return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL2']+'?path='+path) manage_options = Folder.manage_options+( {'label':'Main Config','action':'add_contextData_config'}, ) def add_contextData_config(self): """Main configuration""" pt=PageTemplateFile('products/OSA_system/ChangeOSAS_add_contextData.zpt').__of__(self) return pt() def change_OSAS_add_contextData(self,collection,RESPONSE=None): """Change""" self.collection=collection if RESPONSE is not None: RESPONSE.redirect('manage_main') def manage_AddOSAS_add_contextDataForm(self): """interface for adding the OSAS_add_Metadata""" pt=PageTemplateFile('products/OSA_system/AddOSAS_contextData.zpt').__of__(self) return pt() def manage_AddOSAS_add_contextData(self,id,collection,RESPONSE=None): """add the OSAS_root""" newObj=OSAS_add_contextData(id,collection) self.Destination()._setObject(id,newObj) if RESPONSE is not None: RESPONSE.redirect('manage_main') InitializeClass(OSAS_add_contextData) class OSAS_add_Presentation(Folder): """Hinzufügen der Presentationsinformationen""" security=ClassSecurityInfo() def __init__(self,id): """initialize a new instance""" self.id = id meta_type='OSAS_add_Presentation' manage_options = Folder.manage_options+( {'label':'Main Config','action':'add_Presentation_config'}, ) security.declarePublic('add_Presentation_config') def add_Presentation_config(self): """Main configuration""" pt=PageTemplateFile('products/OSA_system/ChangeOSAS_addPresentation.zpt').__of__(self) return pt() security.declarePublic('change_OSAS_add_Presentation') def change_OSAS_add_Presentation(self,RESPONSE=None): """Change""" # self.RootFolderName=RootFolderName if RESPONSE is not None: RESPONSE.redirect('manage_main') def addPresentation(self,path): """Hinzufügen der Presenationsinformation""" return OSAS_add.addPresentation(self,path) def addPresentation2(self): """Eingabe von Metadateninformationen""" return OSAS_add.addPresentation2(self) def manage_AddOSAS_add_PresentationForm(self): """interface for adding the OSAS_add_Metadata""" pt=PageTemplateFile('products/OSA_system/AddOSAS_presentation.zpt').__of__(self) return pt() def manage_AddOSAS_add_Presentation(self,id,RESPONSE=None): """add the OSAS_root""" newObj=OSAS_add_Presentation(id) self.Destination()._setObject(id,newObj) if RESPONSE is not None: RESPONSE.redirect('manage_main') InitializeClass(OSAS_add_Presentation) class OSAS_combineTextImage(Folder): """Hinzufügen der Combine Text und Image""" security=ClassSecurityInfo() def __init__(self,id): """initialize a new instance""" self.id = id meta_type='OSAS_combineTextImage' manage_options = Folder.manage_options+( {'label':'Main Config','action':'combineTextImage_config'}, ) security.declarePublic('combineTextImage_config') def combineTextImage_config(self): """Main configuration""" pt=PageTemplateFile('products/OSA_system/ChangeOSAS_combineTextImage.zpt').__of__(self) return pt() security.declarePublic('change_OSAS_combineTextImage') def change_OSAS_combineTextImage(self,RESPONSE=None): """Change""" # self.RootFolderName=RootFolderName if RESPONSE is not None: RESPONSE.redirect('manage_main') security.declarePublic('combineTextImage') def combineTextImage(self,path): """Hinzufügen der Presenationsinformation""" return OSAS_add.combineTextImage(self,path) def combineTextImage2(self,path): """Eingabe von Metadateninformationen""" OSAS_add.combineTextImage2(self,path) # Add images splitted=path.split("/") linkPath=splitted[len(splitted)-1] linkViewerEnvironment="http://nausikaa2.mpiwg-berlin.mpg.de:86/cgi-bin/toc/toc.x.cgi?dir=%s&step=thumb" % linkPath self.REQUEST.SESSION['linkViewerEnvironment']=linkViewerEnvironment writeToContext(path,linkViewerEnvironment,"ECHO standard environment") pt=PageTemplateFile('products/OSA_system/AddOSAS_combineTextImageFinal.zpt').__of__(self) return pt() def writeToContext(path,link,description): """Created an additional entry to the index.meta file of path""" dom=xml.dom.minidom.parse(path+"/index.meta") node=dom.getElementsByTagName('resource')[0] subnode=dom.createElement('context') linknode=dom.createElement('link') namelinknode=dom.createTextNode(link) linknode.appendChild(namelinknode) subnode.appendChild(linknode) linknode=dom.createElement('name') namelinknode=dom.createTextNode(description) linknode.appendChild(namelinknode) subnode.appendChild(linknode) node.appendChild(subnode) writefile=file(path+"/index.meta","w") #print path+"/index.meta" writefile.write(dom.toxml().encode('utf-8')) writefile.close() def manage_AddOSAS_combineTextImageForm(self): """interface for adding the OSAS_add_Metadata""" pt=PageTemplateFile('products/OSA_system/AddOSAS_combineTextImage.zpt').__of__(self) return pt() def manage_AddOSAS_combineTextImage(self,id,RESPONSE=None): """add the OSAS_root""" newObj=OSAS_combineTextImage(id) self.Destination()._setObject(id,newObj) if RESPONSE is not None: RESPONSE.redirect('manage_main') InitializeClass(OSAS_combineTextImage)