version 1.3, 2005/03/17 19:27:34
|
version 1.13, 2009/04/16 15:40:42
|
Line 1
|
Line 1
|
|
|
"""preliminary object for displaying movies as part of a collection, shall be exchanged by a generalized ressource object""" |
"""preliminary object for displaying movies as part of a collection, shall be exchanged by a generalized ressource object""" |
|
|
import string |
import string |
Line 31 from Ft.Xml import EMPTY_NAMESPACE
|
Line 32 from Ft.Xml import EMPTY_NAMESPACE
|
|
|
import Ft.Xml.XPath |
import Ft.Xml.XPath |
import cStringIO |
import cStringIO |
import zLOG |
import logging |
|
|
try: |
try: |
from psycopg import libpq |
from psycopg import libpq |
Line 47 import urllib
|
Line 48 import urllib
|
import xml.dom.minidom |
import xml.dom.minidom |
import ECHO_helpers |
import ECHO_helpers |
from ECHO_helpers import * |
from ECHO_helpers import * |
from ECHO_language import * |
|
|
|
|
|
class ECHO_movie(Folder,Persistent,ECHO_basis): |
class ECHO_movie(Folder,Persistent,ECHO_basis): |
"""ECHO Ressource""" |
"""ECHO Ressource""" |
Line 67 class ECHO_movie(Folder,Persistent,ECHO_
|
Line 66 class ECHO_movie(Folder,Persistent,ECHO_
|
security.declareProtected('View','createPDF') |
security.declareProtected('View','createPDF') |
|
|
|
|
|
def linkHTTP(self): |
|
"""protokoll fuer link html""" |
|
|
|
splitted=self.link.split(":") |
|
if len(splitted)<2: |
|
return self.link |
|
else: |
|
splitted[0]="http" |
|
|
|
ret= ":".join(splitted) |
|
ret=ret.replace("//einst1","//einst3") |
|
return ret |
|
|
|
def linkRTSP(self): |
|
"""protokoll fuer link html""" |
|
splitted=self.link.split(":") |
|
if len(splitted)<2: |
|
return self.link |
|
else: |
|
splitted[0]="RTSP" |
|
|
|
ret= ":".join(splitted) |
|
ret=ret.replace("//einst3","//einst1") |
|
return ret |
|
|
|
def lowresHTTP(self): |
|
"""protokoll fuer link html""" |
|
if getattr(self,"lowresFile","")=="": |
|
return None |
|
|
|
splitted=self.lowresFile.split(":") |
|
if len(splitted)<2: |
|
return self.lowresFile |
|
else: |
|
splitted[0]="http" |
|
|
|
ret= ":".join(splitted) |
|
ret=ret.replace("//einst1","//einst3") |
|
return ret |
|
|
|
def lowresRTSP(self): |
|
"""protokoll fuer link html""" |
|
if getattr(self,"lowresFile","")=="": |
|
return None |
|
|
|
splitted=self.lowresFile.split(":") |
|
if len(splitted)<2: |
|
return self.lowresFile |
|
else: |
|
splitted[0]="RTSP" |
|
|
|
ret= ":".join(splitted) |
|
ret=ret.replace("//einst3","//einst1") |
|
return ret |
|
|
|
|
def getRDF(self,urn=None): |
def getRDF(self,urn=None): |
|
|
"""rdf""" |
"""rdf""" |
ret=getRDFDescription(self,self.link,urn=urn) |
#ret=getRDFDescription(self,self.link,urn=urn) |
return ret+self.createSubElementRDF(urn=urn) |
#return ret+self.createSubElementRDF(urn=urn) |
|
if not urn: |
|
urn=self.absolute_url() |
|
ret="" |
|
|
|
rettemp="""<RDF:Seq RDF:about="%s">\n"""%urn |
|
|
|
li="""<RDF:li RDF:resource="%s" />\n""" |
|
rettemp+=li%self.thumbUrl |
|
rettemp+=li%self.metalink |
|
rettemp+=li%self.rawFile |
|
rettemp+=li%getattr(self,'lowresFile','') |
|
rettemp+=li%self.link |
|
rettemp+="</RDF:Seq>" |
|
|
|
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) |
|
rettemp+=getRDFDescription(self,self.rawFile,nameDef="raw",typeName="raw_movie",urn=self.rawFile) |
|
if not (getattr(self,'lowresFile','')==""): |
|
rettemp+=getRDFDescription(self,self.lowresFile,nameDef="lores_movie",typeName="lores",urn=self.lowresFile) |
|
rettemp+=getRDFDescription(self,self.link,nameDef="hires",typeName="hires_movie",urn=self.link) |
|
return rettemp |
|
|
def getAccessRightSelectorHTML(self,outlook="select"): |
def getAccessRightSelectorHTML(self,outlook="select"): |
"""htmlselector""" |
"""htmlselector""" |
Line 211 class ECHO_movie(Folder,Persistent,ECHO_
|
Line 287 class ECHO_movie(Folder,Persistent,ECHO_
|
def copyTitleToInfoXML(self,RESPONSE=None): |
def copyTitleToInfoXML(self,RESPONSE=None): |
"""copy title from the resource""" |
"""copy title from the resource""" |
presentationXML=readFieldFromXML(self.metalink,'texttool','presentation') |
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 (not presentationXML) or (not resourcepath): |
if RESPONSE: |
if RESPONSE: |
RESPONSE.write("Error: %s\n"%self.getId()) |
RESPONSE.write("Error: %s\n"%self.getId()) |
Line 305 class ECHO_movie(Folder,Persistent,ECHO_
|
Line 381 class ECHO_movie(Folder,Persistent,ECHO_
|
|
|
|
|
|
|
def __init__(self,id,link,thumbUrl,rawFile,metalink,resourceID,title,label,description,contentType,renderingType,copyrightType,responsible,credits,weight,coords): |
def __init__(self,id,link,thumbUrl,rawFile,lowresFile,metalink,resourceID,title,label,description,contentType,renderingType,copyrightType,responsible,credits,weight,coords): |
|
|
self.id = id |
self.id = id |
"""Festlegen der ID""" |
"""Festlegen der ID""" |
Line 324 class ECHO_movie(Folder,Persistent,ECHO_
|
Line 400 class ECHO_movie(Folder,Persistent,ECHO_
|
self.resourceID=resourceID |
self.resourceID=resourceID |
self.thumbUrl=thumbUrl |
self.thumbUrl=thumbUrl |
self.rawFile=rawFile |
self.rawFile=rawFile |
|
self.lowresFile=lowresFile |
|
|
if coords: |
if coords: |
coordsnew=[ string.split(x,",") for x in coords] |
coordsnew=[ string.split(x,",") for x in coords] |
Line 396 class ECHO_movie(Folder,Persistent,ECHO_
|
Line 473 class ECHO_movie(Folder,Persistent,ECHO_
|
|
|
|
|
|
|
def changeECHO_movie_main(self,metalink,link,rawFile,thumbUrl,title,label,description,contentType,renderingType="",weight="",resourceID="",RESPONSE=None): |
def changeECHO_movie_main(self,metalink,link,rawFile,lowresFile,thumbUrl,title,label,description,contentType,renderingType="",weight="",resourceID="",RESPONSE=None): |
"""Aenderung der Properties""" |
"""Aenderung der Properties""" |
self.resourceID=resourceID |
self.resourceID=resourceID |
self.title=title |
self.title=title |
Line 410 class ECHO_movie(Folder,Persistent,ECHO_
|
Line 487 class ECHO_movie(Folder,Persistent,ECHO_
|
self.link=link |
self.link=link |
self.thumbUrl=thumbUrl |
self.thumbUrl=thumbUrl |
self.rawFile=rawFile |
self.rawFile=rawFile |
|
self.lowresFile=lowresFile |
|
|
self.metalink=metalink |
self.metalink=metalink |
|
|
Line 481 class ECHO_movie(Folder,Persistent,ECHO_
|
Line 559 class ECHO_movie(Folder,Persistent,ECHO_
|
if RESPONSE is not None: |
if RESPONSE is not None: |
RESPONSE.redirect('manage_main') |
RESPONSE.redirect('manage_main') |
|
|
|
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 |
|
|
def getMDValue(self,fieldName,empty=None): |
|
if not empty: |
if not empty: |
return self.metaDataHash.get(fieldName,'!!NOT USED HERE in Type: %s'%self.contentType) |
return self.metaDataHash.get(fieldName,'!!NOT USED HERE in Type: %s'%self.contentType) |
|
|
Line 515 class ECHO_movie(Folder,Persistent,ECHO_
|
Line 614 class ECHO_movie(Folder,Persistent,ECHO_
|
self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml') |
self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml') |
return writeMetadata(self.metalink,self.metaDataHash) |
return writeMetadata(self.metalink,self.metaDataHash) |
|
|
def changeECHO_movie(self,metalink,link,thumbUrl,rawFile,title,label,description,contentType,responsible,weight,coords=None,credits=None,RESPONSE=None): |
def changeECHO_movie(self,metalink,link,thumbUrl,rawFile,lowresFile,title,label,description,contentType,responsible,weight,coords=None,credits=None,RESPONSE=None): |
"""Aenderung der Properties""" |
"""Aenderung der Properties""" |
|
|
setECHO_collectionInformation(self,title,label,description,contentType,responsible,credits,weight) |
setECHO_collectionInformation(self,title,label,description,contentType,responsible,credits,weight) |
Line 523 class ECHO_movie(Folder,Persistent,ECHO_
|
Line 622 class ECHO_movie(Folder,Persistent,ECHO_
|
self.metalink=metalink |
self.metalink=metalink |
self.thumbUrl=thumbUrl |
self.thumbUrl=thumbUrl |
self.rawFile=rawFile |
self.rawFile=rawFile |
|
self.lowresFile=lowresFile |
|
|
|
|
if RESPONSE is not None: |
if RESPONSE is not None: |
Line 574 class ECHO_movie(Folder,Persistent,ECHO_
|
Line 674 class ECHO_movie(Folder,Persistent,ECHO_
|
|
|
|
|
|
|
def getFieldValue(self,field): |
|
"""get value""" |
|
|
|
try: |
|
|
|
ret=self.metaDataHash[field] |
|
if ret == "": |
|
return None |
|
else: |
|
|
|
return ret |
|
except: |
|
return None |
|
|
|
def getMetaDataHash(self): |
def getMetaDataHash(self): |
"""md hash""" |
"""md hash""" |
return self.metaDataHash |
return self.metaDataHash |
Line 604 class ECHO_movie(Folder,Persistent,ECHO_
|
Line 690 class ECHO_movie(Folder,Persistent,ECHO_
|
"""copys metadatafields to the object""" |
"""copys metadatafields to the object""" |
fields=['author','title','year'] |
fields=['author','title','year'] |
for field in fields: |
for field in fields: |
setattr(self,'MD_'+field,self.getFieldValue(field)) |
setattr(self,'MD_'+field,self.getMDValue(field)) |
|
|
|
|
def findLabelsFromMapping(self,referenceType): |
def findLabelsFromMapping(self,referenceType): |
Line 799 def manage_addECHO_movieForm(self):
|
Line 885 def manage_addECHO_movieForm(self):
|
|
|
|
|
|
|
def manage_addECHO_movie(self,id,title,label,description="",responsible="",link="",thumbUrl="",rawFile="",metalink="",weight="",copyrightType=None,resourceID=None,contentType=None,renderingType=None,credits=None,coords=None,RESPONSE=None): |
def manage_addECHO_movie(self,id,title,label,description="",responsible="",link="",thumbUrl="",rawFile="",lowresFile="",metalink="",weight="",copyrightType=None,resourceID=None,contentType=None,renderingType=None,credits=None,coords=None,RESPONSE=None): |
"""addaresource""" |
"""addaresource""" |
|
|
newObj=ECHO_movie(id,link,thumbUrl,rawFile,metalink,resourceID,title,label,description,contentType,renderingType,copyrightType,responsible,credits,weight,coords) |
newObj=ECHO_movie(id,link,thumbUrl,rawFile,lowresFile,metalink,resourceID,title,label,description,contentType,renderingType,copyrightType,responsible,credits,weight,coords) |
|
|
self._setObject(id,newObj) |
self._setObject(id,newObj) |
|
|