Annotation of basket/basket.py, revision 1.2

1.1       dwinter     1: ###objects to store and manage objects in baskets
                      2: 
                      3: import os
                      4: import os.path
                      5: import urllib
                      6: import cgi
                      7: 
                      8: 
                      9: from OFS.OrderedFolder import OrderedFolder
                     10: from OFS.SimpleItem import SimpleItem
                     11: 
                     12: from AccessControl import ClassSecurityInfo
                     13: from AccessControl.User import UserFolder
                     14: from Globals import InitializeClass
                     15: from Globals import DTMLFile
                     16: import Globals
                     17: from Products.PageTemplates.PageTemplateFile import PageTemplateFile
                     18: from Products.PageTemplates.PageTemplate import PageTemplate
                     19: from Products.PageTemplates.ZopePageTemplate import ZopePageTemplate
                     20: from Globals import Persistent, package_home
                     21: from Acquisition import Implicit
                     22: from Products.ZCatalog.CatalogPathAwareness import CatalogAware
                     23: 
                     24: refBasis="http://vlp.mpiwg-berlin.mpg.de/references?id=%s" 
                     25: #basis url for references
                     26: 
1.2     ! dwinter    27: publicationStatusList=['private','hidden','open_intern','open','group'] 
1.1       dwinter    28: # private only access for the owner, restricted only for users in accessGroup, open open for everyone, published occurs in basket list
                     29: 
1.2     ! dwinter    30: class BasketBasis(OrderedFolder):
        !            31:     """Basis class for BasketFolder and Baskets"""
1.1       dwinter    32:     
                     33:     security=ClassSecurityInfo()
                     34:     def getNewId(self):
                     35:         """createIds"""
                     36:         last=getattr(self,'last',0)
                     37:         last +=1
                     38:         while len(self.ZopeFind(self,obj_ids=[str(last)]))>0:
                     39:             last+=1
1.2     ! dwinter    40:     
1.1       dwinter    41:         return last
1.2     ! dwinter    42:     
1.1       dwinter    43:     def addBasketText(self,REQUEST=None):
                     44:         """add a text"""
                     45:         id=self.getNewId()
                     46:         manage_addBasketText(self,str(id),'','',RESPONSE=None)
                     47:         if REQUEST:
                     48:             REQUEST.RESPONSE.redirect(self.absolute_url()+"/manageBasket")
                     49:     
1.2     ! dwinter    50:     def addBasketExternalLink(self,REQUEST=None):
        !            51:         """add an external link"""
        !            52:         id=self.getNewId()
        !            53:         
        !            54:         manage_addBasketExternalLink(self,str(id),"","","","",RESPONSE=None)
        !            55:         if REQUEST:
        !            56:             REQUEST.RESPONSE.redirect(self.absolute_url()+"/manageBasket")
        !            57:         
1.1       dwinter    58:     def deleteObject(self,id,REQUEST=None):
                     59:         """delete object"""
                     60:         self.manage_delObjects([id])
                     61:         if REQUEST:
                     62:             REQUEST.RESPONSE.redirect(self.absolute_url()+"/manageBasket")
                     63:     
                     64:     def moveUp(self,id,REQUEST=None):
                     65:         """move id one up"""
                     66:         self.moveObjectsUp([id], 1)
                     67:         if REQUEST:
                     68:             REQUEST.RESPONSE.redirect(self.absolute_url()+"/manageBasket")
                     69:     
                     70:     def moveDown(self,id,REQUEST=None):
                     71:         """move id one up"""
                     72:         self.moveObjectsDown([id], 1)
                     73:         if REQUEST:
                     74:             REQUEST.RESPONSE.redirect(self.absolute_url()+"/manageBasket")
                     75:             
                     76:     def moveTop(self,id,REQUEST=None):
                     77:         """move to top"""
                     78:         self.moveObjectsToTop([id])
                     79:         if REQUEST:
                     80:             REQUEST.RESPONSE.redirect(self.absolute_url()+"/manageBasket")
                     81:   
                     82:     def moveBottom(self,id,REQUEST=None):
                     83:         """move to top"""
                     84:         self.moveObjectsToBottom([id])
                     85:         if REQUEST:
                     86:             REQUEST.RESPONSE.redirect(self.absolute_url()+"/manageBasket")
1.2     ! dwinter    87:     
        !            88:     security.declareProtected('View','getOwner')
