Diff for /OSAS/OSA_system/OSAS_add.py between versions 1.7 and 1.19

version 1.7, 2003/12/10 20:12:52 version 1.19, 2004/04/06 15:12:48
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
 import string  import string
 import urllib  import urllib
 import xml.dom.minidom  import xml.dom.minidom
   from time import localtime,strftime
 #referencetypes=['Book','Bic','Journal Article','Manuscript','jiji']  from Globals import package_home
   
 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/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']
     if no_upload==0:      if no_upload==0:
         self.REQUEST.SESSION['no_upload']='yes'          self.REQUEST.SESSION['no_upload']='yes'
Line 28  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():
         f=file('/usr/local/mpiwg/Zope/lib/python/Products/OSA_system/iso639-1.inc','r').readlines()      """ISO"""
       try:
           f=file(os.path.join(package_home(globals()),'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')
         value=string.split(line,'\t')[0].encode('ascii','replace')          value=string.split(line,'\t')[0].encode('ascii','replace')
         key=string.split(line,'\t')[1].encode('ascii','replace')          key=string.split(line,'\t')[1].encode('ascii','replace')
           
         ret[key]=value          ret[key]=value
       except:
           ret={}
         return ret          return ret
   
 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()
       tmp=getISO().keys()
       tmp.sort()
       self.isokeys=tmp
         #listed=[ x for x in self.isolist.keys()]          #listed=[ x for x in self.isolist.keys()]
     #print listed      #print listed
         #sorted=listed.sort()          #sorted=listed.sort()
     #print sorted      #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 newtemplate()
     #return self.fields      #return self.fields
   
Line 91  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)
     else:      else:
         newtemplate=PageTemplateFile('Products/OSA_system/OSAS_add_naming').__of__(self)          newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_add_naming').__of__(self)
         return newtemplate()          return newtemplate()
           
   
