--- ECHO_content/ECHO_collection.py 2005/10/28 17:49:45 1.245 +++ ECHO_content/ECHO_collection.py 2005/11/03 15:12:21 1.247 @@ -1038,11 +1038,11 @@ class ECHO_resource(CatalogAware,Folder, RESPONSE.redirect('manage_main') - def getMDValue(self,fieldNameTest,empty=None,generic=None): + def getMDValue(self,fieldName,empty=None,generic=None): """get md values""" #TODO: cache mappinghash - fieldName=None + if generic: ct=self.contentType.replace(" ","_").lower() @@ -1060,12 +1060,16 @@ 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 empty: + #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(fieldName,empty) def newMetaXML(self,project=None,startpage=None,xslt=None,thumbtemplate=None,topbar=None,digiLibTemplate=None,digiliburlprefix=None): """new index.meta""" @@ -1298,7 +1302,7 @@ class ECHO_resource(CatalogAware,Folder, return "OK:",self.absolute_url().self,contentType - def ECHO_getResourceMD(self,template="yes",back=None): + def ECHO_getResourceMD(self,template="yes",back=None,overwrite="no"): """Einlesen der Metadaten und Anlegen dieser Metadaten als Informationen zur Resource""" (metadict, error)=readMetadata(self.metalink) @@ -1307,10 +1311,10 @@ class ECHO_resource(CatalogAware,Folder, if not error=="": #Fehler beim Auslesen des Metafiles return "ERROR:",error - - if not self.contentType: - self.contentType=metadict['bib_type'].lower() - + + if (not self.contentType) or (overwrite=="yes"): + self.contentType=metadict['bib_type'] + if not (metadict['bib_type'].lower()==self.contentType.lower()): self.REQUEST.SESSION['contentStorage']=metadict['bib_type'] self.REQUEST.SESSION['contentZope']=self.contentType