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

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

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