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

1.11      dwinter     1: """ Methoden und Klassen fuer den MPIWG Archiver
                      2: 20040303 Zur Zeit nur angepasst and das System des MPIWG
                      3: nächste schritte: Konfigurierbarkeit der Metadaten / Konfigurierbarkeit der Server
                      4: 
                      5: """
1.1       dwinter     6: 
                      7: from OFS.Image import Image
                      8: from OFS.Folder import Folder
                      9: from OFS.SimpleItem import SimpleItem
                     10: from Products.PageTemplates.PageTemplateFile import PageTemplateFile
                     11: from Products.PageTemplates.PageTemplate import PageTemplate
                     12: from AccessControl import ClassSecurityInfo
1.12      dwinter    13: from Globals import InitializeClass,Persistent,package_home
1.1       dwinter    14: from Acquisition import Implicit
                     15: from OSAS_show import *
1.3       dwinter    16: from OSAS_helpers import *
1.5       dwinter    17: from types import *
1.1       dwinter    18: 
                     19: import os.path
                     20: import os
                     21: import OSAS_ids
                     22: import archive #Baustelle
1.3       dwinter    23: import time
                     24: 
                     25: class OSAS_archiveInbox(SimpleItem,Persistent,Implicit):
                     26:     """Inbox"""
                     27: 
                     28:     meta_type="OSAS_archiveInbox"
                     29:     pathes=[]
                     30:     
                     31:     def __init__(self,id,title):
                     32:         """init"""
                     33:         self.id=id
                     34:         self.title=title
                     35:         self.pathes=[]
                     36: 
1.8       dwinter    37:     def addPath(self,path,RESPONSE=None):
                     38:         """add a path"""
1.3       dwinter    39:         today=time.localtime()
1.9       dwinter    40:         temp=self.pathes[0:]
                     41:         temp.append([path,today])
                     42:         self.pathes=temp[0:]
1.8       dwinter    43:         if RESPONSE:
                     44:             RESPONSE.redirect("index_html")
1.3       dwinter    45: 
                     46:     def index_html(self):
                     47:         """main"""
1.12      dwinter    48:         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','OSAS_archiveInboxIndex.zpt')).__of__(self)
1.3       dwinter    49:         return pt()
                     50:     
                     51: def manage_AddOSAS_archiveInboxForm(self):
                     52:     """interface for adding the OSAS_root"""
1.12      dwinter    53:     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddOSAS_archiveInbox.zpt')).__of__(self)
1.3       dwinter    54:     return pt()
                     55: 
                     56: 
                     57: def manage_AddOSAS_archiveInbox(self,id,title="",RESPONSE=None):
                     58:     """add the OSAS_root"""
                     59:     if title=="":
                     60:         title=id
                     61:         
                     62:     newObj=OSAS_archiveInbox(id, title)
                     63:     self._setObject(id,newObj)
                     64:     if RESPONSE is not None:
                     65:         RESPONSE.redirect('manage_main')
                     66:     
                     67: 
1.1       dwinter    68: 
                     69: class OSAS_metadataOrganizer(SimpleItem,Persistent,Implicit):
                     70:     """Eingabe von Metadaten"""
                     71: 
                     72:     meta_type="OSAS_metadataOrganizer"
1.3       dwinter    73:     mediaTypes=["image","video","text","audio","data"]
                     74:     acquisitionTypes=["Image-Acquisition"]
                     75:     mediaToAcquisition={"image":"Image-Acquisition"}
                     76:     metaDataSets={'Image-Acquisition': [('device','opt'),('image-type','opt'),('production-comment','opt')]}
                     77:     imgData={'image':[('dpi','req')]}
                     78:     
                     79:     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')],
                     80:                   'Journal Article':[('author','opt'),('year','opt'),('title','opt'),('journal','opt'),('volume','opt'),('issue','opt'),('pages','opt'),('alternate journal','opt'),('call number','opt')],
