diff --git a/product/ERP5Form/FormulatorPatch.py b/product/ERP5Form/FormulatorPatch.py index bb34b7aa545c613ccde570a1c1870f3ea64c8b72..7d7b7f905d3942a0353e89782f1bfa4b44300f06 100644 --- a/product/ERP5Form/FormulatorPatch.py +++ b/product/ERP5Form/FormulatorPatch.py @@ -1302,3 +1302,21 @@ def TALESWidget_render_view(self, field, value): return text TALESWidget.render_view = TALESWidget_render_view + +def Widget_render_dict(self, field, value): + """ + This is yet another field rendering. It is designed to allow code to + understand field's value data by providing its type and format when + applicable. + """ + return None +Widget.render_dict = Widget_render_dict + +def Field_render_dict(self, value=None, REQUEST=None, key=None, **kw): + """ + This is yet another field rendering. It is designed to allow code to + understand field's value data by providing its type and format when + applicable. + """ + return self.widget.render_dict(self, value) +Field.render_dict = Field_render_dict diff --git a/product/ERP5Form/ListBox.py b/product/ERP5Form/ListBox.py index 82cf6e4308d977228ab19d218a2af6b108412f83..89d21ff5d20820f652849fad3b555b198b629a7c 100644 --- a/product/ERP5Form/ListBox.py +++ b/product/ERP5Form/ListBox.py @@ -941,9 +941,9 @@ class ListBoxRenderer: search_field = listbox_form.get_field(editable_field_id) else: continue - render_dict = getattr(search_field.widget, 'render_dict', None) + render_dict = search_field.render_dict(search_value) if render_dict is not None: - params[search_id] = render_dict(search_field, search_value) + params[search_id] = render_dict # Set parameters, depending on the list method. list_method_name = self.getListMethodName() diff --git a/product/ERP5Form/ProxyField.py b/product/ERP5Form/ProxyField.py index dfdf2016ccf0386265f51d3a0dc77e82c7b2b57a..53700360fcb33ce9dd491beac2b9a16af6b5e32c 100644 --- a/product/ERP5Form/ProxyField.py +++ b/product/ERP5Form/ProxyField.py @@ -120,6 +120,7 @@ class ProxyWidget(Widget.Widget): render_view = WidgetDelegatedMethod('render_view', default='') render_pdf = WidgetDelegatedMethod('render_pdf', default='') render_css = WidgetDelegatedMethod('render_css', default='') + render_dict = WidgetDelegatedMethod('render_dict', default=None) get_javascript_list = WidgetDelegatedMethod( 'get_javascript_list', default=[])