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

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

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