diff --git a/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/Base_edit.xml b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/Base_edit.xml index c317a232e4ad8d33b066f15d62a97b1306e82fc3..c878af71270a452156c4363fea02d6e62daa030c 100644 --- a/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/Base_edit.xml +++ b/product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/Base_edit.xml @@ -148,7 +148,8 @@ def editMatrixBox(matrixbox_field, matrixbox):\n columns = []\n tabs = []\n if as_cell_range_script_id:\n - cell_range = getattr(context, as_cell_range_script_id)(matrixbox=True)\n + cell_range = getattr(matrix_context,\n + as_cell_range_script_id)(matrixbox=True, base_id=cell_base_id)\n if len(cell_range) == 1:\n lines, = cell_range\n elif len(cell_range) == 2:\n diff --git a/product/ERP5/bootstrap/erp5_core/bt/revision b/product/ERP5/bootstrap/erp5_core/bt/revision index 99b41733b913afdd50105a4b00a8c790290c2ce7..891f73536c04b701ac623c4fe9cce4008c51dc2a 100644 --- a/product/ERP5/bootstrap/erp5_core/bt/revision +++ b/product/ERP5/bootstrap/erp5_core/bt/revision @@ -1 +1 @@ -1433 \ No newline at end of file +1434 \ No newline at end of file diff --git a/product/ERP5Form/MatrixBox.py b/product/ERP5Form/MatrixBox.py index 68fd67fdf4d9f3c02f36db46dc15833210663826..875ca7e110c06c9845e5a904fd651081e24d6822 100644 --- a/product/ERP5Form/MatrixBox.py +++ b/product/ERP5Form/MatrixBox.py @@ -201,13 +201,19 @@ class MatrixBoxWidget(Widget.Widget): form = field.aq_parent field_title = field.get_value('title') cell_base_id = field.get_value('cell_base_id') + context = here + getter_method_id = field.get_value('getter_method') + if getter_method_id not in (None,''): + context = getattr(here,getter_method_id)() + if context is None: + return '' as_cell_range_script_id = field.get_value('as_cell_range_script_id') if as_cell_range_script_id: lines = [] columns = [] tabs = [] - dimension_list = guarded_getattr(here, - as_cell_range_script_id)(matrixbox=True) + dimension_list = guarded_getattr(context, + as_cell_range_script_id)(matrixbox=True, base_id=cell_base_id) len_dimension_list = len(dimension_list) if len_dimension_list: if len_dimension_list == 1: @@ -225,12 +231,6 @@ class MatrixBoxWidget(Widget.Widget): columns = field.get_value('columns') tabs = field.get_value('tabs') field_errors = REQUEST.get('field_errors', {}) - context = here - getter_method_id = field.get_value('getter_method') - if getter_method_id not in (None,''): - context = getattr(here,getter_method_id)() - if context is None: - return '' cell_getter_method_id = field.get_value('cell_getter_method') if cell_getter_method_id not in (None, ''): cell_getter_method = getattr(here, cell_getter_method_id) @@ -445,12 +445,18 @@ class MatrixBoxValidator(Validator.Validator): here = getattr(form, 'aq_parent', REQUEST) cell_base_id = field.get_value('cell_base_id') as_cell_range_script_id = field.get_value('as_cell_range_script_id') + context = here + getter_method_id = field.get_value('getter_method') + if getter_method_id not in (None,''): + context = getattr(here,getter_method_id)() + if context is None: + return {} if as_cell_range_script_id: lines = [] columns = [] tabs = [] - dimension_list = guarded_getattr(here, - as_cell_range_script_id)(matrixbox=True) + dimension_list = guarded_getattr(context, + as_cell_range_script_id)(matrixbox=True, base_id=cell_base_id) len_dimension_list = len(dimension_list) if len_dimension_list: if len_dimension_list == 1: @@ -469,12 +475,7 @@ class MatrixBoxValidator(Validator.Validator): tabs = field.get_value('tabs') editable_attributes = field.get_value('editable_attributes') - getter_method_id = field.get_value('getter_method') error_list = [] - context = here - if getter_method_id not in (None,''): - context = getattr(here,getter_method_id)() - if context is None: return {} cell_getter_method_id = field.get_value('cell_getter_method') if cell_getter_method_id not in (None, ''): cell_getter_method = getattr(here, cell_getter_method_id)