1.13    ! casties    81:                   'Manuscript':[('author','opt'),('year','opt'),('title','opt'),('location','opt'),('signature','opt'),('pages','opt'),('editorial remarks','opt'),('description','opt'),('keywords','opt')],
        !            82:                   'Journal Volume':[('title','opt'),('editor','opt'),('year','opt'),('volume','opt'),('number of pages','opt'),('city','opt'),('publisher','opt'),('ISBN ISSN','opt')]
        !            83:                   }
1.3       dwinter    84: 
                     85: 
1.13    ! casties    86:     referenceTypes=['Book','Journal Article','Manuscript','Journal Volume']
1.1       dwinter    87: 
                     88:     def __init__(self,id,title):
                     89:         """init"""
                     90:         self.id=id
                     91:         self.title=title
                     92:         #self.acquisitionData=['provider_name','provider_address','provider_contact','provider_url','date','description']
                     93: 
1.6       dwinter    94: 
                     95:     def getName(self):
                     96:         """gives name from request session path"""
                     97:         path=self.REQUEST.SESSION['path']
                     98:         splitted=path.split("/")
                     99:         return splitted[len(splitted)-1]
                    100:         
                    101:     def addRessourceMeta(self,path=None,RESPONSE=None):
                    102:         """Metadaten fuer Ressource"""
                    103:         if not path:
                    104:             path=self.REQUEST.SESSION['path']
                    105: 
                    106:         else:
                    107:             self.REQUEST.SESSION['path']=path
                    108: 
1.12      dwinter   109:         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','inputRessourceData.zpt')).__of__(self)
1.6       dwinter   110:         return pt()
                    111: 
                    112:         
                    113:     def writeRessourceMetadata(self,name,date,description,creator,RESPONSE=None):
                    114:         """schreibe Resourcedata in index.meta"""
                    115: 
                    116:         path=self.REQUEST.SESSION['path']
                    117: 
                    118:         subnodes={}
                    119:         subnodes['name']=name
                    120:         subnodes['archive-creation-date']=date
                    121:         subnodes['creator']=creator       
                    122:         subnodes['description']=description
                    123:         
                    124:         changeNodesInIndexMeta(path,"",subnodes)
                    125:         self.inbox.addPath(self.REQUEST.SESSION['path'])
                    126:         RESPONSE.redirect(self.REQUEST['URL2'])
                    127:         
                    128:         
1.1       dwinter   129:     def addAcquisition(self,path):
                    130:         """Hinzufügen von Acquisition Daten"""
                    131:         self.REQUEST.SESSION['path']=path
1.12      dwinter   132:         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','inputAcquisitionData.zpt')).__of__(self)
1.1       dwinter   133:         return pt()
                    134: 
1.6       dwinter   135: 
1.3       dwinter   136:     def writeAcquisitionMetadata(self,date,path,media_type,producer="mpiwg",description=""):
1.1       dwinter   137:         """Schreibe Acquisiondata in index.meta"""
                    138:         
1.3       dwinter   139:         #schreibe in index.meta
                    140:         subnodes={}
                    141:         subnodes['media-type']=media_type
                    142:         changeNodesInIndexMeta(path,"",subnodes)
                    143:         
                    144:         subnodes={}
                    145:         subnodes['date']=date
                    146:         subnodes['description']=description
                    147:         
1.13    ! casties   148:         changeNodesInIndexMeta(path,"acquisition",subnodes,parent="meta")
1.3       dwinter   149:         #print "HI"
                    150: 
                    151:         subnodes={}
                    152:         subnodes['provider-id']=producer
                    153:         subnodes['url']=getattr(self.producerFolder,producer).url
                    154:         subnodes['contact']=getattr(self.producerFolder,producer).contact
                    155:         subnodes['address']=getattr(self.producerFolder,producer).address
                    156:         
                    157:         changeNodesInIndexMeta(path,"provider",subnodes,parent="acquisition")
                    158: 
                    159:         
                    160:         self.metaDataSet=self.metaDataSets[self.mediaToAcquisition[media_type]]
                    161:         self.media_type=self.mediaToAcquisition[media_type]
                    162:         
