[Erp5-report] r38106 jerome - /erp5/trunk/products/ERP5Form/ListBox.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Wed Sep 1 14:30:35 CEST 2010
Author: jerome
Date: Wed Sep 1 14:30:19 2010
New Revision: 38106
URL: http://svn.erp5.org?rev=38106&view=rev
Log:
also use getEditableField method during validation.
This method is looking for editable fields in field library forms, it's not
limited to the form containing listbox, it was already used for display but not
for validation, so this was partially working.
Modified:
erp5/trunk/products/ERP5Form/ListBox.py
Modified: erp5/trunk/products/ERP5Form/ListBox.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/ListBox.py?rev=38106&r1=38105&r2=38106&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/ListBox.py [utf8] (original)
+++ erp5/trunk/products/ERP5Form/ListBox.py [utf8] Wed Sep 1 14:30:19 2010
@@ -2720,6 +2720,12 @@ class ListBoxValidator(Validator.Validat
editable_columns = field.get_value('editable_columns')
column_ids = [x[0] for x in columns]
editable_column_ids = [x[0] for x in editable_columns]
+ editable_field_dict = dict()
+ for sql in editable_column_ids:
+ alias = sql.replace('.', '_')
+ editable_field_dict[alias] = ListBoxRenderer(
+ field=field).getEditableField(alias)
+
selection_name = field.get_value('selection_name')
#LOG('ListBoxValidator', 0, 'field = %s, selection_name = %s' % (repr(field), repr(selection_name)))
params = here.portal_selections.getSelectionParamsFor(
@@ -2770,14 +2776,13 @@ class ListBoxValidator(Validator.Validat
property_id = '.'.join(sql.split('.')[1:]) # Only take trailing part
else:
property_id = alias
- my_field_id = '%s_%s' % (field.id, alias)
- if form.has_field( my_field_id ):
- my_field = form.get_field(my_field_id)
- error_result_key = '%s_%s' % (my_field.id, o.uid)
+ editable_field = editable_field_dict.get(alias)
+ if editable_field is not None:
+ error_result_key = '%s_%s' % (editable_field.id, o.uid)
key = 'field_' + error_result_key
REQUEST.set('cell', o)
try:
- value = my_field._validate_helper(key, REQUEST) # We need cell
+ value = editable_field._validate_helper(key, REQUEST) # We need cell
# Here we set the property
listbox[uid[4:]][sql] = value
except ValidationError, err:
@@ -2811,15 +2816,15 @@ class ListBoxValidator(Validator.Validat
property_id = '.'.join(sql.split('.')[1:]) # Only take trailing part
else:
property_id = alias
- my_field_id = '%s_%s' % (field.id, alias)
- if form.has_field( my_field_id ):
- my_field = form.get_field(my_field_id)
+ editable_field = editable_field_dict.get(alias)
+ if editable_field is not None:
REQUEST.set('cell', o)
- if my_field.get_value('editable', REQUEST=REQUEST) and field.need_validate(REQUEST):
- error_result_key = '%s_%s' % (my_field.id, o.uid)
+ if editable_field.get_value('editable', REQUEST=REQUEST) \
+ and field.need_validate(REQUEST):
+ error_result_key = '%s_%s' % (editable_field.id, o.uid)
key = 'field_' + error_result_key
try:
- value = my_field._validate_helper(key, REQUEST) # We need cell
+ value = editable_field._validate_helper(key, REQUEST) # We need cell
result[uid[4:]][sql] = value
except ValidationError, err:
#LOG("ListBox ValidationError",0,str(err))
@@ -2861,21 +2866,20 @@ class ListBoxValidator(Validator.Validat
property_id = '.'.join(sql.split('.')[1:]) # Only take trailing part
else:
property_id = alias
- my_field_id = '%s_%s' % (field.id, alias)
- if form.has_field( my_field_id ):
- my_field = form.get_field(my_field_id)
+ editable_field = editable_field_dict.get(alias)
+ if editable_field is not None:
REQUEST.set('cell', o) # We need cell
- if my_field.get_value('editable', REQUEST=REQUEST) and field.need_validate(REQUEST):
- error_result_key = '%s_%s' % (my_field.id, o.uid)
+ if editable_field.get_value('editable', REQUEST=REQUEST) \
+ and field.need_validate(REQUEST):
+ error_result_key = '%s_%s' % (editable_field.id, o.uid)
key = 'field_' + error_result_key
try:
- value = my_field._validate_helper(key, REQUEST) # We need cell
+ value = editable_field._validate_helper(key, REQUEST)
error_result[error_result_key] = value
if not result.has_key(o.getUrl()):
result[o.getUrl()] = {}
result[o.getUrl()][sql] = value
except ValidationError, err:
- #LOG("ListBox ValidationError",0,str(err))
err.field_id = error_result_key
errors.append(err)
except KeyError:
More information about the Erp5-report
mailing list