lass ShoppingCart( BrowserView ): _cart = None def __call__( self ): self.manager = ShoppingCartManager( self.context, self.request, self ) self.manager.update() import pdb;pdb.set_trace() return super( ShoppingCart, self ).__call__() def getCart( self ): if self._cart is not None: return self._cart cart_manager = component.getUtility( interfaces.IShoppingCartUtility ) self._cart = cart = cart_manager.get( self.context, create=True ) return cart cart = property( getCart ) def isContextAddable( self ): addable = filter( lambda x, s=self.context: x.providedBy(s), PayableMarkers ) return not not addable def size( self ): if self.cart is None: return 0 return self.cart.size()