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

version 1.2, 2003/12/19 13:58:52 version 1.5, 2003/12/28 17:11:05
Line 10  from Globals import InitializeClass Line 10  from Globals import InitializeClass
 from Globals import Persistent  from Globals import Persistent
 from Acquisition import Implicit  from Acquisition import Implicit
 from OSAS_show import *  from OSAS_show import *
   from OSAS_helpers import *
   from types import *
   
 import os.path  import os.path
 import os  import os
 import OSAS_ids  import OSAS_ids
 import archive #Baustelle  import archive #Baustelle
   import time
   
   class OSAS_archiveInbox(SimpleItem,Persistent,Implicit):
       """Inbox"""
   
       meta_type="OSAS_archiveInbox"
       pathes=[]
       
       def __init__(self,id,title):
           """init"""
           self.id=id
           self.title=title
           self.pathes=[]
   
       def addPath(self,path):
           today=time.localtime()
           self.pathes.append([path,today])
   
       def index_html(self):
           """main"""
           pt=PageTemplateFile('Products/OSA_system/OSAS_archiveInboxIndex.zpt').__of__(self)
           return pt()
       
   def manage_AddOSAS_archiveInboxForm(self):
       """interface for adding the OSAS_root"""
       pt=PageTemplateFile('Products/OSA_system/AddOSAS_archiveInbox.zpt').__of__(self)
       return pt()
   
   
   def manage_AddOSAS_archiveInbox(self,id,title="",RESPONSE=None):
       """add the OSAS_root"""
       if title=="":
           title=id
           
       newObj=OSAS_archiveInbox(id, title)
       self._setObject(id,newObj)
       if RESPONSE is not None:
           RESPONSE.redirect('manage_main')
       
   
   
 class OSAS_metadataOrganizer(SimpleItem,Persistent,Implicit):  class OSAS_metadataOrganizer(SimpleItem,Persistent,Implicit):
     """Eingabe von Metadaten"""      """Eingabe von Metadaten"""
   
     meta_type="OSAS_metadataOrganizer"      meta_type="OSAS_metadataOrganizer"
       mediaTypes=["image","video","text","audio","data"]
       acquisitionTypes=["Image-Acquisition"]
       mediaToAcquisition={"image":"Image-Acquisition"}
       metaDataSets={'Image-Acquisition': [('device','opt'),('image-type','opt'),('production-comment','opt')]}
       imgData={'image':[('dpi','req')]}
       
       bibDataSets={'Book':[('author','opt'),('year','opt'),('title','opt'),('series editor','opt'),('series title','opt'),('series volume','opt'),('number of pages','opt'),('city','opt'),('publisher','opt'),('edition','opt'),('number of volumes','opt'),('translator','opt'),('ISBN ISSN','opt')],
                     'Journal Article':[('author','opt'),('year','opt'),('title','opt'),('journal','opt'),('volume','opt'),('issue','opt'),('pages','opt'),('alternate journal','opt'),('call number','opt')],
                     'Manuscript':[('author','opt'),('year','opt'),('title','opt'),('location','opt'),('signature','opt'),('pages','opt'),('editorial remarks','opt'),('description','opt'),('keywords','opt')]}
   
   
       referenceTypes=['Book','Journal Article','Manuscript']
   
     def __init__(self,id,title):      def __init__(self,id,title):
         """init"""          """init"""
