--- OSAS/OSA_system/OSAS_addfiles.py 2004/04/02 07:57:25 1.21
+++ OSAS/OSA_system/OSAS_addfiles.py 2004/04/06 10:55:16 1.26
@@ -4,7 +4,7 @@
from OSAS_helpers import readArchimedesXML, getISO, getText
import os
import xml.dom.minidom
-
+import re
import urllib
import OSAS_add
import OSAS_show
@@ -62,13 +62,13 @@ class OSAS_add_Document(Folder):
security.declarePublic('index_html')
def index_html(self):
"""stantard aufruf"""
- return OSAS_add.add(self,no_upload=1)
+ return OSAS_add.add(self.standardMD,no_upload=1)
security.declarePublic('add2')
def add2(self):
""" anlegen naechster schritt"""
- return OSAS_add.add2(self)
+ return OSAS_add.add2(self.standardMD)
def add3(self):
"""Foldername"""
@@ -184,7 +184,14 @@ class OSAS_add_contextData(Folder):
def startElement(self,name,attrs):
if name=="element":
self.depth+=1
- self.retStr+=spaces(self.depth)+"%s"%(attrs.get('url'),attrs.get('name'))+"
\n"
+ begin=""
+ end=""
+ if self.depth==1:
+ print "hi"
+ begin=""
+ end=""
+
+ self.retStr+=spaces(self.depth)+"%s"%(attrs.get('url'),begin+attrs.get('name')+end)+"
\n"
@@ -193,68 +200,48 @@ class OSAS_add_contextData(Folder):
self.depth-=1
- parser=make_parser()
- curHandler=requestHandler()
- parser.setContentHandler(curHandler)
- #return urllib.urlopen(URL).read()
- parser.parse(urllib.urlopen(URL))
- return curHandler.retStr
+ try:
+ URL+="/getCollectionTreeXML"
+ parser=make_parser()
+ curHandler=requestHandler()
+ parser.setContentHandler(curHandler)
+ parser.parse(urllib.urlopen(URL))
+ return curHandler.retStr
+ except:
+ return urllib.urlopen(URL).read()
+
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):
- """NOT USED ANYMORE"""
- 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)
+ def getPartners(self,URL):
+ """Zeige Partnerliste"""
+ class requestHandler(ContentHandler):
+ def __init__(self):
+ self.ret=[]
- 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 startElement(self,name,attrs):
+ if name=="partner":
+ self.ret.append((attrs.get('id'),attrs.get('title')))
- def generateTree(self,depth=10):
- """Erzeugt HTML-Tree der Collection NOTE USED ANYMORE"""
-
- exec("items=self.getPhysicalRoot()."+self.collection+".getCollectionTree()")
- #print items[0][0]
-
- childs=self.printChilds(items[0][0],0,items,depth)
-
- return childs
+ URL+="/getPartnersXML"
+
+ try:
+
+ parser=make_parser()
+ curHandler=requestHandler()
+ parser.setContentHandler(curHandler)
+
+ parser.parse(urllib.urlopen(URL))
+ return curHandler.ret
+ except:
+ return [("",urllib.urlopen(URL).read())]
- def getPartners(self):
- """Zeige Partnerliste"""
- exec("items=self.getPhysicalRoot()."+self.collection+".partners.getPartners()")
- return items
def addContextData(self,path):
"""Hinzufügen zu einer Sammlung"""
@@ -274,7 +261,7 @@ class OSAS_add_contextData(Folder):
return pt()
- def addContextData2(self,path,collection,context,link,label,description,content_type,responsible,weight,credits=None):
+ def addContextData2(self,path,collection,link,label,description,content_type,responsible,weight,credits=None):
"""Hinzufuegen der Resource"""
splitted=path.split("/")
#print "BLU"
@@ -285,10 +272,11 @@ 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})
+ params=urllib.urlencode({'id':id,'title':title,'link':link,'label':label,'description':description,'contentType':content_type,'responsible':responsible,'weight':weight,'credits':credits,'metalink':metalink})
retStr=urllib.urlopen(collection+"/addResource",params).read()
- if not retStr:
+ return retStr
+ if not retStr:
return "An Error occured adding the resource\n"
urllib.urlopen(collection+"/"+id+"/ECHO_getResourceMD").read()
@@ -495,10 +483,10 @@ class OSAS_combineTextImage(Folder):
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
+ linkViewerEnvironment="http://nausikaa2.mpiwg-berlin.mpg.de/cgi-bin/toc/toc.x.cgi?dir=%s&step=thumb" % linkPath
self.REQUEST.SESSION['linkViewerEnvironment']=linkViewerEnvironment
- writeToContext(path,linkViewerEnvironment,"ECHO standard environment")
+ writeToContext(path,linkViewerEnvironment,"ECHO standard environment",unique="yes")
pt=PageTemplateFile('Products/OSA_system/zpt/AddOSAS_combineTextImageFinal.zpt').__of__(self)
@@ -512,11 +500,23 @@ class OSAS_combineTextImage(Folder):
else:
return None
-def writeToContext(path,link,description):
+def writeToContext(path,link,description,unique="no"):
"""Created an additional entry to the index.meta file of path"""
dom=xml.dom.minidom.parse(path+"/index.meta")
node=dom.getElementsByTagName('resource')[0]
+ if unique=="yes":
+
+ contexts=node.getElementsByTagName('context')
+ for context in contexts:
+ nameTag=getText(context.getElementsByTagName('name')[0].childNodes)
+ linkTag=getText(context.getElementsByTagName('link')[0].childNodes)
+
+ print "unique",context,nameTag,description,linkTag,link
+ linkTag=re.sub("\:86","",linkTag) # alter port 86 gleich ohne port nummer (hack)
+ if (nameTag==description) and (linkTag==link):
+ node.removeChild(context).unlink()
+
subnode=dom.createElement('context')
linknode=dom.createElement('link')