def __call__(self, layout=None, view=None, *args, **kw): if view is None: view = self.view self.mainview = view self.maincontext = view.context layoutview = self.view if layout is not None: self.view = layout self.update() if self.layout is None: return self.render() if self.__name__ != self.layout: layout = queryLayout( view, self.request, view.__parent__, name=self.layout) if layout is not None: return layout(layout=self, view=view, *args, **kw) else: context = self.context if layoutview.context is not context.__parent__: context = context.__parent__ else: context = getattr(context.__parent__, '__parent__', None) if context is None: context = getRoot(self.context) layout = queryLayout(self, self.request, context, name=self.layout) if layout is not None: return layout(view=view, *args, **kw) layout = queryLayout( self.view, self.context, self.request, name=self.layout) if layout is not None: return layout(*args, **kw) raise LayoutNotFound(self.layout)
def __call__(self, *args, **kw): if self.request._traversed_names[-1] != '': self.request._traversed_names.append('') response = self.request.response if self.isRedirected or response.getStatus() in (302, 303): return u'' layout = queryLayout( self, self.request, self.__parent__, name=self.layoutname) if layout is None: return self.render() else: return layout()