9 from simplejson import dumps |
9 from simplejson import dumps |
10 |
10 |
11 from logilab.mtconverter import html_escape |
11 from logilab.mtconverter import html_escape |
12 |
12 |
13 from cubicweb.vregistry import objectify_selector |
13 from cubicweb.vregistry import objectify_selector |
14 from cubicweb.selectors import (chainfirst, chainall, non_final_entity, |
14 from cubicweb.selectors import (non_final_entity, two_lines_rset, |
15 two_lines_rset, match_context_prop, |
15 match_context_prop, yes, relation_possible) |
16 yes, relation_possible) |
|
17 from cubicweb.web.box import BoxTemplate |
16 from cubicweb.web.box import BoxTemplate |
18 from cubicweb.web.facet import (AbstractFacet, VocabularyFacet, FacetStringWidget, |
17 from cubicweb.web.facet import (AbstractFacet, FacetStringWidget, RelationFacet, |
19 RelationFacet, prepare_facets_rqlst, filter_hiddens) |
18 prepare_facets_rqlst, filter_hiddens) |
20 |
19 |
21 @objectify_selector |
20 @objectify_selector |
22 def contextview_selector(cls, req, rset, row=None, col=None, view=None, |
21 def contextview_selector(cls, req, rset, row=None, col=None, view=None, |
23 **kwargs): |
22 **kwargs): |
24 if view and getattr(view, 'filter_box_context_info', lambda: None)(): |
23 if view and getattr(view, 'filter_box_context_info', lambda: None)(): |
58 req = self.req |
57 req = self.req |
59 req.add_js( ('cubicweb.ajax.js', 'cubicweb.formfilter.js') ) |
58 req.add_js( ('cubicweb.ajax.js', 'cubicweb.formfilter.js') ) |
60 req.add_css('cubicweb.facets.css') |
59 req.add_css('cubicweb.facets.css') |
61 if self.roundcorners: |
60 if self.roundcorners: |
62 req.html_headers.add_onload('jQuery(".facet").corner("tl br 10px");') |
61 req.html_headers.add_onload('jQuery(".facet").corner("tl br 10px");') |
63 rset, vid, divid, paginate=self._get_context(view) |
62 rset, vid, divid, paginate = self._get_context(view) |
64 if rset.rowcount < 2: # XXX done by selectors, though maybe necessary when rset has been hijacked |
63 if rset.rowcount < 2: # XXX done by selectors, though maybe necessary when rset has been hijacked |
65 return |
64 return |
66 if vid is None: |
65 if vid is None: |
67 vid = req.form.get('vid') |
66 vid = req.form.get('vid') |
68 rqlst = rset.syntax_tree() |
67 rqlst = rset.syntax_tree() |