version 1.130, 2004/06/25 11:02:16
|
version 1.143, 2004/07/18 14:38:11
|
Line 29 from Products.PageTemplates.ZopePageTemp
|
Line 29 from Products.PageTemplates.ZopePageTemp
|
from Globals import Persistent, package_home |
from Globals import Persistent, package_home |
from Acquisition import Implicit |
from Acquisition import Implicit |
from ECHO_helpers import displayTypes |
from ECHO_helpers import displayTypes |
|
import urllib |
|
|
try: |
try: |
from psycopg import libpq |
from psycopg import libpq |
Line 46 import xml.dom.minidom
|
Line 46 import xml.dom.minidom
|
from ECHO_graphicalOverview import javaHandler,javaScriptMain |
from ECHO_graphicalOverview import javaHandler,javaScriptMain |
import ECHO_helpers |
import ECHO_helpers |
|
|
|
def getRDFDescription(self,linkURL,urn=None): |
|
"""rdf""" |
|
ret="" |
|
about="""<RDF:Description about="%s">""" |
|
name="""<ECHONAVIGATION:name>%s</ECHONAVIGATION:name>""" |
|
#link="""<ECHONAVIGATION:link>%s</ECHONAVIGATION:link>""" |
|
link="""<ECHONAVIGATION:link RDF:about="%s"/>""" |
|
type="""<ECHONAVIGATION:type>%s</ECHONAVIGATION:type>""" |
|
|
|
if not urn: |
|
urn="urn:"+re.sub('/',':',self.absolute_url()) |
|
|
|
about2=about%urn |
|
|
|
if hasattr(self,'label') and not (self.label==""): |
|
name2=name%urllib.quote(self.label) |
|
elif not self.title=="": |
|
name2=name%urllib.quote(self.title) |
|
else: |
|
name2=name%self.getId() |
|
|
|
link2=link%urllib.quote(linkURL) |
|
type2=type%self.meta_type |
|
|
|
ret=about2+"\n"+name2+"\n"+link2+"\n"+type2+"\n</RDF:Description>" |
|
return ret |
|
|
def getCopyrightsFromForm(self,argv): |
def getCopyrightsFromForm(self,argv): |
medias={} |
medias={} |
partners={} |
partners={} |
Line 184 class BrowserCheck:
|
Line 211 class BrowserCheck:
|
self.isIEMac = self.isIE and self.isMac |
self.isIEMac = self.isIE and self.isMac |
|
|
|
|
|
|
|
|
def writeMetadata(url,metadict,project=None,startpage=None,xslt=None,thumbtemplate=None,topbar=None,digiLibTemplate=None): |
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""" |
"""Einlesen der Metadaten und und erstellen des geaenderten XML file""" |
def updateTextToolNode(tag,value): |
def updateTextToolNode(tag,value): |
Line 475 def manage_addECHO_layoutTemplate(self,
|
Line 504 def manage_addECHO_layoutTemplate(self,
|
REQUEST.RESPONSE.redirect(u+'/manage_main') |
REQUEST.RESPONSE.redirect(u+'/manage_main') |
return '' |
return '' |
|
|
|
|
|
|
class ECHO_resource(Folder,Persistent): |
class ECHO_resource(Folder,Persistent): |
"""ECHO Ressource""" |
"""ECHO Ressource""" |
security=ClassSecurityInfo() |
security=ClassSecurityInfo() |
Line 484 class ECHO_resource(Folder,Persistent):
|
Line 515 class ECHO_resource(Folder,Persistent):
|
|
|
getSubCols = ECHO_helpers.getSubCols |
getSubCols = ECHO_helpers.getSubCols |
|
|
|
security.declareProtected('View','index_html') |
|
def getRDF(self,urn=None): |
|
"""rdf""" |
|
return getRDFDescription(self,self.link,urn=urn) |
|
|
|
|
|
def getAccessRightSelectorHTML(self,outlook="select"): |
|
"""htmlselector""" |
|
values=['free','mpiwg'] |
|
|
|
if outlook=="select": |
|
ret="""<select name="%s">"""%self.getId() |
|
|
|
for value in values: |
|
if value==self.getAccessRightMD(): |
|
ret+="<option selected>%s</option>"%value |
|
else: |
|
ret+="<option>%s</option>"%value |
|
return ret+"</select>" |
|
|
|
else: |
|
ret="" |
|
for value in values: |
|
print |
|
if value==self.getAccessRightMD(): |
|
ret+="""<input type="radio" name="%s" value="%s" checked>%s"""%(self.getId(),value,value) |
|
else: |
|
ret+="""<input type="radio" name="%s" value="%s">%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+"<br>"+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+"<br>"+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): |
def setStartPageForm(self): |
"""Form for changing the startpage""" |
"""Form for changing the startpage""" |
|
|
Line 515 class ECHO_resource(Folder,Persistent):
|
Line 685 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: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.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) |
path=re.sub('/index.meta','',path) |
|
|
|
|
Line 554 class ECHO_resource(Folder,Persistent):
|
Line 725 class ECHO_resource(Folder,Persistent):
|
paramList=['project','startpage','xslt','thumbtemplate','topbar','digiLibTemplate'] |
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) |
params="project=%s&xslt=%s&thumbtemplate=%s&topbar=%s&digiLibTemplate=%s"%(project,xslt,thumbtemplate,topbar,digiLibTemplate) |
|
|
Line 575 class ECHO_resource(Folder,Persistent):
|
Line 746 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: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.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() |
return urllib.urlopen("http://nausikaa2.rz-berlin.mpg.de:86/cgi-bin/toc/admin/reg.cgi?path=%s"%path).readlines() |
|
|
Line 584 class ECHO_resource(Folder,Persistent):
|
Line 757 class ECHO_resource(Folder,Persistent):
|
|
|
def getTitle(self): |
def getTitle(self): |
"""title""" |
"""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): |
def getLabel(self): |
"""title""" |
"""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): |
def content_html(self): |
"""template fuer content""" |
"""template fuer content""" |
Line 608 class ECHO_resource(Folder,Persistent):
|
Line 789 class ECHO_resource(Folder,Persistent):
|
texttools=dom.getElementsByTagName('texttool') |
texttools=dom.getElementsByTagName('texttool') |
text=texttools[0].getElementsByTagName('text') |
text=texttools[0].getElementsByTagName('text') |
texturl=getText(text[0].childNodes) |
texturl=getText(text[0].childNodes) |
self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml') |
|
if not noredirect: |
if not noredirect: |
|
self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml') |
self.REQUEST.RESPONSE.redirect(texturl) |
self.REQUEST.RESPONSE.redirect(texturl) |
else: |
else: |
return texturl |
return texturl |
Line 753 class ECHO_resource(Folder,Persistent):
|
Line 935 class ECHO_resource(Folder,Persistent):
|
self.contentType=self.bib_type |
self.contentType=self.bib_type |
for data in self.metadata: |
for data in self.metadata: |
data_neu=re.sub('-','_',data) |
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) |
pt=PageTemplateFile('Products/ECHO_content/zpt/ChangeECHO_resource_metadata.zpt').__of__(self) |
Line 1077 class ECHO_resource(Folder,Persistent):
|
Line 1260 class ECHO_resource(Folder,Persistent):
|
if RESPONSE: |
if RESPONSE: |
return RESPONSE.redirect('manage_main') |
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""" |
"""Einlesen der Metadaten und Anlegen dieser Metadaten als Informationen zur Resource""" |
(metadict, error)=readMetadata(self.metalink) |
(metadict, error)=readMetadata(self.metalink) |
|
|
|
if back: |
|
self.REQUEST.SESSION['back']=back |
|
|
if not error=="": #Fehler beim Auslesen des Metafiles |
if not error=="": #Fehler beim Auslesen des Metafiles |
return "ERROR:",error |
return "ERROR:",error |
Line 1147 class ECHO_resource(Folder,Persistent):
|
Line 1331 class ECHO_resource(Folder,Persistent):
|
|
|
|
|
security.declarePublic('generate_label') # has to be change, presentlyset because of OSAS koordination |
security.declarePublic('generate_label') # has to be change, presentlyset because of OSAS koordination |
|
|
def generate_label(self): |
def generate_label(self): |
"""Erzeugt_standard_Label aus Template""" |
"""Erzeugt_standard_Label aus Template""" |
pt=getattr(self,"label_template_"+self.contentType.lower()) |
pt=getattr(self,"label_template_"+self.contentType.lower()) |
Line 1155 class ECHO_resource(Folder,Persistent):
|
Line 1340 class ECHO_resource(Folder,Persistent):
|
return pt() |
return pt() |
|
|
security.declarePublic('generate_title') # has to be change, presentlyset because of OSAS koordination |
security.declarePublic('generate_title') # has to be change, presentlyset because of OSAS koordination |
|
|
def generate_title(self,RESPONSE=None): |
def generate_title(self,RESPONSE=None): |
"""Erzeugt_standard_Label aus Template""" |
"""Erzeugt_standard_Label aus Template""" |
pt=getattr(self,"label_template_"+self.contentType.lower()) |
pt=getattr(self,"label_template_"+self.contentType.lower()) |
Line 1190 class ECHO_externalLink(Folder):
|
Line 1376 class ECHO_externalLink(Folder):
|
|
|
def getTitle(self): |
def getTitle(self): |
"""title""" |
"""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): |
def getLabel(self): |
"""title""" |
"""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): |
def content_html(self): |
"""template fuer content""" |
"""template fuer content""" |
Line 1313 class ECHO_collection(Folder, Persistent
|
Line 1507 class ECHO_collection(Folder, Persistent
|
|
|
path="/mpiwg/online/permanent/shipbuilding" |
path="/mpiwg/online/permanent/shipbuilding" |
|
|
|
def showRDF(self): |
|
"""showrdf""" |
|
self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml') |
|
ret="""<?xml encoding="utf-8"?>\n<RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ECHONAVIGATION="http://www.echo.eu/rdf#">\n""" |
|
ret+=self.getRDF(urn="urn:echo:collectionroot")+"\n" |
|
ret+="""</RDF:RDF>""" |
|
return ret |
|
|
|
def getRDF(self,urn=None): |
|
"""rdf of the collection""" |
|
|
|
contents=self.ZopeFind(self,obj_metatypes=['ECHO_group','ECHO_resource','ECHO_collection']) |
|
|
|
ret=getRDFDescription(self,self.absolute_url(),urn=urn) |
|
|
|
if not urn: |
|
urn="urn:"+re.sub('/',':',self.absolute_url()) |
|
|
|
li="""<RDF:li resource="%s" />\n""" |
|
|
|
|
|
for content in contents: |
|
ret+=content[1].getRDF()+"\n" |
|
|
|
ret+="""<RDF:Seq about="%s">\n"""%urn |
|
for content in contents: |
|
nurn="urn:"+re.sub('/',':',content[1].absolute_url()) |
|
ret+=li%nurn |
|
return ret+"</RDF:Seq>" |
|
|
|
|
|
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()]+"</br>" |
|
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()]+"</br>" |
|
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()]+"</br>" |
|
resource[1].title=argv[resource[1].getId()][0:] |
|
except: |
|
"""not""" |
|
return ret |
|
|
def updateCollection(self,RESPONSE=None): |
def updateCollection(self,RESPONSE=None): |
"""liest verzeichnisse aus dem pfad und legt sie dann als objekte in den ordner""" |
"""liest verzeichnisse aus dem pfad und legt sie dann als objekte in den ordner""" |
files=os.listdir(self.path) |
files=os.listdir(self.path) |
Line 1466 class ECHO_collection(Folder, Persistent
|
Line 1748 class ECHO_collection(Folder, Persistent
|
|
|
def getTitle(self): |
def getTitle(self): |
"""title""" |
"""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): |
def getLabel(self): |
"""title""" |
"""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): |
def createRessourcesFromXMLForm(self): |
"""form""" |
"""form""" |
Line 1493 class ECHO_collection(Folder, Persistent
|
Line 1781 class ECHO_collection(Folder, Persistent
|
ret+="<p>"+label+"</p>" |
ret+="<p>"+label+"</p>" |
manage_addECHO_resource(self,id,label.encode('ascii'),label.encode('ascii'),"","","",link.encode('ascii'),"","") |
manage_addECHO_resource(self,id,label.encode('ascii'),label.encode('ascii'),"","","",link.encode('ascii'),"","") |
return ret |
return ret |
|
|
def getImageTag(self): |
def getImageTag(self): |
"""GetTag""" |
"""GetTag""" |
try: |
try: |
Line 1670 class ECHO_collection(Folder, Persistent
|
Line 1959 class ECHO_collection(Folder, Persistent
|
|
|
security.declarePublic('ECHO_rerenderLinksMD') |
security.declarePublic('ECHO_rerenderLinksMD') |
|
|
def ECHO_rerenderLinksMD(self,obj=None): |
def ECHO_rerenderLinksMD(self,obj=None,types=['title','label']): |
"""Rerender all Links""" |
"""Rerender all Links""" |
ret="" |
ret="" |
|
|
Line 1683 class ECHO_collection(Folder, Persistent
|
Line 1972 class ECHO_collection(Folder, Persistent
|
if entry[1].meta_type == 'ECHO_resource': |
if entry[1].meta_type == 'ECHO_resource': |
try: |
try: |
entry[1].ECHO_getResourceMD(template="no") |
entry[1].ECHO_getResourceMD(template="no") |
|
if "title" in types: |
entry[1].generate_title() |
entry[1].generate_title() |
|
if "label" in types: |
entry[1].generate_label() |
entry[1].generate_label() |
ret+="OK:"+entry[0]+"-- "+entry[1].getLabel().decode('utf-8')+"-- "+entry[1].getTitle().decode('utf-8')+"<br>" |
ret+="OK:"+entry[0]+"-- "+entry[1].getTitle().decode('utf-8')+"-- "+entry[1].getTitle().decode('utf-8')+"<br>" |
except: |
except: |
ret+="Error:"+entry[0]+"<br>" |
ret+="Error:"+entry[0]+"<br>" |
|
|
Line 1732 class ECHO_collection(Folder, Persistent
|
Line 2023 class ECHO_collection(Folder, Persistent
|
|
|
manage_options = Folder.manage_options+( |
manage_options = Folder.manage_options+( |
{'label':'Main Config','action':'ECHO_collection_config'}, |
{'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':'Graphics','action':'ECHO_graphicEntry'}, |
{'label':'create resources from XML','action':'createRessourcesFromXMLForm'}, |
{'label':'create resources from XML','action':'createRessourcesFromXMLForm'}, |
{'label':'Change Viewer Templates','action':'changeViewerTemplateSetsForm'}, |
{'label':'Change Viewer Templates','action':'changeViewerTemplateSetsForm'}, |
Line 1947 class ECHO_group(ECHO_collection):
|
Line 2240 class ECHO_group(ECHO_collection):
|
) |
) |
|
|
security.declareProtected('View','index_html') |
security.declareProtected('View','index_html') |
|
|
|
def getRDF(self,urn=None): |
|
"""rdf of the collection""" |
|
contents=self.ZopeFind(self,obj_metatypes=['ECHO_group','ECHO_resource','ECHO_collection']) |
|
|
|
ret=getRDFDescription(self,self.absolute_url(),urn) |
|
|
|
|
|
|
|
urn="urn:"+re.sub('/',':',self.absolute_url()) |
|
li="""<RDF:li resource="%s" />\n""" |
|
|
|
|
|
for content in contents: |
|
ret+=content[1].getRDF()+"\n" |
|
|
|
ret+="""<RDF:Seq about="%s">\n"""%urn |
|
for content in contents: |
|
nurn="urn:"+re.sub('/',':',content[1].absolute_url()) |
|
ret+=li%nurn |
|
return ret+"</RDF:Seq>" |
|
|
def index_html(self): |
def index_html(self): |
"""standard page""" |
"""standard page""" |
displayedObjects=self.ZopeFind(self,obj_metatypes=displayTypes) |
displayedObjects=self.ZopeFind(self,obj_metatypes=displayTypes) |
Line 2163 class ECHO_root(Folder,Persistent,Implic
|
Line 2478 class ECHO_root(Folder,Persistent,Implic
|
|
|
meta_type="ECHO_root" |
meta_type="ECHO_root" |
|
|
|
def showRDF(self): |
|
"""showrdf""" |
|
self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml') |
|
ret="""<RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ECHONAVIGATION="http://www.echo.eu/rdf#">\n""" |
|
ret+=self.getRDF(urn="echo:collectionroot")+"\n" |
|
|
|
ret+="""</RDF:RDF>""" |
|
return ret |
|
|
|
def getRDF(self,urn=None): |
|
"""rdf of the collection""" |
|
|
|
contents=self.ZopeFind(self,obj_metatypes=['ECHO_group','ECHO_resource','ECHO_collection']) |
|
|
|
ret=getRDFDescription(self,self.absolute_url(),urn=urn) |
|
|
|
li="""<RDF:li resource="%s" />\n""" |
|
|
|
|
|
for content in contents: |
|
ret+=content[1].getRDF()+"\n" |
|
|
|
ret+="""<RDF:Seq about="%s">\n"""%urn |
|
for content in contents: |
|
nurn="urn:"+re.sub('/',':',content[1].absolute_url()) |
|
ret+=li%nurn |
|
return ret+"</RDF:Seq>" |
|
|
|
|
def showContent(self,path): |
def showContent(self,path): |
"""return content/html""" |
"""return content/html""" |
|
|
Line 2615 class ECHO_root(Folder,Persistent,Implic
|
Line 2959 class ECHO_root(Folder,Persistent,Implic
|
for resource in self.ZopeFind(self,obj_metatypes=['ECHO_resource'],search_sub=1): |
for resource in self.ZopeFind(self,obj_metatypes=['ECHO_resource'],search_sub=1): |
|
|
echo_url=resource[1].absolute_url() |
echo_url=resource[1].absolute_url() |
if resource[1].getFullTextXML(noredirect="yes"): |
|
if hasattr(resource[1],'link'): |
if hasattr(resource[1],'link'): |
viewer_url=echo_url+"/getMetaDataXML" |
meta_url=echo_url+"/getMetaDataXML" |
else: |
|
viewer_url="NO URL" |
|
if filter: |
|
if re.search(filter,viewer_url): |
|
ret+="""\n<resource echoLink="%s" viewerLink="%s"/>"""%(urllib.quote(echo_url,safe='/:?'),urllib.quote(viewer_url,safe='/:?')) |
|
else: |
else: |
ret+="""\n<resource echoLink="%s" viewerLink="%s"/>"""%(urllib.quote(echo_url,safe='/:?'),urllib.quote(viewer_url,safe='/:?')) |
meta_url="NO_URL" |
|
|
|
if filter and not re.search(filter,viewer_url): |
|
continue |
|
|
|
ret+="""\n<resource resourceLink="%s" metaLink="%s"/>"""%(urllib.quote(echo_url,safe='/:?'),urllib.quote(meta_url,safe='/:?')) |
|
|
ret +="""\n</index>""" |
ret +="""\n</index>""" |
|
|
|
|
Line 2716 class ECHO_partner(Image,Persistent):
|
Line 3061 class ECHO_partner(Image,Persistent):
|
|
|
meta_type="ECHO_partner" |
meta_type="ECHO_partner" |
|
|
def __init__(self, id, title,url, file, copyrightType, person, email, country, content_type='', precondition=''): |
def __init__(self, id, title,url, file, copyrightType, person, email, country, color, content_type='', precondition=''): |
self.__name__=id |
self.__name__=id |
self.title=title |
self.title=title |
self.url=url |
self.url=url |
self.person=person |
self.person=person |
self.email=email |
self.email=email |
self.country=country |
self.country=country |
|
self.color=color |
self.precondition=precondition |
self.precondition=precondition |
self.copyrightType=copyrightType |
self.copyrightType=copyrightType |
data, size = self._read_data(file) |
data, size = self._read_data(file) |
Line 2734 class ECHO_partner(Image,Persistent):
|
Line 3080 class ECHO_partner(Image,Persistent):
|
) |
) |
|
|
|
|
def changeECHO_partner(self,url,copyrightType,person, email, country, RESPONSE=None): |
def changeECHO_partner(self,url,copyrightType,person, email, country, color, RESPONSE=None): |
"""Change main information""" |
"""Change main information""" |
self.url=url |
self.url=url |
self.person=person |
self.person=person |
self.email=email |
self.email=email |
self.country=country |
self.country=country |
|
self.color=color |
self.copyrightType=copyrightType |
self.copyrightType=copyrightType |
if RESPONSE is not None: |
if RESPONSE is not None: |
RESPONSE.redirect('manage_main') |
RESPONSE.redirect('manage_main') |
Line 2759 manage_addECHO_partnerForm=DTMLFile('dtm
|
Line 3106 manage_addECHO_partnerForm=DTMLFile('dtm
|
|
|
|
|
|
|
def manage_addECHO_partner(self, id,file,url, person, email, country, copyrightType='', title='', precondition='', content_type='', |
def manage_addECHO_partner(self, id, url, person, email, country, color, file=None, copyrightType='', title='', precondition='', content_type='', |
REQUEST=None): |
REQUEST=None): |
""" |
""" |
Add a new ECHO_partner object. |
Add a new ECHO_partner object. |
Line 2778 def manage_addECHO_partner(self, id,file
|
Line 3125 def manage_addECHO_partner(self, id,file
|
self=self.this() |
self=self.this() |
|
|
# First, we create the image without data: |
# First, we create the image without data: |
self._setObject(id, ECHO_partner(id,title,url,'',copyrightType, person, email, country, content_type, precondition)) |
self._setObject(id, ECHO_partner(id,title,url,'',copyrightType, person, email, country, color, content_type, precondition)) |
|
|
# Now we "upload" the data. By doing this in two steps, we |
# Now we "upload" the data. By doing this in two steps, we |
# can use a database trick to make the upload more efficient. |
# can use a database trick to make the upload more efficient. |