version 1.243, 2005/10/28 10:23:04
|
version 1.255, 2005/11/25 18:46:40
|
Line 1038 class ECHO_resource(CatalogAware,Folder,
|
Line 1038 class ECHO_resource(CatalogAware,Folder,
|
RESPONSE.redirect('manage_main') |
RESPONSE.redirect('manage_main') |
|
|
|
|
def getMDValue(self,fieldName,empty=None): |
|
|
def getMDValueSimpleSearchField(self): |
|
"""returns value for simple search""" |
|
return " ".join([self.getMDValue('title',generic="yes"), |
|
self.getMDValue('author',generic="yes"), |
|
self.getMDValue('year',generic="yes")]) |
|
|
|
def getMDValue(self,fieldNameTest,empty=None,generic=None): |
|
"""get md values""" |
|
#TODO: cache mappinghash |
|
|
|
fieldName=None |
|
if generic: |
|
if self.contentType: |
|
ct=self.contentType.replace(" ","_").lower() |
|
else: |
|
zLOG.LOG("ECHO_collection (getMDValue)", zLOG.INFO, "no_content type for %s"%self.getId()) |
|
ct="" |
|
|
|
#caching |
|
if not hasattr(self,'_v_mapHash'): #noch keine cachevariable |
|
self._v_mapHash={} |
|
|
|
tmp=self._v_mapHash.get(ct,None) |
|
if tmp: #teste ob type schon existiert |
|
fieldName=tmp.get(fieldNameTest,None) |
|
else: |
|
self._v_mapHash[ct]={} |
|
|
|
#noch nicht gecached |
|
if not fieldName and hasattr(self.standardMD,ct): |
|
fieldName=getattr(self.standardMD,ct).generateMappingHash()[fieldNameTest][0] |
|
self._v_mapHash[ct][fieldNameTest]=fieldName |
|
if not fieldName: |
|
fieldName=fieldNameTest |
if not empty: |
if not empty: |
|
#FIXME: warum gibt es manchmal kein metadatahas |
|
try: |
return self.metaDataHash.get(fieldName,'!!NOT USED HERE in Type: %s'%self.contentType) |
return self.metaDataHash.get(fieldName,'!!NOT USED HERE in Type: %s'%self.contentType) |
|
except: |
|
zLOG.LOG("ECHO (line 1069)",zLOG.ERROR,"no md hash for %s"%self.getId()) |
|
return "" |
|
|
else: |
else: |
return self.metaDataHash.get(fieldName,empty) |
|
|
return self.metaDataHash.get(fieldNameTest,empty) |
|
|
|
getFieldValue=getMDValue #depricated |
|
|
def newMetaXML(self,project=None,startpage=None,xslt=None,thumbtemplate=None,topbar=None,digiLibTemplate=None,digiliburlprefix=None): |
def newMetaXML(self,project=None,startpage=None,xslt=None,thumbtemplate=None,topbar=None,digiLibTemplate=None,digiliburlprefix=None): |
"""new index.meta""" |
"""new index.meta""" |
Line 1154 class ECHO_resource(CatalogAware,Folder,
|
Line 1196 class ECHO_resource(CatalogAware,Folder,
|
|
|
|
|
|
|
def getFieldValue(self,field): |
|
"""get value""" |
|
|
|
try: |
|
|
|
ret=self.metaDataHash[field] |
|
if ret == "": |
|
return None |
|
else: |
|
|
|
return ret |
|
except: |
|
return None |
|
|
|
def getMetaDataHash(self): |
def getMetaDataHash(self): |
"""md hash""" |
"""md hash""" |
return self.metaDataHash |
return self.metaDataHash |
|
|
def setFieldValue(self,field,value): |
def setFieldValue(self,field,value): |
"""get value""" |
"""get value""" |
|
#TODO: remove setFieldValue |
|
|
if not hasattr(self,'metaDataHash'): |
if not hasattr(self,'metaDataHash'): |
setattr(self,'metaDataHash',{}) |
setattr(self,'metaDataHash',{}) |
Line 1183 class ECHO_resource(CatalogAware,Folder,
|
Line 1212 class ECHO_resource(CatalogAware,Folder,
|
def copySearchFields(self): |
def copySearchFields(self): |
"""copys metadatafields to the object""" |
"""copys metadatafields to the object""" |
fields=['author','title','year'] |
fields=['author','title','year'] |
|
|
for field in fields: |
for field in fields: |
setattr(self,'MD_'+field,self.getFieldValue(field)) |
setattr(self,'MD_'+field,self.getMDValue(field,generic="yes")) |
|
|
|
|
def findLabelsFromMapping(self,referenceType): |
def findLabelsFromMapping(self,referenceType): |
Line 1237 class ECHO_resource(CatalogAware,Folder,
|
Line 1267 class ECHO_resource(CatalogAware,Folder,
|
|
|
|
|
|
|
|
|
|
|
bibdata={} |
bibdata={} |
retdata={} |
retdata={} |
fieldlist=self.standardMD.fieldList |
fieldlist=self.standardMD.fieldList |
Line 1288 class ECHO_resource(CatalogAware,Folder,
|
Line 1316 class ECHO_resource(CatalogAware,Folder,
|
if RESPONSE: |
if RESPONSE: |
return RESPONSE.redirect('manage_main') |
return RESPONSE.redirect('manage_main') |
|
|
def ECHO_getResourceMD(self,template="yes",back=None): |
return "OK:",self.absolute_url(),self.contentType |
|
|
|
def ECHO_getResourceMD(self,template="yes",back=None,overwrite="no"): |
"""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) |
|
|
Line 1298 class ECHO_resource(CatalogAware,Folder,
|
Line 1328 class ECHO_resource(CatalogAware,Folder,
|
if not error=="": #Fehler beim Auslesen des Metafiles |
if not error=="": #Fehler beim Auslesen des Metafiles |
return "ERROR:",error |
return "ERROR:",error |
|
|
if not self.contentType: |
if (not self.contentType) or (overwrite=="yes"): |
self.contentType=metadict['bib_type'].lower() |
self.contentType=metadict['bib_type'].lower() |
|
|
if not (metadict['bib_type'].lower()==self.contentType.lower()): |
if not (metadict['bib_type'].lower()==self.contentType.lower()): |
Line 1425 class ECHO_externalLink(Folder,ECHO_basi
|
Line 1455 class ECHO_externalLink(Folder,ECHO_basi
|
security.declarePublic('content_html') |
security.declarePublic('content_html') |
def content_html(self): |
def content_html(self): |
"""template fuer content""" |
"""template fuer content""" |
return ECHO_basis.content_html(self,'externalLink') |
ret= ECHO_basis.content_html(self,'externalLink') |
|
|
|
|
|
try: |
|
return ret.encode('utf-8') |
|
|
|
except: |
|
try: |
|
return ret.decode('latin-1') |
|
except: |
|
|
|
return ret |
|
|
def __init__(self,id,link,title,label,description,contentType,responsible,credits,weight,coords): |
def __init__(self,id,link,title,label,description,contentType,responsible,credits,weight,coords): |
|
|
Line 1498 class ECHO_link(ECHO_externalLink):
|
Line 1539 class ECHO_link(ECHO_externalLink):
|
"""external_link""" |
"""external_link""" |
|
|
meta_type="ECHO_link" |
meta_type="ECHO_link" |
|
|
manage_options = ECHO_externalLink.manage_options+( |
manage_options = ECHO_externalLink.manage_options+( |
{'label':'add links config','action':'ECHO_link_addLinksForm'}, |
{'label':'add links config','action':'ECHO_link_addLinksForm'}, |
) |
) |
Line 1517 class ECHO_link(ECHO_externalLink):
|
Line 1559 class ECHO_link(ECHO_externalLink):
|
def content_html(self): |
def content_html(self): |
"""template fuer link""" |
"""template fuer link""" |
|
|
|
|
if hasattr(self,"link_template"): |
if hasattr(self,"link_template"): |
ret=ECHO_basis.content_html(self,'link') |
ret=ECHO_basis.content_html(self,'link') |
|
|
else: |
else: |
ret=ECHO_basis.content_html(self,'collection') |
ret=ECHO_basis.content_html(self,'collection') |
|
|
try: |
|
return ret.decode('utf-8') |
#return ret |
except: |
|
return ret |
return ret |
|
# |
|
# |
|
# try: |
|
# return ret.decode('utf-8') |
|
# except: |
|
# try: |
|
# return ret.decode('latin-1') |
|
# except: |
|
# |
|
# return ret |
|
# |
|
|
|
|
def index_html(self): |
def index_html(self): |
"""standard link""" |
"""standard link""" |
Line 1778 class ECHO_collection(Folder, Persistent
|
Line 1833 class ECHO_collection(Folder, Persistent
|
pass |
pass |
return ret |
return ret |
|
|
def updateCollection(self,RESPONSE=None): |
def importCollection(self,path=None,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) |
|
|
if path is None: |
|
pt=zptFile(self, 'zpt/importCollection.zpt') |
|
return pt() |
|
|
|
files=os.listdir(path) |
ret="" |
ret="" |
for fileName in files: |
for fileName in files: |
|
|
if fileName: |
if fileName: |
|
|
tempPath=re.sub("/mpiwg/online","",self.path) |
tempPath=re.sub("/mpiwg/online","",path) |
link="http://echo.mpiwg-berlin.mpg.de/zogilib_book?fn="+tempPath+"/"+fileName+"/pageimg" |
link="http://echo.mpiwg-berlin.mpg.de/zogilib_book?fn="+tempPath+"/"+fileName+"/pageimg" |
|
|
metalink=self.path+"/"+fileName+"/index.meta" |
metalink=self.path+"/"+fileName+"/index.meta" |
Line 1809 class ECHO_collection(Folder, Persistent
|
Line 1869 class ECHO_collection(Folder, Persistent
|
if RESPONSE is not None: |
if RESPONSE is not None: |
RESPONSE.redirect('manage_main') |
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""" |
pt=zptFile(self, 'zpt/changeViewerTemplateSet') |
pt=zptFile(self, 'zpt/changeViewerTemplateSet') |
Line 1913 class ECHO_collection(Folder, Persistent
|
Line 1959 class ECHO_collection(Folder, Persistent
|
RESPONSE.redirect('manage_main') |
RESPONSE.redirect('manage_main') |
|
|
def copySearchFields(self,RESPONSE=None): |
def copySearchFields(self,RESPONSE=None): |
"""copys import metadatafields to the object""" |
"""copys < metadatafields to the object""" |
resources=self.ZopeFind(self,obj_metatypes=['ECHO_resource']) |
resources=self.ZopeFind(self,obj_metatypes=['ECHO_resource'],search_sub=1) |
|
|
for resource in resources: |
for resource in resources: |
|
|
Line 1932 class ECHO_collection(Folder, Persistent
|
Line 1978 class ECHO_collection(Folder, Persistent
|
def reloadMetaDataFromStorage(self,RESPONSE=None): |
def reloadMetaDataFromStorage(self,RESPONSE=None): |
"""copy metadata from the storage to ECHO""" |
"""copy metadata from the storage to ECHO""" |
|
|
return reloadMetaDataFromStorage(self,RESPONSE=None) |
return reloadMetaDataFromStorage(self,RESPONSE) |
|
|
|
|
def getPartnerCopyright(self,name,sonst="generic"): |
def getPartnerCopyright(self,name,sonst="generic"): |
Line 2143 class ECHO_collection(Folder, Persistent
|
Line 2189 class ECHO_collection(Folder, Persistent
|
{'label':'Set Startpage','action':'setStartpageFolderForm'}, |
{'label':'Set Startpage','action':'setStartpageFolderForm'}, |
{'label':'Change Viewer Templates and Image Viewer','action':'changeViewerTemplateSetsForm'}, |
{'label':'Change Viewer Templates and Image Viewer','action':'changeViewerTemplateSetsForm'}, |
{'label':'Reload Metadata','action':'reloadMetaDataFromStorageWarning'}, |
{'label':'Reload Metadata','action':'reloadMetaDataFromStorageWarning'}, |
{'label':'ImportCollection','action':'updateCollection'}, |
{'label':'ImportCollection','action':'importCollection'}, |
{'label':'Copy MD for indexing and search','action':'copySearchFields'}, |
{'label':'Copy MD for indexing and search','action':'copySearchFields'}, |
) |
) |
|
|
Line 2246 class ECHO_collection(Folder, Persistent
|
Line 2292 class ECHO_collection(Folder, Persistent
|
except: |
except: |
|
|
try: |
try: |
ret.decode('utf-8') |
return ret.decode('latin-1') |
except: |
except: |
|
|
return ret |
return ret |
|
|
def getCredits(self): |
def getCredits(self): |
Line 2607 class ECHO_root(Folder,Persistent,Implic
|
Line 2654 class ECHO_root(Folder,Persistent,Implic
|
meta_type="ECHO_root" |
meta_type="ECHO_root" |
|
|
|
|
|
def mod_re_sub(self,pattern,replace,string): |
|
"""re.sub aus mod re zur Verfuegung stellen""" |
|
return re.sub(pattern,replace,string) |
|
|
def findObjectFromFulltext(self,existUri): |
def findObjectFromFulltext(self,existUri): |
''' |
''' |
|
|