1.1       dwinter    89:           
                     90:     def getOwner(self):
                     91:         """get Owner as string"""
                     92:         return self.owner
                     93:     
1.2     ! dwinter    94:     def isAuthorized(self,role="read"):
        !            95:         """check whether actual user is authorized"""
        !            96:         #TODO implement isAuthorized to do type, read or edit
        !            97:         return True
        !            98:     
        !            99:     def getActualUserName(self):
        !           100:         """get username of actual user"""
        !           101:         return self.REQUEST['AUTHENTICATED_USER'].getUserName()
        !           102:         
        !           103:     def getObjects(self):
        !           104:         """"get objects"""
        !           105:         return [getattr(self,x['id']) for x in self._objects]
        !           106:    
        !           107:     def numberOfObjects(self):
        !           108:         """anzahl der elemente im basket"""
        !           109:         return len(self._objects)
        !           110:     
        !           111: class BasketFolder(BasketBasis):
        !           112:     """Folder for Baskets"""
        !           113:     
        !           114:     meta_type="Basket Folder"
        !           115:     
        !           116:     #security=ClassSecurityInfo()
        !           117:     
        !           118:     def getSets(self,mode='open'):
        !           119:         """get sets, depending on mode selected"""
        !           120:         ret=[]
        !           121:         
        !           122:         if mode=='open':
        !           123:            
        !           124:             for object in self.getObjects():
        !           125:            
        !           126:                 if object.publicationStatus=='open':
        !           127:                     ret.append(object)
        !           128:             return ret
        !           129:         elif mode=='open_intern':
        !           130:             print "open_intern"
        !           131:             if self.groupFolder.isMemberOf('user'):
        !           132:                 print "---public"
        !           133:                 for object in self.getObjects():
        !           134:                     print object.getId(),object.publicationStatus
        !           135:                     if object.publicationStatus=='open_intern':
        !           136:                         ret.append(object)
        !           137:                 return ret
        !           138:             else:
        !           139:                 return ret
        !           140:         elif mode=='private':
        !           141:             for object in self.getObjects():
        !           142:                 if object.groupFolder.isMemberOf('admin') or object.groupFolder.isMemberOf('editor'):
        !           143:                     ret.append(object)
        !           144:             return ret
        !           145:         elif mode=='groups':
        !           146:             for object in self.getObjects():
        !           147:                 if object.groupFolder.isMemberOf('reader') or object.groupFolder.isMemberOf('editor') or object.groupFolder.isMemberOf('admin'):
        !           148:                     ret.append(object)
        !           149:                 return ret
        !           150: 
        !           151:     def checkPermission(self,modus):
        !           152:         """check permission"""
        !           153:         if modus=='open':
        !           154:             return True
        !           155:         elif modus=='private':
        !           156:             return self.isMemberOf('admin')
        !           157:         
        !           158:     def getCurrentBasket(self):
        !           159:         """select this basket for further work"""
        !           160:      
        !           161:         return self.REQUEST.cookies.get('vlp_basket',None)
        !           162:   
        !           163:     def index_html(self,mode='open'):
        !           164:         """generische ansicht"""
        !           165: 
        !           166:         #check if user has right for other modi
        !           167:         
        !           168:         if hasattr(self,"BasketFolder_template"):
        !           169:             obj=getattr(self,"BaskeFolder_template")
        !           170:             return obj()
        !           171:         else:
        !           172:             pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','BasketFolder_template_standard.zpt')).__of__(self)
        !           173:             pt.content_type="text/html"
        !           174:             return pt(mode=mode)
        !           175:   
        !           176:     def __init__(self,id,title):
        !           177:         """init basket folder"""
        !           178:         
        !           179:         self.id=id
        !           180:         self.title=title
        !           181:         
        !           182:     def manageBasketFolder(self):
        !           183:         """manage the basket"""
        !           184:         
        !           185:         if hasattr(self,"BasketFolder_manage_template"):
        !           186:             obj=getattr(self,"BasketFolder_manage_template")
        !           187:             return obj()
        !           188:         else:
        !           189:             pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','BasketFolder_manage_template_standard.zpt')).__of__(self)
        !           190:             pt.content_type="text/html"
        !           191:             return pt()
        !           192:     
        !           193:     def addBasket(self,title,RESPONSE=None):
        !           194:         """add a new basket"""
        !           195:         id=self.getNewId()
        !           196:         username=self.getActualUserName()
        !           197:         publicatonStatus="private"
        !           198:         manage_addBasket(self,str(id),title,"",username,publicationStatus,RESPONSE=None)
        !           199:         newObj=getattr(self,str(id))
        !           200:         if RESPONSE:
        !           201:             RESPONSE.redirect(newObj.absolute_url()+'/manageBasket')
        !           202:         
        !           203: 
        !           204: def manage_addBasketFolderForm(self):
        !           205:     """form for adding a basket"""
        !           206:     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addBasketFolder.zpt')).__of__(self)
        !           207:     return pt()
        !           208: 
        !           209: def manage_addBasketFolder(self,id,title,RESPONSE=None):
        !           210:     """add a basket folder object"""
        !           211: 
        !           212:   
        !           213:     newObj=BasketFolder(id,title)
        !           214:     
        !           215:     self._setObject(id,newObj)
        !           216:     
        !           217:     if RESPONSE is not None:
        !           218:         RESPONSE.redirect('manage_main')
        !           219:      
        !           220: class Basket(BasketBasis):
        !           221:     """Basket class"""
        !           222:     
        !           223:     meta_type="basket"
        !           224:     
        !           225:     security=ClassSecurityInfo()
        !           226:     
        !           227:     manage_options=OrderedFolder.manage_options+(
        !           228:         {'label':'manage main','action':'changeBasketForm'},
        !           229:         )
        !           230:     
        !           231:     def checkRef(self,xref):
        !           232:         """check if XRef is already in Basket"""
        !           233:         
        !           234:         founds=self.ZopeFind(self,obj_metatypes=["BasketXRef"])
        !           235:         for found in founds:
        !           236:             if self.xref==xref:
        !           237:                 return True
        !           238:         return False
        !           239:             
        !           240:     def __init__(self,id,title,comment,owner,publicationStatus,shortDescription):
        !           241:         '''
        !           242:         init the basket
        !           243:         @param id: id
        !           244:         @param title: title of the basket
        !           245:         @param comment: description of the basket
        !           246:         @param shortDescription: short description of the basket for the overviewList
        !           247:         @param owner: user object describing the owner
        !           248:         @param publication_status: one of publicationStatus if restricted, optional parameter accessGroups has to be set
        !           249:         '''
        !           250:         
        !           251:         self.id=id
        !           252:         self.title=title
        !           253:         self.comment=comment
        !           254:         self.owner=owner
        !           255:         self.publicationStatus=publicationStatus
        !           256:         self.shortDescription=shortDescription
        !           257:         
        !           258:         
        !           259:  
        !           260:     def getTitle(self):
        !           261:         """print name"""
        !           262:         return self.title
        !           263:         
        !           264:     security.declareProtected('Manage','changeBasketForm')
