# Methoden und Classen zum Hinzufuegen von Dokumenten
import xml.dom.minidom
from Products.ECHO_content import ECHO_collection
import urllib
import OSAS_add
import OSAS_show
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 "<input type='checkbox' name='collection' value='%s'>%s</input>"% (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])+"<br>"+self.printChilds(child[1],depth,items,enddepth)+"<br>"
else:
tmp=tmp+spaces(2*depth)
tmp = tmp+retLink(child[1])+"<br>"
return tmp
def generateTree(self,depth=10):
"""Erzeugt HTML-Tree der Collection"""
exec("items=self.getPhysicalRoot()."+self.collection+".getCollectionTree()")
#print items[0][0]
childs=self.printChilds(items[0][0],0,items,depth)
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")
except:
return "index.meta file has to exist!"
links=[(path,'standard storage')]
links+=OSAS_show.readContexts(path) # auslesen von contexten für den link
#print "LINK",links
self.REQUEST.SESSION['links']=links
pt=PageTemplateFile('Products/OSA_system/contextDataMain.zpt').__of__(self)
return pt()
def addContextData2(self,path,collection,context,science,practice,source_type,period,link,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)
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>