version 1.12, 2004/03/03 13:02:54
|
version 1.18, 2004/04/05 21:54:42
|
Line 1
|
Line 1
|
#BAUSTELLE |
#Neue Version Begin 5.4.2004 |
|
|
|
|
"""Methoden zum hinzufügen von Dokumenten ins Archiv""" |
"""Methoden zum hinzufügen von Dokumenten ins Archiv""" |
|
from OSAS_helpers import readArchimedesXML |
|
try: |
import archive |
import archive |
|
except: |
|
print "archive not imported" |
|
|
import os |
import os |
from Products.PageTemplates.PageTemplateFile import PageTemplateFile |
from Products.PageTemplates.PageTemplateFile import PageTemplateFile |
from Products.PageTemplates.PageTemplate import PageTemplate |
from Products.PageTemplates.PageTemplate import PageTemplate |
Line 10 import string
|
Line 15 import string
|
import urllib |
import urllib |
import xml.dom.minidom |
import xml.dom.minidom |
from time import localtime,strftime |
from time import localtime,strftime |
|
from Globals import package_home |
#referencetypes=['Book','Bic','Journal Article','Manuscript','jiji'] |
|
|
|
import re |
import re |
def add(self, no_upload=0): |
def add(self, no_upload=0): |
""" Add metadata or metadata and documents to the repository |
""" Add metadata or metadata and documents to the repository |
no_upload=0 kein upload sonst upload von documententen""" |
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) |
newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_add_new').__of__(self) |
self.REQUEST.SESSION['path']=self.REQUEST['path'] |
self.REQUEST.SESSION['path']=self.REQUEST['path'] |
Line 29 def add(self, no_upload=0):
|
Line 34 def add(self, no_upload=0):
|
del self.REQUEST.SESSION['no_upload'] |
del self.REQUEST.SESSION['no_upload'] |
|
|
return newtemplate() |
return newtemplate() |
return self.referencetypes |
|
|
|
|
|
|
|
def getISO(): |
def getISO(): |
"""ISO""" |
"""ISO""" |
try: |
try: |
f=file('/usr/local/mpiwg/Zope/lib/python/Products/OSA_system/iso639-1.inc','r').readlines() |
f=file(os.path.join(package_home(globals()),'iso639-1.inc'),'r').readlines() |
#f=file('OSA_system/iso639-1.inc','r').readlines() |
|
ret={} |
ret={} |
for lineraw in f: |
for lineraw in f: |
line=lineraw.encode('ascii','replace') |
line=lineraw.encode('ascii','replace') |
Line 51 def getISO():
|
Line 55 def getISO():
|
def add2(self): |
def add2(self): |
self.reftype=self.REQUEST['Reference Type'] |
self.reftype=self.REQUEST['Reference Type'] |
self.REQUEST.SESSION['reftype']=self.reftype |
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'], |
self.bibdata={} |
'Journal Article':['author','year','title','journal','volume','issue','pages','alternate journal','call number'], |
for referenceType in self.referencetypes: |
'Manuscript':['author','year','title','location','signature','pages','editorial remarks','description','keywords']} |
print referenceType |
|
self.bibdata[referenceType[1].title]=referenceType[1].fields |
|
|
self.fields=self.bibdata[self.reftype] |
self.fields=self.bibdata[self.reftype] |
self.isolist=getISO() |
self.isolist=getISO() |
Line 99 def add3(self):
|
Line 104 def add3(self):
|
"""Foldername""" |
"""Foldername""" |
metadata=parse_query_string(self.REQUEST['QUERY_STRING']) |
metadata=parse_query_string(self.REQUEST['QUERY_STRING']) |
self.REQUEST.SESSION['metadata']=metadata |
self.REQUEST.SESSION['metadata']=metadata |
vorschlag_naming=metadata['author'][:5]+"_"+metadata['title'][:5]+"_"+metadata['year'] |
vorschlag=[] |
self.vorschlag_naming=vorschlag_naming.decode('ascii','ignore') |
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'): |
if self.REQUEST.SESSION.has_key('no_upload'): |
self.REQUEST.SESSION['folder_name']=self.REQUEST.SESSION['path'] |
self.REQUEST.SESSION['folder_name']=self.REQUEST.SESSION['path'] |
return add5(self) |
return add5(self) |
Line 113 def add4(self):
|
Line 129 def add4(self):
|
self.path=re.search(r"/mpiwg(.*)",self.REQUEST.SESSION['path']).group(1) |
self.path=re.search(r"/mpiwg(.*)",self.REQUEST.SESSION['path']).group(1) |
|
|
self.folder_name=self.REQUEST['folder_name'] |
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'] |
self.REQUEST.SESSION['path']=self.REQUEST.SESSION['path']+"/"+self.REQUEST['folder_name'] |
|
|
|
|
Line 442 def readArchimedesXML(folder):
|
Line 458 def readArchimedesXML(folder):
|
else: |
else: |
return "" |
return "" |
|
|
def combineTextImage(self,path): |
|
"""gibt input formular zur erstellung des texttools meta tag aus""" |
|
files = os.listdir(path) |
|
|
|
texts=[] |
|
imagefolders=[] |
|
presentationfolders=[] |
|
|
|
splitted=path.split("/") |
|
externxml=readArchimedesXML(splitted[len(splitted)-1]) |
|
|
|
for filename in files: |
|
#print "FN",filename |
|
if archive.isdigilib2(path+"/"+filename): |
|
imagefolders.append(filename) |
|
|
|
if archive.isFullText(path,filename): |
|
#print "HI" |
|
texts.append(filename) |
|
if archive.isPresentation(path,filename): |
|
presentationfolders.append(filename) |
|
|
|
dom=xml.dom.minidom.parse(path+"/index.meta") |
|
try: |
|
filelanguage=archive.getText(dom.getElementsByTagName('lang')[0].childNodes) |
|
except: |
|
filelanguage="" |
|
self.REQUEST.SESSION['isolist']=getISO() |
|
tmp=getISO().keys() |
|
tmp.sort() |
|
self.REQUEST.SESSION['isolistsort']=tmp |
|
self.REQUEST.SESSION['path']=path |
|
self.REQUEST.SESSION['texts']=texts |
|
self.REQUEST.SESSION['imagefolders']=imagefolders |
|
self.REQUEST.SESSION['presentationfolders']=presentationfolders |
|
self.REQUEST.SESSION['filelanguage']=filelanguage |
|
self.REQUEST.SESSION['externxml']=externxml |
|
|
|
newtemplate=PageTemplateFile('Products/OSA_system/ImageandText').__of__(self) |
|
return newtemplate() |
|
|
|
|
|
|
|
Line 546 def combineTextImage2(self,path):
|
Line 522 def combineTextImage2(self,path):
|
xsltnode.appendChild(xsltnodetext) |
xsltnode.appendChild(xsltnodetext) |
subnode.appendChild(xsltnode) |
subnode.appendChild(xsltnode) |
|
|
""" |
|
if self.REQUEST.has_key('thumbtemplate'): |
if self.REQUEST.has_key('thumbtemplate'): |
if not self.REQUEST['thumbtemplate']=="": |
if not self.REQUEST['thumbtemplate']=="": |
xsltnode=dom.createElement('thumbtemplate') |
xsltnode=dom.createElement('thumbtemplate') |
Line 556 def combineTextImage2(self,path):
|
Line 532 def combineTextImage2(self,path):
|
|
|
if self.REQUEST.has_key('topbar'): |
if self.REQUEST.has_key('topbar'): |
if not self.REQUEST['topbar']=="": |
if not self.REQUEST['topbar']=="": |
xsltnode=dom.createElement('topbar') |
xsltnode=dom.createElement('toptemplate') |
xsltnodetext=dom.createTextNode(self.REQUEST['topbar']) |
xsltnodetext=dom.createTextNode(self.REQUEST['topbar']) |
xsltnode.appendChild(xsltnodetext) |
xsltnode.appendChild(xsltnodetext) |
subnode.appendChild(xsltnode) |
subnode.appendChild(xsltnode) |
|
|
""" |
if self.REQUEST.has_key('startpage'): |
|
if not self.REQUEST['startpage']=="": |
|
xsltnode=dom.createElement('startpage') |
|
xsltnodetext=dom.createTextNode(self.REQUEST['startpage']) |
|
xsltnode.appendChild(xsltnodetext) |
|
subnode.appendChild(xsltnode) |
|
|
|
if self.REQUEST.has_key('project'): |
|
if not self.REQUEST['project']=="": |
|
xsltnode=dom.createElement('project') |
|
xsltnodetext=dom.createTextNode(self.REQUEST['project']) |
|
xsltnode.appendChild(xsltnodetext) |
|
subnode.appendChild(xsltnode) |
|
|
node.appendChild(subnode) |
node.appendChild(subnode) |
|
|