--- ECHO_content/ECHO_collection.py 2004/06/28 14:42:32 1.131
+++ ECHO_content/ECHO_collection.py 2004/07/01 07:46:17 1.132
@@ -184,6 +184,8 @@ class BrowserCheck:
self.isIEMac = self.isIE and self.isMac
+
+
def writeMetadata(url,metadict,project=None,startpage=None,xslt=None,thumbtemplate=None,topbar=None,digiLibTemplate=None):
"""Einlesen der Metadaten und und erstellen des geaenderten XML file"""
def updateTextToolNode(tag,value):
@@ -484,6 +486,139 @@ class ECHO_resource(Folder,Persistent):
getSubCols = ECHO_helpers.getSubCols
+ def getAccessRightSelectorHTML(self,outlook="select"):
+ """htmlselector"""
+ values=['free','mpiwg']
+
+ if outlook=="select":
+ ret=""""
+
+ else:
+ ret=""
+ for value in values:
+ print
+ if value==self.getAccessRightMD():
+ ret+="""%s"""%(self.getId(),value,value)
+ else:
+ ret+="""%s"""%(self.getId(),value,value)
+ return ret
+
+
+
+ def getAccessRightMD(self):
+ """set accessright"""
+ url=self.metalink
+
+ try:
+ geturl=""
+ for line in urllib.urlopen(url).readlines():
+ geturl=geturl+line
+
+
+ except:
+ return (None,"Cannot open: "+url)
+
+ try:
+ dom=xml.dom.minidom.parseString(geturl)
+ root=dom.getElementsByTagName('resource')[0]
+ except:
+ return (None,"Cannot parse: "+url+"
"+geturl)
+
+ internal=dom.getElementsByTagName('internal')
+ if internal:
+ institution=dom.getElementsByTagName('institution')
+ return getText(institution[0].childNodes)
+
+ free=dom.getElementsByTagName('free')
+ if free:
+ return "free"
+
+ return "free" #default free
+
+ def changeAccessRightMD(self,accessright,RESPONSE=None):
+ """change the rights"""
+
+ params="accessright=%s"%accessright
+
+
+ #print urllib.urlopen(self.absolute_url()+'/setAccessRightXML'+'?'+params).read()
+
+
+ urllib.urlopen('http://xserve02.mpiwg-berlin.mpg.de:18880/echo_nav/storage/downloadExternalXML?index_meta_url=%s&xml_url=%s'%(self.metalink,self.absolute_url()+'/setAccessRightXML'+urllib.quote('?'+params))).read()
+
+
+ if RESPONSE is not None:
+ RESPONSE.redirect('manage_main')
+
+
+ def setAccessRightXML(self,accessright):
+ """set accessright"""
+ url=self.metalink
+
+ try:
+ geturl=""
+ for line in urllib.urlopen(url).readlines():
+ geturl=geturl+line
+
+
+ except:
+ return (None,"Cannot open: "+url)
+
+ try:
+ dom=xml.dom.minidom.parseString(geturl)
+ root=dom.getElementsByTagName('resource')[0]
+ except:
+ return (None,"Cannot parse: "+url+"
"+geturl)
+
+ metanodes=dom.getElementsByTagName('access-conditions')
+
+ if not metanodes:
+ nodenew=dom.createElement('access-conditions')
+ root.appendChild(nodenew)
+ metanode=nodenew
+ else:
+ metanode=metanodes[0]
+
+ accesses=metanode.getElementsByTagName('access')
+
+ if not accesses:
+ nodenew2=dom.createElement('access')
+ metanode.appendChild(nodenew2)
+ metanode2=nodenew2
+ else:
+ metanode2=accesses[0]
+
+ internal=metanode.getElementsByTagName('internal')
+
+ if internal:
+ metanode2.removeChild(internal[0]).unlink()
+
+ free=metanode.getElementsByTagName('free')
+
+ if free:
+ metanode2.removeChild(internal[0]).unlink()
+
+
+ if accessright=='free':
+ nodenew3=dom.createElement('free')
+ metanode2.appendChild(nodenew3)
+ elif accessright=='mpiwg':
+ nodenew3=dom.createElement('internal')
+ nodenew4=dom.createElement('institution')
+ metanodetext=dom.createTextNode('mpiwg')
+ nodenew4.appendChild(metanodetext)
+ nodenew3.appendChild(nodenew4)
+ metanode2.appendChild(nodenew3)
+
+ return dom.toxml().encode('utf-8')
+
def setStartPageForm(self):
"""Form for changing the startpage"""
@@ -554,7 +689,7 @@ class ECHO_resource(Folder,Persistent):
paramList=['project','startpage','xslt','thumbtemplate','topbar','digiLibTemplate']
- writeMetadata(self.metalink,self.metaDataHash,project,None,xslt,thumbtemplate,topbar,digiLibTemplate)
+ #writeMetadata(self.metalink,self.metaDataHash,project,None,xslt,thumbtemplate,topbar,digiLibTemplate)
params="project=%s&xslt=%s&thumbtemplate=%s&topbar=%s&digiLibTemplate=%s"%(project,xslt,thumbtemplate,topbar,digiLibTemplate)
@@ -1312,7 +1447,23 @@ class ECHO_collection(Folder, Persistent
displayTypes=displayTypes
path="/mpiwg/online/permanent/shipbuilding"
-
+
+ def changeAccessRightsCollection(self):
+ """change"""
+ ret=""
+ argv=self.REQUEST.form
+
+ resources=self.ZopeFind(self,obj_metatypes=['ECHO_resource'])
+ for resource in resources:
+
+ try:
+ ret+=resource[1].getId()+" "+argv[resource[1].getId()]+""
+ resource[1].changeAccessRightMD(argv[resource[1].getId()])
+ except:
+ """not"""
+ return ret
+
+
def updateCollection(self,RESPONSE=None):
"""liest verzeichnisse aus dem pfad und legt sie dann als objekte in den ordner"""
files=os.listdir(self.path)