1.1       dwinter   265:     def changeBasketForm(self):
                    266:         """form for changing the basket"""
                    267:         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','changeBasket.zpt')).__of__(self)
                    268:         return pt()
                    269: 
                    270:     def changeBasket(self,title,comment,shortDescription,publicationStatus=None,username=None,accessGroups=None,RESPONSE=None,target=None):
                    271:         '''
                    272:         init the basket
                    273:         @param title: title of the basket
                    274:         @param comment: description of the basket
                    275:         @param owner: user object describing the owner
                    276:         @param publication_status: one of publicationStatus if restricted, optional parameter accessGroups has to be set
                    277:         @param aaccessGroups: default value is none, contains list of groups which are allowed to access this basket
                    278:         '''
                    279:          #TODO:what happens in username does not exists
                    280:         #find username
                    281:         owner=username
                    282:     
                    283:         self.title=title
                    284:         self.comment=comment
                    285:         if owner:
                    286:             self.owner=owner
                    287:         if publicationStatus:
                    288:             self.publicationStatus=publicationStatus
                    289:         if accessGroups:
                    290:             self.accessGroups=accessGroups
                    291:         self.shortDescription=shortDescription
                    292:     
                    293:         
                    294:         if RESPONSE is not None:
                    295:             if target:
                    296:                 RESPONSE.redirect(target)
                    297:             else:
                    298:                 RESPONSE.redirect('manage_main')
                    299:                 
                    300:     def index_html(self):
                    301:         """generische ansicht"""
                    302: 
                    303:         if hasattr(self,"BasketMain_template"):
                    304:             obj=getattr(self,"BasketMain_template")
                    305:             return obj()
                    306:         else:
                    307:             pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','BasketMain_template_standard.zpt')).__of__(self)
                    308:             pt.content_type="text/html"
                    309:             return pt()
                    310:     
                    311:     def manageBasket(self):
                    312:         """manage the basket"""
                    313:         
                    314:         if hasattr(self,"BasketMain_manage_template"):
                    315:             obj=getattr(self,"BasketMain_manage_template")
                    316:             return obj()
                    317:         else:
                    318:             pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','BasketMain_manage_template_standard.zpt')).__of__(self)
                    319:             pt.content_type="text/html"
                    320:             return pt()
                    321:     
