--- ECHO_content/ECHO_collection.py 2004/07/01 07:46:17 1.132
+++ ECHO_content/ECHO_collection.py 2004/07/17 10:19:06 1.141
@@ -29,7 +29,7 @@ from Products.PageTemplates.ZopePageTemp
from Globals import Persistent, package_home
from Acquisition import Implicit
from ECHO_helpers import displayTypes
-
+import urllib
try:
from psycopg import libpq
@@ -486,6 +486,23 @@ class ECHO_resource(Folder,Persistent):
getSubCols = ECHO_helpers.getSubCols
+ security.declareProtected('View','index_html')
+ def getRDF(self):
+ """rdf"""
+ ret=""
+ about=""""""
+ name="""%s"""
+ link="""%s"""
+ urn="urn:"+re.sub('/',':',self.absolute_url())
+
+ about2=about%urn
+ name2=name%self.getId()
+ link2=link%urllib.quote(self.link)
+
+ ret=about2+"\n"+name2+"\n"+link2+"\n"+""
+ return ret
+
+
def getAccessRightSelectorHTML(self,outlook="select"):
"""htmlselector"""
values=['free','mpiwg']
@@ -650,7 +667,8 @@ class ECHO_resource(Folder,Persistent):
path=re.sub('http://foxridge.mpiwg-berlin.mpg.de:8080','',path) # falls foxridge als server
path=re.sub('http://foxridge.mpiwg-berlin.mpg.de','',path) # falls foxridge als server
-
+ path=re.sub('http://foxridge.rz-berlin.mpg.de:8080','',path) # falls foxridge als server
+ path=re.sub('http://foxridge.rz-berlin.mpg.de','',path) # falls foxridge als server
path=re.sub('/index.meta','',path)
@@ -710,6 +728,8 @@ class ECHO_resource(Folder,Persistent):
path=re.sub('http://foxridge.mpiwg-berlin.mpg.de:8080','',path) # falls foxridge als server
path=re.sub('http://foxridge.mpiwg-berlin.mpg.de','',path) # falls foxridge als server
+ path=re.sub('http://foxridge.rz-berlin.mpg.de:8080','',path) # falls foxridge als server
+ path=re.sub('http://foxridge.rz-berlin.mpg.de','',path) # falls foxridge als server
return urllib.urlopen("http://nausikaa2.rz-berlin.mpg.de:86/cgi-bin/toc/admin/reg.cgi?path=%s"%path).readlines()
@@ -719,12 +739,20 @@ class ECHO_resource(Folder,Persistent):
def getTitle(self):
"""title"""
- return self.title.decode('utf-8','ignore')
-
+ try:
+ return self.title.encode('utf-8','ignore')
+ except:
+ self.title=self.title.decode('iso-8859-1','ignore')[0:] #correnct conding error
+ return self.title.encode('utf-8','ignore')
+
def getLabel(self):
"""title"""
- return self.label.decode('utf-8','ignore')
-
+ try:
+ return self.label.encode('utf-8','ignore')
+ except:
+ self.label=self.label.decode('iso-8859-1','ignore')[0:] #correnct conding error
+ return self.label.encode('utf-8','ignore')
+
def content_html(self):
"""template fuer content"""
return content_html(self,'resource')
@@ -743,8 +771,9 @@ class ECHO_resource(Folder,Persistent):
texttools=dom.getElementsByTagName('texttool')
text=texttools[0].getElementsByTagName('text')
texturl=getText(text[0].childNodes)
- self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml')
+
if not noredirect:
+ self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml')
self.REQUEST.RESPONSE.redirect(texturl)
else:
return texturl
@@ -888,7 +917,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)
@@ -1212,11 +1242,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
@@ -1282,6 +1313,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())
@@ -1290,6 +1322,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())
@@ -1325,11 +1358,19 @@ class ECHO_externalLink(Folder):
def getTitle(self):
"""title"""
- return self.title.encode('utf-8')
-
+ try:
+ return self.title.encode('utf-8','ignore')
+ except:
+ self.title=self.title.decode('iso-8859-1','ignore')[0:] #correnct conding error
+ return self.title.encode('utf-8','ignore')
+
def getLabel(self):
"""title"""
- return self.label.encode('utf-8')
+ try:
+ return self.label.encode('utf-8','ignore')
+ except:
+ self.label=self.label.decode('iso-8859-1','ignore')[0:] #correnct conding error
+ return self.label.encode('utf-8','ignore')
def content_html(self):
"""template fuer content"""
@@ -1448,6 +1489,56 @@ class ECHO_collection(Folder, Persistent
path="/mpiwg/online/permanent/shipbuilding"
+ def showRDF(self):
+ """showrdf"""
+ self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml')
+ ret="""\n"""
+ ret+=self.getRDF()+"\n"
+ ret+=""""""
+ return ret
+
+ def getRDF(self):
+ """rdf of the collection"""
+ contents=self.ZopeFind(self,obj_metatypes=['ECHO_group','ECHO_resource','ECHO_collection'])
+
+ about=""""""
+ name="""%s"""
+ link="""%s"""
+ urn="urn:"+re.sub('/',':',self.absolute_url())
+
+ about2=about%urn
+ name2=name%self.getId()
+ link2=link%urllib.quote(self.absolute_url())
+
+ ret=about2+"\n"+name2+"\n"+link2+"\n"+""
+
+
+
+ li="""\n"""
+
+
+ for content in contents:
+ ret+=content[1].getRDF()+"\n"
+
+ ret+="""\n"""%urn
+ for content in contents:
+ nurn="urn:"+re.sub('/',':',content[1].absolute_url())
+ ret+=li%nurn
+ return ret+""
+
+
+ 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=""
@@ -1463,7 +1554,36 @@ class ECHO_collection(Folder, Persistent
"""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)
@@ -1617,14 +1737,20 @@ class ECHO_collection(Folder, Persistent
def getTitle(self):
"""title"""
- return self.title.encode('utf-8')
-
+ try:
+ return self.title.encode('utf-8','ignore')
+ except:
+ self.title=self.title.decode('iso-8859-1','ignore')[0:] #correnct conding error
+ return self.title.encode('utf-8','ignore')
+
def getLabel(self):
"""title"""
- return self.label.encode('utf-8')
-
-
-
+ try:
+ return self.label.encode('utf-8','ignore')
+ except:
+ self.label=self.label.decode('iso-8859-1','ignore')[0:] #correnct conding error
+ return self.label.encode('utf-8','ignore')
+
def createRessourcesFromXMLForm(self):
"""form"""
pt=PageTemplateFile('Products/ECHO_content/zpt/createRessourcesFromXMLForm.zpt').__of__(self)
@@ -1644,6 +1770,7 @@ class ECHO_collection(Folder, Persistent
ret+="
"+label+"
"
manage_addECHO_resource(self,id,label.encode('ascii'),label.encode('ascii'),"","","",link.encode('ascii'),"","")
return ret
+
def getImageTag(self):
"""GetTag"""
try:
@@ -1821,7 +1948,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=""
@@ -1834,9 +1961,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]+"
"
@@ -1883,7 +2012,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'},
@@ -2098,6 +2229,40 @@ class ECHO_group(ECHO_collection):
)
security.declareProtected('View','index_html')
+
+ def getRDF(self):
+ """rdf of the collection"""
+ contents=self.ZopeFind(self,obj_metatypes=['ECHO_group','ECHO_resource','ECHO_collection'])
+ about=""""""
+ name="""%s"""
+
+
+
+ link="""%s"""
+ urn="urn:"+re.sub('/',':',self.absolute_url())
+
+ about2=about%urn
+ name2=name%self.getId()
+ link2=link%urllib.quote(self.absolute_url())
+
+ ret=about2+"\n"+name2+"\n"+link2+"\n"+""
+
+
+
+
+ urn="urn:"+re.sub('/',':',self.absolute_url())
+ li="""\n"""
+
+
+ for content in contents:
+ ret+=content[1].getRDF()+"\n"
+
+ ret+="""\n"""%urn
+ for content in contents:
+ nurn="urn:"+re.sub('/',':',content[1].absolute_url())
+ ret+=li%nurn
+ return ret+""
+
def index_html(self):
"""standard page"""
displayedObjects=self.ZopeFind(self,obj_metatypes=displayTypes)
@@ -2313,6 +2478,42 @@ class ECHO_root(Folder,Persistent,Implic
security=ClassSecurityInfo()
meta_type="ECHO_root"
+
+ def showRDF(self):
+ """showrdf"""
+ self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml')
+ ret="""\n"""
+ ret+=self.getRDF()+"\n"
+ ret+=""""""
+ return ret
+
+ def getRDF(self):
+ """rdf of the collection"""
+ contents=self.ZopeFind(self,obj_metatypes=['ECHO_group','ECHO_resource','ECHO_collection'])
+
+ about=""""""
+ name="""%s"""
+
+ urn="urn:"+re.sub('/',':',self.absolute_url())
+
+ about2=about%urn
+ name2=name%self.getId()
+
+
+ ret=about2+"\n"+name2+"\n"+""
+
+ li="""\n"""
+
+
+ for content in contents:
+ ret+=content[1].getRDF()+"\n"
+
+ ret+="""\n"""%urn
+ for content in contents:
+ nurn="urn:"+re.sub('/',':',content[1].absolute_url())
+ ret+=li%nurn
+ return ret+""
+
def showContent(self,path):
"""return content/html"""
@@ -2766,16 +2967,17 @@ class ECHO_root(Folder,Persistent,Implic
for resource in self.ZopeFind(self,obj_metatypes=['ECHO_resource'],search_sub=1):
echo_url=resource[1].absolute_url()
- if resource[1].getFullTextXML(noredirect="yes"):
- if hasattr(resource[1],'link'):
- viewer_url=echo_url+"/getMetaDataXML"
- else:
- viewer_url="NO URL"
- if filter:
- if re.search(filter,viewer_url):
- ret+="""\n"""%(urllib.quote(echo_url,safe='/:?'),urllib.quote(viewer_url,safe='/:?'))
- else:
- ret+="""\n"""%(urllib.quote(echo_url,safe='/:?'),urllib.quote(viewer_url,safe='/:?'))
+
+ if hasattr(resource[1],'link'):
+ meta_url=echo_url+"/getMetaDataXML"
+ else:
+ meta_url="NO_URL"
+
+ if filter and not re.search(filter,viewer_url):
+ continue
+
+ ret+="""\n"""%(urllib.quote(echo_url,safe='/:?'),urllib.quote(meta_url,safe='/:?'))
+
ret +="""\n"""