web/views/editforms.py
changeset 3536 f6c9a5df80fb
parent 3524 a3431f4e2f40
parent 3534 81cfec545e1b
child 3589 a5432f99f2d9
equal deleted inserted replaced
3524:a3431f4e2f40 3536:f6c9a5df80fb
    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 ?