1.2     ! dwinter   322:  
1.1       dwinter   323:     def changeBasketComments(self,REQUEST):
                    324:         """Change comment of basket elements"""
                    325:         form=REQUEST.form
                    326:         
                    327:         for key in form.keys():
                    328:             splitted=key.split("_")
                    329:             objects=self.ZopeFind(self,obj_ids=[splitted[0]])
                    330:             if len(objects)>0:
1.2     ! dwinter   331:                 setattr(objects[0][1],splitted[1],form[key])
        !           332: 
1.1       dwinter   333:    
                    334:         if REQUEST:
                    335:             REQUEST.RESPONSE.redirect(self.absolute_url()+"/manageBasket")  
                    336:               
                    337: 
                    338:     def selectThisBasketAsCurrent(self,REQUEST=None):
                    339:         """select this basket for further work"""
                    340:         REQUEST.RESPONSE.setCookie('vlp_basket',self.getId(),path="/")
                    341:         
                    342:         if REQUEST:
                    343:             REQUEST.RESPONSE.redirect(self.absolute_url()+"/manageBasket")
                    344:         
1.2     ! dwinter   345:    
1.1       dwinter   346:     def generateNewObject(self,type,link,title='',comment='',REQUEST=None):
                    347:         """generate a new object in the basket"""
                    348:         
                    349:         if type=="xref":
                    350: 
                    351:             splitted=urllib.unquote(link).split("?")
                    352:             if len(splitted)>1:
                    353:                 #assumes references id is contained in the url as parameter id=
                    354:                 params=cgi.parse_qs(splitted[1])
                    355:                 xref=params.get('id',None)
                    356:                 return False
                    357:             else:
                    358:                 #addumes link contains only the reference id
                    359:                 xref=link
                    360: 
                    361:             id=self.getNewId()
                    362:             title=""
                    363: 
                    364:             if xref is None:
                    365:                 #no parameter id
                    366:                 return False
                    367:             manage_addBasketXRef(self,str(id),title,comment,xref)
                    368:         
                    369:         if REQUEST:
1.2     ! dwinter   370:             import random
        !           371:             rd=random.random()
        !           372:             REQUEST.RESPONSE.redirect(REQUEST['HTTP_REFERER']+'&-dummy='+str(rd))
1.1       dwinter   373:         else:
                    374:             return True
                    375: 
                    376: def manage_addBasketForm(self):
                    377:     """form for adding a basket"""
                    378:     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addBasket.zpt')).__of__(self)
                    379:     return pt()
                    380: 
1.2     ! dwinter   381: def manage_addBasket(self,id,title,comment,username,publicationStatus,shortDescription="",accessGroups=None,RESPONSE=None):
1.1       dwinter   382:     """add a basket object"""
                    383:     #TODO:what happens in username does not exists
                    384:     #find username
                    385:     owner=username
1.2     ! dwinter   386:   
        !           387:     newObj=Basket(id,title,comment,owner,publicationStatus,shortDescription,accessGroups)
1.1       dwinter   388:     
                    389:     self._setObject(id,newObj)
                    390:     
                    391:     if RESPONSE is not None:
                    392:         RESPONSE.redirect('manage_main')
                    393:      
                    394: class BasketBasis(SimpleItem):
                    395:     """basic class for baskets"""
                    396:     
