web/views/editforms.py
branchstable
changeset 2361 8f00836580f1
parent 2345 16e3d0e47ee6
child 2365 9f5e911eab07
equal deleted inserted replaced
2360:1d43aa551ba9 2361:8f00836580f1
    15 
    15 
    16 from logilab.mtconverter import xml_escape
    16 from logilab.mtconverter import xml_escape
    17 
    17 
    18 from cubicweb.selectors import (match_kwargs, one_line_rset, non_final_entity,
    18 from cubicweb.selectors import (match_kwargs, one_line_rset, non_final_entity,
    19                                 specified_etype_implements, yes)
    19                                 specified_etype_implements, yes)
    20 from cubicweb.utils import make_uid, compute_cardinality
    20 from cubicweb.utils import make_uid, compute_cardinality, get_schema_property
    21 from cubicweb.view import EntityView
    21 from cubicweb.view import EntityView
    22 from cubicweb.common import tags
    22 from cubicweb.common import tags
    23 from cubicweb.web import INTERNAL_FIELD_VALUE, stdmsgs, eid_param
    23 from cubicweb.web import INTERNAL_FIELD_VALUE, stdmsgs, eid_param
    24 from cubicweb.web.form import FormViewMixIn
    24 from cubicweb.web.form import FormViewMixIn
    25 from cubicweb.web.formfields import guess_field
    25 from cubicweb.web.formfields import guess_field
   135                                                          fromeid=entity.eid):
   135                                                          fromeid=entity.eid):
   136                 return self.w(value)
   136                 return self.w(value)
   137             elif role == 'object' and not rschema.has_perm(self.req, 'add',
   137             elif role == 'object' and not rschema.has_perm(self.req, 'add',
   138                                                            toeid=entity.eid):
   138                                                            toeid=entity.eid):
   139                 return self.w(value)
   139                 return self.w(value)
       
   140             elif get_schema_property(entity.e_schema,
       
   141                                    entity.schema.rschema(rtype),
       
   142                                    role, 'composite'):
       
   143                 return self.w(value)
   140             form = self._build_relation_form(entity, value, rtype, role, reload, row, col,
   144             form = self._build_relation_form(entity, value, rtype, role, reload, row, col,
   141                                              rvid, default, landing_zone)
   145                                              rvid, default, landing_zone)
   142         renderer = self.vreg.select_object('formrenderers', 'base', self.req,
   146         renderer = self.vreg.select_object('formrenderers', 'base', self.req,
   143                                       entity=entity,
   147                                       entity=entity,
   144                                       display_label=False, display_help=False,
   148                                       display_label=False, display_help=False,