Annotation of OSAS/OSA_system/OSAS_add.py, revision 1.18

1.18    ! dwinter     1: #Neue Version Begin 5.4.2004
1.1       dwinter     2: 
                      3: 
                      4: """Methoden zum hinzufügen von Dokumenten ins Archiv"""
1.13      dwinter     5: from OSAS_helpers import readArchimedesXML 
1.17      dwinter     6: try:
                      7:    import archive
                      8: except:
                      9:    print "archive not imported"
                     10:    
1.1       dwinter    11: import os
                     12: from Products.PageTemplates.PageTemplateFile import PageTemplateFile
                     13: from Products.PageTemplates.PageTemplate import PageTemplate
                     14: import string
                     15: import urllib
                     16: import xml.dom.minidom
1.12      dwinter    17: from time import localtime,strftime
1.18    ! dwinter    18: from Globals import package_home
1.1       dwinter    19: 
                     20: import re
                     21: def add(self, no_upload=0):
                     22:         """ Add metadata or metadata and documents to the repository
                     23:         no_upload=0 kein upload sonst upload von documententen"""
                     24: 
1.18    ! dwinter    25:         #self.referencetypes=self.ZopeFind(self,obj_metatypes=['OSAS_MetadataMapping'])
        !            26:    self.referencetypes=self.ZopeFind(self)
        !            27:    
1.12      dwinter    28:    newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_add_new').__of__(self)
1.1       dwinter    29:         self.REQUEST.SESSION['path']=self.REQUEST['path']
                     30:    if no_upload==0:
                     31:        self.REQUEST.SESSION['no_upload']='yes'
                     32:    else:
                     33:        if self.REQUEST.SESSION.has_key('no_upload'):
                     34:            del self.REQUEST.SESSION['no_upload']
                     35:            
                     36:    return newtemplate()
                     37: 
                     38: 
                     39: 
                     40: def getISO():
1.10      dwinter    41:    """ISO"""
1.9       dwinter    42:    try:
1.18    ! dwinter    43:        f=file(os.path.join(package_home(globals()),'iso639-1.inc'),'r').readlines()
        !            44: 
1.9       dwinter    45:        ret={}
                     46:        for lineraw in f:
                     47:            line=lineraw.encode('ascii','replace')
                     48:            value=string.split(line,'\t')[0].encode('ascii','replace')
                     49:            key=string.split(line,'\t')[1].encode('ascii','replace')
1.10      dwinter    50:            ret[key]=value
1.9       dwinter    51:    except:
                     52:        ret={}
1.1       dwinter    53:         return ret
                     54: 
                     55: def add2(self):
                     56:    self.reftype=self.REQUEST['Reference Type']
1.18    ! dwinter    57:    self.REQUEST.SESSION['reftype']=self.reftype
        !            58:    self.bibdata={}
        !            59:    for referenceType in self.referencetypes:
        !            60:        print referenceType
        !            61:        self.bibdata[referenceType[1].title]=referenceType[1].fields
1.1       dwinter    62: 
                     63:    self.fields=self.bibdata[self.reftype]
                     64:    self.isolist=getISO()
1.10      dwinter    65:    tmp=getISO().keys()
                     66:    tmp.sort()
                     67:    self.isokeys=tmp
1.1       dwinter    68:         #listed=[ x for x in self.isolist.keys()]
                     69:    #print listed
                     70:         #sorted=listed.sort()
                     71:    #print sorted
                     72:    
