--- ECHO_content/ECHO_movie.py 2005/10/26 08:35:53 1.8 +++ ECHO_content/ECHO_movie.py 2005/10/28 17:49:45 1.9 @@ -49,8 +49,6 @@ import xml.dom.minidom import ECHO_helpers from ECHO_helpers import * from ECHO_language import * - - class ECHO_movie(Folder,Persistent,ECHO_basis): """ECHO Ressource""" security=ClassSecurityInfo() @@ -561,8 +559,29 @@ class ECHO_movie(Folder,Persistent,ECHO_ if RESPONSE is not None: RESPONSE.redirect('manage_main') - - def getMDValue(self,fieldName,empty=None): + def getMDValue(self,fieldNameTest,empty=None,generic=None): + """get md values""" + #TODO: cache mappinghash + + fieldName=None + if generic: + ct=self.contentType.replace(" ","_").lower() + + #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 empty: return self.metaDataHash.get(fieldName,'!!NOT USED HERE in Type: %s'%self.contentType) @@ -654,20 +673,6 @@ class ECHO_movie(Folder,Persistent,ECHO_ return field - - def getFieldValue(self,field): - """get value""" - - try: - - ret=self.metaDataHash[field] - if ret == "": - return None - else: - - return ret - except: - return None def getMetaDataHash(self): """md hash""" @@ -685,7 +690,7 @@ class ECHO_movie(Folder,Persistent,ECHO_ """copys metadatafields to the object""" fields=['author','title','year'] for field in fields: - setattr(self,'MD_'+field,self.getFieldValue(field)) + setattr(self,'MD_'+field,self.getMDValue(field)) def findLabelsFromMapping(self,referenceType):