Line 33  class OSAS_metadataOrganizer(SimpleItem, Line 87  class OSAS_metadataOrganizer(SimpleItem,
         pt=PageTemplateFile('Products/OSA_system/inputAcquisitionData.zpt').__of__(self)          pt=PageTemplateFile('Products/OSA_system/inputAcquisitionData.zpt').__of__(self)
         return pt()          return pt()
   
     def writeAcquisitionMetadata(self,producer,date,path,description=""):      def writeAcquisitionMetadata(self,date,path,media_type,producer="mpiwg",description=""):
         """Schreibe Acquisiondata in index.meta"""          """Schreibe Acquisiondata in index.meta"""
                   
           
           #schreibe in index.meta
           subnodes={}
           subnodes['media-type']=media_type
           changeNodesInIndexMeta(path,"",subnodes)
           
           subnodes={}
           subnodes['date']=date
           subnodes['description']=description
           
           changeNodesInIndexMeta(path,"acquisition",subnodes)
           #print "HI"
   
           subnodes={}
           subnodes['provider-id']=producer
           subnodes['url']=getattr(self.producerFolder,producer).url
           subnodes['contact']=getattr(self.producerFolder,producer).contact
           subnodes['address']=getattr(self.producerFolder,producer).address
           
           changeNodesInIndexMeta(path,"provider",subnodes,parent="acquisition")
   
           
           self.metaDataSet=self.metaDataSets[self.mediaToAcquisition[media_type]]
           self.media_type=self.mediaToAcquisition[media_type]
           
           pt=PageTemplateFile('Products/OSA_system/inputDocumentMetadata.zpt').__of__(self)
           return pt()
   
           
       def writeDocumentMetadata(self,referenceType):
   
           """write document metadata"""
           form=self.REQUEST.form
   #schreibe in index.meta
           self.bibDataSet=self.bibDataSets[form['referenceType']]
           self.bibdata_type=form['referenceType']
   
           subnodes={}
           subnodes['device']=form['device']
           subnodes['image-type']=form['image-type']
           subnodes['production-comment']=form['production-comment']
           changeNodesInIndexMeta(self.REQUEST.SESSION['path'],"image-acquisition",subnodes)
   
           subnodes={}
           subnodes['dpi']=form['dpi']
   
           
           changeNodesInIndexMeta(self.REQUEST.SESSION['path'],"img",subnodes)
   
   
           pt=PageTemplateFile('Products/OSA_system/inputBiblioMetadata.zpt').__of__(self)
           return pt()
   
       def writeBiblioMetadata(self,bibdata_type,RESPONSE=None):
           """Write all"""
           #to do write metadata
   
           subnodes={}
           form=self.REQUEST.form
           #for key in form.keys():
           #    subnodes[key]=form['device']
           subnodes=form
           changeNodesInIndexMeta(self.REQUEST.SESSION['path'],"bib",subnodes,nodeAttributes={'type':bibdata_type},parent="meta")
           self.inbox.addPath(self.REQUEST.SESSION['path'])
           RESPONSE.redirect(self.REQUEST['URL2'])
           
   
   
       
           
       
   
 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/AddOSAS_metadataOrganizer.zpt').__of__(self)
Line 89  class OSAS_processViewer(SimpleItem,Pers Line 215  class OSAS_processViewer(SimpleItem,Pers
             
         return 'error?number=%i'%i          return 'error?number=%i'%i
   
       def geterror(self,str,context):
           session=context.REQUEST.SESSION
           return session[str]
   
   
       def readfile(self,path):
           
           ret=""
           f=open(path,'r')
           for g in f.readlines():
               ret=ret+g
           return ret
        
       def writefile(self,path,txt,REQUEST):
           f=open(path,'w')
           f.write(txt)
           f.close()
           rval=self.aq_acquire('archive2')
           return rval()
   
   
     def view(self):      def view(self):
         """view page"""          """view page"""
         pt=PageTemplateFile('Products/OSA_system/processViewerView.zpt').__of__(self)          pt=PageTemplateFile('Products/OSA_system/processViewerView.zpt').__of__(self)
         return pt()          return pt()
           
       def error(self):
           """view errors"""
           pt=PageTemplateFile('Products/OSA_system/processViewerError.zpt').__of__(self)
           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/AddOSAS_processViewer.zpt').__of__(self)
Line 117  class OSAS_archiver(Folder, Persistent,I Line 269  class OSAS_archiver(Folder, Persistent,I
   
     meta_type="OSAS_archiver"      meta_type="OSAS_archiver"
   
       manage_options = Folder.manage_options+(
           {'label':'Main Config','action':'changeOSAS_archiverForm'},
           )
        
     # to be deleted later      # to be deleted later
     #startPath="/mpiwg"      #startPath="/mpiwg"
     ## methoden aus dem alten archive.py      ## methoden aus dem alten archive.py
   
      
   
     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)
Line 196  class OSAS_archiver(Folder, Persistent,I Line 354  class OSAS_archiver(Folder, Persistent,I
         pt=PageTemplateFile('Products/OSA_system/archiverIndex.zpt').__of__(self)          pt=PageTemplateFile('Products/OSA_system/archiverIndex.zpt').__of__(self)
         return pt()          return pt()
           
       def getDate(self):
           """date"""
           return time.strftime("%Y-%m-%d",time.localtime())
       
     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/newFolders.zpt').__of__(self)
Line 204  class OSAS_archiver(Folder, Persistent,I Line 366  class OSAS_archiver(Folder, Persistent,I
     def getProducers(self):      def getProducers(self):
         """Ausgabe der registrierten Benutzer"""          """Ausgabe der registrierten Benutzer"""
         ret=[]          ret=[]
         #print self.aq_parent.__dict__          #x=7
           id=self.producerFolder.getId()
         for list in self.producerFolder.__dict__:          for list in self.producerFolder.__dict__:
             obj=getattr(self.producerFolder,list)              obj=getattr(self.producerFolder,list)
             if (hasattr(obj,"meta_type")):              if (hasattr(obj,"meta_type")):
Line 228  class OSAS_archiver(Folder, Persistent,I Line 391  class OSAS_archiver(Folder, Persistent,I
           
     def createFolders(self,folderList,producer):      def createFolders(self,folderList,producer):
         """Erzeug die entsprechenden Folder"""          """Erzeug die entsprechenden Folder"""
         for folder in folderList:          #hack
           producer="library"
           if type(folderList)==StringType:
               folders=[folderList]
           else:
               folders=folderList
           
           
           for folder in folders:
             os.mkdir(self.startPath+"/"+producer+"/"+folder)              os.mkdir(self.startPath+"/"+producer+"/"+folder)
         self.REQUEST.SESSION['folderList']=folderList              os.chmod(self.startPath+"/"+producer+"/"+folder,0775)
           self.REQUEST.SESSION['folderList']=folders
         pt=PageTemplateFile('Products/OSA_system/createFolders.zpt').__of__(self)          pt=PageTemplateFile('Products/OSA_system/createFolders.zpt').__of__(self)
         return pt()          return pt()
   
       def storeerror(self,ret,path,context,i):
           """store an error"""
           session=context.REQUEST.SESSION
           session['error%i'%i]=ret
           session['path%i'%i]=path
        
           return 'error?number=%i'%i
   
       def geterror(self,str,context):
           session=context.REQUEST.SESSION
           return session[str]
   
       def readfile(self,path):
           
           ret=""
           f=open(path,'r')
           for g in f.readlines():
               ret=ret+g
           return ret
        
       def writefile(self,path,txt,REQUEST):
           f=open(path,'w')
           f.write(txt)
           f.close()
           rval=self.aq_acquire('archive2')
           return rval()
   
       def error(self):
           """view errors"""
           pt=PageTemplateFile('Products/OSA_system/processViewerError.zpt').__of__(self)
           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/archiveSelected.zpt').__of__(self)
Line 249  class OSAS_archiver(Folder, Persistent,I Line 454  class OSAS_archiver(Folder, Persistent,I
         """Anzeige der noch zu archivieren Files"""          """Anzeige der noch zu archivieren Files"""
   
                   
       def changeOSAS_archiverForm(self):
           """change"""
           pt=PageTemplateFile('Products/OSA_system/ChangeOSAS_archiver.zpt').__of__(self)
           return pt()
   
       def changeOSAS_archiver(self,startPath,title="",RESPONSE=None):
           """change"""
           self.startPath=startPath
           self.title=title
   
           if RESPONSE is not None:
               RESPONSE.redirect('manage_main')
           
   
 def manage_AddOSAS_archiverForm(self):  def manage_AddOSAS_archiverForm(self):
Line 269  def manage_AddOSAS_archiver(self,id,star Line 485  def manage_AddOSAS_archiver(self,id,star
         RESPONSE.redirect('manage_main')          RESPONSE.redirect('manage_main')
   
   
 class OSAS_producer(Image,Persistent,Implicit):  class OSAS_producer(SimpleItem,Persistent,Implicit):
     """Klasse fuer Produzenteninformationen      """Klasse fuer Produzenteninformationen
     Metadaten nach  V1.1.1"""      Metadaten nach  V1.1.1"""
   
Line 283  class OSAS_producer(Image,Persistent,Imp Line 499  class OSAS_producer(Image,Persistent,Imp
         self.url=url          self.url=url
         self.contact=contact          self.contact=contact
   
     manage_options = Folder.manage_options+(      manage_options = SimpleItem.manage_options+(
         {'label':'Main Config','action':'changeOSAS_producerForm'},          {'label':'Main Config','action':'changeOSAS_producerForm'},
         )          )
   
Line 292  class OSAS_producer(Image,Persistent,Imp Line 508  class OSAS_producer(Image,Persistent,Imp
         pt=PageTemplateFile('Products/OSA_system/ChangeOSAS_producer.zpt').__of__(self)          pt=PageTemplateFile('Products/OSA_system/ChangeOSAS_producer.zpt').__of__(self)
         return pt()          return pt()
           
       def changeOSAS_producer(self,title,address,contact="",url=""):
           """change"""
           self.title=fullName
           self.address=address
           self.url=url
           self.contact=contact
   
 def manage_AddOSAS_producerForm(self):  def manage_AddOSAS_producerForm(self):
     """interface for adding the OSAS_root"""      """interface for adding the OSAS_root"""

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


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