29 AuthenticationError, typed_eid) |
29 AuthenticationError, typed_eid) |
30 from cubicweb.utils import UStringIO, json, json_dumps |
30 from cubicweb.utils import UStringIO, json, json_dumps |
31 from cubicweb.uilib import exc_message |
31 from cubicweb.uilib import exc_message |
32 from cubicweb.selectors import authenticated_user, anonymous_user, match_form_params |
32 from cubicweb.selectors import authenticated_user, anonymous_user, match_form_params |
33 from cubicweb.mail import format_mail |
33 from cubicweb.mail import format_mail |
34 from cubicweb.web import Redirect, RemoteCallFailed, DirectResponse |
34 from cubicweb.web import Redirect, RemoteCallFailed, DirectResponse, facet |
35 from cubicweb.web.controller import Controller |
35 from cubicweb.web.controller import Controller |
36 from cubicweb.web.views import vid_from_rset, formrenderers |
36 from cubicweb.web.views import vid_from_rset, formrenderers |
37 |
37 |
38 try: |
|
39 from cubicweb.web import facet as facetbase |
|
40 except ImportError: # gae |
|
41 facetbase = None |
|
42 |
38 |
43 def jsonize(func): |
39 def jsonize(func): |
44 """decorator to sets correct content_type and calls `json_dumps` on |
40 """decorator to sets correct content_type and calls `json_dumps` on |
45 results |
41 results |
46 """ |
42 """ |
487 cb = page_data[cbname] |
483 cb = page_data[cbname] |
488 except KeyError: |
484 except KeyError: |
489 return None |
485 return None |
490 return cb(self._cw) |
486 return cb(self._cw) |
491 |
487 |
492 if facetbase is not None: |
488 @jsonize |
493 @jsonize |
489 def js_filter_build_rql(self, names, values): |
494 def js_filter_build_rql(self, names, values): |
490 form = self._rebuild_posted_form(names, values) |
495 form = self._rebuild_posted_form(names, values) |
491 self._cw.form = form |
496 self._cw.form = form |
492 builder = facet.FilterRQLBuilder(self._cw) |
497 builder = facetbase.FilterRQLBuilder(self._cw) |
493 return builder.build_rql() |
498 return builder.build_rql() |
494 |
499 |
495 @jsonize |
500 @jsonize |
496 def js_filter_select_content(self, facetids, rql, mainvar): |
501 def js_filter_select_content(self, facetids, rql, mainvar): |
497 # Union unsupported yet |
502 # Union unsupported yet |
498 select = self._cw.vreg.parse(self._cw, rql).children[0] |
503 select = self._cw.vreg.parse(self._cw, rql).children[0] |
499 filtered_variable = facet.get_filtered_variable(select, mainvar) |
504 filtered_variable = facetbase.get_filtered_variable(select, mainvar) |
500 facet.prepare_select(select, filtered_variable) |
505 facetbase.prepare_select(select, filtered_variable) |
501 update_map = {} |
506 update_map = {} |
502 for fid in facetids: |
507 for facetid in facetids: |
503 fobj = facet.get_facet(self._cw, fid, select, filtered_variable) |
508 facet = facetbase.get_facet(self._cw, facetid, select, filtered_variable) |
504 update_map[fid] = fobj.possible_values() |
509 update_map[facetid] = facet.possible_values() |
505 return update_map |
510 return update_map |
|
511 |
506 |
512 def js_unregister_user_callback(self, cbname): |
507 def js_unregister_user_callback(self, cbname): |
513 self._cw.unregister_callback(self._cw.pageid, cbname) |
508 self._cw.unregister_callback(self._cw.pageid, cbname) |
514 |
509 |
515 def js_unload_page_data(self): |
510 def js_unload_page_data(self): |