1.12      dwinter    73:    newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_add_bibdata').__of__(self)
1.1       dwinter    74:    return newtemplate()
                     75:    #return self.fields
                     76: 
                     77: 
                     78: def parse_query_string(str):
                     79:    queries={}
                     80:    key=""
                     81:    value=""
                     82:    tmp=""
                     83:    toggle="key"
                     84:    str=urllib.unquote(str)
                     85:    for i in str:
                     86:        if i=="=":
                     87:            key=tmp
                     88:            toggle="value"              
                     89:            tmp=""
                     90:        elif i=="&":
                     91:            queries[key]=tmp
                     92:            tmp=""
                     93:            toggle="key"
                     94:        else:
                     95:            if toggle=="key":
                     96:                if i=="+" : i="-"
                     97:            else:
                     98:                if i=="+" : i=" "
                     99:            tmp=tmp+i
                    100:    queries[key]=tmp
                    101:    return queries
                    102:    
                    103: def add3(self):
                    104:    """Foldername"""
                    105:    metadata=parse_query_string(self.REQUEST['QUERY_STRING'])
                    106:    self.REQUEST.SESSION['metadata']=metadata
1.18    ! dwinter   107:    vorschlag=[]
        !           108:    if metadata.has_key('author'):
        !           109:        vorschlag.append(metadata['author'][:5])
        !           110:    if metadata.has_key('title'):
        !           111:        vorschlag.append(metadata['title'][:5])
        !           112:    if metadata.has_key('year'):
        !           113:        vorschlag.append(metadata['year'])
        !           114:    
        !           115:        
        !           116:    vorschlag_naming=string.join(vorschlag,"_")
        !           117:    
        !           118:        
1.17      dwinter   119:    self.vorschlag_naming=unicode(vorschlag_naming,'ascii','ignore')
1.1       dwinter   120:    if self.REQUEST.SESSION.has_key('no_upload'):
                    121:        self.REQUEST.SESSION['folder_name']=self.REQUEST.SESSION['path']
                    122:        return add5(self)
                    123:    else:
1.12      dwinter   124:        newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_add_naming').__of__(self)
1.1       dwinter   125:        return newtemplate()
                    126:    
                    127: 
                    128: def add4(self):
                    129:    self.path=re.search(r"/mpiwg(.*)",self.REQUEST.SESSION['path']).group(1)
                    130:    
                    131:    self.folder_name=self.REQUEST['folder_name']
1.18    ! dwinter   132:    # next has to be changed -> error if back button is used!!
1.1       dwinter   133:    self.REQUEST.SESSION['path']=self.REQUEST.SESSION['path']+"/"+self.REQUEST['folder_name']
                    134: 
                    135: 
                    136:    self.REQUEST.SESSION['folder_name']=self.folder_name
                    137:    self.image_folder_name="pageimg"
1.12      dwinter   138:    newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_upload').__of__(self)
1.1       dwinter   139:    return newtemplate()
                    140:    
                    141: def add5(self):
                    142:    """ADD INDEX.META"""
1.12      dwinter   143:    newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_add_metadata').__of__(self)
1.1       dwinter   144:    return newtemplate()
                    145: 
                    146: def add6(self):
                    147:    metadata=parse_query_string(self.REQUEST['QUERY_STRING'])
                    148:    metadata['archive-path']=os.path.split(self.REQUEST.SESSION['path'])[0]
                    149:    #metadata['folder_name']=self.REQUEST.SESSION['folder_name']
                    150:    metadata['folder_name']=os.path.split(self.REQUEST.SESSION['path'])[1]
                    151:    metadata['content-type']="scanned document"
                    152:    self.reftype=self.REQUEST.SESSION['reftype']
                    153:    self.REQUEST.SESSION['add_metadata']=metadata   
                    154:    self.add_metadata=metadata
                    155:    self.metadata=self.REQUEST.SESSION['metadata']
                    156:    self.metadataprint=""
                    157:    for tag in self.metadata.keys():
                    158:        self.metadataprint=self.metadataprint+"<"+tag+">"+self.metadata[tag]+"</"+tag+">\n"
                    159: 
