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

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

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