Line 105  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']
   
   
     self.REQUEST.SESSION['folder_name']=self.folder_name      self.REQUEST.SESSION['folder_name']=self.folder_name
     self.image_folder_name="pageimg"      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()      return newtemplate()
           
 def add5(self):  def add5(self):
     """ADD INDEX.META"""      """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()      return newtemplate()
   
 def add6(self):  def add6(self):
Line 133  def add6(self): Line 157  def add6(self):
     for tag in self.metadata.keys():      for tag in self.metadata.keys():
         self.metadataprint=self.metadataprint+"<"+tag+">"+self.metadata[tag]+"</"+tag+">\n"          self.metadataprint=self.metadataprint+"<"+tag+">"+self.metadata[tag]+"</"+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"      newtemplate.content_type="text/plain"
     renderxml = newtemplate()      renderxml = newtemplate()
     if self.REQUEST.SESSION.has_key('no_upload'):      if self.REQUEST.SESSION.has_key('no_upload'):
Line 144  def add6(self): Line 168  def add6(self):
     f=open(metapath,'w')      f=open(metapath,'w')
     f.writelines(renderxml)      f.writelines(renderxml)
     f.close()      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'):      if self.REQUEST.SESSION.has_key('no_upload'):
                   
         #newtemplate2=PageTemplateFile('/usr/local/mpiwg/Zope/Extensions/done',"text/html").__of__(self)          #newtemplate2=PageTemplateFile('/usr/local/mpiwg/Zope/Extensions/done',"text/html").__of__(self)
Line 152  def add6(self): Line 177  def add6(self):
     else:      else:
                 #print self.add_metadata['archive-path']                  #print self.add_metadata['archive-path']
         self.viewpath=re.search(r"/mpiwg/online/(.*)",self.add_metadata['archive-path']).group(1)           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"          newtemplate2.content_type="text/html"
Line 162  def add6(self): Line 187  def add6(self):
         return newtemplate2()          return newtemplate2()
   
   
 from time import localtime,strftime  
   
 def date(self):  def date(self):
     return strftime("%d.%m.%Y",localtime())       return strftime("%d.%m.%Y",localtime()) 
Line 177  def addPresentation(self,path): Line 202  def addPresentation(self,path):
     try:      try:
         author=archive.getText(dom.getElementsByTagName('author')[0].childNodes)          author=archive.getText(dom.getElementsByTagName('author')[0].childNodes)
     except:      except:
           try:
         author=archive.getText(dom.getElementsByTagName('Author')[0].childNodes)          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)      title=archive.getText(dom.getElementsByTagName('title')[0].childNodes)
     try:      try:
         date=archive.getText(dom.getElementsByTagName('year')[0].childNodes)          date=archive.getText(dom.getElementsByTagName('year')[0].childNodes)
Line 198  def addPresentation(self,path): Line 227  def addPresentation(self,path):
     <display>yes</display>      <display>yes</display>
 </info>"""%(author,title,date)  </info>"""%(author,title,date)
           
     newtemplate=PageTemplateFile('Products/OSA_system/addPresentation').__of__(self)      newtemplate=PageTemplateFile('Products/OSA_system/zpt/addPresentation').__of__(self)
     return newtemplate()      return newtemplate()
   
 def addPresentation2(self):  def addPresentation2(self):
Line 227  def addPresentation2(self): Line 256  def addPresentation2(self):
     f=open(path+"/"+folder_name+"/"+file_name,"w")      f=open(path+"/"+folder_name+"/"+file_name,"w")
     f.write(xmlinfo)      f.write(xmlinfo)
     f.close()      f.close()
       try:
     os.chmod(path+"/"+folder_name,0755)      os.chmod(path+"/"+folder_name,0755)
       except:
           """NO"""
   
     os.chmod(path+"/"+folder_name+"/"+file_name,0644)      os.chmod(path+"/"+folder_name+"/"+file_name,0644)
     addDirsToIndexMeta(path,folder_name,content_description,'presentation')      addDirsToIndexMeta(path,folder_name,content_description,'presentation')
           
Line 237  def addText(self,path): Line 270  def addText(self,path):
     """add fulltext to the path"""      """add fulltext to the path"""
     self.REQUEST.SESSION['existing_names']=['pageimg'] # to be done generate list of existing text files      self.REQUEST.SESSION['existing_names']=['pageimg'] # to be done generate list of existing text files
     self.REQUEST.SESSION['path']=path      self.REQUEST.SESSION['path']=path
     newtemplate=PageTemplateFile('Products/OSA_system/addText').__of__(self)      newtemplate=PageTemplateFile('Products/OSA_system/zpt/addText').__of__(self)
     return newtemplate()      return newtemplate()
   
 def addText2(self):  def addText2(self):
Line 361  def addImages(self,path): Line 394  def addImages(self,path):
     """Imagesfolder to the path"""      """Imagesfolder to the path"""
     self.REQUEST.SESSION['existing_names']=['pageimg'] # to be done generate list of existing pageimages files      self.REQUEST.SESSION['existing_names']=['pageimg'] # to be done generate list of existing pageimages files
     self.REQUEST.SESSION['path']=path      self.REQUEST.SESSION['path']=path
     newtemplate=PageTemplateFile('Products/OSA_system/OSAS_addImages').__of__(self)      newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_addImages').__of__(self)
     return newtemplate()      return newtemplate()
   
 def addImages2(self):  def addImages2(self):
Line 375  def addImages2(self): Line 408  def addImages2(self):
     self.content_type='images'      self.content_type='images'
     addDirsToIndexMeta(self.REQUEST.SESSION['path'],self.image_folder_name,self.content_description,self.content_type)      addDirsToIndexMeta(self.REQUEST.SESSION['path'],self.image_folder_name,self.content_description,self.content_type)
     self.REQUEST.SESSION['path']=re.search(r"/mpiwg(.*)",self.REQUEST.SESSION['path']).group(1)      self.REQUEST.SESSION['path']=re.search(r"/mpiwg(.*)",self.REQUEST.SESSION['path']).group(1)
     newtemplate=PageTemplateFile('Products/OSA_system/OSAS_upload2').__of__(self)      newtemplate=PageTemplateFile('Products/OSA_system/zpt/OSAS_upload2').__of__(self)
     return newtemplate()      return newtemplate()
           
   
Line 428  def readArchimedesXML(folder): Line 461  def readArchimedesXML(folder):
         return dict[folder]          return dict[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()  
     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 521  def combineTextImage2(self,path): Line 518  def combineTextImage2(self,path):
         presentationnode.appendChild(presentationnodetext)          presentationnode.appendChild(presentationnodetext)
         subnode.appendChild(presentationnode)          subnode.appendChild(presentationnode)
           
   
       if self.REQUEST.has_key('xslt'):
           if not self.REQUEST['xslt']=="":
               xsltnode=dom.createElement('xslt')
               xsltnodetext=dom.createTextNode(self.REQUEST['xslt'])
               xsltnode.appendChild(xsltnodetext)
               subnode.appendChild(xsltnode)
   
       
       if self.REQUEST.has_key('thumbtemplate'):
           if not self.REQUEST['thumbtemplate']=="":
               xsltnode=dom.createElement('thumbtemplate')
               xsltnodetext=dom.createTextNode(self.REQUEST['thumbtemplate'])
               xsltnode.appendChild(xsltnodetext)
               subnode.appendChild(xsltnode)
   
       if self.REQUEST.has_key('topbar'):
           if not self.REQUEST['topbar']=="":
               xsltnode=dom.createElement('toptemplate')
               xsltnodetext=dom.createTextNode(self.REQUEST['topbar'])
               xsltnode.appendChild(xsltnodetext)
               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)
           
     try:      try:

Removed from v.1.7  
changed lines
  Added in v.1.19


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