605 entity.eid) |
605 entity.eid) |
606 self.render_form(entity, peid, rtype, role, divonclick=divonclick) |
606 self.render_form(entity, peid, rtype, role, divonclick=divonclick) |
607 |
607 |
608 def render_form(self, entity, peid, rtype, role, **kwargs): |
608 def render_form(self, entity, peid, rtype, role, **kwargs): |
609 """fetch and render the form""" |
609 """fetch and render the form""" |
610 rschema = self.schema.rschema(rtype) |
|
611 divid = '%s-%s-%s' % (peid, rtype, entity.eid) |
|
612 title = rschema.display_name(self.req, role) |
|
613 form = self.vreg.select_object('forms', 'edition', self.req, None, |
610 form = self.vreg.select_object('forms', 'edition', self.req, None, |
614 entity=entity) |
611 entity=entity) |
|
612 self.add_hiddens(form, entity, peid, rtype, role) |
|
613 divid = '%s-%s-%s' % (peid, rtype, entity.eid) |
|
614 title = self.schema.rschema(rtype).display_name(self.req, role) |
615 removejs = self.removejs % (peid, rtype,entity.eid) |
615 removejs = self.removejs % (peid, rtype,entity.eid) |
|
616 self.w(form.form_render(renderer=EntityInlinedFormRenderer(), divid=divid, |
|
617 title=title, removejs=removejs,**kwargs)) |
|
618 |
|
619 def add_hiddens(self, form, entity, peid, rtype, role): |
|
620 # to ease overriding (see cubes.vcsfile.views.forms for instance) |
616 if self.keep_entity(entity, peid, rtype): |
621 if self.keep_entity(entity, peid, rtype): |
617 if entity.has_eid(): |
622 if entity.has_eid(): |
618 rval = entity.eid |
623 rval = entity.eid |
619 else: |
624 else: |
620 rval = INTERNAL_FIELD_VALUE |
625 rval = INTERNAL_FIELD_VALUE |
621 form.form_add_hidden('edit%s-%s:%s' % (role[0], rtype, peid), rval) |
626 form.form_add_hidden('edit%s-%s:%s' % (role[0], rtype, peid), rval) |
622 form.form_add_hidden(name='%s:%s' % (rtype, peid), value=entity.eid, |
627 form.form_add_hidden(name='%s:%s' % (rtype, peid), value=entity.eid, |
623 id='rel-%s-%s-%s' % (peid, rtype, entity.eid)) |
628 id='rel-%s-%s-%s' % (peid, rtype, entity.eid)) |
624 self.w(form.form_render(renderer=EntityInlinedFormRenderer(), divid=divid, |
629 |
625 title=title, removejs=removejs,**kwargs)) |
|
626 |
|
627 def keep_entity(self, entity, peid, rtype): |
630 def keep_entity(self, entity, peid, rtype): |
628 if not entity.has_eid(): |
631 if not entity.has_eid(): |
629 return True |
632 return True |
630 # are we regenerating form because of a validation error ? |
633 # are we regenerating form because of a validation error ? |
631 erroneous_post = self.req.data.get('formvalues') |
634 erroneous_post = self.req.data.get('formvalues') |