# HG changeset patch # User Sylvain Thénault # Date 1244190395 -7200 # Node ID e4d24e4d74e6b190b04b59e15b675fb1da5ab344 # Parent ce184fdb1e56d7bc09d9ffaf3892c5b2a22bff9a# Parent 6ab574aa5e5f6009a323f97c12a8bd5112e2b793 merge diff -r 6ab574aa5e5f -r e4d24e4d74e6 web/views/basecontrollers.py --- a/web/views/basecontrollers.py Fri Jun 05 09:58:16 2009 +0200 +++ b/web/views/basecontrollers.py Fri Jun 05 10:26:35 2009 +0200 @@ -211,9 +211,11 @@ status, args = (False, '???') self.req.set_content_type('text/html') jsarg = simplejson.dumps( (status, args) ) + domid = self.req.form.get('__domid', 'entityForm').encode( + self.req.encoding) return """""" % simplejson.dumps( (status, args) ) + window.parent.handleFormValidationResponse('%s', null, null, %s); +""" % (domid, simplejson.dumps( (status, args) )) def validation_error(self, err): self.req.cnx.rollback() diff -r 6ab574aa5e5f -r e4d24e4d74e6 web/views/cwproperties.py --- a/web/views/cwproperties.py Fri Jun 05 09:58:16 2009 +0200 +++ b/web/views/cwproperties.py Fri Jun 05 10:26:35 2009 +0200 @@ -212,7 +212,7 @@ else: label = key subform = self.vreg.select_object('forms', 'base', self.req, entity=entity, - set_error_url=False) + mainform=False) subform.append_field(PropertyValueField(name='value', label=label, eidparam=True)) subform.vreg = self.vreg diff -r 6ab574aa5e5f -r e4d24e4d74e6 web/views/editforms.py --- a/web/views/editforms.py Fri Jun 05 09:58:16 2009 +0200 +++ b/web/views/editforms.py Fri Jun 05 10:26:35 2009 +0200 @@ -71,7 +71,7 @@ continue done.add(entity.eid) subform = self.vreg.select_object('forms', 'base', req, entity=entity, - set_error_url=False) + mainform=False) form.form_add_subform(subform) # don't use outofcontext view or any other that may contain inline edition form w(u'
  • %s
  • ' % tags.a(entity.view('textoutofcontext'), @@ -119,7 +119,6 @@ else: form = self._build_relation_form(entity, value, rtype, role, row, col, vid, default) - form.form_add_hidden(u'__maineid', entity.eid) renderer = self.vreg.select_object('formrenderers', 'base', self.req, entity=entity, display_label=False, display_help=False, @@ -194,7 +193,7 @@ def init_form(self, form, entity): """customize your form before rendering here""" - form.form_add_hidden(u'__maineid', entity.eid) + pass def form_title(self, entity): """the form view title""" @@ -307,7 +306,7 @@ for row in xrange(len(self.rset)): form = self.vreg.select_object('forms', 'edition', self.req, self.rset, row=row, attrcategories=('primary',), - set_error_url=False) + mainform=False) # XXX rely on the EntityCompositeFormRenderer to put the eid input form.remove_field(form.field_by_name('eid')) self.form_add_subform(form) @@ -356,8 +355,7 @@ """fetch and render the form""" form = self.vreg.select_object('forms', 'edition', self.req, None, entity=entity, form_renderer_id='inline', - set_error_url=False, - copy_nav_params=False) + mainform=False, copy_nav_params=False) self.add_hiddens(form, entity, peid, rtype, role) divid = '%s-%s-%s' % (peid, rtype, entity.eid) title = self.schema.rschema(rtype).display_name(self.req, role) diff -r 6ab574aa5e5f -r e4d24e4d74e6 web/views/forms.py --- a/web/views/forms.py Fri Jun 05 09:58:16 2009 +0200 +++ b/web/views/forms.py Fri Jun 05 10:26:35 2009 +0200 @@ -36,12 +36,12 @@ cssstyle = None cwtarget = None redirect_path = None - set_error_url = True copy_nav_params = False form_buttons = None # form buttons (button widgets instances) form_renderer_id = 'default' - def __init__(self, req, rset=None, row=None, col=None, submitmsg=None, + def __init__(self, req, rset=None, row=None, col=None, + submitmsg=None, mainform=True, **kwargs): super(FieldsForm, self).__init__(req, rset, row=row, col=col) self.fields = list(self.__class__._fields_) @@ -51,8 +51,9 @@ else: assert hasattr(self.__class__, key) and not key[0] == '_', key setattr(self, key, val) - if self.set_error_url: + if mainform: self.form_add_hidden('__errorurl', self.session_key()) + self.form_add_hidden('__domid', self.domid) if self.copy_nav_params: for param in NAV_FORM_PARAMETERS: if not param in kwargs: @@ -266,13 +267,18 @@ self.edited_entity = self.complete_entity(self.row or 0, self.col or 0) self.form_add_hidden('__type', eidparam=True) self.form_add_hidden('eid') + if kwargs.get('mainform'): + self.form_add_hidden(u'__maineid', self.edited_entity.eid) + # If we need to directly attach the new object to another one + if self.req.list_form_param('__linkto'): + for linkto in self.req.list_form_param('__linkto'): + self.form_add_hidden('__linkto', linkto) + if msg: + msg = '%s %s' % (msg, self.req._('and linked')) + else: + msg = self.req._('entity linked') if msg: - # If we need to directly attach the new object to another one self.form_add_hidden('__message', msg) - if not self.is_subform: - for linkto in self.req.list_form_param('__linkto'): - self.form_add_hidden('__linkto', linkto) - msg = '%s %s' % (msg, self.req._('and linked')) def _field_has_error(self, field): """return true if the field has some error in given validation exception diff -r 6ab574aa5e5f -r e4d24e4d74e6 web/views/management.py --- a/web/views/management.py Fri Jun 05 09:58:16 2009 +0200 +++ b/web/views/management.py Fri Jun 05 10:26:35 2009 +0200 @@ -244,7 +244,8 @@ submiturl = self.config['submit-url'] submitmail = self.config['submit-mail'] if submiturl or submitmail: - form = self.select_object('forms', 'base', self.req, set_error_url=False) + form = self.select_object('forms', 'base', self.req, + mainform=False) binfo = text_error_description(ex, excinfo, req, eversion, cversions) form.form_add_hidden('description', binfo) form.form_add_hidden('__bugreporting', '1')