[Erp5-report] r10028 - /erp5/trunk/products/ERP5Type/Base.py

nobody at svn.erp5.org nobody at svn.erp5.org
Sat Sep 16 14:15:44 CEST 2006


Author: jp
Date: Sat Sep 16 14:15:42 2006
New Revision: 10028

URL: http://svn.erp5.org?rev=10028&view=rev
Log:
Make CMFCategory test pass again (Value accessor implementation now made consistent for both categories and documents)

Modified:
    erp5/trunk/products/ERP5Type/Base.py

Modified: erp5/trunk/products/ERP5Type/Base.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Type/Base.py?rev=10028&r1=10027&r2=10028&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Type/Base.py (original)
+++ erp5/trunk/products/ERP5Type/Base.py Sat Sep 16 14:15:42 2006
@@ -1291,27 +1291,32 @@
   # categories
   security.declareProtected( Permissions.ModifyPortalContent, '_setValue' )
   def _setValue(self, id, target, spec=(), filter=None, portal_type=(), keep_default=1):
+    start_string = "%s/" % id
+    start_string_len = len(start_string)
     if target is None :
       path = target
     elif isinstance(target, str):
       # We have been provided a string
       path = target
+      if path.startswith(start_string): path = path[start_string_len:] # Prevent duplicating base category
     elif isinstance(target, (tuple, list)):
       # We have been provided a list or tuple
       path_list = []
       for target_item in target:
         if isinstance(target_item, str):
-          path_list += [target_item]
+          path = target_item
         else:
           path = target_item.getRelativeUrl()
-          path_list += [path]
+        if path.startswith(start_string): path = path[start_string_len:] # Prevent duplicating base category
+        path_list += [path]
       path = path_list
     else:
       # We have been provided an object
       # Find the object
       path = target.getRelativeUrl()
+      if path.startswith(start_string): path = path[start_string_len:] # Prevent duplicating base category
     self._setCategoryMembership(id, path, spec=spec, filter=filter, portal_type=portal_type,
-                                base=1, keep_default=keep_default)
+                                base=0, keep_default=keep_default)
 
   security.declareProtected( Permissions.ModifyPortalContent, '_setValueList' )
   _setValueList = _setValue
@@ -1331,7 +1336,7 @@
     elif isinstance(target, str):
       # We have been provided a string
       path = target
-    else:
+    else: 
       # We have been provided an object
       # Find the object
       path = target.getRelativeUrl()




More information about the Erp5-report mailing list