Annotation of OSAS/OSA_system/OSAS_archiver.py, revision 1.2

1.1       dwinter     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):
1.2     ! dwinter   273:     """Klasse fuer Produzenteninformationen
        !           274:     Metadaten nach  V1.1.1"""
1.1       dwinter   275: 
                    276:     meta_type="OSAS_producer"
                    277: 
1.2     ! dwinter   278:     def __init__(self,shortName,fullName,address="",url="",contact=""):
1.1       dwinter   279: 
                    280:         self.id=shortName
                    281:         self.title=fullName
1.2     ! dwinter   282:         self.address=address
        !           283:         self.url=url
        !           284:         self.contact=contact
        !           285: 
        !           286:     manage_options = Folder.manage_options+(
        !           287:         {'label':'Main Config','action':'changeOSAS_producerForm'},
        !           288:         )
        !           289: 
        !           290:     def changeOSAS_producerForm(self):
        !           291:         """change"""
        !           292:         pt=PageTemplateFile('Products/OSA_system/ChangeOSAS_producer.zpt').__of__(self)
        !           293:         return pt()
        !           294:     
1.1       dwinter   295: 
                    296: def manage_AddOSAS_producerForm(self):
                    297:     """interface for adding the OSAS_root"""
                    298:     pt=PageTemplateFile('Products/OSA_system/AddOSAS_producer.zpt').__of__(self)
                    299:     return pt()
                    300: 
                    301: 
1.2     ! dwinter   302: def manage_AddOSAS_producer(self,id,title="",contact="",address="",url="",RESPONSE=None):
1.1       dwinter   303:     """add the OSAS_root"""
                    304:     if title=="":
                    305:         title=id
                    306:         
1.2     ! dwinter   307:     newObj=OSAS_producer(id, title,address,contact,url)
1.1       dwinter   308:     self._setObject(id,newObj)
                    309:     if RESPONSE is not None:
                    310:         RESPONSE.redirect('manage_main')
                    311: 

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