--- ECHO_content/ECHO_movie.py 2005/10/26 08:35:53 1.8 +++ ECHO_content/ECHO_movie.py 2011/10/13 07:48:27 1.14.2.1 @@ -26,13 +26,13 @@ from Acquisition import Implicit import urllib import smtplib import time -from Ft.Xml.Domlette import NonvalidatingReader -from Ft.Xml.Domlette import PrettyPrint -from Ft.Xml import EMPTY_NAMESPACE +#from Ft.Xml.Domlette import NonvalidatingReader +#from Ft.Xml.Domlette import PrettyPrint +#from Ft.Xml import EMPTY_NAMESPACE -import Ft.Xml.XPath +#import Ft.Xml.XPath import cStringIO -import zLOG +import logging try: from psycopg import libpq @@ -48,8 +48,6 @@ import urllib import xml.dom.minidom import ECHO_helpers from ECHO_helpers import * -from ECHO_language import * - class ECHO_movie(Folder,Persistent,ECHO_basis): """ECHO Ressource""" @@ -133,15 +131,15 @@ class ECHO_movie(Folder,Persistent,ECHO_ urn=self.absolute_url() ret="" - rettemp="""\n"""%urn + rettemp="""\n"""%urn - li="""\n""" + li="""\n""" rettemp+=li%self.thumbUrl rettemp+=li%self.metalink rettemp+=li%self.rawFile rettemp+=li%getattr(self,'lowresFile','') rettemp+=li%self.link - rettemp+="" + rettemp+="" rettemp+=getRDFDescription(self,self.thumbUrl,nameDef="thumb",typeName="thumb",urn=self.thumbUrl) rettemp+=getRDFDescription(self,self.metalink,nameDef="metadata",typeName="ECHO_metaData",urn=self.metalink) @@ -289,7 +287,7 @@ class ECHO_movie(Folder,Persistent,ECHO_ def copyTitleToInfoXML(self,RESPONSE=None): """copy title from the resource""" presentationXML=readFieldFromXML(self.metalink,'texttool','presentation') - resourcepath=readFieldFromXML(self.metalink,'resource','archive-path') + resourcepath=readFieldFromXML_xpath(self.metalink,'//resource/archive-path') if (not presentationXML) or (not resourcepath): if RESPONSE: RESPONSE.write("Error: %s\n"%self.getId()) @@ -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):