1.12      dwinter   160:    newtemplate=PageTemplateFile('Products/OSA_system/zpt/index_meta').__of__(self)
1.1       dwinter   161:    newtemplate.content_type="text/plain"
                    162:    renderxml = newtemplate()
                    163:    if self.REQUEST.SESSION.has_key('no_upload'):
                    164:        metapath=self.REQUEST.SESSION['path']+"/index.meta"
                    165:    else:
                    166:        metapath=self.add_metadata['archive-path']+"/"+self.add_metadata['folder_name']+"/index.meta"
                    167:    
                    168:    f=open(metapath,'w')
                    169:    f.writelines(renderxml)
                    170:    f.close()
1.10      dwinter   171:    os.chmod(metapath,0664)
                    172:    os.popen('chmod -R 0775 %s'%self.add_metadata['archive-path']+"/"+self.add_metadata['folder_name']) 
1.1       dwinter   173:    if self.REQUEST.SESSION.has_key('no_upload'):
                    174:        
                    175:        #newtemplate2=PageTemplateFile('/usr/local/mpiwg/Zope/Extensions/done',"text/html").__of__(self)
                    176:        return self.REQUEST.response.redirect(self.REQUEST['URL2']+"?path="+self.REQUEST.SESSION['path'])
                    177:    else:
                    178:                 #print self.add_metadata['archive-path']
                    179:        self.viewpath=re.search(r"/mpiwg/online/(.*)",self.add_metadata['archive-path']).group(1) 
1.12      dwinter   180:        newtemplate2=PageTemplateFile('Products/OSA_system/zpt/OSAS_saved').__of__(self)
1.1       dwinter   181:    
                    182:        
                    183:        newtemplate2.content_type="text/html"
                    184:        self.REQUEST.response.setHeader('Content-Type','text/html')
                    185:    
                    186: 
                    187:        return newtemplate2()
                    188: 
                    189: 
1.12      dwinter   190: 
1.1       dwinter   191: 
                    192: def date(self):
                    193:    return strftime("%d.%m.%Y",localtime()) 
                    194: 
                    195: 
                    196: def addPresentation(self,path):
                    197:    """add presentation to the path"""
                    198:    
                    199:    dom=xml.dom.minidom.parse(path+"/index.meta")
1.3       dwinter   200:    
                    201:    
1.1       dwinter   202:    try:
                    203:        author=archive.getText(dom.getElementsByTagName('author')[0].childNodes)
                    204:    except:
1.9       dwinter   205:        try:
                    206:            author=archive.getText(dom.getElementsByTagName('Author')[0].childNodes)
                    207:        except:
                    208:            author=archive.getText(dom.getElementsByTagName('Editor')[0].childNodes)
                    209:            
1.1       dwinter   210:    title=archive.getText(dom.getElementsByTagName('title')[0].childNodes)
                    211:    try:
                    212:        date=archive.getText(dom.getElementsByTagName('year')[0].childNodes)
                    213:    except:
                    214:        try:
                    215:            date=archive.getText(dom.getElementsByTagName('Year')[0].childNodes)
                    216:        except:
                    217:            date=archive.getText(dom.getElementsByTagName('date')[0].childNodes)
                    218:    i=1
                    219:    while os.path.exists("%02d-presentation"%i):
                    220:        i+=1
                    221:            self.REQUEST.SESSION['presentationname']="%02d-presentation"%i
                    222:    self.REQUEST.SESSION['path']=path
                    223:    self.REQUEST.SESSION['xmlvorschlag']="""<info>
                    224:    <author>%s</author>
                    225:    <title>%s</title>
                    226:    <date>%s</date>
                    227:    <display>yes</display>
                    228: </info>"""%(author,title,date)
                    229:    
1.12      dwinter   230:    newtemplate=PageTemplateFile('Products/OSA_system/zpt/addPresentation').__of__(self)
1.1       dwinter   231:    return newtemplate()
                    232: 
                    233: def addPresentation2(self):
                    234:    """add presentation """