1.2     ! dwinter   397:     #security=ClassSecurityInfo()
1.1       dwinter   398:     
                    399:     manage_options=SimpleItem.manage_options+(
                    400:         {'label':'manage main','action':'changeBasketBasisForm'},
                    401:         )
                    402:     
                    403:     def __init__(self,id,title,comment):
                    404:         '''
                    405:         init basket basis
                    406:         @param id: id
                    407:         @param title: title
                    408:         @param comment commentar:
                    409:         '''
                    410:         self.id=id
                    411:         self.title=title
                    412:         self.comment=comment
                    413:         
                    414:     def changeBasketBasisForm(self):
                    415:         """form for changing the basket"""
                    416:         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','changeBasketBasis.zpt')).__of__(self)
                    417:         return pt()
                    418:     
                    419:     def changeBasketBasis(self,title,comment,RESPONSE=None):
                    420:         '''
                    421:         init the basket
                    422:         @param title: title of the basket
                    423:         @param comment: description of the basket
                    424:         '''
                    425:         
                    426:         self.title=title
                    427:         self.comment=comment
                    428:         
                    429:         if RESPONSE is not None:
                    430:             RESPONSE.redirect('manage')
                    431:     
                    432:     def linkToObject(self):
                    433:         """generate url to open the resource, has to be implemented in the different objects, generic return None"""
                    434:         return None
                    435:     
                    436:     def content_html(self,type):
                    437:         """generische ausgabe des objectes als html"""
                    438:         if hasattr(self,type+"_template"):
                    439:             obj=getattr(self,type+"_template")
                    440:             return obj()
                    441:         else:
                    442:             pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','%s_template_standard.zpt'%type)).__of__(self)
                    443:             pt.content_type="text/html"
                    444:             return pt()
                    445:     
                    446: class BasketXRef(BasketBasis):
                    447:     """class for internal references based on xrefs"""
                    448:     
1.2     ! dwinter   449:     #security=ClassSecurityInfo()
1.1       dwinter   450:     meta_type="BasketXRef"
                    451: 
                    452:     manage_options=BasketBasis.manage_options+(
                    453:         {'label':'manage xref','action':'changeBasketXRefForm'},
                    454:         )
                    455:     
                    456:     def changeBasketXRefForm(self):
                    457:         """form for changing the basket"""
                    458:         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','changeBasketXRef.zpt')).__of__(self)
                    459:         return pt()
                    460:     
                    461:     def changeBasketXRef(self,xref,RESPONSE=None):
                    462:         '''
                    463:         change the basket
                    464:         @param xref: reference
                    465:         '''
                    466:         
                    467:         self.xref=xref
                    468:         
                    469:         if RESPONSE is not None:
                    470:             RESPONSE.redirect('manage')
                    471:       
                    472:     def linkToObject(self):
                    473:         """generate url to open the resource"""
                    474:         return refBasis%self.xref
                    475:     
                    476:     def content_html(self):
                    477:         """format object as html fragment"""
                    478:         
                    479:         type=self.xref[0:3]
                    480:         return BasketBasis.content_html(self,"BasketXRef_%s"%type)
                    481:     
                    482: def manage_addBasketXRefForm(self):
                    483:     """form for adding a basket"""
                    484:     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addBasketXRef.zpt')).__of__(self)
                    485:     return pt()
                    486: 
                    487: def manage_addBasketXRef(self,id,title,comment,xref,RESPONSE=None):
                    488:     """add a basketXRef object"""
                    489:     
                    490:     
                    491:     newObj=BasketXRef(id,title,comment)
                    492:     newObj.xref=xref
                    493:     
                    494:     self._setObject(id,newObj)
                    495:     
                    496:     if RESPONSE is not None:
                    497:         RESPONSE.redirect('manage_main')
                    498:        
                    499: class BasketInternalLink(BasketBasis):
                    500:     """class for internal referencens based on links"""
                    501:     