1.12      dwinter   163:         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','inputDocumentMetadata.zpt')).__of__(self)
1.3       dwinter   164:         return pt()
                    165: 
                    166:         
                    167:     def writeDocumentMetadata(self,referenceType):
                    168:         """write document metadata"""
                    169:         form=self.REQUEST.form
1.13    ! casties   170:         #schreibe in index.meta
1.3       dwinter   171:         self.bibDataSet=self.bibDataSets[form['referenceType']]
                    172:         self.bibdata_type=form['referenceType']
                    173: 
                    174:         subnodes={}
                    175:         subnodes['device']=form['device']
                    176:         subnodes['image-type']=form['image-type']
                    177:         subnodes['production-comment']=form['production-comment']
1.13    ! casties   178:         changeNodesInIndexMeta(self.REQUEST.SESSION['path'],"image-acquisition",subnodes,parent="meta")
1.3       dwinter   179: 
                    180:         subnodes={}
                    181:         subnodes['dpi']=form['dpi']
1.13    ! casties   182:         changeNodesInIndexMeta(self.REQUEST.SESSION['path'],"img",subnodes,parent="meta")
1.3       dwinter   183: 
1.12      dwinter   184:         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','inputBiblioMetadata.zpt')).__of__(self)
1.3       dwinter   185:         return pt()
                    186: 
1.13    ! casties   187: 
1.3       dwinter   188:     def writeBiblioMetadata(self,bibdata_type,RESPONSE=None):
                    189:         """Write all"""
                    190:         #to do write metadata
                    191: 
                    192:         subnodes={}
                    193:         form=self.REQUEST.form
                    194:         #for key in form.keys():
                    195:         #    subnodes[key]=form['device']
                    196:         subnodes=form
1.6       dwinter   197:         del subnodes['bibdata_type'] #in form but not metadata
1.3       dwinter   198:         changeNodesInIndexMeta(self.REQUEST.SESSION['path'],"bib",subnodes,nodeAttributes={'type':bibdata_type},parent="meta")
1.6       dwinter   199:         #return self.REQUEST
                    200:         return self.addRessourceMeta()
1.3       dwinter   201:         
                    202:     
                    203: 
1.1       dwinter   204: def manage_AddOSAS_metadataOrganizerForm(self):
                    205:     """interface for adding the OSAS_root"""
1.12      dwinter   206:     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddOSAS_metadataOrganizer.zpt')).__of__(self)
1.1       dwinter   207:     return pt()
                    208: 
                    209: 
                    210: def manage_AddOSAS_metadataOrganizer(self,id,title="",RESPONSE=None):
                    211:     """add the OSAS_root"""
                    212:     if title=="":
                    213:         title=id
                    214:         
                    215:     newObj=OSAS_metadataOrganizer(id, title)
                    216:     self._setObject(id,newObj)
                    217:     if RESPONSE is not None:
                    218:         RESPONSE.redirect('manage_main')
                    219:     
                    220: 
                    221: class OSAS_processViewer(SimpleItem,Persistent,Implicit):
                    222:     """Process viewer for archiving"""
                    223: 
                    224:     meta_type="OSAS_processViewer"
                    225: 
                    226:     def __init__(self, id, title):
                    227:         """init"""
                    228:         self.id=id
                    229:         self.title=title
                    230: 
                    231:     def index_html(self):
                    232:         """main page"""
1.12      dwinter   233:         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','processViewerIndex.zpt')).__of__(self)
1.1       dwinter   234:         return pt()
                    235: 
                    236:     def storeFile(self,something):
                    237:         """store info in session"""
                    238:         self.REQUEST.SESSION['something']=something
                    239:         return 1
                    240: 