1.2       dwinter   235:    folder_name=self.REQUEST['folder_name']
1.1       dwinter   236:    #print self.REQUEST['folder_name']
1.2       dwinter   237:    content_description=self.REQUEST['content_description']
1.1       dwinter   238: 
1.2       dwinter   239:    path=self.REQUEST.SESSION['path']
1.1       dwinter   240: 
                    241:    if not self.REQUEST.has_key('fileupload'):
1.2       dwinter   242:        xmlinfo=self.REQUEST['xmltext']
1.1       dwinter   243:        file_name="info.xml"
                    244: 
                    245:    else:
                    246:        file_name=self.REQUEST['fileupload'].filename
1.2       dwinter   247:        xmlinfo=self.REQUEST.form['fileupload'].read()
                    248:        # hack Multipart auswertung funktioniert nicht ausser bei mozilla
1.1       dwinter   249:        file_name="info.xml"
1.2       dwinter   250:        xmlinfo=self.REQUEST['xmltext']
1.1       dwinter   251:    try:
1.2       dwinter   252:        os.mkdir(path+"/"+folder_name)
1.1       dwinter   253:    except:
                    254:        """nothing"""
1.5       dwinter   255:    #print "NAME:",file_name
1.2       dwinter   256:    f=open(path+"/"+folder_name+"/"+file_name,"w")
                    257:    f.write(xmlinfo)
1.1       dwinter   258:    f.close()
1.2       dwinter   259:    os.chmod(path+"/"+folder_name,0755)
                    260:    os.chmod(path+"/"+folder_name+"/"+file_name,0644)
                    261:    addDirsToIndexMeta(path,folder_name,content_description,'presentation')
1.1       dwinter   262:    
1.2       dwinter   263:    return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL2']+'?path='+path)
1.1       dwinter   264: 
                    265: def addText(self,path):
                    266:    """add fulltext to the path"""
                    267:    self.REQUEST.SESSION['existing_names']=['pageimg'] # to be done generate list of existing text files
                    268:    self.REQUEST.SESSION['path']=path
1.12      dwinter   269:    newtemplate=PageTemplateFile('Products/OSA_system/zpt/addText').__of__(self)
1.1       dwinter   270:    return newtemplate()
                    271: 
                    272: def addText2(self):
1.2       dwinter   273:    folder_name=self.REQUEST['folder_name']
1.1       dwinter   274:    #print self.REQUEST['folder_name']
1.2       dwinter   275:    content_description=self.REQUEST['content_description']
                    276:    path=self.REQUEST.SESSION['path']
                    277:    file_name=self.REQUEST['fileupload'].filename
                    278:    filedata=self.REQUEST.form['fileupload'].read()
                    279:    os.mkdir(path+"/"+folder_name)
                    280:    f=open(path+"/"+folder_name+"/"+file_name,"w")
                    281:    f.write(filedata)
1.1       dwinter   282:    f.close()
1.2       dwinter   283:    os.chmod(path+"/"+folder_name,0755)
                    284:    os.chmod(path+"/"+folder_name+"/"+file_name,0644)
                    285:    addDirsToIndexMeta(path,folder_name,content_description,'fulltext')
