Annotation of OSAS/OSA_system/OSAS_addfiles.py, revision 1.42
1.1 dwinter 1: # Methoden und Classen zum Hinzufuegen von Dokumenten
2:
1.18 dwinter 3:
1.27 dwinter 4: from OSAS_helpers import readArchimedesXML, getText
1.18 dwinter 5: import os
1.7 dwinter 6: import xml.dom.minidom
1.24 dwinter 7: import re
1.3 dwinter 8: import urllib
1.1 dwinter 9: import OSAS_add
1.9 dwinter 10: import OSAS_show
1.5 dwinter 11: import string
1.1 dwinter 12: from OFS.Folder import Folder
13: from AccessControl import ClassSecurityInfo
14: from Globals import InitializeClass
15: from Products.PageTemplates.PageTemplateFile import PageTemplateFile
16: from Products.PageTemplates.PageTemplate import PageTemplate
1.18 dwinter 17: import archive # check if this is necessary
1.40 dwinter 18: from Globals import package_home
1.21 dwinter 19:
20: from xml.sax import make_parser
21: from xml.sax.handler import ContentHandler
22:
23: def spaces(depth):
24: """needed in XMLtoTree"""
25: tmp=""
26: k=0
27: while k<2*depth:
28: k+=1
29: tmp=tmp+" "+" "
30: return tmp
31:
32:
1.1 dwinter 33: class OSAS_add_Document(Folder):
34: """Hinzufuegen eines Dokumentes zum Storage"""
35: security=ClassSecurityInfo()
36:
37: def __init__(self,id):
38: """initialize a new instance"""
39: self.id = id
40:
41:
42: meta_type='OSAS_add_Document'
43: manage_options = Folder.manage_options+(
44: {'label':'Main Config','action':'add_Document_config'},
45: )
46:
47:
48:
49: security.declarePublic('add_Document_config')
50: def add_Document_config(self):
51: """Main configuration"""
1.40 dwinter 52: pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ChangeOSAS_addDocument.zpt')).__of__(self)
1.1 dwinter 53: return pt()
54:
55: security.declarePublic('change_OSAS_add_Document')
56: def change_OSAS_add_Document(self,RESPONSE=None):
57: """Change"""
58: # self.RootFolderName=RootFolderName
59: if RESPONSE is not None:
60: RESPONSE.redirect('manage_main')
61:
62: security.declarePublic('index_html')
63: def index_html(self):
64: """stantard aufruf"""
1.24 dwinter 65: return OSAS_add.add(self.standardMD,no_upload=1)
1.1 dwinter 66:
67:
68: security.declarePublic('add2')
69: def add2(self):
70: """ anlegen naechster schritt"""
1.24 dwinter 71: return OSAS_add.add2(self.standardMD)
1.1 dwinter 72:
73: def add3(self):
74: """Foldername"""
75: return OSAS_add.add3(self)
76:
77: def add4(self):
78: """Applet"""
1.41 dwinter 79:
1.1 dwinter 80: return OSAS_add.add4(self)
81:
82: def add5(self):
83: """Foldername"""
84: return OSAS_add.add5(self)
85:
86: def add6(self):
87: """write new index.meta file"""
88: return OSAS_add.add6(self)
89:
1.27 dwinter 90: def addText2(self):
91: """add only a text"""
92: metadata=OSAS_add.parse_query_string(self.REQUEST['QUERY_STRING'])
93: metadata['archive-creation-date']=OSAS_add.date(self)
94: metadata['creator']=self.REQUEST['creator']
95: metadata['description']=self.REQUEST['content_description']
1.41 dwinter 96: metadata['archive-path']=os.path.split(self.REQUEST.SESSION['pathnew'])[0]
97: #metadata['folder_name']=self.REQUEST.SESSION['folder_name']
98: metadata['folder_name']=os.path.split(self.REQUEST.SESSION['pathnew'])[1]
99: metadata['content-type']="fulltext document"
100: self.reftype=self.REQUEST.SESSION['reftype']
101: self.REQUEST.SESSION['add_metadata']=metadata
102: self.add_metadata=metadata
103: self.metadata=self.REQUEST.SESSION['metadata']
104: self.metadataprint=""
105: for tag in self.metadata.keys():
1.36 dwinter 106:
107: #print str(self.metadata[tag]).decode('utf-8').encode('utf-8')
108: self.metadataprint=self.metadataprint+"<"+tag+">"+self.metadata[tag]+"</"+tag+">\n"
1.27 dwinter 109:
1.41 dwinter 110: newtemplate=PageTemplateFile(os.path.join(package_home(globals()),'zpt','index_meta')).__of__(self)
111: newtemplate.content_type="text/plain"
112: renderxml = newtemplate(encoding='utf-8')
1.36 dwinter 113: #return renderxml
1.30 dwinter 114: metapath=self.REQUEST.SESSION['pathnew']+"/index.meta"
1.41 dwinter 115:
116: f=open(metapath,'w')
1.36 dwinter 117:
1.41 dwinter 118: f.write(renderxml)
119: f.close()
120: os.chmod(metapath,0664)
121: os.popen('chmod -R 0775 %s'%self.add_metadata['archive-path']+"/"+self.add_metadata['folder_name'])
122:
1.27 dwinter 123: return OSAS_add.addText2(self)
1.1 dwinter 124:
1.35 dwinter 125: def addPdf2(self):
126: """add only a pdf"""
127: metadata=OSAS_add.parse_query_string(self.REQUEST['QUERY_STRING'])
128: metadata['archive-creation-date']=OSAS_add.date(self)
129: metadata['creator']=self.REQUEST['creator']
130: metadata['description']=self.REQUEST['content_description']
1.41 dwinter 131: metadata['archive-path']=os.path.split(self.REQUEST.SESSION['pathnew'])[0]
132: #metadata['folder_name']=self.REQUEST.SESSION['folder_name']
133: metadata['folder_name']=os.path.split(self.REQUEST.SESSION['pathnew'])[1]
134: metadata['content-type']="fulltext document"
135: self.reftype=self.REQUEST.SESSION['reftype']
136: self.REQUEST.SESSION['add_metadata']=metadata
137: self.add_metadata=metadata
138: self.metadata=self.REQUEST.SESSION['metadata']
139: self.metadataprint=""
140: for tag in self.metadata.keys():
141: self.metadataprint=self.metadataprint+"<"+tag+">"+self.metadata[tag]+"</"+tag+">\n"
142:
143: newtemplate=PageTemplateFile(os.path.join(package_home(globals()),'zpt','index_meta')).__of__(self)
144: newtemplate.content_type="text/plain"
145: renderxml = newtemplate(encoding='utf-8')
1.35 dwinter 146: metapath=self.REQUEST.SESSION['pathnew']+"/index.meta"
1.41 dwinter 147:
148:
149: f=open(metapath,'w')
150: f.write(renderxml)
151: f.close()
152: os.chmod(metapath,0664)
153: os.popen('chmod -R 0775 %s'%self.add_metadata['archive-path']+"/"+self.add_metadata['folder_name'])
154:
1.35 dwinter 155: return OSAS_add.addPdf2(self)
156:
1.1 dwinter 157: def addImages(self,path):
158: """Hinzufügen eines neuen Imagesfolders"""
159: return OSAS_add.addImages(self,path)
160:
161: def addImages2(self):
162: """Upload des neuen Imagefolders"""
1.2 dwinter 163: return OSAS_add.addImages2(self)
164:
1.1 dwinter 165:
166: def manage_AddOSAS_add_DocumentForm(self):
167: """interface for adding the OSAS_add_Metadata"""
1.40 dwinter 168: pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddOSAS_document.zpt')).__of__(self)
1.1 dwinter 169: return pt()
170:
171: def manage_AddOSAS_add_Document(self,id,RESPONSE=None):
172: """add the OSAS_root"""
173: newObj=OSAS_add_Document(id)
174: self.Destination()._setObject(id,newObj)
175: if RESPONSE is not None:
176: RESPONSE.redirect('manage_main')
177:
178:
179: InitializeClass(OSAS_add_Document)
180:
1.2 dwinter 181:
182: class OSAS_add_Text(Folder):
183: """Hinzufuegen eines Text-Dokumentes zum Storage"""
184: security=ClassSecurityInfo()
185:
186: def __init__(self,id):
187: """initialize a new instance"""
188: self.id = id
189:
190:
191: meta_type='OSAS_add_Text'
192: manage_options = Folder.manage_options+(
193: {'label':'Main Config','action':'add_Text_config'},
194: )
195:
196:
197:
198: security.declarePublic('add_Text_config')
199: def add_Text_config(self):
200: """Main configuration"""
1.40 dwinter 201: pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ChangeOSAS_addText.zpt')).__of__(self)
1.2 dwinter 202: return pt()
203:
204: security.declarePublic('change_OSAS_add_Text')
205: def change_OSAS_add_Text(self,RESPONSE=None):
206: """Change"""
207: # self.RootFolderName=RootFolderName
208: if RESPONSE is not None:
209: RESPONSE.redirect('manage_main')
210:
1.35 dwinter 211: def addPdf(self,path):
212: """Add a pdf"""
213: return OSAS_add.addPdf(self,path)
214:
215: def addPdf2(self):
216: """Read the file and store it"""
217: return OSAS_add.addPdf2(self)
218:
1.2 dwinter 219: def addText(self,path):
220: """Add a fulltext"""
221: return OSAS_add.addText(self,path)
222:
223: def addText2(self):
224: """Read the file and store it"""
225: return OSAS_add.addText2(self)
1.35 dwinter 226:
1.2 dwinter 227: def manage_AddOSAS_add_TextForm(self):
228: """interface for adding the OSAS_add_Metadata"""
1.40 dwinter 229: pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddOSAS_text.zpt')).__of__(self)
1.2 dwinter 230: return pt()
231:
232: def manage_AddOSAS_add_Text(self,id,RESPONSE=None):
233: """add the OSAS_root"""
234: newObj=OSAS_add_Text(id)
235: self.Destination()._setObject(id,newObj)
236: if RESPONSE is not None:
237: RESPONSE.redirect('manage_main')
238:
239:
240: InitializeClass(OSAS_add_Text)
1.3 dwinter 241:
1.21 dwinter 242:
1.3 dwinter 243: class OSAS_add_contextData(Folder):
244: """Einfuegen eines Documentes in eine Collection"""
245:
246: security=ClassSecurityInfo()
247:
248:
249: meta_type='OSAS_add_contextData'
250:
1.38 dwinter 251: def XmlToTree(self,URL,pwstr=None):
1.21 dwinter 252: """Collection XML to Tree"""
253:
254: class requestHandler(ContentHandler):
255: def __init__(self):
256: self.depth=0
257: self.retStr=""
258:
259: def startElement(self,name,attrs):
260: if name=="element":
261: self.depth+=1
1.24 dwinter 262: begin=""
263: end=""
264: if self.depth==1:
265: begin="<b>"
266: end="</b>"
267:
1.32 dwinter 268: self.retStr+=spaces(self.depth)+"<input type='radio' name='collection' value='%s'>%s</input>"%(attrs.get('url'),begin+urllib.unquote(attrs.get('name'))+end)+"<br>\n"
1.21 dwinter 269:
270:
271:
272: def endElement(self,name):
273: if name=="element":
274: self.depth-=1
275:
1.38 dwinter 276: if pwstr=="":
277: pwstr=None
278:
1.23 dwinter 279: try:
1.38 dwinter 280: if pwstr:
281: URL+="/getCollectionTreeXML?pwstr=%s"%pwstr
282: else:
283: URL+="/getCollectionTreeXML"
1.23 dwinter 284: parser=make_parser()
285: curHandler=requestHandler()
286: parser.setContentHandler(curHandler)
287:
288: parser.parse(urllib.urlopen(URL))
289: return curHandler.retStr
1.37 dwinter 290:
1.23 dwinter 291: except:
1.41 dwinter 292: return URL
1.23 dwinter 293: return urllib.urlopen(URL).read()
1.41 dwinter 294:
1.32 dwinter 295:
1.3 dwinter 296: def __init__(self,id,collection):
297: self.id=id
298: self.collection=collection
299:
1.23 dwinter 300:
301:
302:
303: def getPartners(self,URL):
304: """Zeige Partnerliste"""
305: class requestHandler(ContentHandler):
306: def __init__(self):
307: self.ret=[]
1.5 dwinter 308:
1.23 dwinter 309: def startElement(self,name,attrs):
310: if name=="partner":
1.37 dwinter 311: self.ret.append((attrs.get('id'),attrs.get('title').encode('utf-8')))
1.23 dwinter 312:
313:
314: URL+="/getPartnersXML"
1.41 dwinter 315: parser=make_parser()
316: curHandler=requestHandler()
1.37 dwinter 317: parser.setContentHandler(curHandler)
1.41 dwinter 318: parser.parse(urllib.urlopen(URL))
319: try:
1.37 dwinter 320:
1.41 dwinter 321: return curHandler.ret
1.23 dwinter 322: except:
1.41 dwinter 323: return [("",URL)]
324:
1.21 dwinter 325:
1.5 dwinter 326: def addContextData(self,path):
1.32 dwinter 327: """Hinzufuegen zu einer Sammlung"""
1.42 ! dwinter 328:
! 329: server=getattr(self,'serverUrl',self.REQUEST['SERVER_URL'])
! 330:
1.6 dwinter 331: try:
1.42 ! dwinter 332: urllib.urlopen(server+"/"+path+"/index.meta")
1.9 dwinter 333:
1.6 dwinter 334: except:
1.14 dwinter 335: return self.REQUEST['SERVER_URL']+path+"/index.meta file has to exist!"
1.3 dwinter 336:
1.10 dwinter 337: links=[(path,'standard storage')]
338:
1.32 dwinter 339: links+=OSAS_show.readContexts(path) # auslesen von contexten fuer den link
1.10 dwinter 340: #print "LINK",links
1.15 dwinter 341: #return links
1.9 dwinter 342: self.REQUEST.SESSION['links']=links
1.40 dwinter 343: pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','contextDataMain.zpt')).__of__(self)
1.9 dwinter 344: return pt()
1.5 dwinter 345:
1.37 dwinter 346:
1.25 dwinter 347: def addContextData2(self,path,collection,link,label,description,content_type,responsible,weight,credits=None):
1.5 dwinter 348: """Hinzufuegen der Resource"""
349: splitted=path.split("/")
1.13 dwinter 350: #print "BLU"
1.5 dwinter 351: id=splitted[len(splitted)-1]
352: title=splitted[len(splitted)-1]
1.42 ! dwinter 353: server=getattr(self,'serverUrl',self.REQUEST['SERVER_URL'])
! 354:
! 355: metalink=server+"/"+path+"/index.meta"
1.13 dwinter 356:
1.9 dwinter 357: #link=TOBEDONE"
1.37 dwinter 358: """Hinzufuegen der Ressource"""
1.3 dwinter 359:
1.26 dwinter 360: params=urllib.urlencode({'id':id,'title':title,'link':link,'label':label,'description':description,'contentType':content_type,'responsible':responsible,'weight':weight,'credits':credits,'metalink':metalink})
1.21 dwinter 361:
1.37 dwinter 362:
1.39 dwinter 363: try:
364: retStr=urllib.urlopen(collection+"/addResource",params).read()
365: except:
366: return "An Error occured adding the resource\n", collection,params
367:
1.41 dwinter 368: #print "added"
369: if not retStr:
1.37 dwinter 370: return "An Error occured adding the resource\n", collection,params
1.41 dwinter 371:
1.37 dwinter 372: #print collection+"/"+id+"/copyIndex_meta2echo_resource"
1.21 dwinter 373:
1.37 dwinter 374: urllib.urlopen(collection+"/"+id+"/copyIndex_meta2echo_resource").read()
1.41 dwinter 375: #print "copy2res"
1.37 dwinter 376: urllib.urlopen(collection+"/"+id+"/generate_label").read()
1.41 dwinter 377: #print "label"
1.37 dwinter 378: urllib.urlopen(collection+"/"+id+"/generate_title").read()
1.41 dwinter 379: #print "title"
1.5 dwinter 380: return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL2']+'?path='+path)
381:
1.3 dwinter 382: manage_options = Folder.manage_options+(
383: {'label':'Main Config','action':'add_contextData_config'},
384: )
385:
386:
387: def add_contextData_config(self):
388: """Main configuration"""
1.40 dwinter 389: pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ChangeOSAS_add_contextData.zpt')).__of__(self)
1.3 dwinter 390: return pt()
391:
392:
1.42 ! dwinter 393: def change_OSAS_add_contextData(self,collection,serverUrl,pwstr=None,RESPONSE=None):
1.3 dwinter 394: """Change"""
1.38 dwinter 395: self.pwstr=pwstr
1.3 dwinter 396: self.collection=collection
1.42 ! dwinter 397: self.serverUrl=serverUrl
1.3 dwinter 398: if RESPONSE is not None:
399: RESPONSE.redirect('manage_main')
400:
401: def manage_AddOSAS_add_contextDataForm(self):
402: """interface for adding the OSAS_add_Metadata"""
1.40 dwinter 403: pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddOSAS_contextData.zpt')).__of__(self)
1.3 dwinter 404: return pt()
405:
406: def manage_AddOSAS_add_contextData(self,id,collection,RESPONSE=None):
407: """add the OSAS_root"""
408: newObj=OSAS_add_contextData(id,collection)
409: self.Destination()._setObject(id,newObj)
410: if RESPONSE is not None:
411: RESPONSE.redirect('manage_main')
412:
413:
414: InitializeClass(OSAS_add_contextData)
1.2 dwinter 415:
416: class OSAS_add_Presentation(Folder):
417: """Hinzufügen der Presentationsinformationen"""
418: security=ClassSecurityInfo()
419:
420: def __init__(self,id):
421: """initialize a new instance"""
422: self.id = id
423:
424:
425: meta_type='OSAS_add_Presentation'
426: manage_options = Folder.manage_options+(
427: {'label':'Main Config','action':'add_Presentation_config'},
428: )
429:
430:
431:
432: security.declarePublic('add_Presentation_config')
433: def add_Presentation_config(self):
434: """Main configuration"""
1.40 dwinter 435: pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ChangeOSAS_addPresentation.zpt')).__of__(self)
1.2 dwinter 436: return pt()
437:
438: security.declarePublic('change_OSAS_add_Presentation')
439: def change_OSAS_add_Presentation(self,RESPONSE=None):
440: """Change"""
441: # self.RootFolderName=RootFolderName
442: if RESPONSE is not None:
443: RESPONSE.redirect('manage_main')
444:
445: def addPresentation(self,path):
446: """Hinzufügen der Presenationsinformation"""
447: return OSAS_add.addPresentation(self,path)
448:
449: def addPresentation2(self):
450: """Eingabe von Metadateninformationen"""
451: return OSAS_add.addPresentation2(self)
452:
453: def manage_AddOSAS_add_PresentationForm(self):
454: """interface for adding the OSAS_add_Metadata"""
1.40 dwinter 455: pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddOSAS_presentation.zpt')).__of__(self)
1.2 dwinter 456: return pt()
457:
458: def manage_AddOSAS_add_Presentation(self,id,RESPONSE=None):
459: """add the OSAS_root"""
460: newObj=OSAS_add_Presentation(id)
461: self.Destination()._setObject(id,newObj)
462: if RESPONSE is not None:
463: RESPONSE.redirect('manage_main')
464:
465:
466: InitializeClass(OSAS_add_Presentation)
467:
468: class OSAS_combineTextImage(Folder):
1.18 dwinter 469: """Hinzufüge der Combine Text und Image"""
1.2 dwinter 470: security=ClassSecurityInfo()
471:
472: def __init__(self,id):
473: """initialize a new instance"""
474: self.id = id
475:
476:
477: meta_type='OSAS_combineTextImage'
478: manage_options = Folder.manage_options+(
479: {'label':'Main Config','action':'combineTextImage_config'},
480: )
481:
1.15 dwinter 482:
1.2 dwinter 483:
484: security.declarePublic('combineTextImage_config')
485: def combineTextImage_config(self):
486: """Main configuration"""
1.40 dwinter 487: pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ChangeOSAS_combineTextImage.zpt')).__of__(self)
1.2 dwinter 488: return pt()
489:
490: security.declarePublic('change_OSAS_combineTextImage')
491: def change_OSAS_combineTextImage(self,RESPONSE=None):
492: """Change"""
493: # self.RootFolderName=RootFolderName
494: if RESPONSE is not None:
495: RESPONSE.redirect('manage_main')
496:
497: security.declarePublic('combineTextImage')
498: def combineTextImage(self,path):
499: """Hinzufügen der Presenationsinformation"""
1.18 dwinter 500: """gibt input formular zur erstellung des texttools meta tag aus"""
1.41 dwinter 501: files = os.listdir(path)
502:
503: texts=[]
504: imagefolders=[]
505: presentationfolders=[]
506:
507: splitted=path.split("/")
508: externxml=readArchimedesXML(splitted[len(splitted)-1])
509:
510: for filename in files:
511: #print "FN",filename
512: if archive.isdigilib2(path+"/"+filename):
513: imagefolders.append(filename)
514:
515: if archive.isFullText(path,filename):
516: #print "HI"
517: texts.append(filename)
518: if archive.isPresentation(path,filename):
519: presentationfolders.append(filename)
520:
521: dom=xml.dom.minidom.parse(path+"/index.meta")
522: try:
523: filelanguage=archive.getText(dom.getElementsByTagName('lang')[0].childNodes)
524: except:
525: filelanguage=""
1.18 dwinter 526:
1.41 dwinter 527: self.REQUEST.SESSION['isolist']=OSAS_add.getISO()
528:
529: tmp=self.REQUEST.SESSION['isolist'].keys()
530: tmp.sort()
531: self.REQUEST.SESSION['isolistsort']=tmp
532: self.REQUEST.SESSION['path']=path
533: self.REQUEST.SESSION['texts']=texts
534: self.REQUEST.SESSION['imagefolders']=imagefolders
535: self.REQUEST.SESSION['presentationfolders']=presentationfolders
536: self.REQUEST.SESSION['filelanguage']=filelanguage
537: self.REQUEST.SESSION['externxml']=externxml
538:
539: newtemplate=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ImageandText')).__of__(self)
540: return newtemplate()
1.28 dwinter 541:
1.33 dwinter 542: def getViewerTemplateSets(self,obj_ids=None):
543: """Get the ViewerTemplateSet title for configuration"""
1.18 dwinter 544: ret=[]
1.33 dwinter 545: viewerTemplateSets=self.ZopeFind(self.viewerTemplateSets,obj_metatypes=['OSAS_viewerTemplateSet'],obj_ids=obj_ids)#assumes viewerTemplateSets folder somewhere in the hierarchie.
546:
1.18 dwinter 547: try:
1.33 dwinter 548: viewerTemplateSets=self.ZopeFind(self.viewerTemplateSets,obj_metatypes=['OSAS_viewerTemplateSet'],obj_ids=obj_ids)#assumes viewerTemplateSets folder somewhere in the hierarchie.
1.28 dwinter 549:
1.33 dwinter 550: for viewerTemplateSet in viewerTemplateSets:
551: ret.append((viewerTemplateSet[1].title,viewerTemplateSet[0],viewerTemplateSet[1]))
1.28 dwinter 552:
1.18 dwinter 553: return ret
554:
555: except:
1.33 dwinter 556: return [('no ViewerTemplateSetfolders','')]
1.18 dwinter 557:
558: def getTextToolsField(self,path,name,default=''):
559: """Lese Textoolsfelder aus index.meta im path aus"""
560:
561: try:
562: dom=xml.dom.minidom.parse(path+"/index.meta")
563: node=dom.getElementsByTagName('texttool')[0] #getNode
564: subnode=node.getElementsByTagName(name)[0]
1.31 dwinter 565:
566: # bei text wird nur der Folder gebraucht
567: if name=="text":
568: splitted=getText(subnode.childNodes).split("/")
569: return splitted[len(splitted)-2]
570: else:
571: return getText(subnode.childNodes)
1.18 dwinter 572: except:
573: return default
1.31 dwinter 574:
1.2 dwinter 575:
576: def combineTextImage2(self,path):
577: """Eingabe von Metadateninformationen"""
1.41 dwinter 578:
579: # correct path
580: path=re.sub("//","/",path)
1.7 dwinter 581: OSAS_add.combineTextImage2(self,path) # Add images
582: splitted=path.split("/")
583: linkPath=splitted[len(splitted)-1]
1.28 dwinter 584: linkViewerEnvironmentImages="http://nausikaa2.mpiwg-berlin.mpg.de/cgi-bin/toc/toc.x.cgi?dir=%s&step=thumb" % linkPath
585: linkViewerEnvironmentOnlyText="http://nausikaa2.mpiwg-berlin.mpg.de/cgi-bin/toc/toc.x.cgi?dir=%s&step=textonly" % linkPath
586:
587: if self.REQUEST.has_key('image'): # bilder vorhanden
588: linkViewerEnvironment=linkViewerEnvironmentImages
589: else:
590: linkViewerEnvironment=linkViewerEnvironmentOnlyText
591:
1.7 dwinter 592: self.REQUEST.SESSION['linkViewerEnvironment']=linkViewerEnvironment
1.28 dwinter 593:
1.24 dwinter 594: writeToContext(path,linkViewerEnvironment,"ECHO standard environment",unique="yes")
1.7 dwinter 595:
1.40 dwinter 596: pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddOSAS_combineTextImageFinal.zpt')).__of__(self)
1.7 dwinter 597:
598: return pt()
599:
1.33 dwinter 600: def isSelectedViewerTemplateSet(self,obj,id):
1.18 dwinter 601: """is ausgewählt"""
602:
1.33 dwinter 603: if self.REQUEST['viewerTemplateSet']==id:
1.18 dwinter 604: return 1
605: else:
606: return None
1.7 dwinter 607:
1.24 dwinter 608: def writeToContext(path,link,description,unique="no"):
1.7 dwinter 609: """Created an additional entry to the index.meta file of path"""
610: dom=xml.dom.minidom.parse(path+"/index.meta")
611: node=dom.getElementsByTagName('resource')[0]
612:
1.24 dwinter 613: if unique=="yes":
614:
615: contexts=node.getElementsByTagName('context')
616: for context in contexts:
617: nameTag=getText(context.getElementsByTagName('name')[0].childNodes)
618: linkTag=getText(context.getElementsByTagName('link')[0].childNodes)
619:
1.28 dwinter 620:
1.24 dwinter 621: linkTag=re.sub("\:86","",linkTag) # alter port 86 gleich ohne port nummer (hack)
622: if (nameTag==description) and (linkTag==link):
623: node.removeChild(context).unlink()
624:
1.7 dwinter 625: subnode=dom.createElement('context')
626:
627: linknode=dom.createElement('link')
628: namelinknode=dom.createTextNode(link)
629: linknode.appendChild(namelinknode)
630: subnode.appendChild(linknode)
631:
632: linknode=dom.createElement('name')
633: namelinknode=dom.createTextNode(description)
634: linknode.appendChild(namelinknode)
635: subnode.appendChild(linknode)
636:
637: node.appendChild(subnode)
638:
639: writefile=file(path+"/index.meta","w")
640: #print path+"/index.meta"
1.36 dwinter 641: writefile.write(dom.toxml(encoding="UTF-8"))
1.7 dwinter 642: writefile.close()
1.2 dwinter 643:
644: def manage_AddOSAS_combineTextImageForm(self):
645: """interface for adding the OSAS_add_Metadata"""
1.40 dwinter 646: pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddOSAS_combineTextImage.zpt')).__of__(self)
1.2 dwinter 647: return pt()
648:
649: def manage_AddOSAS_combineTextImage(self,id,RESPONSE=None):
650: """add the OSAS_root"""
651: newObj=OSAS_combineTextImage(id)
652: self.Destination()._setObject(id,newObj)
653: if RESPONSE is not None:
654: RESPONSE.redirect('manage_main')
655:
656:
657: InitializeClass(OSAS_combineTextImage)
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>