# HG changeset patch # User sylvain.thenault@logilab.fr # Date 1233312905 -3600 # Node ID b3430af225805071fcba2de2e3b5137e946c1daa # Parent 29342c0cf55f239d0a718c5672d4bb35f0676d36 fix table filter form: get_widget shouldn't be called once rqlst has been recovered diff -r 29342c0cf55f -r b3430af22580 web/views/tableview.py --- a/web/views/tableview.py Thu Jan 29 17:02:15 2009 +0100 +++ b/web/views/tableview.py Fri Jan 30 11:55:05 2009 +0100 @@ -33,26 +33,23 @@ return () rqlst.save_state() mainvar, baserql = prepare_facets_rqlst(rqlst, self.rset.args) - facets = [facet for facet in self.vreg.possible_vobjects( + wdgs = [facet.get_widget() for facet in self.vreg.possible_vobjects( 'facets', self.req, self.rset, context='tablefilter', - filtered_variable=mainvar) - if facet.get_widget()] + filtered_variable=mainvar)] + wdgs = [wdg for wdg in wdgs if wdg is not None] rqlst.recover() - if facets: - self._generate_form(divid, baserql, facets, hidden, + if wdgs: + self._generate_form(divid, baserql, wdgs, hidden, vidargs={'displaycols': displaycols, 'displayactions': displayactions, 'displayfilter': displayfilter}) return self.show_hide_actions(divid, not hidden) return () - def _generate_form(self, divid, baserql, facets, hidden=True, vidargs={}): + def _generate_form(self, divid, baserql, fwidgets, hidden=True, vidargs={}): """display a form to filter table's content. This should only occurs when a context eid is given """ - wdgs = [facet.get_widget() for facet in facets] - if not wdgs: - return self.req.add_js( ('cubicweb.ajax.js', 'cubicweb.formfilter.js')) # drop False / None values from vidargs vidargs = dict((k, v) for k, v in vidargs.iteritems() if v) @@ -60,12 +57,12 @@ html_escape(dumps([divid, 'table', False, vidargs]))) self.w(u'