1.1       dwinter   286: 
1.2       dwinter   287:    return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL2']+'?path='+path)
1.1       dwinter   288: 
                    289: def addTextExternal(self,path,texturl,version):
                    290:    """hinzufügen eines externen textes"""
                    291:    try: #neue text version einlesen
                    292:        texttemp=urllib.urlopen(texturl).readlines()
                    293:        text=""
                    294:        for line in texttemp:
                    295:            text=text+line
                    296:    except: #fehler beim lesen des textes
                    297:        return "ERROR: cannot read: %s"%texturl
                    298:    if TextExternalError(text): #kein xml header
                    299:        return "ERROR: cannot read: %s"%texturl, "received:",text 
                    300:    textpath=getNewTextPath(path) #erzeuge neuen Ornder für den Text
                    301:    splitted=string.split(texturl,"/")
                    302:    name=splitted[len(splitted)-1] #Name des XML-files
                    303:    try:
                    304:        writefile=file(path+"/"+textpath+"/"+name,"w")
                    305:    except:
                    306:        return"ERROR: cannot write: %s"%path+"/"+textpath+"/"+name
                    307:    writefile.write(text)
                    308:    writefile.close()
                    309:    os.chmod(path+"/"+textpath+"/"+name,0644)
                    310: 
                    311:    #add new file to XML
                    312:    dom=xml.dom.minidom.parse(path+"/index.meta")
                    313:    node=dom.getElementsByTagName('resource')[0] #getNode
                    314: 
                    315:    subnode=dom.createElement('dir')
                    316:    
                    317:    namenode=dom.createElement('name')
                    318:    namenodetext=dom.createTextNode(textpath)
                    319:    namenode.appendChild(namenodetext)
                    320:    subnode.appendChild(namenode)
                    321:        
                    322:    descriptionnode=dom.createElement('description')
                    323:    descriptionnodetext=dom.createTextNode('archimedes text:'+version)
                    324:    descriptionnode.appendChild(descriptionnodetext)
                    325:    subnode.appendChild(descriptionnode)
                    326: 
                    327:    contentnode=dom.createElement('content-type')
                    328:    contentnodetext=dom.createTextNode('fulltext')
                    329:    contentnode.appendChild(contentnodetext)
                    330:    subnode.appendChild(contentnode)
                    331:    
                    332:    node.appendChild(subnode)
                    333: 
                    334:    writefile=file(path+"/index.meta","w")
                    335:    writefile.write(dom.toxml().encode('utf-8'))
                    336:    writefile.close()
                    337: 
                    338:    #change texttool tag
                    339:    dom=xml.dom.minidom.parse(path+"/index.meta")
                    340:    node=dom.getElementsByTagName('meta')[0] #getNode
                    341: 
                    342:    try: #texttool existiert schon
                    343:        subnode=node.getElementsByTagName('texttool')[0]
                    344:    except: #wenn nicht Fehler ausgeben
                    345:        return "ERROR:no presentation configured yet, user Web Front End to do so!"
                    346:    
                    347: 
                    348:    try:
                    349:        texttoolnodelist=subnode.getElementsByTagName('text')
                    350:    
                    351:        if not len(texttoolnodelist)==0: #texttool tag existiert schon, dann löschen
                    352:            subsubnode=subnode.removeChild(texttoolnodelist[0])
                    353:            subsubnode.unlink()
                    354:    except:
                    355:        """nothing"""
                    356:    # text neu anlegen
                    357:    textfoldernode=dom.createElement('text')
                    358:    textfoldernodetext=dom.createTextNode(textpath+"/"+name)
                    359:    textfoldernode.appendChild(textfoldernodetext)
                    360:    subnode.appendChild(textfoldernode)
                    361: 
                    362:    #index.meta ausgeben
                    363:    writefile=file(path+"/index.meta","w")
                    364:    writefile.write(dom.toxml().encode('utf-8'))
                    365:    writefile.close()
                    366:    
                    367:    #registrieren
1.6       dwinter   368:    return urllib.urlopen("http://nausikaa2.rz-berlin.mpg.de:86/cgi-bin/toc/admin/reg.cgi?path=%s"%path).readlines()
                    369:    
1.1       dwinter   370:    
                    371: 
                    372: def TextExternalError(text):
                    373:    firsts=text[0:10]
