web/facet.py
changeset 7604 1eb6090311ff
parent 7600 75d208ab8444
parent 7601 9030e8a4481e
child 7605 48abeac162fd
equal deleted inserted replaced
7600:75d208ab8444 7604:1eb6090311ff
    92 ## rqlst manipulation functions used by facets ################################
    92 ## rqlst manipulation functions used by facets ################################
    93 
    93 
    94 def prepare_facets_rqlst(rqlst, args=None):
    94 def prepare_facets_rqlst(rqlst, args=None):
    95     """prepare a syntax tree to generate facet filters
    95     """prepare a syntax tree to generate facet filters
    96 
    96 
    97     * remove ORDERBY clause
    97     * remove ORDERBY/GROUPBY clauses
    98     * cleanup selection (remove everything)
    98     * cleanup selection (remove everything)
    99     * undefine unnecessary variables
    99     * undefine unnecessary variables
   100     * set DISTINCT
   100     * set DISTINCT
   101     * unset LIMIT/OFFSET
   101     * unset LIMIT/OFFSET
   102     """
   102     """
   104     select = rqlst.children[0]
   104     select = rqlst.children[0]
   105     mainvar = filtered_variable(select)
   105     mainvar = filtered_variable(select)
   106     select.set_limit(None)
   106     select.set_limit(None)
   107     select.set_offset(None)
   107     select.set_offset(None)
   108     baserql = select.as_string(kwargs=args)
   108     baserql = select.as_string(kwargs=args)
   109     # cleanup sort terms
   109     # cleanup sort terms / group by
   110     select.remove_sort_terms()
   110     select.remove_sort_terms()
       
   111     select.remove_groups()
       
   112     # XXX remove aggregat from having
   111     # selection: only vocabulary entity
   113     # selection: only vocabulary entity
   112     for term in select.selection[:]:
   114     for term in select.selection[:]:
   113         select.remove_selected(term)
   115         select.remove_selected(term)
   114     # remove unbound variables which only have some type restriction
   116     # remove unbound variables which only have some type restriction
   115     for dvar in select.defined_vars.values():
   117     for dvar in select.defined_vars.values():