1.6       dwinter   241:     def getFile(self,number):
1.1       dwinter   242:         """get info from session"""
1.6       dwinter   243:         check=self.getoverview('/var/tmp/archiver').messages()[number]
                    244:         return check
1.1       dwinter   245: 
                    246:     def getoverview(self,path):
                    247:         """get overview"""
                    248:         return archive.overview(path)
                    249: 
                    250:     def storeerror(self,ret,path,context,i):
                    251:         """store an error"""
                    252:         session=context.REQUEST.SESSION
                    253:         session['error%i'%i]=ret
                    254:         session['path%i'%i]=path
                    255:      
                    256:         return 'error?number=%i'%i
                    257: 
1.4       dwinter   258:     def geterror(self,str,context):
                    259:         session=context.REQUEST.SESSION
                    260:         return session[str]
                    261: 
                    262: 
                    263:     def readfile(self,path):
                    264:         
                    265:         ret=""
                    266:         f=open(path,'r')
                    267:         for g in f.readlines():
                    268:             ret=ret+g
                    269:         return ret
                    270:      
                    271:     def writefile(self,path,txt,REQUEST):
1.8       dwinter   272:         """writefile"""
1.4       dwinter   273:         f=open(path,'w')
                    274:         f.write(txt)
                    275:         f.close()
                    276:         rval=self.aq_acquire('archive2')
                    277:         return rval()
                    278: 
                    279: 
1.6       dwinter   280:     def view(self,number):
1.1       dwinter   281:         """view page"""
1.6       dwinter   282:         self.errnum=number
1.12      dwinter   283:         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','processViewerView.zpt')).__of__(self)
1.1       dwinter   284:         return pt()
1.4       dwinter   285: 
                    286:     def error(self):
                    287:         """view errors"""
1.12      dwinter   288:         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','processViewerError.zpt')).__of__(self)
1.4       dwinter   289:         return pt()
1.1       dwinter   290:     
                    291: def manage_AddOSAS_processViewerForm(self):
                    292:     """interface for adding the OSAS_processViewer"""
1.12      dwinter   293:     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddOSAS_processViewer.zpt')).__of__(self)
1.1       dwinter   294:     return pt()
                    295: 
                    296: 
                    297: def manage_AddOSAS_processViewer(self,id,title="",RESPONSE=None):
                    298:     """add the OSAS_processViewer"""
                    299:     if title=="":
                    300:         title=id
                    301:         
                    302:     newObj=OSAS_processViewer(id, title)
                    303:     self._setObject(id,newObj)
                    304:     if RESPONSE is not None:
                    305:         RESPONSE.redirect('manage_main')
                    306: 
                    307: 
                    308: 
                    309: class OSAS_archiver(Folder, Persistent,Implicit):
                    310:     """Hauptklasse fuer das Archiv"""
                    311: 
                    312:     meta_type="OSAS_archiver"
                    313: 
1.5       dwinter   314:     manage_options = Folder.manage_options+(
                    315:         {'label':'Main Config','action':'changeOSAS_archiverForm'},
                    316:         )
                    317:      
1.8       dwinter   318:     def unarchive(self,path):
                    319:         """unarchive the path"""
                    320:         f = os.popen("/usr/local/mpiwg/archive/unarchiver "+path,"r")
                    321:         return f.readlines()
                    322: 
                    323:     def checkIfUnarchive(self,path):
                    324:         if not os.path.exists(path+"/index.meta"):
                    325:             return 0
                    326:         f=file(path+"/index.meta","r").read()
                    327:         dom=xml.dom.minidom.parseString(f)
                    328:         archiveStorageDates=dom.getElementsByTagName("archive-storage-date")
                    329:         if archiveStorageDates:
                    330:             return 1
                    331:         else:
                    332:             return 0
                    333: 
1.1       dwinter   334:     ## methoden aus dem alten archive.py
                    335: 
