version 1.126, 2004/06/22 14:51:19
|
version 1.131, 2004/06/28 14:42:32
|
Line 187 class BrowserCheck:
|
Line 187 class BrowserCheck:
|
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): |
print dom,tag,value |
#print dom,tag,value |
metanode=dom.getElementsByTagName('texttool')[0] |
metanode=dom.getElementsByTagName('texttool')[0] |
try: |
try: |
nodeOld=metanode.getElementsByTagName(tag) |
nodeOld=metanode.getElementsByTagName(tag) |
Line 510 class ECHO_resource(Folder,Persistent):
|
Line 510 class ECHO_resource(Folder,Persistent):
|
|
|
path=self.metalink |
path=self.metalink |
|
|
|
path=re.sub(self.REQUEST['SERVER_URL'],'',path) |
|
path=re.sub('http://'+self.REQUEST['HTTP_HOST'],'',path) |
|
|
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 |
|
|
Line 551 class ECHO_resource(Folder,Persistent):
|
Line 554 class ECHO_resource(Folder,Persistent):
|
paramList=['project','startpage','xslt','thumbtemplate','topbar','digiLibTemplate'] |
paramList=['project','startpage','xslt','thumbtemplate','topbar','digiLibTemplate'] |
|
|
|
|
#print writeMetadata(self.metalink,self.metaDataHash,project,startpage,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 561 class ECHO_resource(Folder,Persistent):
|
Line 564 class ECHO_resource(Folder,Persistent):
|
# hack Pfad auf die Dokumente |
# hack Pfad auf die Dokumente |
path=self.metalink |
path=self.metalink |
|
|
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('/index.meta','',path) |
path=re.sub('/index.meta','',path) |
|
|
|
path=re.sub(self.REQUEST['SERVER_URL'],'',path) |
|
path=re.sub('http://'+self.REQUEST['HTTP_HOST'],'',path) |
|
|
|
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 |
|
|
|
|
print 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() |
|
|
if RESPONSE is not None: |
if RESPONSE is not None: |
RESPONSE.redirect('manage_main') |
RESPONSE.redirect('manage_main') |
Line 575 class ECHO_resource(Folder,Persistent):
|
Line 584 class ECHO_resource(Folder,Persistent):
|
|
|
def getTitle(self): |
def getTitle(self): |
"""title""" |
"""title""" |
return self.title.encode('utf-8') |
return self.title.decode('utf-8','ignore') |
|
|
def getLabel(self): |
def getLabel(self): |
"""title""" |
"""title""" |
return self.label.encode('utf-8') |
return self.label.decode('utf-8','ignore') |
|
|
def content_html(self): |
def content_html(self): |
"""template fuer content""" |
"""template fuer content""" |
Line 613 class ECHO_resource(Folder,Persistent):
|
Line 622 class ECHO_resource(Folder,Persistent):
|
return "<error>no fulltext available</error>" |
return "<error>no fulltext available</error>" |
|
|
def getCopyrightsHTML(self): |
def getCopyrightsHTML(self): |
"""gib (link auf copyright notiz, mediatyp, institution, copyrightType, label von copyrightType) aus""" |
"""gib (link auf copyright link, mediatyp, institution, copyrightType, label von copyrightType) aus""" |
|
|
if hasattr(self,'copyrightModel'): |
if hasattr(self,'copyrightModel'): |
obj=self.copyrightModel |
obj=self.copyrightModel |
Line 632 class ECHO_resource(Folder,Persistent):
|
Line 641 class ECHO_resource(Folder,Persistent):
|
url=copyrightTypeObj.url |
url=copyrightTypeObj.url |
|
|
if url!='': |
if url!='': |
ret.append(("""<a target="_blank" href="%s">%s</a>"""%(url,label),copyright[0],copyright[1],copyright[2],label)) |
ret.append((url,copyright[0],copyright[1],copyright[2],label)) |
else: |
else: |
if hasattr(copyrightTypeObj, 'copyright.html'): |
if hasattr(copyrightTypeObj, 'copyright.html'): |
ret.append(("""<a target="_blank" href="%s?partner=%s">%s</a>"""%(link,copyright[1],label),copyright[0],copyright[1],copyright[2],label)) |
ret.append(("""%s?partner=%s"""%(link,copyright[1]),copyright[0],copyright[1],copyright[2],label)) |
else: |
else: |
ret.append((label,copyright[0],copyright[1],copyright[2],label)) |
ret.append(('empty',copyright[0],copyright[1],copyright[2],label)) |
except: |
except: |
"""nothing""" |
"""nothing""" |
|
|
Line 835 class ECHO_resource(Folder,Persistent):
|
Line 844 class ECHO_resource(Folder,Persistent):
|
self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml') |
self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml') |
|
|
if not hasattr(self,'metaDataHash'): |
if not hasattr(self,'metaDataHash'): |
|
|
self.copyIndex_meta2echo_resource() |
self.copyIndex_meta2echo_resource() |
try: |
try: |
return writeMetadata(self.metalink,self.OSAS_meta,project,startpage,xslt,thumbtemplate,topbar,digiLibTemplate) |
return writeMetadata(self.metalink,self.OSAS_meta,project,startpage,xslt,thumbtemplate,topbar,digiLibTemplate) |
Line 872 class ECHO_resource(Folder,Persistent):
|
Line 882 class ECHO_resource(Folder,Persistent):
|
{'label':'Sync Metadata','action':'ECHO_getResourceMD'}, |
{'label':'Sync Metadata','action':'ECHO_getResourceMD'}, |
{'label':'Change TemplateSets','action':'changeViewerTemplateSetForm'}, |
{'label':'Change TemplateSets','action':'changeViewerTemplateSetForm'}, |
{'label':'set/change startpage','action':'setStartPageForm'}, |
{'label':'set/change startpage','action':'setStartPageForm'}, |
|
{'label':'Copy MD for indexing and search','action':'copySearchFields'}, |
) |
) |
|
|
def getOverview(self): |
def getOverview(self): |
Line 960 class ECHO_resource(Folder,Persistent):
|
Line 971 class ECHO_resource(Folder,Persistent):
|
self.metaDataHash[field]=value[0:] |
self.metaDataHash[field]=value[0:] |
|
|
|
|
|
def copySearchFields(self): |
|
"""copys metadatafields to the object""" |
|
fields=['author','title','year'] |
|
for field in fields: |
|
setattr(self,'MD_'+field,self.getFieldValue(field)) |
|
|
|
|
def findLabelsFromMapping(self,referenceType): |
def findLabelsFromMapping(self,referenceType): |
"""gib hash mit label -> generic zurueck""" |
"""gib hash mit label -> generic zurueck""" |
Line 1014 class ECHO_resource(Folder,Persistent):
|
Line 1031 class ECHO_resource(Folder,Persistent):
|
bibdata={} |
bibdata={} |
retdata={} |
retdata={} |
fieldlist=self.standardMD.fieldList |
fieldlist=self.standardMD.fieldList |
|
fields=[] |
for referenceTypeF in temp: |
for referenceTypeF in temp: |
|
#print referenceType |
|
|
if referenceTypeF[1].title.lower() == referenceType.lower(): |
if referenceTypeF[1].title.lower() == referenceType.lower(): |
try: |
try: |
Line 1037 class ECHO_resource(Folder,Persistent):
|
Line 1055 class ECHO_resource(Folder,Persistent):
|
|
|
(metadict, error)=readMetadata(self.metalink) |
(metadict, error)=readMetadata(self.metalink) |
|
|
self.contentType=metadict['bib_type'][0:] |
|
|
|
self.metaDataHash={} |
self.metaDataHash={} |
if not error=="": #Fehler beim Auslesen des Metafiles |
if not error=="": #Fehler beim Auslesen des Metafiles |
|
|
return "ERROR:",error |
return "ERROR:",error |
|
|
|
self.contentType=metadict['bib_type'][0:] |
fields=self.findTagsFromMapping(self.contentType) |
fields=self.findTagsFromMapping(self.contentType) |
|
|
#fields=self.findLabelsFromMapping(self.contentType) |
#fields=self.findLabelsFromMapping(self.contentType) |
Line 1290 class ECHO_collection(Folder, Persistent
|
Line 1311 class ECHO_collection(Folder, Persistent
|
viewClassificationList=viewClassificationListMaster |
viewClassificationList=viewClassificationListMaster |
displayTypes=displayTypes |
displayTypes=displayTypes |
|
|
|
path="/mpiwg/online/permanent/shipbuilding" |
|
|
|
def updateCollection(self,RESPONSE=None): |
|
"""liest verzeichnisse aus dem pfad und legt sie dann als objekte in den ordner""" |
|
files=os.listdir(self.path) |
|
ret="" |
|
for fileName in files: |
|
|
|
if fileName: |
|
|
|
tempPath=re.sub("/mpiwg/online","",self.path) |
|
link="http://echo.mpiwg-berlin.mpg.de/zogilib_book?fn="+tempPath+"/"+fileName+"/pageimg" |
|
|
|
metalink=self.path+"/"+fileName+"/index.meta" |
|
try: |
|
|
|
#link="http://nausikaa2.mpiwg-berlin.mpg.de/cgi-bin/toc/toc.x.cgi?dir="+fileName+"&step=thumb" |
|
|
|
newObj=ECHO_resource(fileName,link,metalink,fileName,fileName,fileName,'generated','book','','','','','','') |
|
self._setObject(fileName,newObj) |
|
|
|
genObj=getattr(self,fileName) |
|
#genObj.createIndexFile() |
|
ret+="OK:"+fileName+"<br/>" |
|
except: |
|
print "ERROR" |
|
ret+="ERROR:"+fileName+"<br/>" |
|
|
|
return ret |
|
|
|
if RESPONSE is not None: |
|
RESPONSE.redirect('manage_main') |
|
|
|
def updateCollectionMD(self,RESPONSE=None): |
|
"""updateMD""" |
|
files=os.listdir(self.path) |
|
for fileName in files: |
|
if fileName: |
|
genObj=getattr(self,fileName) |
|
genObj.copyIndex_meta2echo_resource() |
|
genObj.generate_title() |
|
|
|
if RESPONSE is not None: |
|
RESPONSE.redirect('manage_main') |
|
|
|
|
|
|
def changeViewerTemplateSetsForm(self): |
def changeViewerTemplateSetsForm(self): |
"""change the viewer template set""" |
"""change the viewer template set""" |
Line 1331 class ECHO_collection(Folder, Persistent
|
Line 1398 class ECHO_collection(Folder, Persistent
|
resources=self.ZopeFind(self,obj_metatypes=['ECHO_resource']) |
resources=self.ZopeFind(self,obj_metatypes=['ECHO_resource']) |
|
|
for resource in resources: |
for resource in resources: |
print resource[0] |
|
resource[1].changeViewerTemplateSet(project,xslt,thumbtemplate,topbar,digiLibTemplate) |
resource[1].changeViewerTemplateSet(project,xslt,thumbtemplate,topbar,digiLibTemplate) |
|
|
if RESPONSE is not None: |
if RESPONSE is not None: |
RESPONSE.redirect('manage_main') |
RESPONSE.redirect('manage_main') |
|
|
|
|
|
def copySearchFields(self,RESPONSE=None): |
|
"""copys import metadatafields to the object""" |
|
resources=self.ZopeFind(self,obj_metatypes=['ECHO_resource']) |
|
|
|
for resource in resources: |
|
|
|
resource[1].copySearchFields() |
|
|
|
if RESPONSE is not None: |
|
RESPONSE.redirect('manage_main') |
|
|
|
def reloadMetaDataFromStorage(self,RESPONSE=None): |
|
"""copy metadata from the storage to ECHO""" |
|
ret="" |
|
resources=self.ZopeFind(self,obj_metatypes=['ECHO_resource']) |
|
|
|
for resource in resources: |
|
|
|
ret+=str(resource[1].copyIndex_meta2echo_resource())+"<br>" |
|
|
|
|
|
if RESPONSE is not None: |
|
# RESPONSE.redirect('manage_main') |
|
return ret |
|
|
def getPartnerCopyright(self,name,sonst="generic"): |
def getPartnerCopyright(self,name,sonst="generic"): |
"""gibt generisches copyright eines partners aus, sonst behalte jetzige einsteillung""" |
"""gibt generisches copyright eines partners aus, sonst behalte jetzige einsteillung""" |
#print "hi",name,sonst |
#print "hi",name,sonst |
Line 1580 class ECHO_collection(Folder, Persistent
|
Line 1672 class ECHO_collection(Folder, Persistent
|
|
|
def ECHO_rerenderLinksMD(self,obj=None): |
def ECHO_rerenderLinksMD(self,obj=None): |
"""Rerender all Links""" |
"""Rerender all Links""" |
|
ret="" |
|
|
if not obj: |
if not obj: |
obj = self |
obj = self |
|
|
Line 1587 class ECHO_collection(Folder, Persistent
|
Line 1681 class ECHO_collection(Folder, Persistent
|
|
|
for entry in entries: |
for entry in entries: |
if entry[1].meta_type == 'ECHO_resource': |
if entry[1].meta_type == 'ECHO_resource': |
|
try: |
entry[1].ECHO_getResourceMD(template="no") |
entry[1].ECHO_getResourceMD(template="no") |
entry[1].generate_title() |
entry[1].generate_title() |
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>" |
|
except: |
|
ret+="Error:"+entry[0]+"<br>" |
|
|
else: |
else: |
self.ECHO_rerenderLinksMD(entry[1]) |
self.ECHO_rerenderLinksMD(entry[1]) |
|
|
|
|
|
|
return "Rerenderd all links to resources in: "+self.title |
return ret+"Rerenderd all links to resources in: "+self.title |
|
|
security.declarePublic('ECHO_newViewerLink') |
security.declarePublic('ECHO_newViewerLink') |
|
|
Line 1638 class ECHO_collection(Folder, Persistent
|
Line 1736 class ECHO_collection(Folder, Persistent
|
{'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'}, |
|
{'label':'Reload Metadata','action':'reloadMetaDataFromStorage'}, |
|
{'label':'ImportCollection','action':'updateCollection'}, |
|
{'label':'Copy MD for indexing and search','action':'copySearchFields'}, |
) |
) |
|
|
def getOverview(self): |
def getOverview(self): |
Line 2062 class ECHO_root(Folder,Persistent,Implic
|
Line 2163 class ECHO_root(Folder,Persistent,Implic
|
|
|
meta_type="ECHO_root" |
meta_type="ECHO_root" |
|
|
|
def showContent(self,path): |
|
"""return content/html""" |
|
|
|
return urllib.urlopen(path+"/content_html").read() |
|
|
|
def getImageViewers(self): |
|
"""images""" |
|
viewers=self.ZopeFind(self.standardImageViewer,obj_metatypes=['OSAS_ViewerObject']) |
|
return viewers |
|
|
|
|
def getBibTag(self,tag,content): |
def getBibTag(self,tag,content): |
"""get field tag für index-meta-generation""" |
"""get field tag für index-meta-generation""" |
Line 2605 class ECHO_partner(Image,Persistent):
|
Line 2716 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 2623 class ECHO_partner(Image,Persistent):
|
Line 2735 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 2648 manage_addECHO_partnerForm=DTMLFile('dtm
|
Line 2761 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 2667 def manage_addECHO_partner(self, id,file
|
Line 2780 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. |