--- OSAS/OSA_system/OSAS_archiver.py 2003/12/23 13:43:10 1.3 +++ OSAS/OSA_system/OSAS_archiver.py 2004/01/06 14:39:49 1.6 @@ -11,6 +11,7 @@ from Globals import Persistent from Acquisition import Implicit from OSAS_show import * from OSAS_helpers import * +from types import * import os.path import os @@ -80,12 +81,48 @@ class OSAS_metadataOrganizer(SimpleItem, self.title=title #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/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): """Hinzufügen von Acquisition Daten""" self.REQUEST.SESSION['path']=path pt=PageTemplateFile('Products/OSA_system/inputAcquisitionData.zpt').__of__(self) return pt() + def writeAcquisitionMetadata(self,date,path,media_type,producer="mpiwg",description=""): """Schreibe Acquisiondata in index.meta""" @@ -151,9 +188,10 @@ class OSAS_metadataOrganizer(SimpleItem, #for key in form.keys(): # subnodes[key]=form['device'] subnodes=form + del subnodes['bibdata_type'] #in form but not metadata 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']) + #return self.REQUEST + return self.addRessourceMeta() @@ -198,9 +236,10 @@ class OSAS_processViewer(SimpleItem,Pers self.REQUEST.SESSION['something']=something return 1 - def getFile(self): + def getFile(self,number): """get info from session""" - return self.REQUEST.SESSION['something'] + check=self.getoverview('/var/tmp/archiver').messages()[number] + return check def getoverview(self,path): """get overview""" @@ -214,10 +253,37 @@ class OSAS_processViewer(SimpleItem,Pers return 'error?number=%i'%i - def view(self): + 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,number): """view page""" + self.errnum=number pt=PageTemplateFile('Products/OSA_system/processViewerView.zpt').__of__(self) return pt() + + def error(self): + """view errors""" + pt=PageTemplateFile('Products/OSA_system/processViewerError.zpt').__of__(self) + return pt() def manage_AddOSAS_processViewerForm(self): """interface for adding the OSAS_processViewer""" @@ -242,6 +308,10 @@ class OSAS_archiver(Folder, Persistent,I meta_type="OSAS_archiver" + manage_options = Folder.manage_options+( + {'label':'Main Config','action':'changeOSAS_archiverForm'}, + ) + # to be deleted later #startPath="/mpiwg" ## methoden aus dem alten archive.py @@ -360,12 +430,54 @@ class OSAS_archiver(Folder, Persistent,I def createFolders(self,folderList,producer): """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) - 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) 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): """Archiviere ausgewaehlte files""" pt=PageTemplateFile('Products/OSA_system/archiveSelected.zpt').__of__(self) @@ -381,7 +493,18 @@ class OSAS_archiver(Folder, Persistent,I """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):