[Erp5-report] r22688 - /erp5/trunk/products/ERP5Form/
nobody at svn.erp5.org
nobody at svn.erp5.org
Mon Jul 28 15:51:05 CEST 2008
Author: rafael
Date: Mon Jul 28 15:51:05 2008
New Revision: 22688
URL: http://svn.erp5.org?rev=22688&view=rev
Log:
Added new property at RelationFields and MultiRelationField.
Now is possible to define a set of listboxes that will used in dialog mode. This allow the user chooser (if len > 1) which listbox columns/search, he prefer use to find a certain object.
The approach is diferent of relation_form and define columns but still compatible with previous implementation. If the [multi]relation fields are not updated, be previous behaviour will still working.
Modified:
erp5/trunk/products/ERP5Form/MultiRelationField.py
erp5/trunk/products/ERP5Form/SelectionTool.py
Modified: erp5/trunk/products/ERP5Form/MultiRelationField.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/MultiRelationField.py?rev=22688&r1=22687&r2=22688&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/MultiRelationField.py (original)
+++ erp5/trunk/products/ERP5Form/MultiRelationField.py Mon Jul 28 15:51:05 2008
@@ -62,9 +62,10 @@
local_property_names = ['update_method', 'jump_method', 'allow_jump',
'base_category', 'portal_type', 'allow_creation',
'container_getter_id', 'catalog_index',
- 'relation_setter_id', 'relation_form_id', 'columns', 'sort',
- 'parameter_list','list_method',
- 'first_item', 'items', 'size', 'extra_item',
+ 'relation_setter_id', 'relation_form_id', 'columns',
+ 'sort', 'parameter_list','list_method',
+ 'first_item', 'items', 'proxy_listbox_ids',
+ 'size', 'extra_item',
]
property_names = Widget.LinesTextAreaWidget.property_names + \
@@ -177,6 +178,12 @@
title='List Method',
description=('The method to use to list'
'objects'),
+ default='',
+ required=0)
+
+ proxy_listbox_ids = fields.ListTextAreaField('proxy_listbox_ids',
+ title='Proxy Listbox IDs',
+ description=('A list of listbox that can be used as proxy'),
default='',
required=0)
Modified: erp5/trunk/products/ERP5Form/SelectionTool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/SelectionTool.py?rev=22688&r1=22687&r2=22688&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/SelectionTool.py (original)
+++ erp5/trunk/products/ERP5Form/SelectionTool.py Mon Jul 28 15:51:05 2008
@@ -1072,7 +1072,8 @@
# Field found
field_key = field.generate_field_key()
field_value = REQUEST.form[field_key]
- dialog_id = field.get_value('relation_form_id') or 'Base_viewRelatedObjectList'
+ dialog_id = field.get_value('relation_form_id') or \
+ 'Base_viewRelatedObjectList'
redirect_form = getattr(o, dialog_id)
# XXX Hardcoded listbox field
selection_name = redirect_form.listbox.get_value('selection_name')
@@ -1108,6 +1109,8 @@
field_value = ''
if len(field_value) == 1:
field_value = field_value[0]
+ if len(field_value) > 1 and isinstance(field_value, type([])):
+ field_value = ' OR '.join(field_value)
REQUEST.form[field_key] = field_value
portal_status_message = Message(
domain='erp5_ui',
@@ -1143,7 +1146,15 @@
kw['portal_status_message'] = portal_status_message
kw['saved_form_data'] = saved_form_data
- # Empty the selection (uid)
+ proxy_listbox_ids = field.get_value('proxy_listbox_ids')
+ REQUEST.set('proxy_listbox_ids', proxy_listbox_ids)
+ if len(proxy_listbox_ids) > 0:
+ REQUEST.set('proxy_listbox_id', proxy_listbox_ids[0][0])
+ else:
+ REQUEST.set('proxy_listbox_id', \
+ "Base_viewRelatedObjectListBase/listbox")
+
+ # Empty the selection (uid)
REQUEST.form = kw # New request form
# Define new HTTP_REFERER
REQUEST.HTTP_REFERER = '%s/%s' % (o.absolute_url(),
More information about the Erp5-report
mailing list