--- OSAS/OSA_system/OSAS_addfiles.py 2004/03/25 09:57:47 1.20
+++ OSAS/OSA_system/OSAS_addfiles.py 2004/04/02 07:57:25 1.21
@@ -4,11 +4,7 @@
from OSAS_helpers import readArchimedesXML, getISO, getText
import os
import xml.dom.minidom
-try:
- from Products.ECHO_content import ECHO_collection
-except:
- print "Ignoring ECHO_collection import...."
-
+
import urllib
import OSAS_add
import OSAS_show
@@ -20,6 +16,20 @@ from Products.PageTemplates.PageTemplate
from Products.PageTemplates.PageTemplate import PageTemplate
import archive # check if this is necessary
+
+from xml.sax import make_parser
+from xml.sax.handler import ContentHandler
+
+def spaces(depth):
+ """needed in XMLtoTree"""
+ tmp=""
+ k=0
+ while k<2*depth:
+ k+=1
+ tmp=tmp+" "+" "
+ return tmp
+
+
class OSAS_add_Document(Folder):
"""Hinzufuegen eines Dokumentes zum Storage"""
security=ClassSecurityInfo()
@@ -153,6 +163,7 @@ def manage_AddOSAS_add_Text(self,id,RESP
InitializeClass(OSAS_add_Text)
+
class OSAS_add_contextData(Folder):
"""Einfuegen eines Documentes in eine Collection"""
@@ -161,6 +172,34 @@ class OSAS_add_contextData(Folder):
meta_type='OSAS_add_contextData'
+ def XmlToTree(self,URL):
+ """Collection XML to Tree"""
+
+
+ class requestHandler(ContentHandler):
+ def __init__(self):
+ self.depth=0
+ self.retStr=""
+
+ def startElement(self,name,attrs):
+ if name=="element":
+ self.depth+=1
+ self.retStr+=spaces(self.depth)+"%s"%(attrs.get('url'),attrs.get('name'))+"
\n"
+
+
+
+ def endElement(self,name):
+ if name=="element":
+ self.depth-=1
+
+
+ parser=make_parser()
+ curHandler=requestHandler()
+ parser.setContentHandler(curHandler)
+ #return urllib.urlopen(URL).read()
+ parser.parse(urllib.urlopen(URL))
+ return curHandler.retStr
+
def __init__(self,id,collection):
self.id=id
self.collection=collection
@@ -172,8 +211,10 @@ class OSAS_add_contextData(Folder):
list.append(object)
return list
+
+
def printChilds(self,startItem,depth,items,enddepth):
-
+ """NOT USED ANYMORE"""
def spaces(depth):
tmp=""
k=0
@@ -198,9 +239,10 @@ class OSAS_add_contextData(Folder):
tmp = tmp+retLink(child[1])
return tmp
-
+
+
def generateTree(self,depth=10):
- """Erzeugt HTML-Tree der Collection"""
+ """Erzeugt HTML-Tree der Collection NOTE USED ANYMORE"""
exec("items=self.getPhysicalRoot()."+self.collection+".getCollectionTree()")
#print items[0][0]
@@ -213,6 +255,7 @@ class OSAS_add_contextData(Folder):
"""Zeige Partnerliste"""
exec("items=self.getPhysicalRoot()."+self.collection+".partners.getPartners()")
return items
+
def addContextData(self,path):
"""Hinzufügen zu einer Sammlung"""
try:
@@ -231,7 +274,7 @@ class OSAS_add_contextData(Folder):
return pt()
- def addContextData2(self,path,collection,context,science,practice,source_type,period,link,label,description,content_type,responsible,weight,credits=None):
+ def addContextData2(self,path,collection,context,link,label,description,content_type,responsible,weight,credits=None):
"""Hinzufuegen der Resource"""
splitted=path.split("/")
#print "BLU"
@@ -242,15 +285,23 @@ class OSAS_add_contextData(Folder):
#link=TOBEDONE"
"""Hinzufügen der Ressource"""
+ params=urllib.urlencode({'id':id,'title':title,'link':link,'label':label,'description':description,'content_type':content_type,'responsible':responsible,'weight':weight,'credits':credits,'metalink':metalink})
+
+ retStr=urllib.urlopen(collection+"/addResource",params).read()
+ if not retStr:
+ return "An Error occured adding the resource\n"
+
+ urllib.urlopen(collection+"/"+id+"/ECHO_getResourceMD").read()
+ #exec("collection_object=self"+collection)
- exec("collection_object=self"+collection)
+
- ECHO_collection.manage_addECHO_resource(collection_object,id,title,label,description,content_type,responsible,link,metalink,credits,weight,RESPONSE=None)
+ #ECHO_collection.manage_addECHO_resource(collection_object,id,title,label,description,content_type,responsible,link,metalink,credits,weight,RESPONSE=None)
#print "HI5"
- try:
- getattr(collection_object,id).ECHO_getResourceMD()
- except:
- """nothing"""
+ #try:
+ # getattr(collection_object,id).ECHO_getResourceMD()
+ #except:
+ # """nothing"""
#return "BLUByy"
return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL2']+'?path='+path)