1.3       dwinter   336:    
1.10      dwinter   337:     def isArray(self,path):
                    338:         """check for array"""
                    339:         if type(path) == StringType:
                    340:             return 0
                    341:         else:
                    342:             return 1
                    343:         
1.1       dwinter   344:     def archiver(self,path):
                    345:         """archive the documents in path"""
                    346:         tmp=archive.archive(path,self.REQUEST.SESSION)
1.12      dwinter   347:         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','archiveStatus.zpt')).__of__(self)
1.1       dwinter   348:         return pt()
                    349: 
1.8       dwinter   350:     def archive2(self):
1.12      dwinter   351:         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','archive2.zpt')).__of__(self)
1.8       dwinter   352:         return pt()
1.1       dwinter   353: 
                    354: 
                    355:     def metachecker(self,path):
1.10      dwinter   356:         """check the metadata of the documents in path"""
1.1       dwinter   357:         self.REQUEST.SESSION['path']=self.REQUEST['path']
                    358:         return archive.metacheck(path)
                    359: 
                    360:     ## methods  from OSAS_show
                    361:     def changeName(self,name):
                    362:         return changeName(name)
                    363: 
                    364:     def hasMetafile(self,path):
                    365:         return hasMetafile(path)
                    366: 
                    367:     def getMetafile(self,path):
                    368:         return getMetafile(path)
                    369: 
                    370:     def toggle_view(self,path,file):
                    371:         """Oeffnen bzw. schließen der Subfolders"""
                    372:         self.tree(path).toggle(path,file)
                    373:         return self.REQUEST.RESPONSE.redirect(self.REQUEST['URL1']+"?path="+path)
                    374: 
                    375: 
                    376: 
                    377:     def isdigilib2(self,path):
                    378:         """check if digilib"""
                    379:         return isdigilib2(path)
                    380: 
                    381:     def path_to_link_view(self,path):
                    382:         """generates navigation bar for viewfiles"""
                    383:         return path_to_link_view(self.REQUEST['URL'],path)
                    384:     
                    385: 
                    386:     def tree(self,start):
                    387:    """get the filetree"""
                    388:    k=browse(start)
                    389:    return k
                    390: 
                    391:     def getfilesystem2(self,start,reload=0):
                    392:    """load filesystem"""
                    393:    k=filesystem2(start,1)
                    394:    return k
                    395: 
                    396:     def getfilesystem(self,start,reload=0):
                    397:    """load filesystem"""
                    398: 
                    399:    k=filesystem(start,1)
                    400:    return k
                    401: 
                    402: 
                    403:     ##init
                    404:     def __init__(self, id, title,startPath):
                    405:         """init"""
                    406:         self.id=id
                    407:         self.title=title
                    408:         self.startPath=startPath
                    409: 
                    410:     def archiver_html(self):
                    411:         """archiver"""
1.12      dwinter   412:         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','OSAS_Archiver.zpt')).__of__(self)
1.1       dwinter   413:         return pt()
                    414: 
                    415:     def index_html(self):
                    416:         """main page"""
1.12      dwinter   417:         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','archiverIndex.zpt')).__of__(self)
1.1       dwinter   418:         return pt()
1.3       dwinter   419: 
                    420:     def getDate(self):
                    421:         """date"""
                    422:         return time.strftime("%Y-%m-%d",time.localtime())
1.1       dwinter   423:     
                    424:     def newFolders_html(self):
                    425:         """main page"""
1.12      dwinter   426:         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','newFolders.zpt')).__of__(self)
1.1       dwinter   427:         return pt()
                    428: 
                    429:     def getProducers(self):
                    430:         """Ausgabe der registrierten Benutzer"""
                    431:         ret=[]
1.3       dwinter   432:         #x=7
                    433:         id=self.producerFolder.getId()