1.2     ! dwinter   502:     #security=ClassSecurityInfo()
1.1       dwinter   503:     meta_type="BasketInternalLink"
                    504:     
                    505:     manage_options=BasketBasis.manage_options+(
                    506:         {'label':'manage internal link','action':'changeBasketInternalLinkForm'},
                    507:         )
                    508:  
                    509:     def changeBasketInternalLinkForm(self):
                    510:         """form for changing the basket"""
                    511:         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','changeBasketInternalLink.zpt')).__of__(self)
                    512:         return pt()
                    513:     
                    514:     def changeBasketInternalLink(self,link,linkText,RESPONSE=None):
                    515:         '''
                    516:         change the Internallink
                    517:         @param link: reference
                    518:         @param linkText: reference
                    519:         '''
                    520:         
                    521:         self.link=link
                    522:         self.linkText=linkText
                    523:         
                    524:         if RESPONSE is not None:
                    525:             RESPONSE.redirect('manage')
                    526:     
                    527:     def content_html(self):
                    528:         """format object as html fragment"""
                    529:         
                    530:         return BasketBasis.content_html(self,"BasketInternalLink")
                    531:     
                    532:     def linkToObject(self):
                    533:         """link to the object (internalLink)"""
                    534:         return self.link
                    535:     
                    536: def manage_addBasketInternalLinkForm(self):
                    537:     """form for adding a basket"""
                    538:     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addBasketInternalLink.zpt')).__of__(self)
                    539:     return pt()
                    540: 
                    541: def manage_addBasketInternalLink(self,id,title,comment,link,linkText,RESPONSE=None):
                    542:     """add a basketXRef object"""
                    543:     
                    544:     
                    545:     newObj=BasketInternalLink(id,title,comment)
                    546:     newObj.link=link
                    547:     newObj.linkText=linkText
                    548:     
                    549:     self._setObject(id,newObj)
                    550:     
                    551:     if RESPONSE is not None:
                    552:         RESPONSE.redirect('manage_main')
                    553:        
                    554:     
                    555: class BasketExternalLink(BasketBasis):
                    556:     """class for external links"""
                    557:     
1.2     ! dwinter   558:     #security=ClassSecurityInfo()
1.1       dwinter   559:     meta_type="BasketExternalLink"
                    560:     
                    561:     manage_options=BasketBasis.manage_options+(
                    562:         {'label':'manage internal link','action':'changeBasketExternalLinkForm'},
                    563:         )
                    564:  
                    565:     def changeBasketExternalLinkForm(self):
                    566:         """form for changing the basket"""
                    567:         pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','changeBasketExternalLink.zpt')).__of__(self)
                    568:         return pt()
                    569:     
                    570:     def changeBasketExternalLink(self,link,linkText,RESPONSE=None):
                    571:         '''
                    572:         change the Externallink
                    573:         @param link: reference
                    574:         @param linkText: reference
                    575:         '''
                    576:         
                    577:         self.link=link
                    578:         self.linkText=linkText
                    579:         
                    580:         if RESPONSE is not None:
                    581:             RESPONSE.redirect('manage')
                    582:     
                    583:     def content_html(self):
                    584:         """format object as html fragment"""
                    585:         
                    586:         return BasketBasis.content_html(self,"BasketExternalLink")
                    587:     
                    588:     def linkToObject(self):
                    589:         """link to the object (externalLink)"""
                    590:         return self.link
                    591: 
                    592: def manage_addBasketExternalLinkForm(self):
                    593:     """form for adding a basket"""
                    594:     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addBasketExternalLink.zpt')).__of__(self)
                    595:     return pt()
                    596: 
                    597: def manage_addBasketExternalLink(self,id,title,comment,link,linkText,RESPONSE=None):
                    598:     """add a basket external link object"""
                    599:     
                    600:     newObj=BasketExternalLink(id,title,comment)
                    601:     newObj.link=link
                    602:     newObj.linkText=linkText
                    603:     
                    604:     self._setObject(id,newObj)
                    605:     
                    606:     if RESPONSE is not None:
                    607:         RESPONSE.redirect('manage_main')
                    608:        
                    609:     
                    610: class BasketText(BasketBasis):
                    611:     """class for text elements in baskets"""
                    612:     
1.2     ! dwinter   613:     #security=ClassSecurityInfo()
1.1       dwinter   614:     meta_type="BasketText"
                    615: 
                    616:     def content_html(self):
                    617:         """format object as html fragment"""
                    618:         return "" # text has no content
                    619:         #return BasketBasis.content_html(self,"BasketText")
                    620:     
                    621: def manage_addBasketTextForm(self):
                    622:     """form for adding a basket"""
                    623:     pt=PageTemplateFile(os.path.join(package_home(globals()),'zpt','addBasketText.zpt')).__of__(self)
                    624:     return pt()
                    625: 
                    626: def manage_addBasketText(self,id,title,comment,RESPONSE=None):
                    627:     """add a basketXRef object"""
                    628:     
                    629:     
                    630:     newObj=BasketText(id,title,comment)
                    631:     
                    632:     self._setObject(id,newObj)
                    633:     
                    634:     if RESPONSE is not None:
                    635:         RESPONSE.redirect('manage_main')
                    636:        
                    637:     
                    638:     
                    639:      

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