Diff for /OSAS/OSA_system/OSAS_add.py between versions 1.4 and 1.16

version 1.4, 2003/10/11 10:54:13 version 1.16, 2004/03/21 15:49:45
Line 2 Line 2
   
   
 """Methoden zum hinzufügen von Dokumenten ins Archiv"""  """Methoden zum hinzufügen von Dokumenten ins Archiv"""
   from OSAS_helpers import readArchimedesXML 
 import archive  import archive
 import os  import os
 from Products.PageTemplates.PageTemplateFile import PageTemplateFile  from Products.PageTemplates.PageTemplateFile import PageTemplateFile
Line 9  from Products.PageTemplates.PageTemplate Line 10  from Products.PageTemplates.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']  #referencetypes=['Book','Bic','Journal Article','Manuscript','jiji']
   
Line 19  def add(self, no_upload=0): Line 21  def add(self, no_upload=0):
                   
     self.referencetypes=['Book','Journal Article','Manuscript']      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']          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 33  def add(self, no_upload=0): Line 35  def add(self, no_upload=0):
   
   
 def getISO():  def getISO():
       """ISO"""
       try:
         f=file('/usr/local/mpiwg/Zope/lib/python/Products/OSA_system/iso639-1.inc','r').readlines()          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={}      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):
Line 52  def add2(self): Line 58  def add2(self):
   
     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 97  def add3(self): Line 106  def add3(self):
         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 111  def add4(self): Line 120  def add4(self):
   
     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 142  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 153  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 162  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 172  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 187  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 212  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 223  def addPresentation2(self): Line 237  def addPresentation2(self):
         os.mkdir(path+"/"+folder_name)          os.mkdir(path+"/"+folder_name)
     except:      except:
         """nothing"""          """nothing"""
     print "NAME:",file_name      #print "NAME:",file_name
     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()
