Diff for /OSAS/OSA_system/OSAS_archiver.py between versions 1.5 and 1.11

version 1.5, 2003/12/28 17:11:05 version 1.11, 2004/03/03 13:02:54
Line 1 Line 1
 # Methoden und Klassen fuer den MPIWG Archiver  """ Methoden und Klassen fuer den MPIWG Archiver
   20040303 Zur Zeit nur angepasst and das System des MPIWG
   nächste schritte: Konfigurierbarkeit der Metadaten / Konfigurierbarkeit der Server
   
   """
   
 from OFS.Image import Image  from OFS.Image import Image
 from OFS.Folder import Folder  from OFS.Folder import Folder
Line 31  class OSAS_archiveInbox(SimpleItem,Persi Line 35  class OSAS_archiveInbox(SimpleItem,Persi
         self.title=title          self.title=title
         self.pathes=[]          self.pathes=[]
   
     def addPath(self,path):      def addPath(self,path,RESPONSE=None):
           """add a path"""
         today=time.localtime()          today=time.localtime()
         self.pathes.append([path,today])          temp=self.pathes[0:]
           temp.append([path,today])
           self.pathes=temp[0:]
           if RESPONSE:
               RESPONSE.redirect("index_html")
   
     def index_html(self):      def index_html(self):
         """main"""          """main"""
         pt=PageTemplateFile('Products/OSA_system/OSAS_archiveInboxIndex.zpt').__of__(self)          pt=PageTemplateFile('Products/OSA_system/zpt/OSAS_archiveInboxIndex.zpt').__of__(self)
         return pt()          return pt()
           
 def manage_AddOSAS_archiveInboxForm(self):  def manage_AddOSAS_archiveInboxForm(self):
     """interface for adding the OSAS_root"""      """interface for adding the OSAS_root"""
     pt=PageTemplateFile('Products/OSA_system/AddOSAS_archiveInbox.zpt').__of__(self)      pt=PageTemplateFile('Products/OSA_system/zpt/AddOSAS_archiveInbox.zpt').__of__(self)
     return pt()      return pt()
   
   
Line 81  class OSAS_metadataOrganizer(SimpleItem, Line 90  class OSAS_metadataOrganizer(SimpleItem,
         self.title=title          self.title=title
         #self.acquisitionData=['provider_name','provider_address','provider_contact','provider_url','date','description']          #self.acquisitionData=['provider_name','provider_address','provider_contact','provider_url','date','description']
   
   
       def getName(self):
           """gives name from request session path"""
           path=self.REQUEST.SESSION['path']
           splitted=path.split("/")
           return splitted[len(splitted)-1]
           
       def addRessourceMeta(self,path=None,RESPONSE=None):
           """Metadaten fuer Ressource"""
           if not path:
               path=self.REQUEST.SESSION['path']
   
           else:
               self.REQUEST.SESSION['path']=path
   
           pt=PageTemplateFile('Products/OSA_system/zpt/inputRessourceData.zpt').__of__(self)
           return pt()
   
           
       def writeRessourceMetadata(self,name,date,description,creator,RESPONSE=None):
           """schreibe Resourcedata in index.meta"""
   
           path=self.REQUEST.SESSION['path']
   
           subnodes={}
           subnodes['name']=name
           subnodes['archive-creation-date']=date
           subnodes['creator']=creator       
           subnodes['description']=description
           
           changeNodesInIndexMeta(path,"",subnodes)
           self.inbox.addPath(self.REQUEST.SESSION['path'])
           RESPONSE.redirect(self.REQUEST['URL2'])
           
           
     def addAcquisition(self,path):      def addAcquisition(self,path):
         """Hinzufügen von Acquisition Daten"""          """Hinzufügen von Acquisition Daten"""
         self.REQUEST.SESSION['path']=path          self.REQUEST.SESSION['path']=path
         pt=PageTemplateFile('Products/OSA_system/inputAcquisitionData.zpt').__of__(self)          pt=PageTemplateFile('Products/OSA_system/zpt/inputAcquisitionData.zpt').__of__(self)
         return pt()          return pt()
   
   
     def writeAcquisitionMetadata(self,date,path,media_type,producer="mpiwg",description=""):      def writeAcquisitionMetadata(self,date,path,media_type,producer="mpiwg",description=""):
         """Schreibe Acquisiondata in index.meta"""          """Schreibe Acquisiondata in index.meta"""
                   
Line 115  class OSAS_metadataOrganizer(SimpleItem, Line 160  class OSAS_metadataOrganizer(SimpleItem,
         self.metaDataSet=self.metaDataSets[self.mediaToAcquisition[media_type]]          self.metaDataSet=self.metaDataSets[self.mediaToAcquisition[media_type]]
         self.media_type=self.mediaToAcquisition[media_type]          self.media_type=self.mediaToAcquisition[media_type]
                   
         pt=PageTemplateFile('Products/OSA_system/inputDocumentMetadata.zpt').__of__(self)          pt=PageTemplateFile('Products/OSA_system/zpt/inputDocumentMetadata.zpt').__of__(self)
         return pt()          return pt()
   
                   
Line 140  class OSAS_metadataOrganizer(SimpleItem, Line 185  class OSAS_metadataOrganizer(SimpleItem,
         changeNodesInIndexMeta(self.REQUEST.SESSION['path'],"img",subnodes)          changeNodesInIndexMeta(self.REQUEST.SESSION['path'],"img",subnodes)
   
   
         pt=PageTemplateFile('Products/OSA_system/inputBiblioMetadata.zpt').__of__(self)          pt=PageTemplateFile('Products/OSA_system/zpt/inputBiblioMetadata.zpt').__of__(self)
         return pt()          return pt()
   
     def writeBiblioMetadata(self,bibdata_type,RESPONSE=None):      def writeBiblioMetadata(self,bibdata_type,RESPONSE=None):
Line 152  class OSAS_metadataOrganizer(SimpleItem, Line 197  class OSAS_metadataOrganizer(SimpleItem,
         #for key in form.keys():          #for key in form.keys():
         #    subnodes[key]=form['device']          #    subnodes[key]=form['device']
         subnodes=form          subnodes=form
           del subnodes['bibdata_type'] #in form but not metadata
         changeNodesInIndexMeta(self.REQUEST.SESSION['path'],"bib",subnodes,nodeAttributes={'type':bibdata_type},parent="meta")          changeNodesInIndexMeta(self.REQUEST.SESSION['path'],"bib",subnodes,nodeAttributes={'type':bibdata_type},parent="meta")
         self.inbox.addPath(self.REQUEST.SESSION['path'])          #return self.REQUEST
         RESPONSE.redirect(self.REQUEST['URL2'])          return self.addRessourceMeta()
           
   
   
       
                   
           
   
 def manage_AddOSAS_metadataOrganizerForm(self):  def manage_AddOSAS_metadataOrganizerForm(self):
     """interface for adding the OSAS_root"""      """interface for adding the OSAS_root"""
     pt=PageTemplateFile('Products/OSA_system/AddOSAS_metadataOrganizer.zpt').__of__(self)      pt=PageTemplateFile('Products/OSA_system/zpt/AddOSAS_metadataOrganizer.zpt').__of__(self)
     return pt()      return pt()
   
   
Line 191  class OSAS_processViewer(SimpleItem,Pers Line 233  class OSAS_processViewer(SimpleItem,Pers
   
     def index_html(self):      def index_html(self):
         """main page"""          """main page"""
         pt=PageTemplateFile('Products/OSA_system/processViewerIndex.zpt').__of__(self)          pt=PageTemplateFile('Products/OSA_system/zpt/processViewerIndex.zpt').__of__(self)
         return pt()          return pt()
   
     def storeFile(self,something):      def storeFile(self,something):
Line 199  class OSAS_processViewer(SimpleItem,Pers Line 241  class OSAS_processViewer(SimpleItem,Pers
         self.REQUEST.SESSION['something']=something          self.REQUEST.SESSION['something']=something
         return 1          return 1
   
     def getFile(self):      def getFile(self,number):
         """get info from session"""          """get info from session"""
         return self.REQUEST.SESSION['something']          check=self.getoverview('/var/tmp/archiver').messages()[number]
           return check
   
     def getoverview(self,path):      def getoverview(self,path):
         """get overview"""          """get overview"""
Line 229  class OSAS_processViewer(SimpleItem,Pers Line 272  class OSAS_processViewer(SimpleItem,Pers
         return ret          return ret
             
     def writefile(self,path,txt,REQUEST):      def writefile(self,path,txt,REQUEST):
           """writefile"""
         f=open(path,'w')          f=open(path,'w')
         f.write(txt)          f.write(txt)
         f.close()          f.close()
Line 236  class OSAS_processViewer(SimpleItem,Pers Line 280  class OSAS_processViewer(SimpleItem,Pers
         return rval()          return rval()
   
   
     def view(self):      def view(self,number):
         """view page"""          """view page"""
         pt=PageTemplateFile('Products/OSA_system/processViewerView.zpt').__of__(self)          self.errnum=number
           pt=PageTemplateFile('Products/OSA_system/zpt/processViewerView.zpt').__of__(self)
         return pt()          return pt()
   
     def error(self):      def error(self):
         """view errors"""          """view errors"""
         pt=PageTemplateFile('Products/OSA_system/processViewerError.zpt').__of__(self)          pt=PageTemplateFile('Products/OSA_system/zpt/processViewerError.zpt').__of__(self)
         return pt()          return pt()
           
 def manage_AddOSAS_processViewerForm(self):  def manage_AddOSAS_processViewerForm(self):
     """interface for adding the OSAS_processViewer"""      """interface for adding the OSAS_processViewer"""
     pt=PageTemplateFile('Products/OSA_system/AddOSAS_processViewer.zpt').__of__(self)      pt=PageTemplateFile('Products/OSA_system/zpt/AddOSAS_processViewer.zpt').__of__(self)
     return pt()      return pt()
   
   
Line 273  class OSAS_archiver(Folder, Persistent,I Line 318  class OSAS_archiver(Folder, Persistent,I
         {'label':'Main Config','action':'changeOSAS_archiverForm'},          {'label':'Main Config','action':'changeOSAS_archiverForm'},
         )          )
             
     # to be deleted later      def unarchive(self,path):
     #startPath="/mpiwg"          """unarchive the path"""
           f = os.popen("/usr/local/mpiwg/archive/unarchiver "+path,"r")
           return f.readlines()
   
       def checkIfUnarchive(self,path):
           if not os.path.exists(path+"/index.meta"):
               return 0
           f=file(path+"/index.meta","r").read()
           dom=xml.dom.minidom.parseString(f)
           archiveStorageDates=dom.getElementsByTagName("archive-storage-date")
           if archiveStorageDates:
               return 1
           else:
               return 0
   
     ## methoden aus dem alten archive.py      ## methoden aus dem alten archive.py
   
         
       def isArray(self,path):
           """check for array"""
           if type(path) == StringType:
               return 0
           else:
               return 1
   
     def archiver(self,path):      def archiver(self,path):
         """archive the documents in path"""          """archive the documents in path"""
         tmp=archive.archive(path,self.REQUEST.SESSION)          tmp=archive.archive(path,self.REQUEST.SESSION)
         pt=PageTemplateFile('Products/OSA_system/archiveStatus.zpt').__of__(self)          pt=PageTemplateFile('Products/OSA_system/zpt/archiveStatus.zpt').__of__(self)
         return pt()          return pt()
   
               def archive2(self):
           pt=PageTemplateFile('Products/OSA_system/zpt/archive2.zpt').__of__(self)
           return pt()
   
   
     def metachecker(self,path):      def metachecker(self,path):
         """check the metadata the documents in path"""          """check the metadata of the documents in path"""
         self.REQUEST.SESSION['path']=self.REQUEST['path']          self.REQUEST.SESSION['path']=self.REQUEST['path']
         return archive.metacheck(path)          return archive.metacheck(path)
   
Line 326  class OSAS_archiver(Folder, Persistent,I Line 393  class OSAS_archiver(Folder, Persistent,I
   
     def getfilesystem2(self,start,reload=0):      def getfilesystem2(self,start,reload=0):
     """load filesystem"""      """load filesystem"""
   
     k=filesystem2(start,1)      k=filesystem2(start,1)
     return k      return k
   
Line 346  class OSAS_archiver(Folder, Persistent,I Line 412  class OSAS_archiver(Folder, Persistent,I
   
     def archiver_html(self):      def archiver_html(self):
         """archiver"""          """archiver"""
         pt=PageTemplateFile('Products/OSA_system/OSAS_Archiver.zpt').__of__(self)          pt=PageTemplateFile('Products/OSA_system/zpt/OSAS_Archiver.zpt').__of__(self)
         return pt()          return pt()
   
     def index_html(self):      def index_html(self):
         """main page"""          """main page"""
         pt=PageTemplateFile('Products/OSA_system/archiverIndex.zpt').__of__(self)          pt=PageTemplateFile('Products/OSA_system/zpt/archiverIndex.zpt').__of__(self)
         return pt()          return pt()
   
     def getDate(self):      def getDate(self):
Line 360  class OSAS_archiver(Folder, Persistent,I Line 426  class OSAS_archiver(Folder, Persistent,I
           
     def newFolders_html(self):      def newFolders_html(self):
         """main page"""          """main page"""
         pt=PageTemplateFile('Products/OSA_system/newFolders.zpt').__of__(self)          pt=PageTemplateFile('Products/OSA_system/zpt/newFolders.zpt').__of__(self)
         return pt()          return pt()
   
     def getProducers(self):      def getProducers(self):
Line 377  class OSAS_archiver(Folder, Persistent,I Line 443  class OSAS_archiver(Folder, Persistent,I
   
     def getProducer(self,id):      def getProducer(self,id):
         """Gebe ProducerObjekt zurück"""          """Gebe ProducerObjekt zurück"""
         obj=getattr(self.aq_parent.producerFolder,id)          obj=getattr(self.producerFolder,id)
         return obj          return obj
                   
                   
Line 386  class OSAS_archiver(Folder, Persistent,I Line 452  class OSAS_archiver(Folder, Persistent,I
         """Erzeuge Folder im producer Verzeichnis mit ids"""          """Erzeuge Folder im producer Verzeichnis mit ids"""
         self.REQUEST.SESSION['producer']=producer          self.REQUEST.SESSION['producer']=producer
         self.REQUEST.SESSION['ids']=self.idGenerator.giveIdsOut(number)          self.REQUEST.SESSION['ids']=self.idGenerator.giveIdsOut(number)
         pt=PageTemplateFile('Products/OSA_system/createFoldersForm.zpt').__of__(self)          pt=PageTemplateFile('Products/OSA_system/zpt/createFoldersForm.zpt').__of__(self)
         return pt()          return pt()
           
     def createFolders(self,folderList,producer):      def createFolders(self,folderList,producer):
         """Erzeug die entsprechenden Folder"""          """Erzeug die entsprechenden Folder"""
         #hack          #hack
         producer="library"          #producer="library"
         if type(folderList)==StringType:          if type(folderList)==StringType:
             folders=[folderList]              folders=[folderList]
         else:          else:
             folders=folderList              folders=folderList
                   #return producer
           producerFolderName=self.getProducer(producer).producerFolderName
                   
         for folder in folders:          for folder in folders:
             os.mkdir(self.startPath+"/"+producer+"/"+folder)              os.mkdir(self.startPath+"/"+producerFolderName+"/"+folder)
             os.chmod(self.startPath+"/"+producer+"/"+folder,0775)              os.chmod(self.startPath+"/"+producerFolderName+"/"+folder,0775)
         self.REQUEST.SESSION['folderList']=folders          self.REQUEST.SESSION['folderList']=folders
         pt=PageTemplateFile('Products/OSA_system/createFolders.zpt').__of__(self)          pt=PageTemplateFile('Products/OSA_system/zpt/createFolders.zpt').__of__(self)
         return pt()          return pt()
   
     def storeerror(self,ret,path,context,i):      def storeerror(self,ret,path,context,i):
Line 427  class OSAS_archiver(Folder, Persistent,I Line 494  class OSAS_archiver(Folder, Persistent,I
         return ret          return ret
             
     def writefile(self,path,txt,REQUEST):      def writefile(self,path,txt,REQUEST):
           """writefile"""
         f=open(path,'w')          f=open(path,'w')
         f.write(txt)          f.write(txt)
         f.close()          f.close()
         rval=self.aq_acquire('archive2')          return self.archive2()
         return rval()  
   
     def error(self):      def error(self):
         """view errors"""          """view errors"""
         pt=PageTemplateFile('Products/OSA_system/processViewerError.zpt').__of__(self)          pt=PageTemplateFile('Products/OSA_system/zpt/processViewerError.zpt').__of__(self)
         return pt()          return pt()
   
           
     def archiveSelected(self):      def archiveSelected(self):
         """Archiviere ausgewaehlte files"""          """Archiviere ausgewaehlte files"""
         pt=PageTemplateFile('Products/OSA_system/archiveSelected.zpt').__of__(self)          pt=PageTemplateFile('Products/OSA_system/zpt/archiveSelected.zpt').__of__(self)
         return pt()          return pt()
   
     def enterAcquisitionMetadata(self):      def enterAcquisitionMetadata(self):
Line 456  class OSAS_archiver(Folder, Persistent,I Line 523  class OSAS_archiver(Folder, Persistent,I
                   
     def changeOSAS_archiverForm(self):      def changeOSAS_archiverForm(self):
         """change"""          """change"""
         pt=PageTemplateFile('Products/OSA_system/ChangeOSAS_archiver.zpt').__of__(self)          pt=PageTemplateFile('Products/OSA_system/zpt/ChangeOSAS_archiver.zpt').__of__(self)
         return pt()          return pt()
   
     def changeOSAS_archiver(self,startPath,title="",RESPONSE=None):      def changeOSAS_archiver(self,startPath,title="",RESPONSE=None):
Line 470  class OSAS_archiver(Folder, Persistent,I Line 537  class OSAS_archiver(Folder, Persistent,I
   
 def manage_AddOSAS_archiverForm(self):  def manage_AddOSAS_archiverForm(self):
     """interface for adding the OSAS_root"""      """interface for adding the OSAS_root"""
     pt=PageTemplateFile('Products/OSA_system/AddOSAS_archiver.zpt').__of__(self)      pt=PageTemplateFile('Products/OSA_system/zpt/AddOSAS_archiver.zpt').__of__(self)
     return pt()      return pt()
   
   
Line 491  class OSAS_producer(SimpleItem,Persisten Line 558  class OSAS_producer(SimpleItem,Persisten
   
     meta_type="OSAS_producer"      meta_type="OSAS_producer"
   
     def __init__(self,shortName,fullName,address="",url="",contact=""):      def __init__(self,shortName,fullName,producerFolderName,address="",url="",contact=""):
   
         self.id=shortName          self.id=shortName
         self.title=fullName          self.title=fullName
         self.address=address          self.address=address
         self.url=url          self.url=url
         self.contact=contact          self.contact=contact
           self.producerFolderName=producerFolderName
   
     manage_options = SimpleItem.manage_options+(      manage_options = SimpleItem.manage_options+(
         {'label':'Main Config','action':'changeOSAS_producerForm'},          {'label':'Main Config','action':'changeOSAS_producerForm'},
Line 505  class OSAS_producer(SimpleItem,Persisten Line 573  class OSAS_producer(SimpleItem,Persisten
   
     def changeOSAS_producerForm(self):      def changeOSAS_producerForm(self):
         """change"""          """change"""
         pt=PageTemplateFile('Products/OSA_system/ChangeOSAS_producer.zpt').__of__(self)          pt=PageTemplateFile('Products/OSA_system/zpt/ChangeOSAS_producer.zpt').__of__(self)
         return pt()          return pt()
   
     def changeOSAS_producer(self,title,address,contact="",url=""):      def changeOSAS_producer(self,title,address,producerFolderName,contact="",url="",RESPONSE=None):
         """change"""          """change"""
         self.title=fullName          self.title=title
         self.address=address          self.address=address
         self.url=url          self.url=url
         self.contact=contact          self.contact=contact
           self.producerFolderName=producerFolderName
   
           if RESPONSE:
               RESPONSE.redirect("manage_main")
   
 def manage_AddOSAS_producerForm(self):  def manage_AddOSAS_producerForm(self):
     """interface for adding the OSAS_root"""      """interface for adding the OSAS_root"""
     pt=PageTemplateFile('Products/OSA_system/AddOSAS_producer.zpt').__of__(self)      pt=PageTemplateFile('Products/OSA_system/zpt/AddOSAS_producer.zpt').__of__(self)
     return pt()      return pt()
   
   
 def manage_AddOSAS_producer(self,id,title="",contact="",address="",url="",RESPONSE=None):  def manage_AddOSAS_producer(self,id,producerFolderName,title="",contact="",address="",url="",RESPONSE=None):
     """add the OSAS_root"""      """add the OSAS_root"""
     if title=="":      if title=="":
         title=id          title=id
                   
     newObj=OSAS_producer(id, title,address,contact,url)      newObj=OSAS_producer(id, title,producerFolderName,address,contact,url)
     self._setObject(id,newObj)      self._setObject(id,newObj)
     if RESPONSE is not None:      if RESPONSE is not None:
         RESPONSE.redirect('manage_main')          RESPONSE.redirect('manage_main')

Removed from v.1.5  
changed lines
  Added in v.1.11


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