web/facet.py
changeset 10669 155c29e0ed1c
parent 10666 7f6b5f023884
child 10672 f6f425a54a8d
equal deleted inserted replaced
10668:4fb62d791073 10669:155c29e0ed1c
    80 def rtype_facet_title(facet):
    80 def rtype_facet_title(facet):
    81     if facet.cw_rset:
    81     if facet.cw_rset:
    82         ptypes = facet.cw_rset.column_types(0)
    82         ptypes = facet.cw_rset.column_types(0)
    83         if len(ptypes) == 1:
    83         if len(ptypes) == 1:
    84             return display_name(facet._cw, facet.rtype, form=facet.role,
    84             return display_name(facet._cw, facet.rtype, form=facet.role,
    85                                 context=iter(ptypes).next())
    85                                 context=next(iter(ptypes)))
    86     return display_name(facet._cw, facet.rtype, form=facet.role)
    86     return display_name(facet._cw, facet.rtype, form=facet.role)
    87 
    87 
    88 def get_facet(req, facetid, select, filtered_variable):
    88 def get_facet(req, facetid, select, filtered_variable):
    89     return req.vreg['facets'].object_by_id(facetid, req, select=select,
    89     return req.vreg['facets'].object_by_id(facetid, req, select=select,
    90                                            filtered_variable=filtered_variable)
    90                                            filtered_variable=filtered_variable)
   133 def get_filtered_variable(select, mainvar=None):
   133 def get_filtered_variable(select, mainvar=None):
   134     """ Return the variable whose name is `mainvar`
   134     """ Return the variable whose name is `mainvar`
   135     or the first variable selected in column 0
   135     or the first variable selected in column 0
   136     """
   136     """
   137     if mainvar is None:
   137     if mainvar is None:
   138         vref = select.selection[0].iget_nodes(nodes.VariableRef).next()
   138         vref = next(select.selection[0].iget_nodes(nodes.VariableRef))
   139         return vref.variable
   139         return vref.variable
   140     return select.defined_vars[mainvar]
   140     return select.defined_vars[mainvar]
   141 
   141 
   142 def prepare_select(select, filtered_variable):
   142 def prepare_select(select, filtered_variable):
   143     """prepare a syntax tree to generate facet filters
   143     """prepare a syntax tree to generate facet filters
   829         if not self.no_relation:
   829         if not self.no_relation:
   830             return False
   830             return False
   831         if self._cw.vreg.schema.rschema(self.rtype).final:
   831         if self._cw.vreg.schema.rschema(self.rtype).final:
   832             return False
   832             return False
   833         if self.role == 'object':
   833         if self.role == 'object':
   834             subj = utils.rqlvar_maker(defined=self.select.defined_vars,
   834             subj = next(utils.rqlvar_maker(defined=self.select.defined_vars,
   835                                       aliases=self.select.aliases).next()
   835                                       aliases=self.select.aliases))
   836             obj = self.filtered_variable.name
   836             obj = self.filtered_variable.name
   837         else:
   837         else:
   838             subj = self.filtered_variable.name
   838             subj = self.filtered_variable.name
   839             obj = utils.rqlvar_maker(defined=self.select.defined_vars,
   839             obj = next(utils.rqlvar_maker(defined=self.select.defined_vars,
   840                                      aliases=self.select.aliases).next()
   840                                      aliases=self.select.aliases))
   841         restrictions = []
   841         restrictions = []
   842         if self.select.where:
   842         if self.select.where:
   843             restrictions.append(self.select.where.as_string())
   843             restrictions.append(self.select.where.as_string())
   844         if self.select.with_:
   844         if self.select.with_:
   845             restrictions.append('WITH ' + ','.join(
   845             restrictions.append('WITH ' + ','.join(
  1163                     if self.restr_attr_type is None:
  1163                     if self.restr_attr_type is None:
  1164                         attrtypes = set(obj for subj,obj in rschema.rdefs)
  1164                         attrtypes = set(obj for subj,obj in rschema.rdefs)
  1165                         if len(attrtypes) > 1:
  1165                         if len(attrtypes) > 1:
  1166                             raise Exception('ambigous attribute %s, specify attrtype on %s'
  1166                             raise Exception('ambigous attribute %s, specify attrtype on %s'
  1167                                             % (rtype, self.__class__))
  1167                                             % (rtype, self.__class__))
  1168                         self.restr_attr_type = iter(attrtypes).next()
  1168                         self.restr_attr_type = next(iter(attrtypes))
  1169                     if skipattrfilter:
  1169                     if skipattrfilter:
  1170                         actual_filter_variable = subject
  1170                         actual_filter_variable = subject
  1171                         continue
  1171                         continue
  1172             subjvar = _get_var(self.select, subject, varmap)
  1172             subjvar = _get_var(self.select, subject, varmap)
  1173             objvar = _get_var(self.select, object, varmap)
  1173             objvar = _get_var(self.select, object, varmap)