Line 237  def addText(self,path): Line 251  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 336  def addTextExternal(self,path,texturl,ve Line 350  def addTextExternal(self,path,texturl,ve
     writefile.close()      writefile.close()
           
     #registrieren      #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):  def TextExternalError(text):
     firsts=text[0:10]      firsts=text[0:10]
     print firsts      #print firsts
     try:      try:
         match=re.search(r".*<?xml.*",firsts)          match=re.search(r".*<?xml.*",firsts)
     except:      except:
Line 361  def addImages(self,path): Line 375  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 389  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 408  def addDirsToIndexMeta(path,folder_name, Line 422  def addDirsToIndexMeta(path,folder_name,
     writefile.write(dom.toxml().encode('utf-8'))      writefile.write(dom.toxml().encode('utf-8'))
     writefile.close()      writefile.close()
   
 def combineTextImage(self,path):  def readArchimedesXML(folder):
     """gibt input formular zur erstellung des texttools meta tag aus"""      """gib URL aus """
     files = os.listdir(path)      XML=urllib.urlopen("http://archimedes.mpiwg-berlin.mpg.de/cgi-bin/toc/toc.cgi?step=xmlcorpusmanifest").read()
           #print XML
     texts=[]      dom=xml.dom.minidom.parseString(XML)
     imagefolders=[]      items=dom.getElementsByTagName('item')
     presentationfolders=[]      dict={}
       
     for filename in files:  
           
         if archive.isdigilib2(path+"/"+filename):  
             imagefolders.append(filename)  
               
         if archive.isFullText(path,filename):  
             texts.append(filename)  
         if archive.isPresentation(path,filename):  
             presentationfolders.append(filename)  
           
     dom=xml.dom.minidom.parse(path+"/index.meta")      for item in items:
           #print item.attributes['dir'].value
     try:      try:
         filelanguage=archive.getText(dom.getElementsByTagName('lang')[0].childNodes)              dict[item.attributes['dir'].value]=item.attributes['xml'].value
               #print item.attributes['dir'].value,item.attributes['text'].value
     except:      except:
         filelanguage=""              """nothing"""
     self.REQUEST.SESSION['isolist']=getISO()          
     self.REQUEST.SESSION['path']=path      if dict.has_key(folder):
     self.REQUEST.SESSION['texts']=texts          return dict[folder]
     self.REQUEST.SESSION['imagefolders']=imagefolders      else:
     self.REQUEST.SESSION['presentationfolders']=presentationfolders          return ""
     self.REQUEST.SESSION['filelanguage']=filelanguage      
     newtemplate=PageTemplateFile('Products/OSA_system/ImageandText').__of__(self)  
     return newtemplate()  
           
   
   
Line 473  def combineTextImage2(self,path): Line 477  def combineTextImage2(self,path):
     if self.REQUEST.has_key('text'):                  if self.REQUEST.has_key('text'):            
         textfile=os.listdir(path+"/"+self.REQUEST['text'])[0]          textfile=os.listdir(path+"/"+self.REQUEST['text'])[0]
         textfoldernode=dom.createElement('text')          textfoldernode=dom.createElement('text')
         textfoldernodetext=dom.createTextNode(self.REQUEST['text']+"/"+textfile)          textfoldernodetext=dom.createTextNode(path+"/"+self.REQUEST['text']+"/"+textfile)
           textfoldernode.appendChild(textfoldernodetext)
           subnode.appendChild(textfoldernode)
   
       if self.REQUEST.has_key('external'):#USE CVS instead of local text
           textfoldernode=dom.createElement('text')
           textfoldernodetext=dom.createTextNode(self.REQUEST.SESSION['externxml'])
         textfoldernode.appendChild(textfoldernodetext)          textfoldernode.appendChild(textfoldernodetext)
         subnode.appendChild(textfoldernode)          subnode.appendChild(textfoldernode)
   
Line 489  def combineTextImage2(self,path): Line 499  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)
   
       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)      node.appendChild(subnode)
   
     # node=dom.getElementsByTagName('lang')[0] #getNode      try:
           node2=node.getElementsByTagName('bib')[0]
           subs=node2.getElementsByTagName('lang')
           for sub in subs:
               print "X",sub
               node2.removeChild(sub)
       except:
           """nothing"""
       try:
           main=dom.getElementsByTagName('bib')[0]
           node=dom.createElement('lang')
           textnode=dom.createTextNode(self.REQUEST['lang'])
           print "LANG:",lang
           node.appendChild(textnode)
           main.appendChild(node)
       except:
           try:
               subs=dom.getElementsByTagName('lang')
               main=dom.getElementsByTagName('resource')[0]
               for sub in subs:
                   main.removeChild(sub)
           except:
               """nothing"""
           
           try:
               main=dom.getElementsByTagName('resource')[0]
               node=dom.createElement('lang')
               textnode=dom.createTextNode(self.REQUEST['lang'])
               #print "LANG:",self.REQUEST['lang']
               node.appendChild(textnode)
               main.appendChild(node)
           except:
               """nothing"""
   
     writefile=file(path+"/index.meta","w")      writefile=file(path+"/index.meta","w")
     writefile.write(dom.toxml().encode('utf-8'))      writefile.write(dom.toxml().encode('utf-8'))
Line 501  def combineTextImage2(self,path): Line 587  def combineTextImage2(self,path):
   
     urllib.urlopen("http://nausikaa2.rz-berlin.mpg.de:86/cgi-bin/toc/admin/reg.cgi?path=%s"%path).readlines()      urllib.urlopen("http://nausikaa2.rz-berlin.mpg.de:86/cgi-bin/toc/admin/reg.cgi?path=%s"%path).readlines()
     #return urllib.quote("http://nausikaa2.rz-berlin.mpg.de:86/cgi-bin/toc/admin/reg.cgi?path=%s"%path)      #return urllib.quote("http://nausikaa2.rz-berlin.mpg.de:86/cgi-bin/toc/admin/reg.cgi?path=%s"%path)
     os.popen("ssh nausikaa2.rz-berlin.mpg.de /usr/local/mpiwg/scripts/scaleomat.pl %s /mpiwg/temp/online/scaled/thumb 90 &"% re.sub('mpiwg/online/','',self.REQUEST['path']+"/"+self.REQUEST['image']))      os.popen("ssh 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']))
           
     #return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL2']+'?path='+self.REQUEST['path'])      #return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL2']+'?path='+self.REQUEST['path'])
           

Removed from v.1.4  
changed lines
  Added in v.1.16


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