--- ECHO_content/ECHO_movie.py 2005/04/26 17:01:26 1.7 +++ ECHO_content/ECHO_movie.py 2005/10/26 08:35:53 1.8 @@ -1,3 +1,4 @@ + """preliminary object for displaying movies as part of a collection, shall be exchanged by a generalized ressource object""" import string @@ -34,13 +35,13 @@ import cStringIO import zLOG try: - from psycopg import libpq + from psycopg import libpq except: - try: - from pyPgSQL import libpq - except: - print "ECHO_collection: Warning - No libpq imported!" - + try: + from pyPgSQL import libpq + except: + print "ECHO_collection: Warning - No libpq imported!" + import xml.dom.minidom import urllib @@ -68,253 +69,253 @@ class ECHO_movie(Folder,Persistent,ECHO_ 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 + """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 + """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 + """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 + """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): - - """rdf""" - #ret=getRDFDescription(self,self.link,urn=urn) - #return ret+self.createSubElementRDF(urn=urn) - if not urn: - urn=self.absolute_url() - ret="" - - rettemp="""\n"""%urn - - 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+=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 + + """rdf""" + #ret=getRDFDescription(self,self.link,urn=urn) + #return ret+self.createSubElementRDF(urn=urn) + if not urn: + urn=self.absolute_url() + ret="" + + rettemp="""\n"""%urn + + 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+=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"): - """htmlselector""" - values=['free','mpiwg'] - - if outlook=="select": - ret="""" - - else: - ret="" - for value in values: - - if value==self.getAccessRightMD(): - ret+="""%s"""%(self.getId(),value,value) - else: - ret+="""%s"""%(self.getId(),value,value) - return ret + """htmlselector""" + values=['free','mpiwg'] + + if outlook=="select": + ret="""" + + else: + ret="" + for value in values: + + if value==self.getAccessRightMD(): + ret+="""%s"""%(self.getId(),value,value) + else: + ret+="""%s"""%(self.getId(),value,value) + return ret def getAccessRightMD(self): - """set accessright""" - url=self.metalink + """set accessright""" + url=self.metalink - try: - geturl="" - for line in ECHO_helpers.urlopen(url).readlines(): - geturl=geturl+line - - - except: - return (None,"Cannot open: "+url) - - try: - dom=xml.dom.minidom.parseString(geturl) - root=dom.getElementsByTagName('resource')[0] - except: - return (None,"Cannot parse: "+url+"
"+geturl) - - internal=dom.getElementsByTagName('internal') - if internal: - institution=dom.getElementsByTagName('institution') - return getText(institution[0].childNodes) - - free=dom.getElementsByTagName('free') - if free: - return "free" + try: + geturl="" + for line in ECHO_helpers.urlopen(url).readlines(): + geturl=geturl+line + + + except: + return (None,"Cannot open: "+url) + + try: + dom=xml.dom.minidom.parseString(geturl) + root=dom.getElementsByTagName('resource')[0] + except: + return (None,"Cannot parse: "+url+"
"+geturl) + + internal=dom.getElementsByTagName('internal') + if internal: + institution=dom.getElementsByTagName('institution') + return getText(institution[0].childNodes) + + free=dom.getElementsByTagName('free') + if free: + return "free" - return "free" #default free + return "free" #default free def changeAccessRightMD(self,accessright,RESPONSE=None): - """change the rights""" - - params="accessright=%s"%accessright + """change the rights""" + + params="accessright=%s"%accessright - #print ECHO_helpers.urlopen(self.absolute_url()+'/setAccessRightXML'+'?'+params).read() + #print ECHO_helpers.urlopen(self.absolute_url()+'/setAccessRightXML'+'?'+params).read() - - ECHO_helpers.urlopen('http://xserve02.mpiwg-berlin.mpg.de:18880/echo_nav/storage/downloadExternalXML?index_meta_url=%s&xml_url=%s'%(self.metalink,self.absolute_url()+'/setAccessRightXML'+urllib.quote('?'+params))).read() + + ECHO_helpers.urlopen('http://xserve02.mpiwg-berlin.mpg.de:18880/echo_nav/storage/downloadExternalXML?index_meta_url=%s&xml_url=%s'%(self.metalink,self.absolute_url()+'/setAccessRightXML'+urllib.quote('?'+params))).read() - - if RESPONSE is not None: - RESPONSE.redirect('manage_main') + + if RESPONSE is not None: + RESPONSE.redirect('manage_main') - + def setAccessRightXML(self,accessright): - """set accessright""" - url=self.metalink + """set accessright""" + url=self.metalink - try: - geturl="" - for line in ECHO_helpers.urlopen(url).readlines(): - geturl=geturl+line - - - except: - return (None,"Cannot open: "+url) - - try: - dom=xml.dom.minidom.parseString(geturl) - root=dom.getElementsByTagName('resource')[0] - except: - return (None,"Cannot parse: "+url+"
"+geturl) - - metanodes=dom.getElementsByTagName('access-conditions') - - if not metanodes: - nodenew=dom.createElement('access-conditions') - root.appendChild(nodenew) - metanode=nodenew - else: - metanode=metanodes[0] - - accesses=metanode.getElementsByTagName('access') - - if not accesses: - nodenew2=dom.createElement('access') - metanode.appendChild(nodenew2) - metanode2=nodenew2 - else: - metanode2=accesses[0] - - internal=metanode.getElementsByTagName('internal') - - if internal: - metanode2.removeChild(internal[0]).unlink() - - free=metanode.getElementsByTagName('free') - - if free: - metanode2.removeChild(internal[0]).unlink() - - - if accessright=='free': - nodenew3=dom.createElement('free') - metanode2.appendChild(nodenew3) - elif accessright=='mpiwg': - nodenew3=dom.createElement('internal') - nodenew4=dom.createElement('institution') - metanodetext=dom.createTextNode('mpiwg') - nodenew4.appendChild(metanodetext) - nodenew3.appendChild(nodenew4) - metanode2.appendChild(nodenew3) + try: + geturl="" + for line in ECHO_helpers.urlopen(url).readlines(): + geturl=geturl+line + + + except: + return (None,"Cannot open: "+url) + + try: + dom=xml.dom.minidom.parseString(geturl) + root=dom.getElementsByTagName('resource')[0] + except: + return (None,"Cannot parse: "+url+"
"+geturl) + + metanodes=dom.getElementsByTagName('access-conditions') + + if not metanodes: + nodenew=dom.createElement('access-conditions') + root.appendChild(nodenew) + metanode=nodenew + else: + metanode=metanodes[0] + + accesses=metanode.getElementsByTagName('access') + + if not accesses: + nodenew2=dom.createElement('access') + metanode.appendChild(nodenew2) + metanode2=nodenew2 + else: + metanode2=accesses[0] + + internal=metanode.getElementsByTagName('internal') + + if internal: + metanode2.removeChild(internal[0]).unlink() + + free=metanode.getElementsByTagName('free') + + if free: + metanode2.removeChild(internal[0]).unlink() + + + if accessright=='free': + nodenew3=dom.createElement('free') + metanode2.appendChild(nodenew3) + elif accessright=='mpiwg': + nodenew3=dom.createElement('internal') + nodenew4=dom.createElement('institution') + metanodetext=dom.createTextNode('mpiwg') + nodenew4.appendChild(metanodetext) + nodenew3.appendChild(nodenew4) + metanode2.appendChild(nodenew3) - return dom.toxml().encode('utf-8') + return dom.toxml().encode('utf-8') def copyTitleToInfoXML(self,RESPONSE=None): - """copy title from the resource""" - presentationXML=readFieldFromXML(self.metalink,'texttool','presentation') - resourcepath=readFieldFromXML(self.metalink,'resource','archive-path') - if (not presentationXML) or (not resourcepath): - if RESPONSE: - RESPONSE.write("Error: %s\n"%self.getId()) - else: - return None,self.absolute_url() - - try: - fh=file(os.path.join(resourcepath,presentationXML),'w') - fh.write(""" - - %s - - yes - """%self.title) - fh.close() - return 1,self.getId() - except: - if RESPONSE: - RESPONSE.write("Error: %s\n"%self.getId()) - else: - return None,self.absolute_url() + """copy title from the resource""" + presentationXML=readFieldFromXML(self.metalink,'texttool','presentation') + resourcepath=readFieldFromXML(self.metalink,'resource','archive-path') + if (not presentationXML) or (not resourcepath): + if RESPONSE: + RESPONSE.write("Error: %s\n"%self.getId()) + else: + return None,self.absolute_url() + + try: + fh=file(os.path.join(resourcepath,presentationXML),'w') + fh.write(""" + + %s + + yes + """%self.title) + fh.close() + return 1,self.getId() + except: + if RESPONSE: + RESPONSE.write("Error: %s\n"%self.getId()) + else: + return None,self.absolute_url() - security.declarePublic('content_html') + security.declarePublic('content_html') def content_html(self): """template fuer content""" return ECHO_basis.content_html(self,'movie') @@ -327,51 +328,51 @@ class ECHO_movie(Folder,Persistent,ECHO_ def getCopyrightsHTML(self): - """gib (link auf copyright link, mediatyp, institution, copyrightType, label von copyrightType) aus""" - - if hasattr(self,'copyrightModel'): - obj=self.copyrightModel - - else: - return "ERROR" - ret=[] - - for copyright in obj.getCopyrights(): #copyright - media / partner / copyrightID - - - try: - if hasattr(self.copyrightTypes,copyright[2]): - copyrightTypeObj=getattr(self.copyrightTypes,copyright[2]) - link="copyrightTypes/"+copyright[2]+'/copyright.html' - else: - copyrightTypeObj=getattr(obj,copyright[2]) - link="copyrightModel/"+copyright[2]+'/copyright.html' - - label=copyrightTypeObj.label - url=getattr(copyrightTypeObj, 'url', '') - - if url!='': - ret.append((url,copyright[0],copyright[1],copyright[2],label)) - else: - if hasattr(copyrightTypeObj, 'copyright.html'): - ret.append(("""%s?partner=%s"""%(link,copyright[1]),copyright[0],copyright[1],copyright[2],label)) - else: - ret.append(('empty',copyright[0],copyright[1],copyright[2],label)) - except: - """nothing""" - - return ret - + """gib (link auf copyright link, mediatyp, institution, copyrightType, label von copyrightType) aus""" + + if hasattr(self,'copyrightModel'): + obj=self.copyrightModel + + else: + return "ERROR" + ret=[] + + for copyright in obj.getCopyrights(): #copyright - media / partner / copyrightID + + + try: + if hasattr(self.copyrightTypes,copyright[2]): + copyrightTypeObj=getattr(self.copyrightTypes,copyright[2]) + link="copyrightTypes/"+copyright[2]+'/copyright.html' + else: + copyrightTypeObj=getattr(obj,copyright[2]) + link="copyrightModel/"+copyright[2]+'/copyright.html' + + label=copyrightTypeObj.label + url=getattr(copyrightTypeObj, 'url', '') + + if url!='': + ret.append((url,copyright[0],copyright[1],copyright[2],label)) + else: + if hasattr(copyrightTypeObj, 'copyright.html'): + ret.append(("""%s?partner=%s"""%(link,copyright[1]),copyright[0],copyright[1],copyright[2],label)) + else: + ret.append(('empty',copyright[0],copyright[1],copyright[2],label)) + except: + """nothing""" + + return ret + def getInstitutionsHTML(self): - """gibt Liste der foerdernden Institutionen aus""" - - if hasattr(self,'support'): - obj=self.support - ret=obj.getSupporter() - return ret - else: - return '' - + """gibt Liste der foerdernden Institutionen aus""" + + if hasattr(self,'support'): + obj=self.support + ret=obj.getSupporter() + return ret + else: + return '' + def getCredits(self): """Ausgabe der credits""" @@ -395,41 +396,41 @@ class ECHO_movie(Folder,Persistent,ECHO_ self.credits=toList(credits) self.description=description self.contentType=contentType - self.copyrightType=copyrightType - self.renderingType=renderingType + self.copyrightType=copyrightType + self.renderingType=renderingType self.responsible=responsible self.resourceID=resourceID self.thumbUrl=thumbUrl self.rawFile=rawFile - self.lowresFile=lowresFile - + self.lowresFile=lowresFile + if coords: coordsnew=[ string.split(x,",") for x in coords] else: coordsnew=[] self.coords=coordsnew -# self.viewClassification="" +# self.viewClassification="" def getContentType(self): - try: - return self.contentType - except: - return "" + try: + return self.contentType + except: + return "" def getCopyrightType(self): - try: - return self.copyrightType - except: - return "" + try: + return self.copyrightType + except: + return "" def getRenderingType(self): - try: - return self.renderingType - except: - return "" + try: + return self.renderingType + except: + return "" def ECHO_movie_config(self): """Main configuration""" @@ -460,15 +461,15 @@ class ECHO_movie(Folder,Persistent,ECHO_ def ECHO_resource_config_metadata(self): """Main configuration""" - if (hasattr(self,'metadata')) and not (hasattr(self,'metaDataHash')): - self.metaDataHash={} - self.contentType=self.bib_type - for data in self.metadata: - data_neu=re.sub('-','_',data) - self.meta + if (hasattr(self,'metadata')) and not (hasattr(self,'metaDataHash')): + self.metaDataHash={} + self.contentType=self.bib_type + for data in self.metadata: + data_neu=re.sub('-','_',data) + self.meta DataHash[data_neu]=getattr(self,data)[0:] - + pt=zptFile(self, 'zpt/ChangeECHO_resource_metadata.zpt') return pt() @@ -476,19 +477,19 @@ class ECHO_movie(Folder,Persistent,ECHO_ def changeECHO_movie_main(self,metalink,link,rawFile,lowresFile,thumbUrl,title,label,description,contentType,renderingType="",weight="",resourceID="",RESPONSE=None): """Aenderung der Properties""" - self.resourceID=resourceID - self.title=title - self.label=label - self.description=description - - self.contentType=contentType - self.renderingType=renderingType - self.weight=weight - + self.resourceID=resourceID + self.title=title + self.label=label + self.description=description + + self.contentType=contentType + self.renderingType=renderingType + self.weight=weight + self.link=link self.thumbUrl=thumbUrl self.rawFile=rawFile - self.lowresFile=lowresFile + self.lowresFile=lowresFile self.metalink=metalink @@ -498,101 +499,101 @@ class ECHO_movie(Folder,Persistent,ECHO_ def changeECHO_movie_coords(self,RESPONSE=None): """Aenderung der Properties - coords""" - #return self.REQUEST - for area in self.getMapAreas(): - id = area.getId() - if self.REQUEST.has_key('del.'+id): - # delete this area - self._delObject(id) - # return to same menu - if RESPONSE is not None: - RESPONSE.redirect('ECHO_movie_config_coords') - return - # modify this area - coordstring = self.REQUEST.get('coords.'+id, '') - coords = string.split(coordstring, ',') - angle = self.REQUEST.get('angle.'+id, '0') - type = self.REQUEST.get('type.'+id, 'area') - if len(coords) == 4: - area.setCoordString(coordstring) - area.setAngle(angle) - area.setType(type) - # return to main menu - if RESPONSE is not None: - RESPONSE.redirect('manage_main') + #return self.REQUEST + for area in self.getMapAreas(): + id = area.getId() + if self.REQUEST.has_key('del.'+id): + # delete this area + self._delObject(id) + # return to same menu + if RESPONSE is not None: + RESPONSE.redirect('ECHO_movie_config_coords') + return + # modify this area + coordstring = self.REQUEST.get('coords.'+id, '') + coords = string.split(coordstring, ',') + angle = self.REQUEST.get('angle.'+id, '0') + type = self.REQUEST.get('type.'+id, 'area') + if len(coords) == 4: + area.setCoordString(coordstring) + area.setAngle(angle) + area.setType(type) + # return to main menu + if RESPONSE is not None: + RESPONSE.redirect('manage_main') def changeECHO_movie_credits(self,credits,responsible,copyrightType,RESPONSE=None): """Aenderung der Properties""" - self.credits=credits - self.responsible=responsible - self.copyrightType=copyrightType + self.credits=credits + self.responsible=responsible + self.copyrightType=copyrightType if RESPONSE is not None: RESPONSE.redirect('manage_main') def changeECHO_resource_metadata_local(self,RESPONSE=None): - """change metadata""" - tags=self.findTagsFromMapping(self.contentType) - for field in tags[1]: - self.metaDataHash[self.getFieldTag(tags,field)]=self.REQUEST.form[self.getFieldTag(tags,field)][0:] - - - - if RESPONSE is not None: - RESPONSE.redirect('manage_main') + """change metadata""" + tags=self.findTagsFromMapping(self.contentType) + for field in tags[1]: + self.metaDataHash[self.getFieldTag(tags,field)]=self.REQUEST.form[self.getFieldTag(tags,field)][0:] + + + + if RESPONSE is not None: + RESPONSE.redirect('manage_main') def changeECHO_resource_metadata(self,RESPONSE=None): - """change metadata""" - tags=self.findTagsFromMapping(self.contentType) - self.OSAS_meta={} - for field in tags[1]: - try: - self.metaDataHash[self.getFieldTag(tags,field)]=self.REQUEST.form[self.getFieldTag(tags,field)] - self.OSAS_meta[self.getFieldTag(tags,field)]=self.REQUEST.form['OSAS_%s'%self.getFieldTag(tags,field)] - except: - """nothing""" + """change metadata""" + tags=self.findTagsFromMapping(self.contentType) + self.OSAS_meta={} + for field in tags[1]: + try: + self.metaDataHash[self.getFieldTag(tags,field)]=self.REQUEST.form[self.getFieldTag(tags,field)] + self.OSAS_meta[self.getFieldTag(tags,field)]=self.REQUEST.form['OSAS_%s'%self.getFieldTag(tags,field)] + except: + """nothing""" - ECHO_helpers.urlopen('http://xserve02.mpiwg-berlin.mpg.de:18880/echo_nav/storage/downloadExternalXML?index_meta_url=%s&xml_url=%s'%(self.metalink,self.absolute_url()+'/newMetaXML')).read() + ECHO_helpers.urlopen('http://xserve02.mpiwg-berlin.mpg.de:18880/echo_nav/storage/downloadExternalXML?index_meta_url=%s&xml_url=%s'%(self.metalink,self.absolute_url()+'/newMetaXML')).read() - if RESPONSE is not None: - RESPONSE.redirect('manage_main') + if RESPONSE is not None: + RESPONSE.redirect('manage_main') def getMDValue(self,fieldName,empty=None): - if not empty: - return self.metaDataHash.get(fieldName,'!!NOT USED HERE in Type: %s'%self.contentType) - - else: - return self.metaDataHash.get(fieldName,empty) - + if not empty: + return self.metaDataHash.get(fieldName,'!!NOT USED HERE in Type: %s'%self.contentType) + + else: + 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""" - self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml') + """new index.meta""" + self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml') - if not hasattr(self,'metaDataHash'): - - self.copyIndex_meta2echo_resource() - try: - return writeMetadata(self.metalink,self.OSAS_meta,project,startpage,xslt,thumbtemplate,topbar,digiLibTemplate,digiliburlprefix=digiliburlprefix) - except: - return writeMetadata(self.metalink,self.metaDataHash,project,startpage,xslt,thumbtemplate,topbar,digiLibTemplate,digiliburlprefix=digiliburlprefix) + if not hasattr(self,'metaDataHash'): + + self.copyIndex_meta2echo_resource() + try: + return writeMetadata(self.metalink,self.OSAS_meta,project,startpage,xslt,thumbtemplate,topbar,digiLibTemplate,digiliburlprefix=digiliburlprefix) + except: + return writeMetadata(self.metalink,self.metaDataHash,project,startpage,xslt,thumbtemplate,topbar,digiLibTemplate,digiliburlprefix=digiliburlprefix) def showMetaDataXML(self,project=None,startpage=None,xslt=None,thumbtemplate=None,topbar=None,digiLibTemplate=None): - """schreibe md""" - - try: - - return writeMetadata(self.metalink,self.metaDataHash,project,startpage,xslt,thumbtemplate,topbar,digiLibTemplate,xmlfrag="yes") - except: - return " no metadata stored" + """schreibe md""" + + try: + + return writeMetadata(self.metalink,self.metaDataHash,project,startpage,xslt,thumbtemplate,topbar,digiLibTemplate,xmlfrag="yes") + except: + return " no metadata stored" def getMetaDataXML(self,project=None,startpage=None,xslt=None,thumbtemplate=None,topbar=None,digiLibTemplate=None): - """prints out metadata as stored in the echo environment, format is the index.meta format""" - self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml') - return writeMetadata(self.metalink,self.metaDataHash) + """prints out metadata as stored in the echo environment, format is the index.meta format""" + self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml') + return writeMetadata(self.metalink,self.metaDataHash) def changeECHO_movie(self,metalink,link,thumbUrl,rawFile,lowresFile,title,label,description,contentType,responsible,weight,coords=None,credits=None,RESPONSE=None): """Aenderung der Properties""" @@ -602,7 +603,7 @@ class ECHO_movie(Folder,Persistent,ECHO_ self.metalink=metalink self.thumbUrl=thumbUrl self.rawFile=rawFile - self.lowresFile=lowresFile + self.lowresFile=lowresFile if RESPONSE is not None: @@ -611,23 +612,23 @@ class ECHO_movie(Folder,Persistent,ECHO_ manage_options = Folder.manage_options+( {'label':'Main Config','action':'ECHO_movie_config_main'}, - {'label':'Change Metadata','action':'ECHO_movie_config_metadata'}, - {'label':'Graphic Coords','action':'ECHO_graphicEntry'}, + {'label':'Change Metadata','action':'ECHO_movie_config_metadata'}, + {'label':'Graphic Coords','action':'ECHO_graphicEntry'}, {'label':'Sync Metadata','action':'ECHO_getResourceMD'}, - {'label':'Change TemplateSets and Image Viewer','action':'changeViewerTemplateSetForm'}, - {'label':'set/change startpage','action':'setStartPageForm'}, - {'label':'Copy MD for indexing and search','action':'copySearchFields'}, - ) + {'label':'Change TemplateSets and Image Viewer','action':'changeViewerTemplateSetForm'}, + {'label':'set/change startpage','action':'setStartPageForm'}, + {'label':'Copy MD for indexing and search','action':'copySearchFields'}, + ) def isDefinedInThisSet(self,fields,field): - """checks if field is defined in fields""" - if (fields[0].has_key(field)) and not (fields[0][field]==""): - return 1 - else: - - return 0 - + """checks if field is defined in fields""" + if (fields[0].has_key(field)) and not (fields[0][field]==""): + return 1 + else: + + return 0 + def getFieldLabel(self,fields,field): """get labels""" try: @@ -656,67 +657,67 @@ class ECHO_movie(Folder,Persistent,ECHO_ def getFieldValue(self,field): """get value""" - + try: - + ret=self.metaDataHash[field] if ret == "": return None else: - - return ret + + return ret except: return None def getMetaDataHash(self): - """md hash""" - return self.metaDataHash + """md hash""" + return self.metaDataHash def setFieldValue(self,field,value): """get value""" - - if not hasattr(self,'metaDataHash'): - setattr(self,'metaDataHash',{}) - self.metaDataHash[field]=value[0:] - + + if not hasattr(self,'metaDataHash'): + setattr(self,'metaDataHash',{}) + self.metaDataHash[field]=value[0:] + def copySearchFields(self): - """copys metadatafields to the object""" - fields=['author','title','year'] - for field in fields: - setattr(self,'MD_'+field,self.getFieldValue(field)) + """copys metadatafields to the object""" + fields=['author','title','year'] + for field in fields: + setattr(self,'MD_'+field,self.getFieldValue(field)) def findLabelsFromMapping(self,referenceType): """gib hash mit label -> generic zurueck""" - #return {},[] + #return {},[] temp=self.ZopeFind(self.standardMD) - if referenceType=="": - referenceType="book" - - + if referenceType=="": + referenceType="book" + + bibdata={} retdata={} - fields=[] + fields=[] fieldlist=self.standardMD.fieldList tags=self.findTagsFromMapping(self.contentType) - self.referencetypes=tags[2] - for referenceTypeF in self.referencetypes: + self.referencetypes=tags[2] + for referenceTypeF in self.referencetypes: - if referenceTypeF[1].title.lower() == referenceType.lower(): + if referenceTypeF[1].title.lower() == referenceType.lower(): - try: - bibdata[referenceTypeF[1].title]=referenceTypeF[1].fields - referenceType=referenceTypeF[1].title - except: - bibdata[referenceType]=referenceTypeF[1].fields - + try: + bibdata[referenceTypeF[1].title]=referenceTypeF[1].fields + referenceType=referenceTypeF[1].title + except: + bibdata[referenceType]=referenceTypeF[1].fields + - bibdata['data']=referenceTypeF[1] - fields=bibdata[referenceType] + bibdata['data']=referenceTypeF[1] + fields=bibdata[referenceType] for field in fieldlist: retdata[field]=referenceTypeF[1].getValue(field)[1] @@ -724,70 +725,70 @@ class ECHO_movie(Folder,Persistent,ECHO_ def findTagsFromMapping(self,referenceType): """gib hash mit label -> generic zurueck""" - + - if referenceType=="": - referenceType="book" - - temp = self.ZopeFind(self.standardMD)[0:] - - - #self.referencetypes=temp[0:] - - - + if referenceType=="": + referenceType="book" + + temp = self.ZopeFind(self.standardMD)[0:] + + + #self.referencetypes=temp[0:] + + + - + bibdata={} retdata={} fieldlist=self.standardMD.fieldList fields=[] - for referenceTypeF in temp: - #print referenceType - - if referenceTypeF[1].title.lower() == referenceType.lower(): - try: - bibdata[referenceTypeF[1].title]=referenceTypeF[1].fields - referenceType=referenceTypeF[1].title - except: - bibdata[referenceType]=referenceTypeF[1].fields - bibdata['data']=referenceTypeF[1] - fields=bibdata[referenceType] + for referenceTypeF in temp: + #print referenceType + + if referenceTypeF[1].title.lower() == referenceType.lower(): + try: + bibdata[referenceTypeF[1].title]=referenceTypeF[1].fields + referenceType=referenceTypeF[1].title + except: + bibdata[referenceType]=referenceTypeF[1].fields + bibdata['data']=referenceTypeF[1] + fields=bibdata[referenceType] for field in fieldlist: retdata[field]=referenceTypeF[1].getValue(field)[0] - + return retdata,fieldlist,temp,fields security.declarePublic('copyIndex_meta2echo_resource') # has to be change, presentlyset because of OSAS koordination def copyIndex_meta2echo_resource(self,RESPONSE=None): - """copy MD von Index_meta to the echo_resource""" - - (metadict, error)=readMetadata(self.metalink) - - - - self.metaDataHash={} - if not error=="": #Fehler beim Auslesen des Metafiles - - return "ERROR:",error,self.absolute_url() - - self.contentType=metadict['bib_type'][0:] - fields=self.findTagsFromMapping(self.contentType) - - #fields=self.findLabelsFromMapping(self.contentType) - for field in fields[1]: - - if self.isDefinedInThisSet(fields,field): - #print urllib.unquote(metadict.get(self.getFieldTag(fields,field),'')) - self.setFieldValue(self.getFieldTag(fields,field),metadict.get(self.getFieldTag(fields,field),'')) - - - - if RESPONSE: - return RESPONSE.redirect('manage_main') - + """copy MD von Index_meta to the echo_resource""" + + (metadict, error)=readMetadata(self.metalink) + + + + self.metaDataHash={} + if not error=="": #Fehler beim Auslesen des Metafiles + + return "ERROR:",error,self.absolute_url() + + self.contentType=metadict['bib_type'][0:] + fields=self.findTagsFromMapping(self.contentType) + + #fields=self.findLabelsFromMapping(self.contentType) + for field in fields[1]: + + if self.isDefinedInThisSet(fields,field): + #print urllib.unquote(metadict.get(self.getFieldTag(fields,field),'')) + self.setFieldValue(self.getFieldTag(fields,field),metadict.get(self.getFieldTag(fields,field),'')) + + + + if RESPONSE: + return RESPONSE.redirect('manage_main') + def ECHO_getResourceMD(self,template="yes",back=None): """Einlesen der Metadaten und Anlegen dieser Metadaten als Informationen zur Resource""" (metadict, error)=readMetadata(self.metalink) @@ -796,28 +797,28 @@ class ECHO_movie(Folder,Persistent,ECHO_ self.REQUEST.SESSION['back']=back if not error=="": #Fehler beim Auslesen des Metafiles - return "ERROR:",error - + return "ERROR:",error + - if not (metadict['bib_type'].lower()==self.contentType.lower()): - self.REQUEST.SESSION['contentStorage']=metadict['bib_type'] - self.REQUEST.SESSION['contentZope']=self.contentType + if not (metadict['bib_type'].lower()==self.contentType.lower()): + self.REQUEST.SESSION['contentStorage']=metadict['bib_type'] + self.REQUEST.SESSION['contentZope']=self.contentType - return zptFile(self, 'zpt/ECHO_getResourceMDErrorContentType.zpt')() + return zptFile(self, 'zpt/ECHO_getResourceMDErrorContentType.zpt')() - self.REQUEST.SESSION['metadict']=metadict + self.REQUEST.SESSION['metadict']=metadict - - - self.REQUEST.SESSION['diffs']=checkDiffs(self,self.REQUEST.SESSION['metadict']) - + + + self.REQUEST.SESSION['diffs']=checkDiffs(self,self.REQUEST.SESSION['metadict']) + - + if template=="yes": - pt=zptFile(self, 'zpt/ECHO_resourceMD.zpt') - return pt() + pt=zptFile(self, 'zpt/ECHO_resourceMD.zpt') + return pt() - + @@ -826,25 +827,25 @@ class ECHO_movie(Folder,Persistent,ECHO_ return getattr(self,item) def checkRDF(self,path): - """check if pdf in the path""" - try: - for fileName in os.listdir(path): - if os.path.splitext(fileName)[1]==".pdf": - return os.path.join(path,fileName) - return None - except: - return None - - + """check if pdf in the path""" + try: + for fileName in os.listdir(path): + if os.path.splitext(fileName)[1]==".pdf": + return os.path.join(path,fileName) + return None + except: + return None + + def index_html(self): """standard page""" pdf=self.checkRDF(self.link) - if pdf: - fh=file(pdf,'r').read() - self.REQUEST.RESPONSE.setHeader('Content-Type','application/pdf') - self.REQUEST.RESPONSE.write(fh) - self.REQUEST.RESPONSE.close() - return + if pdf: + fh=file(pdf,'r').read() + self.REQUEST.RESPONSE.setHeader('Content-Type','application/pdf') + self.REQUEST.RESPONSE.write(fh) + self.REQUEST.RESPONSE.close() + return return self.REQUEST.RESPONSE.redirect(self.link) @@ -852,24 +853,24 @@ class ECHO_movie(Folder,Persistent,ECHO_ def generate_label(self): """Erzeugt_standard_Label aus Template""" - try: - pt=getattr(self,"label_template_"+self.contentType.lower()) - self.label=pt()[0:] - return pt() - except: - return self.label + try: + pt=getattr(self,"label_template_"+self.contentType.lower()) + self.label=pt()[0:] + return pt() + except: + return self.label security.declarePublic('generate_title') # has to be change, presentlyset because of OSAS koordination def generate_title(self,RESPONSE=None): """Erzeugt_standard_Label aus Template""" - try: - pt=getattr(self,"label_template_"+self.contentType.lower()) - self.title=pt()[0:] - return pt() - except: - return self.label - + try: + pt=getattr(self,"label_template_"+self.contentType.lower()) + self.title=pt()[0:] + return pt() + except: + return self.label + Globals.InitializeClass(ECHO_movie) def manage_addECHO_movieForm(self):