[Erp5-report] r7054 - /erp5/trunk/products/ERP5Form/MultiRelationField.py

nobody at svn.erp5.org nobody at svn.erp5.org
Wed May 3 13:09:38 CEST 2006


Author: romain
Date: Wed May  3 13:09:36 2006
New Revision: 7054

URL: http://svn.erp5.org?rev=7054&view=rev
Log:
Use setValue when the relation has only one value.
Add a blank line in the popup menu (if we don't want to create a new object).

Modified:
    erp5/trunk/products/ERP5Form/MultiRelationField.py

Modified: erp5/trunk/products/ERP5Form/MultiRelationField.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Form/MultiRelationField.py?rev=7054&r1=7053&r2=7054&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Form/MultiRelationField.py (original)
+++ erp5/trunk/products/ERP5Form/MultiRelationField.py Wed May  3 13:09:36 2006
@@ -449,10 +449,16 @@
                           portal_type=self.portal_type_list)
         else:
           # we could call a generic method which create the setter method name
-          set_method_name = '_set%sValueList' % \
-                       convertToUpperCase(self.base_category)
-          getattr(o, set_method_name)(relation_object_list, 
-                                      portal_type=self.portal_type_list)
+          if len(relation_object_list) == 1:
+            set_method_name = '_set%sValue' % \
+                         convertToUpperCase(self.base_category)
+            getattr(o, set_method_name)(relation_object_list[0], 
+                                        portal_type=self.portal_type_list)
+          else:
+            set_method_name = '_set%sValueList' % \
+                         convertToUpperCase(self.base_category)
+            getattr(o, set_method_name)(relation_object_list, 
+                                        portal_type=self.portal_type_list)
 
 allow_class(MultiRelationEditor)
 
@@ -534,7 +540,7 @@
     # User clicked on the wheel
     ####################################
     need_to_revalidate = 1
-    if relation_uid_list is not None:
+    if relation_uid_list not in (None, ''):
       need_to_revalidate = 0
       relation_editor_list = []
       for relation_item_id, relation_uid, value in \
@@ -717,6 +723,8 @@
 #                 relation_editor_list.append((0, value, relation_uid, 
 #                                              display_text, None, None))
               elif len(relation_list) == 0:
+                # Add blank line
+                menu_item_list.append(('', ''))
                 # If the length is 0, raise an error
                 if field.get_value('allow_creation') == 1 :
                   # XXX




More information about the Erp5-report mailing list