version 1.6, 2004/01/06 14:39:49
|
version 1.12, 2005/05/04 14:06:31
|
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 6 from OFS.SimpleItem import SimpleItem
|
Line 10 from OFS.SimpleItem import SimpleItem
|
from Products.PageTemplates.PageTemplateFile import PageTemplateFile |
from Products.PageTemplates.PageTemplateFile import PageTemplateFile |
from Products.PageTemplates.PageTemplate import PageTemplate |
from Products.PageTemplates.PageTemplate import PageTemplate |
from AccessControl import ClassSecurityInfo |
from AccessControl import ClassSecurityInfo |
from Globals import InitializeClass |
from Globals import InitializeClass,Persistent,package_home |
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 OSAS_helpers import * |
Line 31 class OSAS_archiveInbox(SimpleItem,Persi
|
Line 34 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(os.path.join(package_home(globals()),'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(os.path.join(package_home(globals()),'zpt','AddOSAS_archiveInbox.zpt')).__of__(self) |
return pt() |
return pt() |
|
|
|
|
Line 96 class OSAS_metadataOrganizer(SimpleItem,
|
Line 104 class OSAS_metadataOrganizer(SimpleItem,
|
else: |
else: |
self.REQUEST.SESSION['path']=path |
self.REQUEST.SESSION['path']=path |
|
|
pt=PageTemplateFile('Products/OSA_system/inputRessourceData.zpt').__of__(self) |
pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','inputRessourceData.zpt')).__of__(self) |
return pt() |
return pt() |
|
|
|
|
Line 119 class OSAS_metadataOrganizer(SimpleItem,
|
Line 127 class OSAS_metadataOrganizer(SimpleItem,
|
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(os.path.join(package_home(globals()),'zpt','inputAcquisitionData.zpt')).__of__(self) |
return pt() |
return pt() |
|
|
|
|
Line 151 class OSAS_metadataOrganizer(SimpleItem,
|
Line 159 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(os.path.join(package_home(globals()),'zpt','inputDocumentMetadata.zpt')).__of__(self) |
return pt() |
return pt() |
|
|
|
|
Line 176 class OSAS_metadataOrganizer(SimpleItem,
|
Line 184 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(os.path.join(package_home(globals()),'zpt','inputBiblioMetadata.zpt')).__of__(self) |
return pt() |
return pt() |
|
|
def writeBiblioMetadata(self,bibdata_type,RESPONSE=None): |
def writeBiblioMetadata(self,bibdata_type,RESPONSE=None): |
Line 195 class OSAS_metadataOrganizer(SimpleItem,
|
Line 203 class OSAS_metadataOrganizer(SimpleItem,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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(os.path.join(package_home(globals()),'zpt','AddOSAS_metadataOrganizer.zpt')).__of__(self) |
return pt() |
return pt() |
|
|
|
|
Line 228 class OSAS_processViewer(SimpleItem,Pers
|
Line 232 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(os.path.join(package_home(globals()),'zpt','processViewerIndex.zpt')).__of__(self) |
return pt() |
return pt() |
|
|
def storeFile(self,something): |
def storeFile(self,something): |
Line 267 class OSAS_processViewer(SimpleItem,Pers
|
Line 271 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 277 class OSAS_processViewer(SimpleItem,Pers
|
Line 282 class OSAS_processViewer(SimpleItem,Pers
|
def view(self,number): |
def view(self,number): |
"""view page""" |
"""view page""" |
self.errnum=number |
self.errnum=number |
pt=PageTemplateFile('Products/OSA_system/processViewerView.zpt').__of__(self) |
pt=PageTemplateFile(os.path.join(package_home(globals()),'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(os.path.join(package_home(globals()),'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(os.path.join(package_home(globals()),'zpt','AddOSAS_processViewer.zpt')).__of__(self) |
return pt() |
return pt() |
|
|
|
|
Line 312 class OSAS_archiver(Folder, Persistent,I
|
Line 317 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(os.path.join(package_home(globals()),'zpt','archiveStatus.zpt')).__of__(self) |
return pt() |
return pt() |
|
|
|
def archive2(self): |
|
pt=PageTemplateFile(os.path.join(package_home(globals()),'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 365 class OSAS_archiver(Folder, Persistent,I
|
Line 392 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 385 class OSAS_archiver(Folder, Persistent,I
|
Line 411 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(os.path.join(package_home(globals()),'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(os.path.join(package_home(globals()),'zpt','archiverIndex.zpt')).__of__(self) |
return pt() |
return pt() |
|
|
def getDate(self): |
def getDate(self): |
Line 399 class OSAS_archiver(Folder, Persistent,I
|
Line 425 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(os.path.join(package_home(globals()),'zpt','newFolders.zpt')).__of__(self) |
return pt() |
return pt() |
|
|
def getProducers(self): |
def getProducers(self): |
Line 416 class OSAS_archiver(Folder, Persistent,I
|
Line 442 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 425 class OSAS_archiver(Folder, Persistent,I
|
Line 451 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(os.path.join(package_home(globals()),'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(os.path.join(package_home(globals()),'zpt','createFolders.zpt')).__of__(self) |
return pt() |
return pt() |
|
|
def storeerror(self,ret,path,context,i): |
def storeerror(self,ret,path,context,i): |
Line 466 class OSAS_archiver(Folder, Persistent,I
|
Line 493 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(os.path.join(package_home(globals()),'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(os.path.join(package_home(globals()),'zpt','archiveSelected.zpt')).__of__(self) |
return pt() |
return pt() |
|
|
def enterAcquisitionMetadata(self): |
def enterAcquisitionMetadata(self): |
Line 495 class OSAS_archiver(Folder, Persistent,I
|
Line 522 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(os.path.join(package_home(globals()),'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 509 class OSAS_archiver(Folder, Persistent,I
|
Line 536 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(os.path.join(package_home(globals()),'zpt','AddOSAS_archiver.zpt')).__of__(self) |
return pt() |
return pt() |
|
|
|
|
Line 530 class OSAS_producer(SimpleItem,Persisten
|
Line 557 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 544 class OSAS_producer(SimpleItem,Persisten
|
Line 572 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(os.path.join(package_home(globals()),'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(os.path.join(package_home(globals()),'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') |