--- OSAS/OSA_system/OSAS_add.py 2003/10/01 08:20:47 1.1 +++ OSAS/OSA_system/OSAS_add.py 2004/03/21 15:49:45 1.16 @@ -1,17 +1,16 @@ - - - #BAUSTELLE """Methoden zum hinzufügen von Dokumenten ins Archiv""" -#import archive +from OSAS_helpers import readArchimedesXML +import archive import os from Products.PageTemplates.PageTemplateFile import PageTemplateFile from Products.PageTemplates.PageTemplate import PageTemplate import string import urllib import xml.dom.minidom +from time import localtime,strftime #referencetypes=['Book','Bic','Journal Article','Manuscript','jiji'] @@ -22,7 +21,7 @@ def add(self, no_upload=0): self.referencetypes=['Book','Journal Article','Manuscript'] - newtemplate=PageTemplateFile('products/OSA_system/OSAS_add_new').__of__(self) + newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_add_new').__of__(self) self.REQUEST.SESSION['path']=self.REQUEST['path'] if no_upload==0: self.REQUEST.SESSION['no_upload']='yes' @@ -36,14 +35,18 @@ def add(self, no_upload=0): def getISO(): - f=file('/Users/dwinter/Documents/Projekte/OSAS/OSA_system/iso639-1.inc','r').readlines() - ret={} - for lineraw in f: - line=lineraw.encode('ascii','replace') - value=string.split(line,'\t')[0].encode('ascii','replace') - key=string.split(line,'\t')[1].encode('ascii','replace') - - ret[key]=value + """ISO""" + try: + f=file('/usr/local/mpiwg/Zope/lib/python/Products/OSA_system/iso639-1.inc','r').readlines() + #f=file('OSA_system/iso639-1.inc','r').readlines() + ret={} + for lineraw in f: + line=lineraw.encode('ascii','replace') + value=string.split(line,'\t')[0].encode('ascii','replace') + key=string.split(line,'\t')[1].encode('ascii','replace') + ret[key]=value + except: + ret={} return ret def add2(self): @@ -55,12 +58,15 @@ def add2(self): self.fields=self.bibdata[self.reftype] self.isolist=getISO() + tmp=getISO().keys() + tmp.sort() + self.isokeys=tmp #listed=[ x for x in self.isolist.keys()] #print listed #sorted=listed.sort() #print sorted - newtemplate=PageTemplateFile('products/OSA_system/OSAS_add_bibdata').__of__(self) + newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_add_bibdata').__of__(self) return newtemplate() #return self.fields @@ -100,7 +106,7 @@ def add3(self): self.REQUEST.SESSION['folder_name']=self.REQUEST.SESSION['path'] return add5(self) else: - newtemplate=PageTemplateFile('products/OSA_system/OSAS_add_naming').__of__(self) + newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_add_naming').__of__(self) return newtemplate() @@ -114,12 +120,12 @@ def add4(self): self.REQUEST.SESSION['folder_name']=self.folder_name self.image_folder_name="pageimg" - newtemplate=PageTemplateFile('products/OSA_system/OSAS_upload').__of__(self) + newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_upload').__of__(self) return newtemplate() def add5(self): """ADD INDEX.META""" - newtemplate=PageTemplateFile('products/OSA_system/OSAS_add_metadata').__of__(self) + newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_add_metadata').__of__(self) return newtemplate() def add6(self): @@ -136,7 +142,7 @@ def add6(self): for tag in self.metadata.keys(): self.metadataprint=self.metadataprint+"<"+tag+">"+self.metadata[tag]+"\n" - newtemplate=PageTemplateFile('products/OSA_system/index_meta').__of__(self) + newtemplate=PageTemplateFile('Products/OSA_system/zpt/index_meta').__of__(self) newtemplate.content_type="text/plain" renderxml = newtemplate() if self.REQUEST.SESSION.has_key('no_upload'): @@ -147,7 +153,8 @@ def add6(self): f=open(metapath,'w') f.writelines(renderxml) f.close() - os.chmod(metapath,0644) + os.chmod(metapath,0664) + os.popen('chmod -R 0775 %s'%self.add_metadata['archive-path']+"/"+self.add_metadata['folder_name']) if self.REQUEST.SESSION.has_key('no_upload'): #newtemplate2=PageTemplateFile('/usr/local/mpiwg/Zope/Extensions/done',"text/html").__of__(self) @@ -155,7 +162,7 @@ def add6(self): else: #print self.add_metadata['archive-path'] self.viewpath=re.search(r"/mpiwg/online/(.*)",self.add_metadata['archive-path']).group(1) - newtemplate2=PageTemplateFile('products/OSA_system/OSAS_saved').__of__(self) + newtemplate2=PageTemplateFile('Products/OSA_system/zpt/OSAS_saved').__of__(self) newtemplate2.content_type="text/html" @@ -165,7 +172,7 @@ def add6(self): return newtemplate2() -from time import localtime,strftime + def date(self): return strftime("%d.%m.%Y",localtime()) @@ -175,11 +182,16 @@ def addPresentation(self,path): """add presentation to the path""" dom=xml.dom.minidom.parse(path+"/index.meta") - + + try: author=archive.getText(dom.getElementsByTagName('author')[0].childNodes) except: - author=archive.getText(dom.getElementsByTagName('Author')[0].childNodes) + try: + author=archive.getText(dom.getElementsByTagName('Author')[0].childNodes) + except: + author=archive.getText(dom.getElementsByTagName('Editor')[0].childNodes) + title=archive.getText(dom.getElementsByTagName('title')[0].childNodes) try: date=archive.getText(dom.getElementsByTagName('year')[0].childNodes) @@ -200,64 +212,64 @@ def addPresentation(self,path): yes """%(author,title,date) - newtemplate=PageTemplateFile('/usr/local/mpiwg/Zope/Extensions/addPresentation').__of__(self) + newtemplate=PageTemplateFile('Products/OSA_system/zpt/addPresentation').__of__(self) return newtemplate() def addPresentation2(self): """add presentation """ - self.folder_name=self.REQUEST['folder_name'] + folder_name=self.REQUEST['folder_name'] #print self.REQUEST['folder_name'] - self.content_description=self.REQUEST['content_description'] + content_description=self.REQUEST['content_description'] - self.path=self.REQUEST.SESSION['path'] + path=self.REQUEST.SESSION['path'] if not self.REQUEST.has_key('fileupload'): - self.xmlinfo=self.REQUEST['xmltext'] + xmlinfo=self.REQUEST['xmltext'] file_name="info.xml" else: file_name=self.REQUEST['fileupload'].filename - self.xmlinfo=self.REQUEST.form['fileupload'].read() - # hack dW + xmlinfo=self.REQUEST.form['fileupload'].read() + # hack Multipart auswertung funktioniert nicht ausser bei mozilla file_name="info.xml" - self.xmlinfo=self.REQUEST['xmltext'] + xmlinfo=self.REQUEST['xmltext'] try: - os.mkdir(self.path+"/"+self.folder_name) + os.mkdir(path+"/"+folder_name) except: """nothing""" - print "NAME:",file_name - f=open(self.path+"/"+self.folder_name+"/"+file_name,"w") - f.write(self.xmlinfo) + #print "NAME:",file_name + f=open(path+"/"+folder_name+"/"+file_name,"w") + f.write(xmlinfo) f.close() - os.chmod(self.path+"/"+self.folder_name,0755) - os.chmod(self.path+"/"+self.folder_name+"/"+file_name,0644) - addDirsToIndexMeta(self.path,self.folder_name,self.content_description,'presentation') + os.chmod(path+"/"+folder_name,0755) + os.chmod(path+"/"+folder_name+"/"+file_name,0644) + addDirsToIndexMeta(path,folder_name,content_description,'presentation') - return self.REQUEST.RESPONSE.redirect('storefiles?path='+self.path) + return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL2']+'?path='+path) def addText(self,path): """add fulltext to the path""" self.REQUEST.SESSION['existing_names']=['pageimg'] # to be done generate list of existing text files self.REQUEST.SESSION['path']=path - newtemplate=PageTemplateFile('/usr/local/mpiwg/Zope/Extensions/addText').__of__(self) + newtemplate=PageTemplateFile('Products/OSA_system/zpt/addText').__of__(self) return newtemplate() def addText2(self): - self.folder_name=self.REQUEST['folder_name'] + folder_name=self.REQUEST['folder_name'] #print self.REQUEST['folder_name'] - self.content_description=self.REQUEST['content_description'] - self.path=self.REQUEST.SESSION['path'] - self.file_name=self.REQUEST['fileupload'].filename - self.file=self.REQUEST.form['fileupload'].read() - os.mkdir(self.path+"/"+self.folder_name) - f=open(self.path+"/"+self.folder_name+"/"+self.file_name,"w") - f.write(self.file) + content_description=self.REQUEST['content_description'] + path=self.REQUEST.SESSION['path'] + file_name=self.REQUEST['fileupload'].filename + filedata=self.REQUEST.form['fileupload'].read() + os.mkdir(path+"/"+folder_name) + f=open(path+"/"+folder_name+"/"+file_name,"w") + f.write(filedata) f.close() - os.chmod(self.path+"/"+self.folder_name,0755) - os.chmod(self.path+"/"+self.folder_name+"/"+self.file_name,0644) - addDirsToIndexMeta(self.path,self.folder_name,self.content_description,'fulltext') + os.chmod(path+"/"+folder_name,0755) + os.chmod(path+"/"+folder_name+"/"+file_name,0644) + addDirsToIndexMeta(path,folder_name,content_description,'fulltext') - return self.REQUEST.RESPONSE.redirect('storefiles?path='+self.path) + return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL2']+'?path='+path) def addTextExternal(self,path,texturl,version): """hinzufügen eines externen textes""" @@ -338,13 +350,13 @@ def addTextExternal(self,path,texturl,ve writefile.close() #registrieren - print urllib.urlopen("http://nausikaa2.rz-berlin.mpg.de:86/cgi-bin/toc/admin/reg.cgi?path=%s"%path).readlines() + return urllib.urlopen("http://nausikaa2.rz-berlin.mpg.de:86/cgi-bin/toc/admin/reg.cgi?path=%s"%path).readlines() + - return "DONE:"+textpath+"/"+name def TextExternalError(text): firsts=text[0:10] - print firsts + #print firsts try: match=re.search(r".*> /tmp/sc.out &"% re.sub('/mpiwg/online/','',self.REQUEST['path']+"/"+self.REQUEST['image'])) + + #return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL2']+'?path='+self.REQUEST['path'])