--- ECHO_content/ECHO_collection.py 2005/11/03 15:58:16 1.248 +++ ECHO_content/ECHO_collection.py 2005/11/11 15:41:26 1.253 @@ -1040,11 +1040,11 @@ class ECHO_resource(CatalogAware,Folder, - def getMDValue(self,fieldName,empty=None,generic=None): + def getMDValue(self,fieldNameTest,empty=None,generic=None): """get md values""" #TODO: cache mappinghash - + fieldName=None if generic: ct=self.contentType.replace(" ","_").lower() @@ -1062,19 +1062,22 @@ class ECHO_resource(CatalogAware,Folder, 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: - #FIXME: warum gibt es manchmal kein metadatahas + #FIXME: warum gibt es manchmal kein metadatahas try: 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: - 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): """new index.meta""" self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml') @@ -1315,10 +1318,10 @@ class ECHO_resource(CatalogAware,Folder, if not error=="": #Fehler beim Auslesen des Metafiles return "ERROR:",error - + if (not self.contentType) or (overwrite=="yes"): - self.contentType=metadict['bib_type'] - + self.contentType=metadict['bib_type'].lower() + if not (metadict['bib_type'].lower()==self.contentType.lower()): self.REQUEST.SESSION['contentStorage']=metadict['bib_type'] self.REQUEST.SESSION['contentZope']=self.contentType @@ -1443,7 +1446,18 @@ class ECHO_externalLink(Folder,ECHO_basi security.declarePublic('content_html') def content_html(self): """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): @@ -1516,7 +1530,8 @@ class ECHO_link(ECHO_externalLink): """external_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'}, ) @@ -1534,16 +1549,29 @@ class ECHO_link(ECHO_externalLink): def content_html(self): """template fuer link""" - + + if hasattr(self,"link_template"): ret=ECHO_basis.content_html(self,'link') + else: ret=ECHO_basis.content_html(self,'collection') - try: - return ret.decode('utf-8') - except: - return ret + + #return ret + return ret +# +# +# try: +# return ret.decode('utf-8') +# except: +# try: +# return ret.decode('latin-1') +# except: +# +# return ret +# + def index_html(self): """standard link""" @@ -1796,15 +1824,20 @@ class ECHO_collection(Folder, Persistent pass 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""" - files=os.listdir(self.path) + + if path is None: + pt=zptFile(self, 'zpt/importCollection.zpt') + return pt() + + files=os.listdir(path) ret="" for fileName in files: 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" metalink=self.path+"/"+fileName+"/index.meta" @@ -1827,20 +1860,6 @@ class ECHO_collection(Folder, Persistent 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): """change the viewer template set""" pt=zptFile(self, 'zpt/changeViewerTemplateSet') @@ -1931,7 +1950,7 @@ class ECHO_collection(Folder, Persistent RESPONSE.redirect('manage_main') def copySearchFields(self,RESPONSE=None): - """copys import metadatafields to the object""" + """copys < metadatafields to the object""" resources=self.ZopeFind(self,obj_metatypes=['ECHO_resource'],search_sub=1) for resource in resources: @@ -2161,7 +2180,7 @@ class ECHO_collection(Folder, Persistent {'label':'Set Startpage','action':'setStartpageFolderForm'}, {'label':'Change Viewer Templates and Image Viewer','action':'changeViewerTemplateSetsForm'}, {'label':'Reload Metadata','action':'reloadMetaDataFromStorageWarning'}, - {'label':'ImportCollection','action':'updateCollection'}, + {'label':'ImportCollection','action':'importCollection'}, {'label':'Copy MD for indexing and search','action':'copySearchFields'}, )