--- 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 """<script type="text/javascript">
- window.parent.handleFormValidationResponse('entityForm', null, null, %s);
-</script>""" % simplejson.dumps( (status, args) )
+ window.parent.handleFormValidationResponse('%s', null, null, %s);
+</script>""" % (domid, simplejson.dumps( (status, args) ))
def validation_error(self, err):
self.req.cnx.rollback()
--- 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
--- 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'<li>%s</li>' % 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)
--- 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
--- 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')