Annotation of ECHO_content/ECHO_movie.py, revision 1.3
1.1 dwinter 1: """preliminary object for displaying movies as part of a collection, shall be exchanged by a generalized ressource object"""
2:
3: import string
4: import tempfile
5: import re
6: import os
7: import OFS.Image
8: from types import *
9: from OFS.Cache import Cacheable
10: from OFS.Image import Image
11: from Globals import DTMLFile
12: from OFS.Folder import Folder
13: from OFS.SimpleItem import SimpleItem
14: from AccessControl import ClassSecurityInfo
15: from AccessControl.User import UserFolder
16: from Globals import InitializeClass
17: from Globals import DTMLFile
18: import Globals
19: from Products.PageTemplates.PageTemplateFile import PageTemplateFile
20: from Products.PageTemplates.PageTemplate import PageTemplate
21: from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
22: from Globals import Persistent, package_home
23: from Acquisition import Implicit
24:
25: import urllib
26: import smtplib
27: import time
28: from Ft.Xml.Domlette import NonvalidatingReader
29: from Ft.Xml.Domlette import PrettyPrint
30: from Ft.Xml import EMPTY_NAMESPACE
31:
32: import Ft.Xml.XPath
33: import cStringIO
34: import zLOG
35:
36: try:
37: from psycopg import libpq
38: except:
39: try:
40: from pyPgSQL import libpq
41: except:
42: print "ECHO_collection: Warning - No libpq imported!"
43:
44: import xml.dom.minidom
45:
46: import urllib
47: import xml.dom.minidom
48: import ECHO_helpers
49: from ECHO_helpers import *
50: from ECHO_language import *
51:
52:
53: class ECHO_movie(Folder,Persistent,ECHO_basis):
54: """ECHO Ressource"""
55: security=ClassSecurityInfo()
56: meta_type='ECHO_movie'
1.3 ! dwinter 57: contentType='movie'
! 58:
1.1 dwinter 59: # viewClassificationList=viewClassificationListMaster
60:
61: getSubCols = ECHO_helpers.getSubCols
62:
63: security.declareProtected('View','index_html')
64:
65:
66:
67: security.declareProtected('View','createPDF')
68:
69:
70: def getRDF(self,urn=None):
71: """rdf"""
72: ret=getRDFDescription(self,self.link,urn=urn)
73: return ret+self.createSubElementRDF(urn=urn)
74:
75:
76: def getAccessRightSelectorHTML(self,outlook="select"):
77: """htmlselector"""
78: values=['free','mpiwg']
79:
80: if outlook=="select":
81: ret="""<select name="%s">"""%self.getId()
82:
83: for value in values:
84: if value==self.getAccessRightMD():
85: ret+="<option selected>%s</option>"%value
86: else:
87: ret+="<option>%s</option>"%value
88: return ret+"</select>"
89:
90: else:
91: ret=""
92: for value in values:
93:
94: if value==self.getAccessRightMD():
95: ret+="""<input type="radio" name="%s" value="%s" checked>%s"""%(self.getId(),value,value)
96: else:
97: ret+="""<input type="radio" name="%s" value="%s">%s"""%(self.getId(),value,value)
98: return ret
99:
100:
101:
102: def getAccessRightMD(self):
103: """set accessright"""
104: url=self.metalink
105:
106: try:
107: geturl=""
108: for line in ECHO_helpers.urlopen(url).readlines():
109: geturl=geturl+line
110:
111:
112: except:
113: return (None,"Cannot open: "+url)
114:
115: try:
116: dom=xml.dom.minidom.parseString(geturl)
117: root=dom.getElementsByTagName('resource')[0]
118: except:
119: return (None,"Cannot parse: "+url+"<br>"+geturl)
120:
121: internal=dom.getElementsByTagName('internal')
122: if internal:
123: institution=dom.getElementsByTagName('institution')
124: return getText(institution[0].childNodes)
125:
126: free=dom.getElementsByTagName('free')
127: if free:
128: return "free"
129:
130: return "free" #default free
131:
132: def changeAccessRightMD(self,accessright,RESPONSE=None):
133: """change the rights"""
134:
135: params="accessright=%s"%accessright
136:
137:
138: #print ECHO_helpers.urlopen(self.absolute_url()+'/setAccessRightXML'+'?'+params).read()
139:
140:
141: 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()
142:
143:
144: if RESPONSE is not None:
145: RESPONSE.redirect('manage_main')
146:
147:
148: def setAccessRightXML(self,accessright):
149: """set accessright"""
150: url=self.metalink
151:
152: try:
153: geturl=""
154: for line in ECHO_helpers.urlopen(url).readlines():
155: geturl=geturl+line
156:
157:
158: except:
159: return (None,"Cannot open: "+url)
160:
161: try:
162: dom=xml.dom.minidom.parseString(geturl)
163: root=dom.getElementsByTagName('resource')[0]
164: except:
165: return (None,"Cannot parse: "+url+"<br>"+geturl)
166:
167: metanodes=dom.getElementsByTagName('access-conditions')
168:
169: if not metanodes:
170: nodenew=dom.createElement('access-conditions')
171: root.appendChild(nodenew)
172: metanode=nodenew
173: else:
174: metanode=metanodes[0]
175:
176: accesses=metanode.getElementsByTagName('access')
177:
178: if not accesses:
179: nodenew2=dom.createElement('access')
180: metanode.appendChild(nodenew2)
181: metanode2=nodenew2
182: else:
183: metanode2=accesses[0]
184:
185: internal=metanode.getElementsByTagName('internal')
186:
187: if internal:
188: metanode2.removeChild(internal[0]).unlink()
189:
190: free=metanode.getElementsByTagName('free')
191:
192: if free:
193: metanode2.removeChild(internal[0]).unlink()
194:
195:
196: if accessright=='free':
197: nodenew3=dom.createElement('free')
198: metanode2.appendChild(nodenew3)
199: elif accessright=='mpiwg':
200: nodenew3=dom.createElement('internal')
201: nodenew4=dom.createElement('institution')
202: metanodetext=dom.createTextNode('mpiwg')
203: nodenew4.appendChild(metanodetext)
204: nodenew3.appendChild(nodenew4)
205: metanode2.appendChild(nodenew3)
206:
207: return dom.toxml().encode('utf-8')
208:
209:
210:
211: def copyTitleToInfoXML(self,RESPONSE=None):
212: """copy title from the resource"""
213: presentationXML=readFieldFromXML(self.metalink,'texttool','presentation')
214: resourcepath=readFieldFromXML(self.metalink,'resource','archive-path')
215: if (not presentationXML) or (not resourcepath):
216: if RESPONSE:
217: RESPONSE.write("Error: %s\n"%self.getId())
218: else:
219: return None,self.absolute_url()
220:
221: try:
222: fh=file(os.path.join(resourcepath,presentationXML),'w')
223: fh.write("""<info>
224: <author></author>
225: <title>%s</title>
226: <date></date>
227: <display>yes</display>
228: </info>"""%self.title)
229: fh.close()
230: return 1,self.getId()
231: except:
232: if RESPONSE:
233: RESPONSE.write("Error: %s\n"%self.getId())
234: else:
235: return None,self.absolute_url()
236:
237:
238:
239:
240: security.declarePublic('content_html')
241: def content_html(self):
242: """template fuer content"""
243: return ECHO_basis.content_html(self,'movie')
244:
245: # def getViewClassification(self):
246: # if hasattr(self,'viewClassification'):
247: # return self.viewClassification
248: # else:
249: # return ""
250:
251:
252: def getCopyrightsHTML(self):
253: """gib (link auf copyright link, mediatyp, institution, copyrightType, label von copyrightType) aus"""
254:
255: if hasattr(self,'copyrightModel'):
256: obj=self.copyrightModel
257:
258: else:
259: return "ERROR"
260: ret=[]
261:
262: for copyright in obj.getCopyrights(): #copyright - media / partner / copyrightID
263:
264:
265: try:
266: if hasattr(self.copyrightTypes,copyright[2]):
267: copyrightTypeObj=getattr(self.copyrightTypes,copyright[2])
268: link="copyrightTypes/"+copyright[2]+'/copyright.html'
269: else:
270: copyrightTypeObj=getattr(obj,copyright[2])
271: link="copyrightModel/"+copyright[2]+'/copyright.html'
272:
273: label=copyrightTypeObj.label
274: url=getattr(copyrightTypeObj, 'url', '')
275:
276: if url!='':
277: ret.append((url,copyright[0],copyright[1],copyright[2],label))
278: else:
279: if hasattr(copyrightTypeObj, 'copyright.html'):
280: ret.append(("""%s?partner=%s"""%(link,copyright[1]),copyright[0],copyright[1],copyright[2],label))
281: else:
282: ret.append(('empty',copyright[0],copyright[1],copyright[2],label))
283: except:
284: """nothing"""
285:
286: return ret
287:
288: def getInstitutionsHTML(self):
289: """gibt Liste der foerdernden Institutionen aus"""
290:
291: if hasattr(self,'support'):
292: obj=self.support
293: ret=obj.getSupporter()
294: return ret
295: else:
296: return ''
297:
298:
299: def getCredits(self):
300: """Ausgabe der credits"""
301: if self.credits:
302: return self.credits
303: else:
304: return []
305:
306:
307:
308: def __init__(self,id,link,thumbUrl,rawFile,metalink,resourceID,title,label,description,contentType,renderingType,copyrightType,responsible,credits,weight,coords):
309:
310: self.id = id
311: """Festlegen der ID"""
312:
313: self.label = label
314: self.link= link
315: self.metalink=metalink
316: self.title=title
317: self.weight=weight
318: self.credits=toList(credits)
319: self.description=description
320: self.contentType=contentType
321: self.copyrightType=copyrightType
322: self.renderingType=renderingType
323: self.responsible=responsible
324: self.resourceID=resourceID
325: self.thumbUrl=thumbUrl
326: self.rawFile=rawFile
327:
328: if coords:
329: coordsnew=[ string.split(x,",") for x in coords]
330: else:
331: coordsnew=[]
332:
333: self.coords=coordsnew
334: # self.viewClassification=""
335:
336:
337:
338: def getContentType(self):
339: try:
340: return self.contentType
341: except:
342: return ""
343:
344: def getCopyrightType(self):
345: try:
346: return self.copyrightType
347: except:
348: return ""
349:
350: def getRenderingType(self):
351: try:
352: return self.renderingType
353: except:
354: return ""
355:
356: def ECHO_movie_config(self):
357: """Main configuration"""
358:
359: if not hasattr(self,'weight'):
360: self.weight=""
361:
362: pt=zptFile(self, 'zpt/ChangeECHO_movie.zpt')
363: return pt()
364:
365:
366: def ECHO_movie_config_main(self):
367: """Main configuration"""
368: if not hasattr(self,'weight'):
369: self.weight=""
370: pt=zptFile(self, 'zpt/ChangeECHO_movie_main.zpt')
371: return pt()
372:
373: def ECHO_movie_config_coords(self):
374: """Coords configuration """
375: pt=zptFile(self, 'zpt/ChangeECHO_movie_coords.zpt')
376: return pt()
377:
378: def ECHO_movie_config_credits(self):
379: """Main configuration"""
380: pt=zptFile(self, 'zpt/ChangeECHO_movie_credits.zpt')
381: return pt()
382:
383: def ECHO_resource_config_metadata(self):
384: """Main configuration"""
385: if (hasattr(self,'metadata')) and not (hasattr(self,'metaDataHash')):
386: self.metaDataHash={}
387: self.contentType=self.bib_type
388: for data in self.metadata:
389: data_neu=re.sub('-','_',data)
390: self.meta
391: DataHash[data_neu]=getattr(self,data)[0:]
392:
393:
394: pt=zptFile(self, 'zpt/ChangeECHO_resource_metadata.zpt')
395: return pt()
396:
397:
398:
1.2 dwinter 399: def changeECHO_movie_main(self,metalink,link,rawFile,thumbUrl,title,label,description,contentType,renderingType="",weight="",resourceID="",RESPONSE=None):
1.1 dwinter 400: """Aenderung der Properties"""
401: self.resourceID=resourceID
402: self.title=title
403: self.label=label
404: self.description=description
405:
406: self.contentType=contentType
407: self.renderingType=renderingType
408: self.weight=weight
409:
410: self.link=link
411: self.thumbUrl=thumbUrl
412: self.rawFile=rawFile
413:
414: self.metalink=metalink
415:
416: if RESPONSE is not None:
417: RESPONSE.redirect('manage_main')
418:
419:
420: def changeECHO_movie_coords(self,RESPONSE=None):
421: """Aenderung der Properties - coords"""
422: #return self.REQUEST
423: for area in self.getMapAreas():
424: id = area.getId()
425: if self.REQUEST.has_key('del.'+id):
426: # delete this area
427: self._delObject(id)
428: # return to same menu
429: if RESPONSE is not None:
430: RESPONSE.redirect('ECHO_movie_config_coords')
431: return
432: # modify this area
433: coordstring = self.REQUEST.get('coords.'+id, '')
434: coords = string.split(coordstring, ',')
435: angle = self.REQUEST.get('angle.'+id, '0')
436: type = self.REQUEST.get('type.'+id, 'area')
437: if len(coords) == 4:
438: area.setCoordString(coordstring)
439: area.setAngle(angle)
440: area.setType(type)
441: # return to main menu
442: if RESPONSE is not None:
443: RESPONSE.redirect('manage_main')
444:
445:
446: def changeECHO_movie_credits(self,credits,responsible,copyrightType,RESPONSE=None):
447: """Aenderung der Properties"""
448: self.credits=credits
449: self.responsible=responsible
450: self.copyrightType=copyrightType
451:
452: if RESPONSE is not None:
453: RESPONSE.redirect('manage_main')
454:
455:
456: def changeECHO_resource_metadata_local(self,RESPONSE=None):
457: """change metadata"""
458: tags=self.findTagsFromMapping(self.contentType)
459: for field in tags[1]:
460: self.metaDataHash[self.getFieldTag(tags,field)]=self.REQUEST.form[self.getFieldTag(tags,field)][0:]
461:
462:
463:
464: if RESPONSE is not None:
465: RESPONSE.redirect('manage_main')
466:
467: def changeECHO_resource_metadata(self,RESPONSE=None):
468: """change metadata"""
469: tags=self.findTagsFromMapping(self.contentType)
470: self.OSAS_meta={}
471: for field in tags[1]:
472: try:
473: self.metaDataHash[self.getFieldTag(tags,field)]=self.REQUEST.form[self.getFieldTag(tags,field)]
474: self.OSAS_meta[self.getFieldTag(tags,field)]=self.REQUEST.form['OSAS_%s'%self.getFieldTag(tags,field)]
475: except:
476: """nothing"""
477:
478: 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()
479:
480:
481: if RESPONSE is not None:
482: RESPONSE.redirect('manage_main')
483:
484:
485: def getMDValue(self,fieldName,empty=None):
486: if not empty:
487: return self.metaDataHash.get(fieldName,'!!NOT USED HERE in Type: %s'%self.contentType)
488:
489: else:
490: return self.metaDataHash.get(fieldName,empty)
491:
492: def newMetaXML(self,project=None,startpage=None,xslt=None,thumbtemplate=None,topbar=None,digiLibTemplate=None,digiliburlprefix=None):
493: """new index.meta"""
494: self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml')
495:
496: if not hasattr(self,'metaDataHash'):
497:
498: self.copyIndex_meta2echo_resource()
499: try:
500: return writeMetadata(self.metalink,self.OSAS_meta,project,startpage,xslt,thumbtemplate,topbar,digiLibTemplate,digiliburlprefix=digiliburlprefix)
501: except:
502: return writeMetadata(self.metalink,self.metaDataHash,project,startpage,xslt,thumbtemplate,topbar,digiLibTemplate,digiliburlprefix=digiliburlprefix)
503:
504: def showMetaDataXML(self,project=None,startpage=None,xslt=None,thumbtemplate=None,topbar=None,digiLibTemplate=None):
505: """schreibe md"""
506:
507: try:
508:
509: return writeMetadata(self.metalink,self.metaDataHash,project,startpage,xslt,thumbtemplate,topbar,digiLibTemplate,xmlfrag="yes")
510: except:
511: return "<error> no metadata stored</error>"
512:
513: def getMetaDataXML(self,project=None,startpage=None,xslt=None,thumbtemplate=None,topbar=None,digiLibTemplate=None):
514: """prints out metadata as stored in the echo environment, format is the index.meta format"""
515: self.REQUEST.RESPONSE.setHeader('Content-Type','text/xml')
516: return writeMetadata(self.metalink,self.metaDataHash)
517:
518: def changeECHO_movie(self,metalink,link,thumbUrl,rawFile,title,label,description,contentType,responsible,weight,coords=None,credits=None,RESPONSE=None):
519: """Aenderung der Properties"""
520:
521: setECHO_collectionInformation(self,title,label,description,contentType,responsible,credits,weight)
522: self.link=link
523: self.metalink=metalink
524: self.thumbUrl=thumbUrl
525: self.rawFile=rawFile
526:
527:
528: if RESPONSE is not None:
529: RESPONSE.redirect('manage_main')
530:
531:
532: manage_options = Folder.manage_options+(
533: {'label':'Main Config','action':'ECHO_movie_config_main'},
534: {'label':'Change Metadata','action':'ECHO_movie_config_metadata'},
535: {'label':'Graphic Coords','action':'ECHO_graphicEntry'},
536: {'label':'Sync Metadata','action':'ECHO_getResourceMD'},
537: {'label':'Change TemplateSets and Image Viewer','action':'changeViewerTemplateSetForm'},
538: {'label':'set/change startpage','action':'setStartPageForm'},
539: {'label':'Copy MD for indexing and search','action':'copySearchFields'},
540: )
541:
542:
543: def isDefinedInThisSet(self,fields,field):
544: """checks if field is defined in fields"""
545: if (fields[0].has_key(field)) and not (fields[0][field]==""):
546: return 1
547: else:
548:
549: return 0
550:
551: def getFieldLabel(self,fields,field):
552: """get labels"""
553: try:
554: ret =fields[0][field]
555: if ret == "":
556: return field
557: else:
558: return ret
559: except:
560: return field
561:
562:
563:
564: def getFieldTag(self,fields,field):
565: """get labels"""
566: try:
567: ret =fields[0][field]
568: if ret == "":
569: return field
570: else:
571: return ret
572: except:
573: return field
574:
575:
576:
577: def getFieldValue(self,field):
578: """get value"""
579:
580: try:
581:
582: ret=self.metaDataHash[field]
583: if ret == "":
584: return None
585: else:
586:
587: return ret
588: except:
589: return None
590:
591: def getMetaDataHash(self):
592: """md hash"""
593: return self.metaDataHash
594:
595: def setFieldValue(self,field,value):
596: """get value"""
597:
598: if not hasattr(self,'metaDataHash'):
599: setattr(self,'metaDataHash',{})
600: self.metaDataHash[field]=value[0:]
601:
602:
603: def copySearchFields(self):
604: """copys metadatafields to the object"""
605: fields=['author','title','year']
606: for field in fields:
607: setattr(self,'MD_'+field,self.getFieldValue(field))
608:
609:
610: def findLabelsFromMapping(self,referenceType):
611: """gib hash mit label -> generic zurueck"""
612: #return {},[]
613:
614: temp=self.ZopeFind(self.standardMD)
615:
616: if referenceType=="":
617: referenceType="book"
618:
619:
620: bibdata={}
621: retdata={}
622: fields=[]
623: fieldlist=self.standardMD.fieldList
624:
625: tags=self.findTagsFromMapping(self.contentType)
626: self.referencetypes=tags[2]
627: for referenceTypeF in self.referencetypes:
628:
629: if referenceTypeF[1].title.lower() == referenceType.lower():
630:
631: try:
632: bibdata[referenceTypeF[1].title]=referenceTypeF[1].fields
633: referenceType=referenceTypeF[1].title
634: except:
635: bibdata[referenceType]=referenceTypeF[1].fields
636:
637:
638: bibdata['data']=referenceTypeF[1]
639: fields=bibdata[referenceType]
640: for field in fieldlist:
641: retdata[field]=referenceTypeF[1].getValue(field)[1]
642:
643: return retdata,fieldlist,temp,fields
644:
645: def findTagsFromMapping(self,referenceType):
646: """gib hash mit label -> generic zurueck"""
647:
648:
649: if referenceType=="":
650: referenceType="book"
651:
652: temp = self.ZopeFind(self.standardMD)[0:]
653:
654:
655: #self.referencetypes=temp[0:]
656:
657:
658:
659:
660:
661:
662: bibdata={}
663: retdata={}
664: fieldlist=self.standardMD.fieldList
665: fields=[]
666: for referenceTypeF in temp:
667: #print referenceType
668:
669: if referenceTypeF[1].title.lower() == referenceType.lower():
670: try:
671: bibdata[referenceTypeF[1].title]=referenceTypeF[1].fields
672: referenceType=referenceTypeF[1].title
673: except:
674: bibdata[referenceType]=referenceTypeF[1].fields
675: bibdata['data']=referenceTypeF[1]
676: fields=bibdata[referenceType]
677: for field in fieldlist:
678: retdata[field]=referenceTypeF[1].getValue(field)[0]
679:
680: return retdata,fieldlist,temp,fields
681:
682:
683: security.declarePublic('copyIndex_meta2echo_resource') # has to be change, presentlyset because of OSAS koordination
684: def copyIndex_meta2echo_resource(self,RESPONSE=None):
685: """copy MD von Index_meta to the echo_resource"""
686:
687: (metadict, error)=readMetadata(self.metalink)
688:
689:
690:
691: self.metaDataHash={}
692: if not error=="": #Fehler beim Auslesen des Metafiles
693:
694: return "ERROR:",error,self.absolute_url()
695:
696: self.contentType=metadict['bib_type'][0:]
697: fields=self.findTagsFromMapping(self.contentType)
698:
699: #fields=self.findLabelsFromMapping(self.contentType)
700: for field in fields[1]:
701:
702: if self.isDefinedInThisSet(fields,field):
703: #print urllib.unquote(metadict.get(self.getFieldTag(fields,field),''))
704: self.setFieldValue(self.getFieldTag(fields,field),metadict.get(self.getFieldTag(fields,field),''))
705:
706:
707:
708: if RESPONSE:
709: return RESPONSE.redirect('manage_main')
710:
711: def ECHO_getResourceMD(self,template="yes",back=None):
712: """Einlesen der Metadaten und Anlegen dieser Metadaten als Informationen zur Resource"""
713: (metadict, error)=readMetadata(self.metalink)
714:
715: if back:
716: self.REQUEST.SESSION['back']=back
717:
718: if not error=="": #Fehler beim Auslesen des Metafiles
719: return "ERROR:",error
720:
721:
722: if not (metadict['bib_type'].lower()==self.contentType.lower()):
723: self.REQUEST.SESSION['contentStorage']=metadict['bib_type']
724: self.REQUEST.SESSION['contentZope']=self.contentType
725:
726: return zptFile(self, 'zpt/ECHO_getResourceMDErrorContentType.zpt')()
727:
728: self.REQUEST.SESSION['metadict']=metadict
729:
730:
731:
732: self.REQUEST.SESSION['diffs']=checkDiffs(self,self.REQUEST.SESSION['metadict'])
733:
734:
735:
736: if template=="yes":
737: pt=zptFile(self, 'zpt/ECHO_resourceMD.zpt')
738: return pt()
739:
740:
741:
742:
743:
744: def ECHO_getMD(self,item):
745: """Ausgabe der MD"""
746: return getattr(self,item)
747:
748: def checkRDF(self,path):
749: """check if pdf in the path"""
750: try:
751: for fileName in os.listdir(path):
752: if os.path.splitext(fileName)[1]==".pdf":
753: return os.path.join(path,fileName)
754: return None
755: except:
756: return None
757:
758:
759: def index_html(self):
760: """standard page"""
761: pdf=self.checkRDF(self.link)
762: if pdf:
763: fh=file(pdf,'r').read()
764: self.REQUEST.RESPONSE.setHeader('Content-Type','application/pdf')
765: self.REQUEST.RESPONSE.write(fh)
766: self.REQUEST.RESPONSE.close()
767: return
768: return self.REQUEST.RESPONSE.redirect(self.link)
769:
770:
771: security.declarePublic('generate_label') # has to be change, presentlyset because of OSAS koordination
772:
773: def generate_label(self):
774: """Erzeugt_standard_Label aus Template"""
1.3 ! dwinter 775: try:
! 776: pt=getattr(self,"label_template_"+self.contentType.lower())
! 777: self.label=pt()[0:]
! 778: return pt()
! 779: except:
! 780: return self.label
1.1 dwinter 781:
782: security.declarePublic('generate_title') # has to be change, presentlyset because of OSAS koordination
783:
784: def generate_title(self,RESPONSE=None):
785: """Erzeugt_standard_Label aus Template"""
1.3 ! dwinter 786: try:
! 787: pt=getattr(self,"label_template_"+self.contentType.lower())
! 788: self.title=pt()[0:]
! 789: return pt()
! 790: except:
! 791: return self.label
1.1 dwinter 792:
793: Globals.InitializeClass(ECHO_movie)
794:
795: def manage_addECHO_movieForm(self):
796: """Form for adding a ressource"""
797: pt=zptFile(self, 'zpt/AddECHO_movieForm.zpt')
798: return pt()
799:
800:
801:
802: 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):
803: """addaresource"""
804:
805: newObj=ECHO_movie(id,link,thumbUrl,rawFile,metalink,resourceID,title,label,description,contentType,renderingType,copyrightType,responsible,credits,weight,coords)
806:
807: self._setObject(id,newObj)
808:
809: if RESPONSE is not None:
810: RESPONSE.redirect('manage_main')
811:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>