9 _ = unicode |
9 _ = unicode |
10 |
10 |
11 from logilab.mtconverter import xml_escape |
11 from logilab.mtconverter import xml_escape |
12 |
12 |
13 from cubicweb import Unauthorized, role as get_role, target as get_target |
13 from cubicweb import Unauthorized, role as get_role, target as get_target |
|
14 from cubicweb.schema import display_name |
14 from cubicweb.selectors import (one_line_rset, primary_view, |
15 from cubicweb.selectors import (one_line_rset, primary_view, |
15 match_context_prop, partial_has_related_entities, |
16 match_context_prop, partial_has_related_entities, |
16 accepts_compat, has_relation_compat, |
17 accepts_compat, has_relation_compat, |
17 condition_compat, require_group_compat) |
18 condition_compat, require_group_compat) |
18 from cubicweb.view import View, ReloadableMixIn |
19 from cubicweb.view import View, ReloadableMixIn |
217 # use entity.unrelated if we've been asked for a particular etype |
218 # use entity.unrelated if we've been asked for a particular etype |
218 if hasattr(self, 'etype'): |
219 if hasattr(self, 'etype'): |
219 return entity.unrelated(self.rtype, self.etype, get_role(self)).entities() |
220 return entity.unrelated(self.rtype, self.etype, get_role(self)).entities() |
220 # in other cases, use vocabulary functions |
221 # in other cases, use vocabulary functions |
221 entities = [] |
222 entities = [] |
222 form = self.vreg.select('forms', 'edition', self.req, rset=self.rset, |
223 form = self.vreg['forms'].select('edition', self.req, rset=self.rset, |
223 row=self.row or 0) |
224 row=self.row or 0) |
224 field = form.field_by_name(self.rtype, get_role(self), entity.e_schema) |
225 field = form.field_by_name(self.rtype, get_role(self), entity.e_schema) |
225 for _, eid in form.form_field_vocabulary(field): |
226 for _, eid in form.form_field_vocabulary(field): |
226 if eid is not None: |
227 if eid is not None: |
227 rset = self.req.eid_rset(eid) |
228 rset = self.req.eid_rset(eid) |
228 entities.append(rset.get_entity(0, 0)) |
229 entities.append(rset.get_entity(0, 0)) |