14 from simplejson import dumps |
14 from simplejson import dumps |
15 |
15 |
16 from logilab.mtconverter import xml_escape |
16 from logilab.mtconverter import xml_escape |
17 from logilab.common.decorators import cached |
17 from logilab.common.decorators import cached |
18 |
18 |
|
19 from cubicweb import neg_role |
19 from cubicweb.selectors import (match_kwargs, one_line_rset, non_final_entity, |
20 from cubicweb.selectors import (match_kwargs, one_line_rset, non_final_entity, |
20 specified_etype_implements, yes) |
21 specified_etype_implements, yes) |
21 from cubicweb.utils import make_uid |
22 from cubicweb.utils import make_uid |
22 from cubicweb.view import EntityView |
23 from cubicweb.view import EntityView |
23 from cubicweb.common import tags |
24 from cubicweb.common import tags |
496 self.w(self.form.form_render( |
497 self.w(self.form.form_render( |
497 divid=divid, title=title, removejs=removejs, i18nctx=i18nctx, |
498 divid=divid, title=title, removejs=removejs, i18nctx=i18nctx, |
498 counter=self.req.data[countkey], **kwargs)) |
499 counter=self.req.data[countkey], **kwargs)) |
499 |
500 |
500 def add_hiddens(self, form, entity): |
501 def add_hiddens(self, form, entity): |
501 # to ease overriding (see cubes.vcsfile.views.forms for instance) |
502 """to ease overriding (see cubes.vcsfile.views.forms for instance)""" |
502 if self.keep_entity(form, entity): |
503 iid = 'rel-%s-%s-%s' % (self.peid, self.rtype, entity.eid) |
503 if entity.has_eid(): |
504 # * str(self.rtype) in case it's a schema object |
504 rval = entity.eid |
505 # * neged_role() since role is the for parent entity, we want the role |
505 else: |
506 # of the inlined entity |
506 rval = INTERNAL_FIELD_VALUE |
507 form.form_add_hidden(name=str(self.rtype), value=self.peid, |
507 form.form_add_hidden('edit%s-%s:%s' % (self.role[0], self.rtype, self.peid), rval) |
508 role=neg_role(self.role), eidparam=True, id=iid) |
508 form.form_add_hidden(name='%s:%s' % (self.rtype, self.peid), value=entity.eid, |
|
509 id='rel-%s-%s-%s' % (self.peid, self.rtype, entity.eid)) |
|
510 |
509 |
511 def keep_entity(self, form, entity): |
510 def keep_entity(self, form, entity): |
512 if not entity.has_eid(): |
511 if not entity.has_eid(): |
513 return True |
512 return True |
514 # are we regenerating form because of a validation error ? |
513 # are we regenerating form because of a validation error ? |