# HG changeset patch # User Sandrine Ribeau # Date 1272889065 -7200 # Node ID 76b828dc3b9f05481302e97b07bfac5464e49b2a # Parent d0c8076e298bd2550ff5454f893d28288e30f224 [json-controller] - refactoring of js_component and js_view, it now uses _call_view - _call_view accepts paginate as a parameter diff -r d0c8076e298b -r 76b828dc3b9f web/views/basecontrollers.py --- a/web/views/basecontrollers.py Mon May 03 14:10:23 2010 +0200 +++ b/web/views/basecontrollers.py Mon May 03 14:17:45 2010 +0200 @@ -340,12 +340,11 @@ return None return None - def _call_view(self, view, **kwargs): - req = self._cw - divid = req.form.get('divid', 'pageContent') + def _call_view(self, view, paginate=False, **kwargs): + divid = self._cw.form.get('divid', 'pageContent') # we need to call pagination before with the stream set stream = view.set_stream() - if req.form.get('paginate'): + if paginate: if divid == 'pageContent': # mimick main template behaviour stream.write(u'
') @@ -356,12 +355,12 @@ if divid == 'pageContent': stream.write(u'
') view.render(**kwargs) - extresources = req.html_headers.getvalue(skiphead=True) + extresources = self._cw.html_headers.getvalue(skiphead=True) if extresources: stream.write(u'
\n') # XXX use a widget ? stream.write(extresources) stream.write(u'
\n') - if req.form.get('paginate') and divid == 'pageContent': + if paginate and divid == 'pageContent': stream.write(u'
') return stream.getvalue() @@ -381,7 +380,7 @@ vid = req.form.get('fallbackvid', 'noresult') view = self._cw.vreg['views'].select(vid, req, rset=rset) self.validate_cache(view) - return self._call_view(view) + return self._call_view(view, paginate=req.form.get('paginate')) @xhtmlize def js_prop_widget(self, propkey, varname, tabindex=None): @@ -419,16 +418,7 @@ **extraargs) #except NoSelectableObject: # raise RemoteCallFailed('unselectable') - extraargs = extraargs or {} - stream = comp.set_stream() - comp.render(**extraargs) - # XXX why not _call_view ? - extresources = self._cw.html_headers.getvalue(skiphead=True) - if extresources: - stream.write(u'
\n') - stream.write(extresources) - stream.write(u'
\n') - return stream.getvalue() + return self._call_view(comp, **extraargs) @check_pageid @xhtmlize @@ -457,15 +447,7 @@ args['reload'] = json.loads(args['reload']) rset = req.eid_rset(int(self._cw.form['eid'])) view = req.vreg['views'].select('doreledit', req, rset=rset, rtype=args['rtype']) - stream = view.set_stream() - view.render(**args) - # XXX why not _call_view ? - extresources = req.html_headers.getvalue(skiphead=True) - if extresources: - stream.write(u'
\n') - stream.write(extresources) - stream.write(u'
\n') - return stream.getvalue() + return self._call_view(view, **args) @jsonize def js_i18n(self, msgids):