1.5       dwinter   374:    #print firsts
1.1       dwinter   375:    try:
                    376:        match=re.search(r".*<?xml.*",firsts)
                    377:    except:
                    378:        return 1
                    379:    return 0
                    380: 
                    381: def getNewTextPath(path):
                    382:    i=1
                    383:    while os.path.exists(path+"/fulltext%i"%i):
                    384:        i+=1
                    385:    os.mkdir(path+"/fulltext%i"%i)
                    386:    os.chmod(path+"/fulltext%i"%i,0755)
                    387:    return "fulltext%i"%i
                    388: 
                    389: def addImages(self,path):
                    390:    """Imagesfolder to the path"""
                    391:    self.REQUEST.SESSION['existing_names']=['pageimg'] # to be done generate list of existing pageimages files
                    392:    self.REQUEST.SESSION['path']=path
1.12      dwinter   393:    newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_addImages').__of__(self)
1.1       dwinter   394:    return newtemplate()
                    395: 
                    396: def addImages2(self):
1.2       dwinter   397:    
1.1       dwinter   398:    self.image_folder_name=self.REQUEST['folder_name']
                    399:    #print self.REQUEST['folder_name']
                    400:    self.content_description=self.REQUEST['content_description']
                    401:    #self.path=self.REQUEST.SESSION['path']
                    402:    
                    403:    
                    404:    self.content_type='images'
                    405:    addDirsToIndexMeta(self.REQUEST.SESSION['path'],self.image_folder_name,self.content_description,self.content_type)
                    406:    self.REQUEST.SESSION['path']=re.search(r"/mpiwg(.*)",self.REQUEST.SESSION['path']).group(1)
1.12      dwinter   407:    newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_upload2').__of__(self)
1.1       dwinter   408:    return newtemplate()
1.2       dwinter   409:    
1.1       dwinter   410: 
                    411: 
                    412: def addDirsToIndexMeta(path,folder_name,content_description,content_type):
                    413:    #f=file(path+"/index.meta",r)
                    414:    dom=xml.dom.minidom.parse(path+"/index.meta")
                    415:    node=dom.getElementsByTagName('resource')[0] #getNode
                    416: 
                    417:    subnode=dom.createElement('dir')
                    418:    
                    419:    namenode=dom.createElement('name')
                    420:    namenodetext=dom.createTextNode(folder_name)
                    421:    namenode.appendChild(namenodetext)
                    422:    subnode.appendChild(namenode)
                    423:        
                    424:    descriptionnode=dom.createElement('description')
                    425:    descriptionnodetext=dom.createTextNode(content_description)
                    426:    descriptionnode.appendChild(descriptionnodetext)
                    427:    subnode.appendChild(descriptionnode)
                    428: 
                    429:    contentnode=dom.createElement('content-type')
                    430:    contentnodetext=dom.createTextNode(content_type)
                    431:    contentnode.appendChild(contentnodetext)
                    432:    subnode.appendChild(contentnode)
                    433:    
                    434:    node.appendChild(subnode)
                    435: 
                    436:    writefile=file(path+"/index.meta","w")
                    437:    writefile.write(dom.toxml().encode('utf-8'))
                    438:    writefile.close()
                    439: 
1.5       dwinter   440: def readArchimedesXML(folder):
                    441:    """gib URL aus """
                    442:    XML=urllib.urlopen("http://archimedes.mpiwg-berlin.mpg.de/cgi-bin/toc/toc.cgi?step=xmlcorpusmanifest").read()
                    443:    #print XML
                    444:    dom=xml.dom.minidom.parseString(XML)
                    445:    items=dom.getElementsByTagName('item')
                    446:    dict={}
                    447:    
                    448:    for item in items:
                    449:        #print item.attributes['dir'].value
                    450:        try:        
1.6       dwinter   451:            dict[item.attributes['dir'].value]=item.attributes['xml'].value
1.5       dwinter   452:            #print item.attributes['dir'].value,item.attributes['text'].value
                    453:        except:
                    454:            """nothing"""
                    455:        
                    456:    if dict.has_key(folder):
                    457:        return dict[folder]
                    458:    else:
                    459:        return ""
