--- OSAS/OSA_system/OSAS_add.py 2004/03/21 15:49:45 1.16 +++ OSAS/OSA_system/OSAS_add.py 2004/04/08 16:50:01 1.20 @@ -1,9 +1,13 @@ -#BAUSTELLE +#Neue Version Begin 5.4.2004 """Methoden zum hinzufügen von Dokumenten ins Archiv""" from OSAS_helpers import readArchimedesXML -import archive +try: + import archive +except: + print "archive not imported" + import os from Products.PageTemplates.PageTemplateFile import PageTemplateFile from Products.PageTemplates.PageTemplate import PageTemplate @@ -11,16 +15,23 @@ import string import urllib import xml.dom.minidom from time import localtime,strftime - -#referencetypes=['Book','Bic','Journal Article','Manuscript','jiji'] +from Globals import package_home import re +def showHelp(helptext): + """show helptext""" + return """ + + % + + """%helptext def add(self, no_upload=0): """ Add metadata or metadata and documents to the repository no_upload=0 kein upload sonst upload von documententen""" - - self.referencetypes=['Book','Journal Article','Manuscript'] + #self.referencetypes=self.ZopeFind(self,obj_metatypes=['OSAS_MetadataMapping']) + self.referencetypes=self.ZopeFind(self) + newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_add_new').__of__(self) self.REQUEST.SESSION['path']=self.REQUEST['path'] if no_upload==0: @@ -30,15 +41,14 @@ def add(self, no_upload=0): del self.REQUEST.SESSION['no_upload'] return newtemplate() - return self.referencetypes def getISO(): """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() + f=file(os.path.join(package_home(globals()),'iso639-1.inc'),'r').readlines() + ret={} for lineraw in f: line=lineraw.encode('ascii','replace') @@ -49,13 +59,15 @@ def getISO(): ret={} return ret + def add2(self): self.reftype=self.REQUEST['Reference Type'] - self.REQUEST.SESSION['reftype']=self.reftype - self.bibdata={'Book':['author','year','title','series editor','series title','series volume','number of pages','city','publisher','edition','number of volumes','translator','ISBN ISSN'], -'Journal Article':['author','year','title','journal','volume','issue','pages','alternate journal','call number'], -'Manuscript':['author','year','title','location','signature','pages','editorial remarks','description','keywords']} - + self.REQUEST.SESSION['reftype']=self.reftype + self.bibdata={} + for referenceType in self.referencetypes: + #print referenceType + self.bibdata[referenceType[1].title]=referenceType[1].fields + self.bibdata['data']=referenceType[1] self.fields=self.bibdata[self.reftype] self.isolist=getISO() tmp=getISO().keys() @@ -100,8 +112,19 @@ def add3(self): """Foldername""" metadata=parse_query_string(self.REQUEST['QUERY_STRING']) self.REQUEST.SESSION['metadata']=metadata - vorschlag_naming=metadata['author'][:5]+"_"+metadata['title'][:5]+"_"+metadata['year'] - self.vorschlag_naming=vorschlag_naming.decode('ascii','ignore') + vorschlag=[] + if metadata.has_key('author'): + vorschlag.append(metadata['author'][:5]) + if metadata.has_key('title'): + vorschlag.append(metadata['title'][:5]) + if metadata.has_key('year'): + vorschlag.append(metadata['year']) + + + vorschlag_naming=string.join(vorschlag,"_") + + + self.vorschlag_naming=unicode(vorschlag_naming,'ascii','ignore') if self.REQUEST.SESSION.has_key('no_upload'): self.REQUEST.SESSION['folder_name']=self.REQUEST.SESSION['path'] return add5(self) @@ -114,7 +137,7 @@ def add4(self): self.path=re.search(r"/mpiwg(.*)",self.REQUEST.SESSION['path']).group(1) self.folder_name=self.REQUEST['folder_name'] - # netx has to be changed -> error if back button is used!! + # next has to be changed -> error if back button is used!! self.REQUEST.SESSION['path']=self.REQUEST.SESSION['path']+"/"+self.REQUEST['folder_name'] @@ -241,7 +264,11 @@ def addPresentation2(self): f=open(path+"/"+folder_name+"/"+file_name,"w") f.write(xmlinfo) f.close() - os.chmod(path+"/"+folder_name,0755) + try: + os.chmod(path+"/"+folder_name,0755) + except: + """NO""" + os.chmod(path+"/"+folder_name+"/"+file_name,0644) addDirsToIndexMeta(path,folder_name,content_description,'presentation') @@ -535,13 +562,6 @@ def combineTextImage2(self,path): xsltnodetext=dom.createTextNode(self.REQUEST['project']) xsltnode.appendChild(xsltnodetext) subnode.appendChild(xsltnode) - - if self.REQUEST.has_key('digiLibTemplate'): - if not self.REQUEST['digiLibTemplate']=="": - xsltnode=dom.createElement('digilibtemplate') - xsltnodetext=dom.createTextNode(self.REQUEST['digiLibTemplate']) - xsltnode.appendChild(xsltnodetext) - subnode.appendChild(xsltnode) node.appendChild(subnode)