Commit fca56909 authored by Romain Courteaud's avatar Romain Courteaud

Add wheel button support.


git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@2386 20353a03-c40f-0410-a6d1-a30d3c3de9de
parent 0f42d393
......@@ -158,6 +158,10 @@ class MultiRelationStringFieldWidget(Widget.LinesTextAreaWidget, RelationField.R
else:
# no modification made, we can display only a lines text area widget
html_string += Widget.LinesTextAreaWidget.render(self, field, key, value_list, REQUEST)
html_string += '&nbsp;<input type="image" src="%s/images/exec16.png" value="update..." name="%s/portal_selections/viewSearchRelatedDocumentDialog%s:method">' \
% (portal_url_string, portal_object.getPath(), field.aq_parent._v_relation_field_index)
if value_list not in ((), [], None, ['']) and value_list == field.get_value('default'):
if REQUEST.get('selection_name') is not None:
html_string += '&nbsp;&nbsp;<a href="%s?field_id=%s&form_id=%s&selection_name=%s&selection_index=%s"><img src="%s/images/jump.png"></a>' \
......@@ -334,6 +338,8 @@ class MultiRelationStringFieldValidator(Validator.LinesValidator, RelationField
else:
relation_field_id = 'relation_%s' % ( key )
# We must be able to erase the relation
if value_list == ['']:
display_text = 'Delete the relation'
......@@ -341,8 +347,37 @@ class MultiRelationStringFieldValidator(Validator.LinesValidator, RelationField
# return RelationEditor(key, base_category, portal_type, None,
# portal_type_item, catalog_index, value, relation_setter_id, display_text)
# Will be interpreted by Base_edit as "delete relation" (with no uid and value = '')
if REQUEST.has_key( relation_field_id ):
# user click on the wheel: get the selection, and store the relation
if value_list == ['%']:
# we must know if user validate the form or click on the wheel button
relation_uid_list = REQUEST.get(relation_field_id, None)
if relation_uid_list != None:
relation_editor_list = []
for i in range( len(relation_uid_list) ):
relation_item_id = 'item_%s_%s' % ( key, i )
relation_uid = relation_uid_list[i]
related_object = portal_catalog.getObject(relation_uid)
if related_object is not None:
display_text = str(related_object.getProperty(catalog_index))
else:
display_text = 'Object has been deleted'
# Check
REQUEST.set(relation_item_id, ( (display_text, relation_uid), ))
relation_editor_list.append( (i, '%', str(relation_uid), display_text) )
return MultiRelationEditor(field.id, base_category, portal_type, portal_type_item, catalog_index, relation_setter_id, relation_editor_list)
else:
# value must be define to ['%'] to see all objects in listbox
raise
else:
# User validate the form
relation_editor_list = []
raising_error_needed = 0
raising_error_value = ''
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment