File:  [Repository] / OSAS / OSA_system / OSAS_archiver.py
Revision 1.1: download - view: text, annotated - select for diffs - revision graph
Thu Dec 18 17:22:28 2003 UTC (20 years, 6 months ago) by dwinter
Branches: MAIN
CVS tags: HEAD
add archiving system

    1: # Methoden und Klassen fuer den MPIWG Archiver
    2: 
    3: from OFS.Image import Image
    4: from OFS.Folder import Folder
    5: from OFS.SimpleItem import SimpleItem
    6: from Products.PageTemplates.PageTemplateFile import PageTemplateFile
    7: from Products.PageTemplates.PageTemplate import PageTemplate
    8: from AccessControl import ClassSecurityInfo
    9: from Globals import InitializeClass
   10: from Globals import Persistent
   11: from Acquisition import Implicit
   12: from OSAS_show import *
   13: 
   14: import os.path
   15: import os
   16: import OSAS_ids
   17: import archive #Baustelle
   18: 
   19: class OSAS_metadataOrganizer(SimpleItem,Persistent,Implicit):
   20:     """Eingabe von Metadaten"""
   21: 
   22:     meta_type="OSAS_metadataOrganizer"
   23: 
   24:     def __init__(self,id,title):
   25:         """init"""
   26:         self.id=id
   27:         self.title=title
   28:         #self.acquisitionData=['provider_name','provider_address','provider_contact','provider_url','date','description']
   29: 
   30:     def addAcquisition(self,path):
   31:         """Hinzufügen von Acquisition Daten"""
   32:         self.REQUEST.SESSION['path']=path
   33:         pt=PageTemplateFile('Products/OSA_system/inputAcquisitionData.zpt').__of__(self)
   34:         return pt()
   35: 
   36:     def writeAcquisitionMetadata(self,producer,date,path,description=""):
   37:         """Schreibe Acquisiondata in index.meta"""
   38:         
   39: def manage_AddOSAS_metadataOrganizerForm(self):
   40:     """interface for adding the OSAS_root"""
   41:     pt=PageTemplateFile('Products/OSA_system/AddOSAS_metadataOrganizer.zpt').__of__(self)
   42:     return pt()
   43: 
   44: 
   45: def manage_AddOSAS_metadataOrganizer(self,id,title="",RESPONSE=None):
   46:     """add the OSAS_root"""
   47:     if title=="":
   48:         title=id
   49:         
   50:     newObj=OSAS_metadataOrganizer(id, title)
   51:     self._setObject(id,newObj)
   52:     if RESPONSE is not None:
   53:         RESPONSE.redirect('manage_main')
   54:     
   55: 
   56: class OSAS_processViewer(SimpleItem,Persistent,Implicit):
   57:     """Process viewer for archiving"""
   58: 
   59:     meta_type="OSAS_processViewer"
   60: 
   61:     def __init__(self, id, title):
   62:         """init"""
   63:         self.id=id
   64:         self.title=title
   65: 
   66:     def index_html(self):
   67:         """main page"""
   68:         pt=PageTemplateFile('Products/OSA_system/processViewerIndex.zpt').__of__(self)
   69:         return pt()
   70: 
   71:     def storeFile(self,something):
   72:         """store info in session"""
   73:         self.REQUEST.SESSION['something']=something
   74:         return 1
   75: 
   76:     def getFile(self):
   77:         """get info from session"""
   78:         return self.REQUEST.SESSION['something']
   79: 
   80:     def getoverview(self,path):
   81:         """get overview"""
   82:         return archive.overview(path)
   83: 
   84:     def storeerror(self,ret,path,context,i):
   85:         """store an error"""
   86:         session=context.REQUEST.SESSION
   87:         session['error%i'%i]=ret
   88:         session['path%i'%i]=path
   89:      
   90:         return 'error?number=%i'%i
   91: 
   92:     def view(self):
   93:         """view page"""
   94:         pt=PageTemplateFile('Products/OSA_system/processViewerView.zpt').__of__(self)
   95:         return pt()
   96:     
   97: def manage_AddOSAS_processViewerForm(self):
   98:     """interface for adding the OSAS_processViewer"""
   99:     pt=PageTemplateFile('Products/OSA_system/AddOSAS_processViewer.zpt').__of__(self)
  100:     return pt()
  101: 
  102: 
  103: def manage_AddOSAS_processViewer(self,id,title="",RESPONSE=None):
  104:     """add the OSAS_processViewer"""
  105:     if title=="":
  106:         title=id
  107:         
  108:     newObj=OSAS_processViewer(id, title)
  109:     self._setObject(id,newObj)
  110:     if RESPONSE is not None:
  111:         RESPONSE.redirect('manage_main')
  112: 
  113: 
  114: 
  115: class OSAS_archiver(Folder, Persistent,Implicit):
  116:     """Hauptklasse fuer das Archiv"""
  117: 
  118:     meta_type="OSAS_archiver"
  119: 
  120:     # to be deleted later
  121:     #startPath="/mpiwg"
  122:     ## methoden aus dem alten archive.py
  123: 
  124:     def archiver(self,path):
  125:         """archive the documents in path"""
  126:         tmp=archive.archive(path,self.REQUEST.SESSION)
  127:         pt=PageTemplateFile('Products/OSA_system/archiveStatus.zpt').__of__(self)
  128:         return pt()
  129: 
  130:         
  131: 
  132: 
  133:     def metachecker(self,path):
  134:         """check the metadata the documents in path"""
  135:         self.REQUEST.SESSION['path']=self.REQUEST['path']
  136:         return archive.metacheck(path)
  137: 
  138:     ## methods  from OSAS_show
  139:     def changeName(self,name):
  140:         return changeName(name)
  141: 
  142:     def hasMetafile(self,path):
  143:         return hasMetafile(path)
  144: 
  145:     def getMetafile(self,path):
  146:         return getMetafile(path)
  147: 
  148:     def toggle_view(self,path,file):
  149:         """Oeffnen bzw. schließen der Subfolders"""
  150:         self.tree(path).toggle(path,file)
  151:         return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL1']+"?path="+path)
  152: 
  153: 
  154: 
  155:     def isdigilib2(self,path):
  156:         """check if digilib"""
  157:         return isdigilib2(path)
  158: 
  159:     def path_to_link_view(self,path):
  160:         """generates navigation bar for viewfiles"""
  161:         return path_to_link_view(self.REQUEST['URL'],path)
  162:     
  163: 
  164:     def tree(self,start):
  165: 	"""get the filetree"""
  166: 	k=browse(start)
  167: 	return k
  168: 
  169:     def getfilesystem2(self,start,reload=0):
  170: 	"""load filesystem"""
  171: 
  172: 	k=filesystem2(start,1)
  173: 	return k
  174: 
  175:     def getfilesystem(self,start,reload=0):
  176: 	"""load filesystem"""
  177: 
  178: 	k=filesystem(start,1)
  179: 	return k
  180: 
  181: 
  182:     ##init
  183:     def __init__(self, id, title,startPath):
  184:         """init"""
  185:         self.id=id
  186:         self.title=title
  187:         self.startPath=startPath
  188: 
  189:     def archiver_html(self):
  190:         """archiver"""
  191:         pt=PageTemplateFile('Products/OSA_system/OSAS_Archiver.zpt').__of__(self)
  192:         return pt()
  193: 
  194:     def index_html(self):
  195:         """main page"""
  196:         pt=PageTemplateFile('Products/OSA_system/archiverIndex.zpt').__of__(self)
  197:         return pt()
  198:     
  199:     def newFolders_html(self):
  200:         """main page"""
  201:         pt=PageTemplateFile('Products/OSA_system/newFolders.zpt').__of__(self)
  202:         return pt()
  203: 
  204:     def getProducers(self):
  205:         """Ausgabe der registrierten Benutzer"""
  206:         ret=[]
  207:         #print self.aq_parent.__dict__
  208:         for list in self.producerFolder.__dict__:
  209:             obj=getattr(self.producerFolder,list)
  210:             if (hasattr(obj,"meta_type")):
  211:                 if (obj.meta_type=="OSAS_producer"):
  212:                     ret.append(obj.getId())
  213:         return ret
  214: 
  215:     def getProducer(self,id):
  216:         """Gebe ProducerObjekt zurück"""
  217:         obj=getattr(self.aq_parent.producerFolder,id)
  218:         return obj
  219:         
  220:         
  221: 
  222:     def createFoldersForm(self,producer,number):
  223:         """Erzeuge Folder im producer Verzeichnis mit ids"""
  224:         self.REQUEST.SESSION['producer']=producer
  225:         self.REQUEST.SESSION['ids']=self.idGenerator.giveIdsOut(number)
  226:         pt=PageTemplateFile('Products/OSA_system/createFoldersForm.zpt').__of__(self)
  227:         return pt()
  228:     
  229:     def createFolders(self,folderList,producer):
  230:         """Erzeug die entsprechenden Folder"""
  231:         for folder in folderList:
  232:             os.mkdir(self.startPath+"/"+producer+"/"+folder)
  233:         self.REQUEST.SESSION['folderList']=folderList
  234:         pt=PageTemplateFile('Products/OSA_system/createFolders.zpt').__of__(self)
  235:         return pt()
  236: 
  237:     def archiveSelected(self):
  238:         """Archiviere ausgewaehlte files"""
  239:         pt=PageTemplateFile('Products/OSA_system/archiveSelected.zpt').__of__(self)
  240:         return pt()
  241: 
  242:     def enterAcquisitionMetadata(self):
  243:         """Erstelle Metadaten fuer Acquisition"""
  244: 
  245:     def enterPreliminaryBibMeta(self):
  246:         """Erstelle Metadaten fuer Bibliography"""
  247:         
  248:     def showFilesForArchiving(self):
  249:         """Anzeige der noch zu archivieren Files"""
  250: 
  251:         
  252: 
  253:     
  254: 
  255: def manage_AddOSAS_archiverForm(self):
  256:     """interface for adding the OSAS_root"""
  257:     pt=PageTemplateFile('Products/OSA_system/AddOSAS_archiver.zpt').__of__(self)
  258:     return pt()
  259: 
  260: 
  261: def manage_AddOSAS_archiver(self,id,startPath,title="",RESPONSE=None):
  262:     """add the OSAS_root"""
  263:     if title=="":
  264:         title=id
  265:         
  266:     newObj=OSAS_archiver(id, title,startPath)
  267:     self._setObject(id,newObj)
  268:     if RESPONSE is not None:
  269:         RESPONSE.redirect('manage_main')
  270: 
  271: 
  272: class OSAS_producer(Image,Persistent,Implicit):
  273:     """Klasse fuer Produzenteninformationen"""
  274: 
  275:     meta_type="OSAS_producer"
  276: 
  277:     def __init__(self,shortName,fullName):
  278: 
  279:         self.id=shortName
  280:         self.title=fullName
  281: 
  282: 
  283: def manage_AddOSAS_producerForm(self):
  284:     """interface for adding the OSAS_root"""
  285:     pt=PageTemplateFile('Products/OSA_system/AddOSAS_producer.zpt').__of__(self)
  286:     return pt()
  287: 
  288: 
  289: def manage_AddOSAS_producer(self,id,title="",RESPONSE=None):
  290:     """add the OSAS_root"""
  291:     if title=="":
  292:         title=id
  293:         
  294:     newObj=OSAS_producer(id, title)
  295:     self._setObject(id,newObj)
  296:     if RESPONSE is not None:
  297:         RESPONSE.redirect('manage_main')
  298: 

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