# HG changeset patch # User Sylvain Thénault # Date 1254324723 -7200 # Node ID df045bc51d00ee18d9c837b8f7d099556facd6f1 # Parent c095f5f5487317e673f6fcddb9d996dc2b1c8a00 [inlined forms] nicer add_hiddens implementation relying on standard entity forms handling diff -r c095f5f54873 -r df045bc51d00 web/views/editforms.py --- a/web/views/editforms.py Wed Sep 30 16:34:43 2009 +0200 +++ b/web/views/editforms.py Wed Sep 30 17:32:03 2009 +0200 @@ -16,6 +16,7 @@ from logilab.mtconverter import xml_escape from logilab.common.decorators import cached +from cubicweb import neg_role from cubicweb.selectors import (match_kwargs, one_line_rset, non_final_entity, specified_etype_implements, yes) from cubicweb.utils import make_uid @@ -501,15 +502,12 @@ counter=self.req.data[countkey], **kwargs)) def add_hiddens(self, form, entity): - # to ease overriding (see cubes.vcsfile.views.forms for instance) - if self.keep_entity(form, entity): - if entity.has_eid(): - rval = entity.eid - else: - rval = INTERNAL_FIELD_VALUE - form.form_add_hidden('edit%s-%s:%s' % (self.role[0], self.rtype, self.peid), rval) - form.form_add_hidden(name='%s:%s' % (self.rtype, self.peid), value=entity.eid, - id='rel-%s-%s-%s' % (self.peid, self.rtype, entity.eid)) + """to ease overriding (see cubes.vcsfile.views.forms for instance)""" + iid = 'rel-%s-%s-%s' % (self.peid, self.rtype, entity.eid) + form.form_add_hidden(name=self.rtype, value=self.peid, + # role is the for parent entity, we want the role + # of the inlined entity + role=neg_role(self.role), eidparam=True, id=iid) def keep_entity(self, form, entity): if not entity.has_eid():