File:  [Repository] / OSAS / OSA_system / OSAS_addfiles.py
Revision 1.36: download - view: text, annotated - select for diffs - revision graph
Thu Aug 19 19:01:17 2004 UTC (19 years, 10 months ago) by dwinter
Branches: MAIN
CVS tags: HEAD
utf-8 fixed

    1: # Methoden und Classen zum Hinzufuegen von Dokumenten
    2: 
    3: 
    4: from OSAS_helpers import readArchimedesXML, getText
    5: import os
    6: import xml.dom.minidom
    7: import re
    8: import urllib
    9: import OSAS_add
   10: import OSAS_show
   11: import string
   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
   17: import archive # check if this is necessary
   18: 
   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+"&nbsp;"+"&nbsp;"
   30:     return tmp
   31: 
   32: 
   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"""
   52:         pt=PageTemplateFile('Products/OSA_system/zpt/ChangeOSAS_addDocument.zpt').__of__(self)
   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"""
   65:         return OSAS_add.add(self.standardMD,no_upload=1)
   66: 
   67: 
   68:     security.declarePublic('add2')
   69:     def add2(self):
   70:         """ anlegen naechster schritt"""
   71:         return OSAS_add.add2(self.standardMD)
   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: 
   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']
   95: 	metadata['archive-path']=os.path.split(self.REQUEST.SESSION['pathnew'])[0]
   96: 	#metadata['folder_name']=self.REQUEST.SESSION['folder_name']
   97: 	metadata['folder_name']=os.path.split(self.REQUEST.SESSION['pathnew'])[1]
   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():
  105:             
  106:             #print str(self.metadata[tag]).decode('utf-8').encode('utf-8')
  107:             self.metadataprint=self.metadataprint+"<"+tag+">"+self.metadata[tag]+"</"+tag+">\n"
  108: 
  109: 	newtemplate=PageTemplateFile('Products/OSA_system/zpt/index_meta').__of__(self)
  110: 	newtemplate.content_type="text/plain"
  111: 	renderxml = newtemplate(encoding='utf-8')
  112:         #return renderxml
  113:         metapath=self.REQUEST.SESSION['pathnew']+"/index.meta"
  114: 	
  115: 	f=open(metapath,'w')
  116: 
  117: 	f.write(renderxml)
  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)
  123: 
  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"
  144: 	renderxml = newtemplate(encoding='utf-8')
  145:         metapath=self.REQUEST.SESSION['pathnew']+"/index.meta"
  146: 	
  147: 	
  148: 	f=open(metapath,'w')
  149: 	f.write(renderxml)
  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: 
  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"""
  162:         return OSAS_add.addImages2(self)
  163: 
  164:     
  165: def manage_AddOSAS_add_DocumentForm(self):
  166:     """interface for adding the OSAS_add_Metadata"""
  167:     pt=PageTemplateFile('Products/OSA_system/zpt/AddOSAS_document.zpt').__of__(self)
  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: 
  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"""
  200:         pt=PageTemplateFile('Products/OSA_system/zpt/ChangeOSAS_addText.zpt').__of__(self)
  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: 
  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:     
  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)
  225:     
  226: def manage_AddOSAS_add_TextForm(self):
  227:     """interface for adding the OSAS_add_Metadata"""
  228:     pt=PageTemplateFile('Products/OSA_system/zpt/AddOSAS_text.zpt').__of__(self)
  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)
  240: 
  241: 
  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: 
  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
  262:                     begin=""
  263:                     end=""
  264:                     if self.depth==1:
  265:                         begin="<b>"
  266:                         end="</b>"
  267:                         
  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"
  269: 
  270: 
  271:                     
  272:             def endElement(self,name):
  273:                 if name=="element":
  274:                     self.depth-=1
  275: 
  276: 
  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:
  286: 	    return URL
  287:             return urllib.urlopen(URL).read()
  288: 	    
  289:       
  290:     def __init__(self,id,collection):
  291:         self.id=id
  292:         self.collection=collection
  293: 
  294:   
  295:    
  296: 
  297:     def getPartners(self,URL):
  298:         """Zeige Partnerliste"""
  299:         class requestHandler(ContentHandler):
  300:             def __init__(self):
  301:                 self.ret=[]
  302:                 
  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:             
  312:         	parser=make_parser()
  313:         	curHandler=requestHandler()
  314: 	        parser.setContentHandler(curHandler)
  315:             
  316:         	parser.parse(urllib.urlopen(URL))
  317: 	        return curHandler.ret
  318:         except:
  319:         	return [("",URL)]
  320: 	    
  321:     
  322:     def addContextData(self,path):
  323:         """Hinzufuegen zu einer Sammlung"""
  324:         try:
  325:             urllib.urlopen(self.REQUEST['SERVER_URL']+path+"/index.meta")
  326:             
  327:         except:
  328:             return self.REQUEST['SERVER_URL']+path+"/index.meta file has to exist!"
  329: 
  330:         links=[(path,'standard storage')]
  331:         
  332:         links+=OSAS_show.readContexts(path) # auslesen von contexten fuer den link
  333:         #print "LINK",links
  334:         #return links
  335:         self.REQUEST.SESSION['links']=links
  336:         pt=PageTemplateFile('Products/OSA_system/zpt/contextDataMain.zpt').__of__(self)
  337:         return pt()
  338:     
  339:     
  340:     def addContextData2(self,path,collection,link,label,description,content_type,responsible,weight,credits=None):
  341:         """Hinzufuegen der Resource"""
  342:         splitted=path.split("/")
  343:         #print "BLU"
  344:         id=splitted[len(splitted)-1]
  345:         title=splitted[len(splitted)-1]
  346:         metalink=self.REQUEST['SERVER_URL']+path+"/index.meta"
  347:         
  348:         #link=TOBEDONE"
  349:         """Hinzufügen der Ressource"""
  350: 
  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})
  352: 
  353:         print params
  354:         
  355:         retStr=urllib.urlopen(collection+"/addResource",params).read()
  356: 
  357: 	if not retStr:
  358:             return "An Error occured adding the resource\n"
  359: 	
  360: 
  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()
  364: 
  365:         return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL2']+'?path='+path)
  366:         
  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"""
  374:         pt=PageTemplateFile('Products/OSA_system/zpt/ChangeOSAS_add_contextData.zpt').__of__(self)
  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"""
  386:     pt=PageTemplateFile('Products/OSA_system/zpt/AddOSAS_contextData.zpt').__of__(self)
  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)
  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"""
  418:         pt=PageTemplateFile('Products/OSA_system/zpt/ChangeOSAS_addPresentation.zpt').__of__(self)
  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"""
  438:     pt=PageTemplateFile('Products/OSA_system/zpt/AddOSAS_presentation.zpt').__of__(self)
  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):
  452:     """Hinzufüge der Combine Text und Image"""
  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:         
  465: 
  466:         
  467:     security.declarePublic('combineTextImage_config')
  468:     def combineTextImage_config(self):
  469:         """Main configuration"""
  470:         pt=PageTemplateFile('Products/OSA_system/zpt/ChangeOSAS_combineTextImage.zpt').__of__(self)
  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"""
  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:                 
  510: 	self.REQUEST.SESSION['isolist']=OSAS_add.getISO()
  511:         
  512: 	tmp=self.REQUEST.SESSION['isolist'].keys()
  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: 	
  525:     def getViewerTemplateSets(self,obj_ids=None):
  526:         """Get the ViewerTemplateSet title for configuration"""
  527:         ret=[]
  528:         viewerTemplateSets=self.ZopeFind(self.viewerTemplateSets,obj_metatypes=['OSAS_viewerTemplateSet'],obj_ids=obj_ids)#assumes viewerTemplateSets folder somewhere in the hierarchie.
  529: 
  530:         try:
  531:             viewerTemplateSets=self.ZopeFind(self.viewerTemplateSets,obj_metatypes=['OSAS_viewerTemplateSet'],obj_ids=obj_ids)#assumes viewerTemplateSets folder somewhere in the hierarchie.
  532:             
  533:             for viewerTemplateSet in viewerTemplateSets:
  534:                 ret.append((viewerTemplateSet[1].title,viewerTemplateSet[0],viewerTemplateSet[1]))
  535:             
  536:             return ret
  537:         
  538:         except:
  539:             return [('no ViewerTemplateSetfolders','')]
  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]
  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)
  555:         except:
  556:             return default
  557:    
  558: 
  559:     def combineTextImage2(self,path):
  560:         """Eingabe von Metadateninformationen"""
  561: 	
  562: 	# correct path
  563: 	path=re.sub("//","/",path)
  564:         OSAS_add.combineTextImage2(self,path) # Add images
  565:         splitted=path.split("/")
  566:         linkPath=splitted[len(splitted)-1]
  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:             
  575:         self.REQUEST.SESSION['linkViewerEnvironment']=linkViewerEnvironment
  576:         
  577:         writeToContext(path,linkViewerEnvironment,"ECHO standard environment",unique="yes")
  578:         
  579:         pt=PageTemplateFile('Products/OSA_system/zpt/AddOSAS_combineTextImageFinal.zpt').__of__(self)
  580: 
  581:         return pt()
  582: 
  583:     def isSelectedViewerTemplateSet(self,obj,id):
  584:         """is ausgewählt"""
  585:         
  586:         if self.REQUEST['viewerTemplateSet']==id:
  587:             return 1
  588:         else:
  589:             return None
  590: 
  591: def writeToContext(path,link,description,unique="no"):
  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: 
  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:             
  603:             
  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:                     
  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"
  624:     writefile.write(dom.toxml(encoding="UTF-8"))
  625:     writefile.close()
  626: 
  627: def manage_AddOSAS_combineTextImageForm(self):
  628:     """interface for adding the OSAS_add_Metadata"""
  629:     pt=PageTemplateFile('Products/OSA_system/zpt/AddOSAS_combineTextImage.zpt').__of__(self)
  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>