--- OSAS/OSA_system/OSAS_add.py 2004/07/01 07:46:42 1.32 +++ OSAS/OSA_system/OSAS_add.py 2005/02/10 16:17:18 1.44 @@ -14,9 +14,11 @@ from Products.PageTemplates.PageTemplate from Products.PageTemplates.PageTemplate import PageTemplate import string import urllib +import zLOG import xml.dom.minidom from time import localtime,strftime from Globals import package_home +from types import * import re def showHelp(helptext): @@ -52,7 +54,7 @@ def getISO(): ret={} for lineraw in f: - line=lineraw.encode('ascii','replace') + line=lineraw.encode('ascii','replace').strip() value=string.split(line,'\t')[0].encode('ascii','replace') key=string.split(line,'\t')[1].encode('ascii','replace') ret[key]=value @@ -116,6 +118,7 @@ def add3(self): metadata=parse_query_string(self.REQUEST['QUERY_STRING']) self.REQUEST.SESSION['metadata']=metadata vorschlag=[] + if metadata.has_key('author'): vorschlag.append(metadata['author'][:5]) if metadata.has_key('title'): @@ -137,17 +140,21 @@ def add3(self): def add4(self): + self.path=re.search(r"/mpiwg(.*)",self.REQUEST.SESSION['path']).group(1) self.folder_name=self.REQUEST['folder_name'] # next has to be changed -> error if back button is used!! self.REQUEST.SESSION['folder_name']=self.folder_name #return self.REQUEST['submit'] - + try: - os.mkdir(self.REQUEST.SESSION['path']) - os.chmod(self.REQUEST.SESSION['path'],0774) + #os.popen('mkdir '+self.REQUEST.SESSION['path']) + os.mkdir(os.path.join(self.REQUEST.SESSION['path'],self.REQUEST['folder_name'])) + os.chmod(os.path.join(self.REQUEST.SESSION['path'],self.REQUEST['folder_name']),0775) + except: + """nothing""" if self.REQUEST['submit']=="upload images": @@ -156,6 +163,7 @@ def add4(self): self.image_folder_name="pageimg" newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_upload').__of__(self) + return newtemplate() elif self.REQUEST['submit']=="upload pdf": @@ -168,6 +176,11 @@ def add4(self): def add5(self): """ADD INDEX.META""" + try: + os.chmod(self.REQUEST.SESSION['path'],0775) + except: + pass + newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_add_metadata').__of__(self) return newtemplate() @@ -188,14 +201,21 @@ def add6(self): newtemplate=PageTemplateFile('Products/OSA_system/zpt/index_meta').__of__(self) newtemplate.content_type="text/plain" - renderxml = newtemplate() + renderxml = newtemplate(encode='utf-8') + + if self.REQUEST.SESSION.has_key('no_upload'): metapath=self.REQUEST.SESSION['path']+"/index.meta" else: metapath=self.add_metadata['archive-path']+"/"+self.add_metadata['folder_name']+"/index.meta" f=open(metapath,'w') - f.writelines(renderxml) + try: + f.write(renderxml.encode('utf-8')) + except: + f.write(unicode(renderxml,'latin-1').encode('utf-8')) + #f.write(renderxml) + f.close() os.chmod(metapath,0664) os.popen('chmod -R 0775 %s'%self.add_metadata['archive-path']+"/"+self.add_metadata['folder_name']) @@ -254,17 +274,21 @@ def addPresentation(self,path): except: date="" i=1 - while os.path.exists("%02d-presentation"%i): + while os.path.exists(path+"/%02d-presentation"%i): i+=1 self.REQUEST.SESSION['presentationname']="%02d-presentation"%i self.REQUEST.SESSION['path']=path - self.REQUEST.SESSION['xmlvorschlag']=""" + + tmpTxt=""" + %s %s %s yes """%(author,title,date) + self.REQUEST.SESSION['xmlvorschlag']=tmpTxt.encode('utf-8') + newtemplate=PageTemplateFile('Products/OSA_system/zpt/addPresentation').__of__(self) return newtemplate() @@ -295,11 +319,11 @@ def addPresentation2(self): f.write(xmlinfo) f.close() try: - os.chmod(path+"/"+folder_name,0755) + os.chmod(path+"/"+folder_name,0775) except: """NO""" - os.chmod(path+"/"+folder_name+"/"+file_name,0644) + os.chmod(path+"/"+folder_name+"/"+file_name,0664) addDirsToIndexMeta(path,folder_name,content_description,'presentation') return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL2']+'?path='+path) @@ -410,7 +434,7 @@ def addTextExternal(self,path,texturl,ve node.appendChild(subnode) writefile=file(path+"/index.meta","w") - writefile.write(dom.toxml().encode('utf-8')) + writefile.write(dom.toxml(encoding="UTF-8")) writefile.close() #change texttool tag @@ -439,7 +463,7 @@ def addTextExternal(self,path,texturl,ve #index.meta ausgeben writefile=file(path+"/index.meta","w") - writefile.write(dom.toxml().encode('utf-8')) + writefile.write(dom.toxml(encoding="UTF-8")) writefile.close() #registrieren @@ -512,7 +536,7 @@ def addDirsToIndexMeta(path,folder_name, node.appendChild(subnode) writefile=file(path+"/index.meta","w") - writefile.write(dom.toxml().encode('utf-8')) + writefile.write(dom.toxml(encoding='UTF-8')) writefile.close() def readArchimedesXML(folder): @@ -671,7 +695,7 @@ def combineTextImage2(self,path): """nothing""" writefile=file(path+"/index.meta","w") - writefile.write(dom.toxml().encode('utf-8')) + writefile.write(dom.toxml(encoding="UTF-8")) writefile.close() @@ -679,11 +703,19 @@ def combineTextImage2(self,path): urllib.urlopen("http://nausikaa2.rz-berlin.mpg.de:86/cgi-bin/toc/admin/reg.cgi?path=%s"%path).readlines() if self.REQUEST.has_key('image'): # falls bilder - os.popen("ssh archive@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'])) + path=re.sub('//','/',self.REQUEST['path']) # falls '//' im Pfad + dlpath = re.sub('/mpiwg/online/','',path)+"/"+self.REQUEST['image'] + + zLOG.LOG('OSas',zLOG.INFO,"ssh archive@nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat -src=/mpiwg/online -dest=/mpiwg/temp/online/scaled/thumb -dir=%s -scaleto=90 -sync >> /tmp/sc.out &"%dlpath ) + ret=os.popen("ssh archive@nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat -src=/mpiwg/online -dest=/mpiwg/temp/online/scaled/thumb -dir=%s -scaleto=90 -sync >> /tmp/sc.out &"%dlpath ).read() + zLOG.LOG('OSAS (combine)',zLOG.INFO,ret) + + else: # falls keine Bilder (bug in reg.cgi info file ersetzen) f=file("/tmp/tmp_info.xml","w") - f.write(patchedInfoXML(self.REQUEST['path'])) + tmp=patchedInfoXML(self.REQUEST['path']) + f.write(tmp.encode('utf-8')) f.close() splitted=path.split("/") fn=splitted[len(splitted)-1]