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