1.1       dwinter   434:         for list in self.producerFolder.__dict__:
                    435:             obj=getattr(self.producerFolder,list)
                    436:             if (hasattr(obj,"meta_type")):
                    437:                 if (obj.meta_type=="OSAS_producer"):
                    438:                     ret.append(obj.getId())
                    439:         return ret
                    440: 
                    441:     def getProducer(self,id):
                    442:         """Gebe ProducerObjekt zurück"""
1.7       dwinter   443:         obj=getattr(self.producerFolder,id)
1.1       dwinter   444:         return obj
                    445:         
                    446:         
                    447: 
                    448:     def createFoldersForm(self,producer,number):
                    449:         """Erzeuge Folder im producer Verzeichnis mit ids"""
                    450:         self.REQUEST.SESSION['producer']=producer
                    451:         self.REQUEST.SESSION['ids']=self.idGenerator.giveIdsOut(number)
1.12      dwinter   452:         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','createFoldersForm.zpt')).__of__(self)
1.1       dwinter   453:         return pt()
                    454:     
                    455:     def createFolders(self,folderList,producer):
                    456:         """Erzeug die entsprechenden Folder"""
1.5       dwinter   457:         #hack
1.7       dwinter   458:         #producer="library"
1.5       dwinter   459:         if type(folderList)==StringType:
                    460:             folders=[folderList]
                    461:         else:
                    462:             folders=folderList
1.7       dwinter   463:         #return producer
                    464:         producerFolderName=self.getProducer(producer).producerFolderName
1.5       dwinter   465:         
                    466:         for folder in folders:
1.7       dwinter   467:             os.mkdir(self.startPath+"/"+producerFolderName+"/"+folder)
                    468:             os.chmod(self.startPath+"/"+producerFolderName+"/"+folder,0775)
1.5       dwinter   469:         self.REQUEST.SESSION['folderList']=folders
1.12      dwinter   470:         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','createFolders.zpt')).__of__(self)
1.1       dwinter   471:         return pt()
                    472: 
1.4       dwinter   473:     def storeerror(self,ret,path,context,i):
                    474:         """store an error"""
                    475:         session=context.REQUEST.SESSION
                    476:         session['error%i'%i]=ret
                    477:         session['path%i'%i]=path
                    478:      
                    479:         return 'error?number=%i'%i
                    480: 
                    481:     def geterror(self,str,context):
                    482:         session=context.REQUEST.SESSION
                    483:         return session[str]
                    484: 
                    485:     def readfile(self,path):
                    486:         
                    487:         ret=""
                    488:         f=open(path,'r')
                    489:         for g in f.readlines():
                    490:             ret=ret+g
                    491:         return ret
                    492:      
                    493:     def writefile(self,path,txt,REQUEST):
1.8       dwinter   494:         """writefile"""
1.4       dwinter   495:         f=open(path,'w')
                    496:         f.write(txt)
                    497:         f.close()
1.8       dwinter   498:         return self.archive2()
1.4       dwinter   499: 
                    500:     def error(self):
                    501:         """view errors"""
1.12      dwinter   502:         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','processViewerError.zpt')).__of__(self)
1.4       dwinter   503:         return pt()
                    504: 
                    505:     
1.1       dwinter   506:     def archiveSelected(self):
                    507:         """Archiviere ausgewaehlte files"""
1.12      dwinter   508:         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','archiveSelected.zpt')).__of__(self)
1.1       dwinter   509:         return pt()
                    510: 
                    511:     def enterAcquisitionMetadata(self):
                    512:         """Erstelle Metadaten fuer Acquisition"""
                    513: 
                    514:     def enterPreliminaryBibMeta(self):
                    515:         """Erstelle Metadaten fuer Bibliography"""
                    516:         
                    517:     def showFilesForArchiving(self):
                    518:         """Anzeige der noch zu archivieren Files"""
                    519: 
                    520:         
1.5       dwinter   521:     def changeOSAS_archiverForm(self):
                    522:         """change"""