1.12      dwinter   460:    
1.5       dwinter   461: 
1.1       dwinter   462:    
                    463: 
                    464: def combineTextImage2(self,path):
                    465:    """erstellt bzw. ändert texttool meta tag"""
                    466:    dom=xml.dom.minidom.parse(path+"/index.meta")
                    467:    node=dom.getElementsByTagName('meta')[0] #getNode
                    468: 
                    469: 
                    470:    subnodelist=node.getElementsByTagName('texttool')
                    471:    if not len(subnodelist)==0: #texttool tag existiert schon, dann löschen
                    472:        subnode=node.removeChild(subnodelist[0])
                    473:        subnode.unlink()
                    474: 
                    475:    subnode=dom.createElement('texttool') #neu erzeugen
                    476: 
                    477:    
                    478:    presentfile=os.listdir(path+"/"+self.REQUEST['presentation'])[0]
                    479:    
                    480: 
                    481:    displaynode=dom.createElement('display')
                    482:    displaynodetext=dom.createTextNode('yes')
                    483:    displaynode.appendChild(displaynodetext)
                    484:    subnode.appendChild(displaynode)
                    485:    
                    486:    if self.REQUEST.has_key('image'):   
                    487:        namenode=dom.createElement('image')
                    488:        namenodetext=dom.createTextNode(self.REQUEST['image'])
                    489:        namenode.appendChild(namenodetext)
                    490:        subnode.appendChild(namenode)
                    491:        
                    492:    if self.REQUEST.has_key('text'):            
                    493:        textfile=os.listdir(path+"/"+self.REQUEST['text'])[0]
                    494:        textfoldernode=dom.createElement('text')
1.6       dwinter   495:        textfoldernodetext=dom.createTextNode(path+"/"+self.REQUEST['text']+"/"+textfile)
1.1       dwinter   496:        textfoldernode.appendChild(textfoldernodetext)
                    497:        subnode.appendChild(textfoldernode)
                    498: 
1.5       dwinter   499:    if self.REQUEST.has_key('external'):#USE CVS instead of local text
                    500:        textfoldernode=dom.createElement('text')
                    501:        textfoldernodetext=dom.createTextNode(self.REQUEST.SESSION['externxml'])
                    502:        textfoldernode.appendChild(textfoldernodetext)
                    503:        subnode.appendChild(textfoldernode)
                    504:        
1.1       dwinter   505:    if self.REQUEST.has_key('pagebreak'):   
                    506:        pagebreaknode=dom.createElement('pagebreak')
                    507:        pagebreaknodetext=dom.createTextNode(self.REQUEST['pagebreak'])
                    508:        pagebreaknode.appendChild(pagebreaknodetext)
                    509:        subnode.appendChild(pagebreaknode)
                    510: 
                    511:    if self.REQUEST.has_key('presentation'):    
                    512:        presentationnode=dom.createElement('presentation')
                    513:        presentationnodetext=dom.createTextNode(self.REQUEST['presentation']+"/"+presentfile)
                    514:        presentationnode.appendChild(presentationnodetext)
                    515:        subnode.appendChild(presentationnode)
                    516:    
1.8       dwinter   517: 
                    518:    if self.REQUEST.has_key('xslt'):
                    519:        if not self.REQUEST['xslt']=="":
                    520:            xsltnode=dom.createElement('xslt')
                    521:            xsltnodetext=dom.createTextNode(self.REQUEST['xslt'])
                    522:            xsltnode.appendChild(xsltnodetext)
                    523:            subnode.appendChild(xsltnode)
                    524: 
1.13      dwinter   525:    
1.11      dwinter   526:    if self.REQUEST.has_key('thumbtemplate'):
                    527:        if not self.REQUEST['thumbtemplate']=="":
                    528:            xsltnode=dom.createElement('thumbtemplate')
                    529:            xsltnodetext=dom.createTextNode(self.REQUEST['thumbtemplate'])
                    530:            xsltnode.appendChild(xsltnodetext)
                    531:            subnode.appendChild(xsltnode)
                    532: 
                    533:    if self.REQUEST.has_key('topbar'):
                    534:        if not self.REQUEST['topbar']=="":
