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) |