Annotation of OSAS/OSA_system/OSAS_addfiles.py, revision 1.28

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

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>