1.12      dwinter   523:         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ChangeOSAS_archiver.zpt')).__of__(self)
1.5       dwinter   524:         return pt()
                    525: 
                    526:     def changeOSAS_archiver(self,startPath,title="",RESPONSE=None):
                    527:         """change"""
                    528:         self.startPath=startPath
                    529:         self.title=title
1.1       dwinter   530: 
1.5       dwinter   531:         if RESPONSE is not None:
                    532:             RESPONSE.redirect('manage_main')
1.1       dwinter   533:     
                    534: 
                    535: def manage_AddOSAS_archiverForm(self):
                    536:     """interface for adding the OSAS_root"""
1.12      dwinter   537:     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddOSAS_archiver.zpt')).__of__(self)
1.1       dwinter   538:     return pt()
                    539: 
                    540: 
                    541: def manage_AddOSAS_archiver(self,id,startPath,title="",RESPONSE=None):
                    542:     """add the OSAS_root"""
                    543:     if title=="":
                    544:         title=id
                    545:         
                    546:     newObj=OSAS_archiver(id, title,startPath)
                    547:     self._setObject(id,newObj)
                    548:     if RESPONSE is not None:
                    549:         RESPONSE.redirect('manage_main')
                    550: 
                    551: 
1.3       dwinter   552: class OSAS_producer(SimpleItem,Persistent,Implicit):
1.2       dwinter   553:     """Klasse fuer Produzenteninformationen
                    554:     Metadaten nach  V1.1.1"""
1.1       dwinter   555: 
                    556:     meta_type="OSAS_producer"
                    557: 
1.7       dwinter   558:     def __init__(self,shortName,fullName,producerFolderName,address="",url="",contact=""):
1.1       dwinter   559: 
                    560:         self.id=shortName
                    561:         self.title=fullName
1.2       dwinter   562:         self.address=address
                    563:         self.url=url
                    564:         self.contact=contact
1.7       dwinter   565:         self.producerFolderName=producerFolderName
                    566:         
1.3       dwinter   567:     manage_options = SimpleItem.manage_options+(
1.2       dwinter   568:         {'label':'Main Config','action':'changeOSAS_producerForm'},
                    569:         )
                    570: 
                    571:     def changeOSAS_producerForm(self):
                    572:         """change"""
1.12      dwinter   573:         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','ChangeOSAS_producer.zpt')).__of__(self)
1.2       dwinter   574:         return pt()
1.3       dwinter   575: 
1.7       dwinter   576:     def changeOSAS_producer(self,title,address,producerFolderName,contact="",url="",RESPONSE=None):
1.3       dwinter   577:         """change"""
1.7       dwinter   578:         self.title=title
1.3       dwinter   579:         self.address=address
                    580:         self.url=url
                    581:         self.contact=contact
1.7       dwinter   582:         self.producerFolderName=producerFolderName
1.1       dwinter   583: 
1.7       dwinter   584:         if RESPONSE:
                    585:             RESPONSE.redirect("manage_main")
                    586:         
1.1       dwinter   587: def manage_AddOSAS_producerForm(self):
                    588:     """interface for adding the OSAS_root"""
1.12      dwinter   589:     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','AddOSAS_producer.zpt')).__of__(self)
1.1       dwinter   590:     return pt()
                    591: 
                    592: 
1.7       dwinter   593: def manage_AddOSAS_producer(self,id,producerFolderName,title="",contact="",address="",url="",RESPONSE=None):
1.1       dwinter   594:     """add the OSAS_root"""
                    595:     if title=="":
                    596:         title=id
                    597:         
1.7       dwinter   598:     newObj=OSAS_producer(id, title,producerFolderName,address,contact,url)
1.1       dwinter   599:     self._setObject(id,newObj)
                    600:     if RESPONSE is not None:
                    601:         RESPONSE.redirect('manage_main')
                    602: 

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