1.13      dwinter   535:            xsltnode=dom.createElement('toptemplate')
1.11      dwinter   536:            xsltnodetext=dom.createTextNode(self.REQUEST['topbar'])
                    537:            xsltnode.appendChild(xsltnodetext)
                    538:            subnode.appendChild(xsltnode)
                    539: 
1.13      dwinter   540:    if self.REQUEST.has_key('startpage'):
                    541:        if not self.REQUEST['startpage']=="":
                    542:            xsltnode=dom.createElement('startpage')
                    543:            xsltnodetext=dom.createTextNode(self.REQUEST['startpage'])
                    544:            xsltnode.appendChild(xsltnodetext)
                    545:            subnode.appendChild(xsltnode)
                    546: 
                    547:    if self.REQUEST.has_key('project'):
                    548:        if not self.REQUEST['project']=="":
                    549:            xsltnode=dom.createElement('project')
                    550:            xsltnodetext=dom.createTextNode(self.REQUEST['project'])
1.14      dwinter   551:            xsltnode.appendChild(xsltnodetext)
                    552:            subnode.appendChild(xsltnode)
1.11      dwinter   553:            
1.1       dwinter   554:    node.appendChild(subnode)
1.6       dwinter   555:    
1.5       dwinter   556:    try:
1.6       dwinter   557:        node2=node.getElementsByTagName('bib')[0]
                    558:        subs=node2.getElementsByTagName('lang')
                    559:        for sub in subs:
                    560:            print "X",sub
                    561:            node2.removeChild(sub)
1.5       dwinter   562:    except:
                    563:        """nothing"""
                    564:    try:
                    565:        main=dom.getElementsByTagName('bib')[0]
                    566:        node=dom.createElement('lang')
                    567:        textnode=dom.createTextNode(self.REQUEST['lang'])
1.6       dwinter   568:        print "LANG:",lang
1.5       dwinter   569:        node.appendChild(textnode)
                    570:        main.appendChild(node)
                    571:    except:
1.6       dwinter   572:        try:
                    573:            subs=dom.getElementsByTagName('lang')
                    574:            main=dom.getElementsByTagName('resource')[0]
                    575:            for sub in subs:
                    576:                main.removeChild(sub)
                    577:        except:
                    578:            """nothing"""
                    579:        
                    580:        try:
                    581:            main=dom.getElementsByTagName('resource')[0]
                    582:            node=dom.createElement('lang')
                    583:            textnode=dom.createTextNode(self.REQUEST['lang'])
                    584:            #print "LANG:",self.REQUEST['lang']
                    585:            node.appendChild(textnode)
                    586:            main.appendChild(node)
                    587:        except:
                    588:            """nothing"""
                    589:            
1.1       dwinter   590:    writefile=file(path+"/index.meta","w")
                    591:    writefile.write(dom.toxml().encode('utf-8'))
                    592:    writefile.close()
                    593:    
                    594:    
                    595: 
1.2       dwinter   596:    urllib.urlopen("http://nausikaa2.rz-berlin.mpg.de:86/cgi-bin/toc/admin/reg.cgi?path=%s"%path).readlines()
1.1       dwinter   597:    #return urllib.quote("http://nausikaa2.rz-berlin.mpg.de:86/cgi-bin/toc/admin/reg.cgi?path=%s"%path)
1.7       dwinter   598:    os.popen("ssh nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat.pl %s /mpiwg/temp/online/scaled/thumb 90 >> /tmp/sc.out &"% re.sub('/mpiwg/online/','',self.REQUEST['path']+"/"+self.REQUEST['image']))
1.3       dwinter   599:    
                    600:    #return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL2']+'?path='+self.REQUEST['path'])
1.1       dwinter   601:    

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