--- ECHO_content/ECHO_resource.py 2009/04/16 15:40:42 1.5 +++ ECHO_content/ECHO_resource.py 2010/10/11 13:14:59 1.6 @@ -1081,7 +1081,7 @@ class ECHO_resource(CatalogAware,Folder, ret= self.metaDataHash.get(fieldNameTest,empty) - + return unicodify(ret) getFieldValue=getMDValue #depricated @@ -1206,7 +1206,8 @@ class ECHO_resource(CatalogAware,Folder, def getMetaDataHash(self): """md hash""" - return self.metaDataHash + + return getattr(self,'metaDataHash',{}) def setFieldValue(self,field,value): """get value""" @@ -1218,11 +1219,20 @@ class ECHO_resource(CatalogAware,Folder, def copySearchFields(self): """copys metadatafields to the object""" - fields=['author','title','year'] + # Zunaechst die gnerischen felder + fields=['author','title','year'] for field in fields: - setattr(self,'MD_'+field,self.getMDValue(field,generic="yes")) - + setattr(self,'MD_'+field,self.getMDValue(field,generic="yes")) + + # jetzt die spezifischen + for field in self.getMetaDataHash().keys(): + if not (field in fields): + logging.debug("ECHO_resource (copySearchFields) mapping: "+field) + setattr(self,'MD_'+field,self.getMDValue(field)) + + + def findLabelsFromMapping(self,referenceType): """gib hash mit label -> generic zurueck""" @@ -1240,15 +1250,17 @@ class ECHO_resource(CatalogAware,Folder, fieldlist=self.standardMD.fieldList tags=self.findTagsFromMapping(normalizeCt(self.contentType)) + logging.debug("ECHO_resource(findLabelsFromMapping)"+repr(tags)) self.referencetypes=tags[2] for referenceTypeF in self.referencetypes: - + logging.debug("--- compare"+normalizeCt(referenceTypeF[1].title)+normalizeCt(referenceType.lower())) if normalizeCt(referenceTypeF[1].title) == normalizeCt(referenceType.lower()): - + try: bibdata[referenceTypeF[1].title]=referenceTypeF[1].fields referenceType=referenceTypeF[1].title + logging.debug("------fields:"+repr(fields)) except: bibdata[referenceType]=referenceTypeF[1].fields @@ -1257,7 +1269,7 @@ class ECHO_resource(CatalogAware,Folder, fields=bibdata[referenceType] for field in fieldlist: retdata[field]=referenceTypeF[1].getValue(field)[1] - + return retdata,fieldlist,temp,fields def findTagsFromMapping(self,referenceType): @@ -1287,7 +1299,8 @@ class ECHO_resource(CatalogAware,Folder, bibdata[referenceTypeF[1].title]=referenceTypeF[1].fields referenceType=referenceTypeF[1].title except: - bibdata[referenceType]=referenceTypeF[1].fields + logging.debug("Error in ECHOresource(findTagsFromMapping): %s %s"%(sys.exc_info[0],sys.exc_info[1])) + bibdata[referenceType]=referenceTypeF[1].fields bibdata['data']=referenceTypeF[1] fields=bibdata[referenceType] for field in fieldlist: @@ -1329,7 +1342,7 @@ class ECHO_resource(CatalogAware,Folder, 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) - + if back: self.REQUEST.SESSION['back']=back