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

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

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