--- ECHO_content/ECHO_collection.py 2004/06/28 14:42:32 1.131
+++ ECHO_content/ECHO_collection.py 2004/07/01 15:11:04 1.133
@@ -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)
@@ -753,7 +888,8 @@ class ECHO_resource(Folder,Persistent):
self.contentType=self.bib_type
for data in self.metadata:
data_neu=re.sub('-','_',data)
- self.metaDataHash[data_neu]=getattr(self,data)[0:]
+ self.meta
+ DataHash[data_neu]=getattr(self,data)[0:]
pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_resource_metadata.zpt').__of__(self)
@@ -1077,11 +1213,12 @@ class ECHO_resource(Folder,Persistent):
if RESPONSE:
return RESPONSE.redirect('manage_main')
- def ECHO_getResourceMD(self,template="yes"):
+ def ECHO_getResourceMD(self,template="yes",back=None):
"""Einlesen der Metadaten und Anlegen dieser Metadaten als Informationen zur Resource"""
(metadict, error)=readMetadata(self.metalink)
-
+ if back:
+ self.REQUEST.SESSION['back']=back
if not error=="": #Fehler beim Auslesen des Metafiles
return "ERROR:",error
@@ -1147,6 +1284,7 @@ class ECHO_resource(Folder,Persistent):
security.declarePublic('generate_label') # has to be change, presentlyset because of OSAS koordination
+
def generate_label(self):
"""Erzeugt_standard_Label aus Template"""
pt=getattr(self,"label_template_"+self.contentType.lower())
@@ -1155,6 +1293,7 @@ class ECHO_resource(Folder,Persistent):
return pt()
security.declarePublic('generate_title') # has to be change, presentlyset because of OSAS koordination
+
def generate_title(self,RESPONSE=None):
"""Erzeugt_standard_Label aus Template"""
pt=getattr(self,"label_template_"+self.contentType.lower())
@@ -1312,7 +1451,64 @@ class ECHO_collection(Folder, Persistent
displayTypes=displayTypes
path="/mpiwg/online/permanent/shipbuilding"
-
+
+ def changeLabels(self):
+ """change form"""
+ pt=PageTemplateFile('Products/ECHO_content/zpt/changeLabelsForm').__of__(self)
+ pt.content_type="text/html"
+ return pt()
+
+ def changeTitles(self):
+ """change form"""
+ pt=PageTemplateFile('Products/ECHO_content/zpt/changeTitleForm').__of__(self)
+ pt.content_type="text/html"
+ return pt()
+
+ 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 changeLabelsInCollection(self):
+ """change all lables of a collection"""
+ 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].label=argv[resource[1].getId()][0:]
+ except:
+ """not"""
+ return ret
+
+ def changeTitlesInCollection(self):
+ """change all lables of a collection"""
+ 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].title=argv[resource[1].getId()][0:]
+ 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)
@@ -1670,7 +1866,7 @@ class ECHO_collection(Folder, Persistent
security.declarePublic('ECHO_rerenderLinksMD')
- def ECHO_rerenderLinksMD(self,obj=None):
+ def ECHO_rerenderLinksMD(self,obj=None,types=['title','label']):
"""Rerender all Links"""
ret=""
@@ -1683,9 +1879,11 @@ class ECHO_collection(Folder, Persistent
if entry[1].meta_type == 'ECHO_resource':
try:
entry[1].ECHO_getResourceMD(template="no")
- entry[1].generate_title()
- entry[1].generate_label()
- ret+="OK:"+entry[0]+"-- "+entry[1].getLabel().decode('utf-8')+"-- "+entry[1].getTitle().decode('utf-8')+"
"
+ if "title" in types:
+ entry[1].generate_title()
+ if "label" in types:
+ entry[1].generate_label()
+ ret+="OK:"+entry[0]+"-- "+entry[1].getTitle().decode('utf-8')+"-- "+entry[1].getTitle().decode('utf-8')+"
"
except:
ret+="Error:"+entry[0]+"
"
@@ -1732,7 +1930,9 @@ class ECHO_collection(Folder, Persistent
manage_options = Folder.manage_options+(
{'label':'Main Config','action':'ECHO_collection_config'},
- {'label':'Rerender Links','action':'ECHO_rerenderLinksMD'},
+ {'label':'Change Labels','action':'changeLabels'},
+ {'label':'Change Titles','action':'changeTitles'},
+ {'label':'Rerender Labels and Titles','action':'ECHO_rerenderLinksMD'},
{'label':'Graphics','action':'ECHO_graphicEntry'},
{'label':'create resources from XML','action':'createRessourcesFromXMLForm'},
{'label':'Change Viewer Templates','action':'changeViewerTemplateSetsForm'},