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

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.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)
                    350:         pt=PageTemplateFile('Products/OSA_system/archiveStatus.zpt').__of__(self)
                    351:         return pt()
                    352: 
1.8       dwinter   353:     def archive2(self):
                    354:         pt=PageTemplateFile('Products/OSA_system/archive2.zpt').__of__(self)
                    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"""
                    415:         pt=PageTemplateFile('Products/OSA_system/OSAS_Archiver.zpt').__of__(self)
                    416:         return pt()
                    417: 
                    418:     def index_html(self):
                    419:         """main page"""
                    420:         pt=PageTemplateFile('Products/OSA_system/archiverIndex.zpt').__of__(self)
                    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"""
                    429:         pt=PageTemplateFile('Products/OSA_system/newFolders.zpt').__of__(self)
                    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)
                    455:         pt=PageTemplateFile('Products/OSA_system/createFoldersForm.zpt').__of__(self)
                    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.1       dwinter   473:         pt=PageTemplateFile('Products/OSA_system/createFolders.zpt').__of__(self)
                    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"""
                    505:         pt=PageTemplateFile('Products/OSA_system/processViewerError.zpt').__of__(self)
                    506:         return pt()
                    507: 
                    508:     
1.1       dwinter   509:     def archiveSelected(self):
                    510:         """Archiviere ausgewaehlte files"""
                    511:         pt=PageTemplateFile('Products/OSA_system/archiveSelected.zpt').__of__(self)
                    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"""
                    526:         pt=PageTemplateFile('Products/OSA_system/ChangeOSAS_archiver.zpt').__of__(self)
                    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"""
                    540:     pt=PageTemplateFile('Products/OSA_system/AddOSAS_archiver.zpt').__of__(self)
                    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"""
                    576:         pt=PageTemplateFile('Products/OSA_system/ChangeOSAS_producer.zpt').__of__(self)
                    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"""
                    592:     pt=PageTemplateFile('Products/OSA_system/AddOSAS_producer.zpt').__of__(self)
                    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>